Changeset 70 for pro-bachkim-filespace/sourcecode/assets/js/grid.js
- Timestamp:
- Sep 9, 2014 4:14:10 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pro-bachkim-filespace/sourcecode/assets/js/grid.js
r66 r70 8 8 9 9 var oContainer = this; 10 var documentBoundEvent = false; 11 var posTopArray = []; 12 var posLeftArray = []; 13 var self = this; 10 14 11 15 var createNode = function (node) { … … 21 25 var inputID = $('<input />',{'class':'id', type:'hidden',value:node.item.id}); 22 26 var inputName = $('<input />',{'class':'name',type:'hidden',value:node.item.name}); 23 var inputType = $('<input />',{'class':'type',type:'hidden',value:type}); 27 var inputParent = $('<input />',{'class':'parentID',type:'hidden',value:node.item.parentID}); 28 var inputType = $('<input />',{'class':'type',type:'hidden',value:type}); 24 29 25 30 var a = $('<a></a>',{id: node.item.id,href: '#',rel: node.item.name,text: node.item.name}); 26 var divLink = $('<div></div>',{'class':'file-name'}).append(a,inputID,inputName,input Type);27 var li = $('<li></li>',{'class':'vscell' }).append(div, divLink);31 var divLink = $('<div></div>',{'class':'file-name'}).append(a,inputID,inputName,inputParent,inputType); 32 var li = $('<li></li>',{'class':'vscell',id:type+node.item.id}).append(div, divLink); 28 33 29 34 bindNodeEvents(li); … … 33 38 34 39 var bindNodeEvents = function (node) { 35 $(node).bind("click", function (e){ 36 if(e.button == 0)nodeClick(this,e);return false;}); 40 var disabledItemsList = null; 41 var menuName = ''; 42 43 var type = $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="type"]').val(); 44 45 $(node) 46 .bind("click", function (e){nodeClick(this,e);return false;}) 47 .bind("dblclick", function (e){nodeDblClick(this,e);return false;}) 37 48 } 38 49 … … 45 56 } 46 57 else if (event.shiftKey) { 47 var firstItem = $(oContainer).find(' > UL > LI > DIV[class^="icon-"][class$="selected"]:first-child').parent();48 var aryNode = $(oContainer).find('> UL > LI > DIV[class^="icon-"]').parent();58 var firstItem = $(oContainer).find('LI.selected'); 59 var aryNode = $(oContainer).find('> UL > LI'); 49 60 var start = aryNode.index(firstItem); 50 61 var finish = aryNode.index(node); … … 58 69 59 70 var nodeDblClick = function (node) { 60 71 var nodeObj = {id:$(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="id"]').val(), 72 name: $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="name"]').val(), 73 parentID: $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="parentID"]').val(), 74 minetype: $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="type"]').val()}; 75 76 o.manager.gridNodeDblClick(nodeObj); 61 77 } 62 78 63 79 var hightlightNode = function (node) { 64 $(node). find('> DIV').addClass('selected');80 $(node).addClass('selected'); 65 81 } 66 82 67 83 var isHightLight = function (node) { 68 return $(node). find('> DIV').hasClass('selected');84 return $(node).hasClass('selected'); 69 85 } 70 86 71 87 var clearAllHightLightNode = function () { 72 $(oContainer).find('> UL > LI > DIV').removeClass('selected');88 $(oContainer).find('> UL > LI').removeClass('selected'); 73 89 } 74 90 75 91 var clearHightLightNode = function (node) { 76 $(node).find('> DIV').removeClass('selected'); 92 $(node).removeClass('selected'); 93 } 94 95 var hightLightAllNode = function () { 96 clearAllHightLightNode(); 97 $(oContainer).find('> UL > LI').addClass('selected'); 98 } 99 100 var getAllHightLightNode = function () { 101 return $(oContainer).find('> UL > LI.selected'); 77 102 } 78 103 79 104 var initGrid = function () { 105 $(oContainer).attr('unselectable','on') 106 .css({'-moz-user-select':'-moz-none', 107 '-moz-user-select':'none', 108 '-o-user-select':'none', 109 '-khtml-user-select':'none', 110 '-webkit-user-select':'none', 111 '-ms-user-select':'none', 112 'user-select':'none' 113 }).bind('selectstart', function(){ return false; 114 }).bind('click', function(e){clearAllHightLightNode(); return false; }); 115 80 116 var ul = $('<ul></ul>',{'class':'vsgrid'}); 117 81 118 var parentDirID = o.manager.getTreeCurrentNode(); 82 119 if (o.data.DIRECTORIES.length > 0) { … … 100 137 $(oContainer).find ('UL').remove(); 101 138 $(oContainer).append(ul); 102 103 $(oContainer).attr('unselectable','on') 104 .css({'-moz-user-select':'-moz-none', 105 '-moz-user-select':'none', 106 '-o-user-select':'none', 107 '-khtml-user-select':'none', 108 '-webkit-user-select':'none', 109 '-ms-user-select':'none', 110 'user-select':'none' 111 }).bind('selectstart', function(){ return false; 112 }).bind('click', function(){ clearAllHightLightNode(); return false; }); 113 } 139 } 140 141 var destroyNode = function (node) { 142 var nodeID = $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="id"]').val(); 143 var nodeType = $(node).find('> DIV[class^="file-name"] > INPUT[type="hidden"][class^="type"]').val(); 144 $(node).remove(); 145 } 146 147 /****************** 148 * RENAME - START * 149 ******************/ 150 var renameInit = function (node) { 151 var editor = $('<input />',{'class':'rename', type: 'text', value:$(node).text()}); 152 $(editor).bind('focusout', function(e){renameCancel(node)}); 153 $(editor).bind('keydown', function(e){ 154 var keycode = (e.keyCode ? e.keyCode : e.which); 155 if (keycode == '27') { 156 renameCancel(node); 157 }else if(keycode == '13') renameComplete(node); 158 e.stopPropagation(); 159 }); 160 161 $(node).text(''); 162 $(node).append(editor); 163 $(editor).focus(); 164 $(editor).select(); 165 } 166 167 var renameCancel = function (node) { 168 var nodeID = $(node).parent().find('> INPUT[type="hidden"][class^="id"]').val(); 169 var nodeType = $(node).parent().find('> INPUT[type="hidden"][class^="type"]').val(); 170 var nodeName = $(node).parent().find('> INPUT[type="hidden"][class^="name"]').val(); 171 var nodeParent = $(node).parent().find('> INPUT[type="hidden"][class^="parentID"]').val(); 172 var itemIndex = o.manager.searchItemByID(nodeID, nodeType == 'directory' ? nodeType:'file'); 173 174 $(node).find('>INPUT').remove(); 175 $(node).text(nodeName); 176 $(node).select(); 177 } 178 179 var renameComplete = function (node) { 180 var editor = $(node).find('>INPUT'); 181 var dirID = $(node).attr('id'); 182 var newName = $(editor).val(); 183 $(node).attr('rel', newName); 184 $(node).text(newName); 185 $(node).find('>INPUT').remove(); 186 187 /*treeNodes[dirID].name = newName; 188 updateData(dirID, 'rename');*/ 189 } 190 /****************** 191 * RENAME - END * 192 ******************/ 114 193 115 194 this.reloadGrid = function (nodeID) { … … 122 201 123 202 this.rename = function (item) { 124 console.log('rename'); 125 console.log(item); 126 } 127 128 this.deletion = function (id) { 129 203 /*console.log('rename'); 204 console.log(item);*/ 205 } 206 207 this.createNode = function (node) { 208 var node = createNode ({item: node}); 209 $(oContainer).find ('UL').append(node); 210 } 211 212 this.deletion = function (id, type) { 213 destroyNode($(oContainer).find('LI#'+type+id)); 214 } 215 216 this.rename = function (key) { 217 var hightlightedNodes = self.getHightLightItem(); 218 if ($(hightlightedNodes).length == 0 || $(hightlightedNodes).length > 1) return false; 219 220 var nodeID = $(hightlightedNodes).get(0).id; 221 var nodeType = $(hightlightedNodes).get(0).type; 222 223 var selectedNode = $(oContainer).find('LI#' + nodeType + nodeID + '.vscell > DIV.file-name > A#' + nodeID); 224 if (key == 113) { 225 renameInit(selectedNode); 226 } 227 else if (key == 27) { 228 renameCancel(selectedNode); 229 } 230 231 return true; 232 } 233 234 this.getHightLightItem = function () { 235 var nodeSelected = $(oContainer).find('LI.vscell.selected'); 236 var items = []; 237 238 if ($(nodeSelected).length > 0) { 239 $(nodeSelected).each (function(i,o) { 240 var item = { 241 id: $(this).find('> DIV.file-name > INPUT[type="hidden"][class^="id"]').val(), 242 name: $(this).find('> DIV.file-name > INPUT[type="hidden"][class^="name"]').val(), 243 parentID: $(this).find('> DIV.file-name > INPUT[type="hidden"][class^="parentID"]').val(), 244 type: $(this).find('> DIV.file-name > INPUT[type="hidden"][class^="type"]').val() 245 }; 246 items.push(item); 247 }); 248 } 249 250 return items; 251 } 252 253 this.selectAllNode = function () { 254 hightLightAllNode(); 130 255 } 131 256
Note: See TracChangeset
for help on using the changeset viewer.