Ignore:
Timestamp:
May 15, 2015 5:04:37 PM (10 years ago)
Author:
dungnv
Message:

Rename

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pro-violet-viettel/www/deploy/20150304/assets/js/tree.js

    r875 r926  
    55                        if( o.data == undefined ) o.data = null;
    66                        if( o.rootName == undefined ) o.rootName = 'Thư mục gốc';
    7                        
     7
    88                        if( o.draggable == undefined ) o.draggable = false;
    9                        
     9
    1010                        if( o.expandSpeed == undefined ) o.expandSpeed= 500;
    1111                        if( o.collapseSpeed == undefined ) o.collapseSpeed= 500;
     
    1313                        if( o.collapseEasing == undefined ) o.collapseEasing = null;
    1414                        if( o.manager ==  undefined) o.manager = null;
    15                        
     15
    1616                        var treeNodes = [];
    1717                        var oContainer = this;
     
    1919                        var documentBoundEvent = false;
    2020                        var self = this;
    21                        
     21
    2222                        var createNode = function (node) {
    23                            
     23
    2424                                if( !node ) var node = {};
    2525                                if( node.item == undefined ) node.item = null; //item.id, item.name, item.parentID
     
    2828                                if( node.showContextMenu == undefined ) node.showContextMenu = true; //0: collapsed; 1:expanded;
    2929                                if (node.callback == undefined ) node.callback = null;
    30                                
     30
    3131                                var nodeClass = node.isRoot == true ? 'home':'directory';
    3232                                var hidden = (node.isRoot == true || node.item.parentID == 0 ) ? null:'display:none';
    3333                                var defaulState = (node.isRoot == false && node.defaultStatus == 1 ) ? 'expanded' : 'collapsed';
    34                                
     34
    3535                                var a = $('<a></a>',{id: node.item.id,href: '#',rel: node.item.name,text: node.item.name});
    3636                                var li = $('<li></li>',{'class': nodeClass,rel: 'folder'})
     
    3939                                var ul = null;
    4040                                bindNodeEvents(a);
    41                                
     41
    4242                                treeNodes[node.item.id] = {id:node.item.id, name:node.item.name, parentID:node.item.parentID, html:ul, status:defaulState, isRoot:node.isRoot};
    4343                                if (node.isRoot == true) {
     
    4747                                else {
    4848                                        var preUL = $(oContainer).find('UL.vstree[rel^="node-1"]');
    49                                        
     49
    5050                                        if (preUL != null) {
    5151                                                if (node.item.parentID == 0) {
     
    6363                                                        for (var i = 0; i < $(liArray).length; i++) {
    6464                                                                var id = $(liArray[i]).find('A').attr('id');
    65                                                                
     65
    6666                                                                if (id == node.item.parentID) {
    6767                                                                        var groupUL = $(oContainer).find('UL.vstree[rel^="node' + id + '"]');
     
    7878                                        }
    7979                                }
    80                                
     80
    8181                                if (node.callback != null) node.callback(this);
    8282                                //return (parentNode.length == 1);
    8383                                return true;
    8484                        };
    85                        
     85
    8686                        var bindNodeEvents = function (node) {
    8787                                if (node == null) return false;
    88                                                                
     88
    8989                                //click event
    9090                                $(node).bind("click", function (e){if(e.button == 0)nodeClick(this);return false;});
    9191                        };
    92                        
     92
    9393                        var nodeClick = function (node) {
    9494                                var folderID = $(node).attr('id');
    9595                                selectedNode = highlightNode(node);
    9696                                o.manager.setTreeCurrentNode(folderID);
    97                                
     97
    9898                                if (treeNodes[folderID].isRoot) {
    9999                                        return;
     
    107107                                        treeNodes[folderID].status = 'collapsed';
    108108                                }
    109                                
     109
    110110                                o.manager.refreshStatusBar();
    111111                        };
    112                        
     112
    113113                        var highlightNode = function (node) {
    114114                                $(oContainer).find('.currentDir').removeClass('currentDir');
     
    117117                                return node;
    118118                        }
    119                        
     119
    120120                        var expandNode = function (node) {
    121121                                var li = $(node).parent();
     
    123123                                $(li).removeClass('collapsed').addClass('expanded');
    124124                        };
    125                        
     125
    126126                        var collapseNode = function (node) {
    127127                                var li = $(node).parent();
     
    129129                                $(li).removeClass('expanded').addClass('collapsed');
    130130                        };
    131                        
     131
    132132                        var isCollapsedNode = function (node) {
    133133                                return $(node).parent().hasClass('collapsed');
    134134                        }
    135                        
     135
    136136                        var nodeIsExisted = function (nodeID) {
    137137                                var node = $(oContainer).find('UL.vstree LI.directory > A#' + nodeID);
    138138                                return ($(node).length > 0) ? node : false;
    139139                        }
    140                        
     140
    141141                        var initTree = function () {
    142142                                $(oContainer).attr('unselectable','on')
     
    154154                                        return;
    155155                                }
    156                                
     156
    157157                                o.data.sort(function (a,b) {
    158158                                        return a.parentID - b.parentID;
    159159                                });
    160                                
     160
    161161                                $(oContainer).find ('.vstree').remove();
    162162                                var homeNode = createNode({
     
    164164                                        isRoot: true
    165165                                });
    166                                
     166
    167167                                if (homeNode && o.data.length > 0) {
    168168                                        for (var i = 0; i < o.data.length; i++) {
     
    172172                                o.manager.setTreeCurrentNode(0);
    173173                        };
    174                        
     174
    175175                        /******************
    176176                         * RENAME - START *
     
    186186                                                e.stopPropagation();
    187187                                        });
    188                                
     188
    189189                                $(node).text('');
    190190                                $(node).append(editor);
     
    192192                                $(editor).select();
    193193                        }
    194                        
     194
    195195                        var renameCancel = function (node) {
    196196                                var dirID = $(node).attr('id');
     
    199199                                $(node).focus();
    200200                        }
    201                        
     201
    202202                        var renameComplete = function (node) {
    203203                                var editor = $(node).find('>INPUT');
    204                                 var dirID = $(node).attr('id');
     204                                var id = $(node).attr('id');
     205                                var idx = o.manager.searchItemByID(id, 'directory');
     206                                var dir = o.data[idx];
     207                                var name = dir.name;
    205208                                var newName = $(editor).val();
     209
     210                                var item = {
     211                                                id:id,
     212                                                name:name,
     213                                                type:'directory',
     214                                                parentID: dir.parentID,
     215                                                newName:newName
     216                                                };
     217
     218                                o.manager.rename(item);
     219
    206220                                $(node).attr('rel', newName);
    207221                                $(node).text(newName);
    208222                                $(node).find('>INPUT').remove();
    209                                 treeNodes[dirID].name = newName;
    210                                 updateData(dirID, 'rename');
     223                                /*treeNodes[id].name = newName;
     224                                updateData(id, 'rename');*/
    211225                        }
    212226                        /******************
    213227                         * RENAME - END *
    214228                         ******************/
    215                        
     229
    216230                        /******************
    217231                         * DELTE - START *
     
    238252                                        }
    239253                                }
    240                                
     254
    241255                                o.manager.updateData({item:treeNodes[id], from:'tree', type:'directory', callback:act});
    242256                        }
    243                        
     257
    244258                        this.createNode = function (node) {
    245259                                createNode ({item: node});
     
    248262                                });
    249263                                if (node.parentID != 0) {
    250                                         var parentNode = $(oContainer).find('UL LI > A#' + node.parentID);                             
     264                                        var parentNode = $(oContainer).find('UL LI > A#' + node.parentID);
    251265                                        expandNode(parentNode);
    252266                                }
    253267                        }
    254                        
     268
    255269                        this.activeNode = function (node) {
    256270                                var dirID = $(node).attr('id');
     
    266280                                        var node = nodeIsExisted(o.data[i].id);
    267281                                        var defaulState = isCollapsedNode(node) ? 0:1;
    268                                         if (node == false) 
     282                                        if (node == false)
    269283                                                createNode ({item: o.data[i],defaulState:defaulState});
     284                                        else {
     285                                                var node = $(oContainer).find('UL.vstree LI.directory > A#' + o.data[i].id);
     286                                                $(node).text(o.data[i].name);
     287                                        }
    270288                                }
    271289
    272290                                o.manager.setTreeCurrentNode($(selectedNode).attr('id'));
    273291                        }
    274                        
     292
    275293                        this.getSelectedNode = function () {
    276294                                return selectedNode;
    277295                        }
    278                        
     296
    279297                        this.deletion = function (id) {
    280298                                destroyNode($(oContainer).find('A#'+id));
    281299                        }
    282                        
     300
    283301                        this.findNodebyID = function (id) {
    284                                
    285                         }
    286                        
     302
     303                        }
     304
    287305                        this.setData = function (data) {
    288306                                o.data = data;
    289307                        }
    290                        
     308
    291309                        this.getRoot = function () {
    292310                                return treeNodes[0];
    293311                        }
    294                        
     312
    295313                        this.createCopyNode = function (data) {
    296314                                for(var i in data) {
     
    311329                                return true;
    312330                        }
    313                        
     331
    314332                        this.getRootName = function () {
    315333                                return o.rootName;
    316334                        }
    317                        
     335
    318336                        this.initialize = function () {
    319337                                initTree();
    320338                                return this;
    321339                        };
    322                        
     340
    323341                        return this.initialize();
    324342                }
Note: See TracChangeset for help on using the changeset viewer.