diff options
author | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2015-02-03 14:29:45 +0300 |
---|---|---|
committer | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2015-02-05 13:25:55 +0300 |
commit | f56a0475d90af025e92ec4716ff4e5121992b4fe (patch) | |
tree | c351eff2ed0b007eafed412a513bbec5fb4c5f91 /codebase/sources/ext/dhtmlxscheduler_treetimeline.js | |
parent | 32504c39dd0183ac30da815e4cf41ac8fa022b99 (diff) | |
download | scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.zip scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.tar.gz scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.tar.bz2 |
[update] version 4.3.0v4.3.0
Diffstat (limited to 'codebase/sources/ext/dhtmlxscheduler_treetimeline.js')
-rw-r--r-- | codebase/sources/ext/dhtmlxscheduler_treetimeline.js | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/codebase/sources/ext/dhtmlxscheduler_treetimeline.js b/codebase/sources/ext/dhtmlxscheduler_treetimeline.js deleted file mode 100644 index f42695c..0000000 --- a/codebase/sources/ext/dhtmlxscheduler_treetimeline.js +++ /dev/null @@ -1,313 +0,0 @@ -/* -dhtmlxScheduler v.4.2.0 Stardard - -This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. - -(c) Dinamenta, UAB. -*/ -scheduler.attachEvent("onTimelineCreated", function (obj){ - - if(obj.render == "tree") { - obj.y_unit_original = obj.y_unit; - obj.y_unit = scheduler._getArrayToDisplay(obj.y_unit_original); - - scheduler.attachEvent('onOptionsLoadStart', function(){ - obj.y_unit = scheduler._getArrayToDisplay(obj.y_unit_original); - }); - - scheduler.form_blocks[obj.name]={ - render:function(sns) { - var _result = "<div class='dhx_section_timeline' style='overflow: hidden; height: "+sns.height+"px'></div>"; - return _result; - }, - set_value:function(node,value,ev,config){ - var options = scheduler._getArrayForSelect(scheduler.matrix[config.type].y_unit_original, config.type); - node.innerHTML = ''; - var temp_select = document.createElement('select'); - node.appendChild(temp_select); - - var select = node.getElementsByTagName('select')[0]; - - if (!select._dhx_onchange && config.onchange) { - select.onchange = config.onchange; - select._dhx_onchange = true; - } - - for (var i = 0; i < options.length; i++) { - var temp_option = document.createElement('option'); - temp_option.value = options[i].key; - if(temp_option.value == ev[scheduler.matrix[config.type].y_property]) - temp_option.selected = true; - temp_option.innerHTML = options[i].label; - select.appendChild(temp_option); - } - }, - get_value:function(node,ev,config){ - return node.firstChild.value; - }, - focus:function(node){ - } - }; - - - } -}); - -scheduler.attachEvent("onBeforeSectionRender", function (render_name, y_unit, timeline){ - var res = {}; - if(render_name == "tree"){ - var height; - // section 1 - var tr_className, style_height, td_className; - var div_expand; - // section 3 - var table_className; - if(y_unit.children) { - height = timeline.folder_dy||timeline.dy; - if(timeline.folder_dy && !timeline.section_autoheight) { - style_height = "height:"+timeline.folder_dy+"px;"; - } - tr_className = "dhx_row_folder"; - td_className = "dhx_matrix_scell folder"; - div_expand = "<div class='dhx_scell_expand'>"+((y_unit.open)?'-':'+')+"</div>"; - table_className = (timeline.folder_events_available)?"dhx_data_table folder_events":"dhx_data_table folder"; - } else { - height = timeline.dy; - tr_className = "dhx_row_item"; - td_className = "dhx_matrix_scell item"+(scheduler.templates[timeline.name+"_scaley_class"](y_unit.key, y_unit.label, y_unit) ? - " "+scheduler.templates[timeline.name+"_scaley_class"](y_unit.key, y_unit.label, y_unit) : ''); - div_expand = ''; - table_className = "dhx_data_table"; - } - var td_content = "<div class='dhx_scell_level"+y_unit.level+"'>"+div_expand+"<div class='dhx_scell_name'>"+(scheduler.templates[timeline.name+'_scale_label'](y_unit.key, y_unit.label, y_unit)||y_unit.label)+"</div></div>"; - - res = { - height: height, - style_height: style_height, - //section 1 - tr_className: tr_className, - td_className: td_className, - td_content: td_content, - //section 3 - table_className: table_className - }; - } - return res; -}); - -var section_id_before; // section id of the event before dragging (to bring it back if user drop's event on folder without folder_events_available) - -scheduler.attachEvent("onBeforeEventChanged", function(event_object, native_event, is_new) { - if (scheduler._isRender("tree")) { // if mode's render == tree - var section = scheduler.getSection(event_object[scheduler.matrix[scheduler._mode].y_property]); - if (section && typeof section.children != 'undefined' && !scheduler.matrix[scheduler._mode].folder_events_available) { // section itself could be not defined in case of new event (addEventNow) - if (!is_new) { //if old - move back - event_object[scheduler.matrix[scheduler._mode].y_property] = section_id_before; - } - return false; - } - } - return true; -}); - -scheduler.attachEvent("onBeforeDrag", function (event_id, mode, native_event_object){ - if(scheduler._isRender("tree")) { - var cell = scheduler._locate_cell_timeline(native_event_object); - var section_id; - if(cell) { - section_id = scheduler.matrix[scheduler._mode].y_unit[cell.y].key; - if(typeof scheduler.matrix[scheduler._mode].y_unit[cell.y].children != "undefined" && !scheduler.matrix[scheduler._mode].folder_events_available) { - return false; - } - } - - var ev = scheduler.getEvent(event_id); - section_id_before = section_id||ev[scheduler.matrix[scheduler._mode].y_property]; // either event id or section_id will be available - } - return true; -}); - -scheduler._getArrayToDisplay = function(array){ // function to flatten out hierarhical array, used for tree view - var result = []; - var fillResultArray = function(array, lvl){ - var level = lvl||0; - for(var i=0; i<array.length; i++) { - array[i].level = level; - if(typeof array[i].children != "undefined" && typeof array[i].key == "undefined") - array[i].key=scheduler.uid(); - result.push(array[i]); - if(array[i].open && array[i].children) { - fillResultArray(array[i].children, level+1); - } - } - }; - fillResultArray(array); - return result; -}; - - -scheduler._getArrayForSelect = function(array, mode){ // function to flatten out hierarhical array, used for tree view - var result = []; - var fillResultArray = function(array){ - for(var i=0; i<array.length; i++) { - if(scheduler.matrix[mode].folder_events_available) { - result.push(array[i]); - } - else { - if(typeof array[i].children == "undefined") { - result.push(array[i]); - } - } - if(array[i].children) - fillResultArray(array[i].children, mode); - } - }; - fillResultArray(array); - return result; -}; - - -/* -scheduler._toggleFolderDisplay(4) -- toggle display of the section with key 4 (closed -> open) -scheduler._toggleFolderDisplay(4, true) -- open section with the key 4 (doesn't matter what status was before). False - close. -scheduler._toggleFolderDisplay(4, false, true) -- close ALL sections. Key is not used in such condition. -*/ -scheduler._toggleFolderDisplay = function(key, status, all_sections){ // used for tree view - var marked; - var toggleElement = function(key, array, status, all_sections) { - for (var i=0; i<array.length; i++) { - if((array[i].key == key || all_sections) && array[i].children) { - array[i].open = (typeof status != "undefined") ? status : !array[i].open; - marked = true; - if(!all_sections && marked) - break; - } - if(array[i].children) { - toggleElement(key,array[i].children, status, all_sections); - } - } - }; - var section = scheduler.getSection(key); - - if((typeof status == "undefined") && !all_sections){ - //toggle - status = !section.open; - } - if (scheduler.callEvent("onBeforeFolderToggle", [section, status, all_sections])) { - toggleElement(key,scheduler.matrix[scheduler._mode].y_unit_original, status, all_sections); - scheduler.matrix[scheduler._mode].y_unit = scheduler._getArrayToDisplay(scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.callEvent("onOptionsLoad",[]); - scheduler.callEvent("onAfterFolderToggle", [section, status, all_sections]); - } -}; - -scheduler.attachEvent("onCellClick", function (x, y, a, b, event){ - if(scheduler._isRender("tree")) { - if(!scheduler.matrix[scheduler._mode].folder_events_available) { - if(typeof scheduler.matrix[scheduler._mode].y_unit[y] != "undefined" && - typeof scheduler.matrix[scheduler._mode].y_unit[y].children != "undefined") { - scheduler._toggleFolderDisplay(scheduler.matrix[scheduler._mode].y_unit[y].key); - } - } - } -}); - -scheduler.attachEvent("onYScaleClick", function (index, value, event){ - if(scheduler._isRender("tree")) { - if(typeof value.children != "undefined") { - scheduler._toggleFolderDisplay(value.key); - } - } -}); - -scheduler.getSection = function(id){ - if(scheduler._isRender("tree")) { - var obj; - var findElement = function(key, array) { - for (var i=0; i<array.length; i++) { - if(array[i].key == key) - obj = array[i]; - if(array[i].children) - findElement(key,array[i].children); - } - }; - findElement(id, scheduler.matrix[scheduler._mode].y_unit_original); - return obj||null; - } -}; - -scheduler.deleteSection = function(id){ - if(scheduler._isRender("tree")) { - var result = false; - var deleteElement = function(key, array) { - for (var i=0; i<array.length; i++) { - if(array[i].key == key) { - array.splice(i,1); - result = true; - } - if(result) - break; - if(array[i].children) - deleteElement(key,array[i].children); - } - }; - deleteElement(id, scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.matrix[scheduler._mode].y_unit = scheduler._getArrayToDisplay(scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.callEvent("onOptionsLoad",[]); - return result; - } -}; - -scheduler.deleteAllSections = function(){ - if(scheduler._isRender("tree")) { - scheduler.matrix[scheduler._mode].y_unit_original = []; - scheduler.matrix[scheduler._mode].y_unit = scheduler._getArrayToDisplay(scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.callEvent("onOptionsLoad",[]); - } -}; - -scheduler.addSection = function(obj, parent_id){ - if(scheduler._isRender("tree")) { - var result = false; - var addElement = function(obj, parent_key, array) { - if(!parent_id) { - array.push(obj); - result = true; - } - else { - for (var i=0; i<array.length; i++) { - if(array[i].key == parent_key && typeof array[i].children != "undefined") { - array[i].children.push(obj); - result = true; - } - if(result) - break; - if(array[i].children) - addElement(obj,parent_key,array[i].children); - } - } - }; - addElement(obj, parent_id, scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.matrix[scheduler._mode].y_unit = scheduler._getArrayToDisplay(scheduler.matrix[scheduler._mode].y_unit_original); - scheduler.callEvent("onOptionsLoad",[]); - return result; - } -}; - - -scheduler.openAllSections = function() { - if(scheduler._isRender("tree")) - scheduler._toggleFolderDisplay(1, true, true); -}; -scheduler.closeAllSections = function() { - if(scheduler._isRender("tree")) - scheduler._toggleFolderDisplay(1, false, true); -}; -scheduler.openSection = function(section_id){ - if(scheduler._isRender("tree")) - scheduler._toggleFolderDisplay(section_id, true); -}; -scheduler.closeSection = function(section_id){ - if(scheduler._isRender("tree")) - scheduler._toggleFolderDisplay(section_id, false); -}; |