Files
leanote/public/js/jquery.ztree.all-3.5-min.js

3 lines
92 KiB
JavaScript
Raw Normal View History

2015-01-08 00:36:28 +08:00
(function($){var settings={},roots={},caches={},_consts={className:{BUTTON:"button fa",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_setting={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:true,dblClickExpand:true,expandSpeed:"fast",fontCss:{},nameIsHTML:false,selectedMulti:true,showIcon:true,showLine:true,showTitle:true,txtSelectedEnable:false},data:{key:{children:"children",name:"name",title:"",url:"url"},simpleData:{enable:false,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:false,leaf:false}},async:{enable:false,contentType:"application/x-www-form-urlencoded",type:"post",dataType:"text",url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},_initRoot=function(setting){var r=data.getRoot(setting);if(!r){r={};data.setRoot(setting,r)}r[setting.data.key.children]=[];r.expandTriggerFlag=false;r.curSelectedList=[];r.noSelection=true;r.createdNodes=[];r.zId=0;r._ver=(new Date).getTime()},_initCache=function(setting){var c=data.getCache(setting);if(!c){c={};data.setCache(setting,c)}c.nodes=[];c.doms=[]},_bindEvent=function(setting){var o=setting.treeObj,c=consts.event;o.bind(c.NODECREATED,function(event,treeId,node){tools.apply(setting.callback.onNodeCreated,[event,treeId,node])});o.bind(c.CLICK,function(event,srcEvent,treeId,node,clickFlag){tools.apply(setting.callback.onClick,[srcEvent,treeId,node,clickFlag])});o.bind(c.EXPAND,function(event,treeId,node){tools.apply(setting.callback.onExpand,[event,treeId,node])});o.bind(c.COLLAPSE,function(event,treeId,node){tools.apply(setting.callback.onCollapse,[event,treeId,node])});o.bind(c.ASYNC_SUCCESS,function(event,treeId,node,msg){tools.apply(setting.callback.onAsyncSuccess,[event,treeId,node,msg])});o.bind(c.ASYNC_ERROR,function(event,treeId,node,XMLHttpRequest,textStatus,errorThrown){tools.apply(setting.callback.onAsyncError,[event,treeId,node,XMLHttpRequest,textStatus,errorThrown])});o.bind(c.REMOVE,function(event,treeId,treeNode){tools.apply(setting.callback.onRemove,[event,treeId,treeNode])})},_unbindEvent=function(setting){var o=setting.treeObj,c=consts.event;o.unbind(c.NODECREATED).unbind(c.CLICK).unbind(c.EXPAND).unbind(c.COLLAPSE).unbind(c.ASYNC_SUCCESS).unbind(c.ASYNC_ERROR).unbind(c.REMOVE)},_eventProxy=function(event){var target=event.target,setting=data.getSetting(event.data.treeId),tId="",node=null,nodeEventType="",treeEventType="",nodeEventCallback=null,treeEventCallback=null,tmp=null;if(tools.eqs(event.type,"mousedown")){treeEventType="mousedown"}else if(tools.eqs(event.type,"mouseup")){treeEventType="mouseup"}else if(tools.eqs(event.type,"contextmenu")){treeEventType="contextmenu"}else if(tools.eqs(event.type,"click")){if(tools.eqs(target.tagName,"span")&&target.getAttribute("treeNode"+consts.id.SWITCH)!==null){tId=tools.getNodeMainDom(target).id;nodeEventType="switchNode"}else{tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"+consts.id.A}]);if(tmp){tId=tools.getNodeMainDom(tmp).id;nodeEventType="clickNode"}}}else if(tools.eqs(event.type,"dblclick")){treeEventType="dblclick";tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"+consts.id.A}]);if(tmp){tId=tools.getNodeMainDom(tmp).id;nodeEventType="switchNode"}}if(treeEventType.length>0&&tId.length==0){tmp=tools.getMDom(setting,target,[{tagName:"a",attrName:"treeNode"
},removeChildNodes:function(setting,node){if(!node)return;var childKey=setting.data.key.children,nodes=node[childKey];if(!nodes)return;for(var i=0,l=nodes.length;i<l;i++){data.removeNodeCache(setting,nodes[i])}data.removeSelectedNode(setting);delete node[childKey];if(!setting.data.keep.parent){node.isParent=false;node.open=false;var tmp_switchObj=$$(node,consts.id.SWITCH,setting),tmp_icoObj=$$(node,consts.id.ICON,setting);view.replaceSwitchClass(node,tmp_switchObj,consts.folder.DOCU);view.replaceIcoClass(node,tmp_icoObj,consts.folder.DOCU);$$(node,consts.id.UL,setting).remove()}else{$$(node,consts.id.UL,setting).empty()}},setFirstNode:function(setting,parentNode){var childKey=setting.data.key.children,childLength=parentNode[childKey].length;if(childLength>0){parentNode[childKey][0].isFirstNode=true}},setLastNode:function(setting,parentNode){var childKey=setting.data.key.children,childLength=parentNode[childKey].length;if(childLength>0){parentNode[childKey][childLength-1].isLastNode=true}},removeNode:function(setting,node){var root=data.getRoot(setting),childKey=setting.data.key.children,parentNode=node.parentTId?node.getParentNode():root;node.isFirstNode=false;node.isLastNode=false;node.getPreNode=function(){return null};node.getNextNode=function(){return null};if(!data.getNodeCache(setting,node.tId)){return}$$(node,setting).remove();data.removeNodeCache(setting,node);data.removeSelectedNode(setting,node);for(var i=0,l=parentNode[childKey].length;i<l;i++){if(parentNode[childKey][i].tId==node.tId){parentNode[childKey].splice(i,1);break}}view.setFirstNode(setting,parentNode);view.setLastNode(setting,parentNode);var tmp_ulObj,tmp_switchObj,tmp_icoObj,childLength=parentNode[childKey].length;if(!setting.data.keep.parent&&childLength==0){parentNode.isParent=false;parentNode.open=false;tmp_ulObj=$$(parentNode,consts.id.UL,setting);tmp_switchObj=$$(parentNode,consts.id.SWITCH,setting);tmp_icoObj=$$(parentNode,consts.id.ICON,setting);view.replaceSwitchClass(parentNode,tmp_switchObj,consts.folder.DOCU);view.replaceIcoClass(parentNode,tmp_icoObj,consts.folder.DOCU);tmp_ulObj.css("display","none")}else if(setting.view.showLine&&childLength>0){var newLast=parentNode[childKey][childLength-1];tmp_ulObj=$$(newLast,consts.id.UL,setting);tmp_switchObj=$$(newLast,consts.id.SWITCH,setting);tmp_icoObj=$$(newLast,consts.id.ICON,setting);if(parentNode==root){if(parentNode[childKey].length==1){view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.ROOT)}else{var tmp_first_switchObj=$$(parentNode[childKey][0],consts.id.SWITCH,setting);view.replaceSwitchClass(parentNode[childKey][0],tmp_first_switchObj,consts.line.ROOTS);view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.BOTTOM)}}else{view.replaceSwitchClass(newLast,tmp_switchObj,consts.line.BOTTOM)}tmp_ulObj.removeClass(consts.line.LINE)}},replaceIcoClass:function(node,obj,newName){if(!obj||node.isAjaxing)return;var tmpName=obj.attr("class");if(tmpName==undefined)return;var tmpList=tmpName.split("_");switch(newName){case consts.folder.OPEN:case consts.folder.CLOSE:case consts.folder.DOCU:tmpList[tmpList.length-1]=newName;break}obj.attr("class",tmpList.join("_"))},replaceSwitchClass:function(node,obj,newName){if(!obj)return;var tmpName=obj.attr("class");if(tmpName==undefined)return;var tmpList=tmpName.split("_");switch(newName){case consts.line.ROOT:case consts.line.ROOTS:case consts.line.CENTER:case consts.line.BOTTOM:case consts.line.NOLINE:tmpList[0]=view.makeNodeLineClassEx(node)+newName;break;case consts.folder.OPEN:case consts.folder.CLOSE:case consts.folder.DOCU:tmpList[1]=newName;break}obj.attr("class",tmpList.join("_"));if(newName!==consts.folder.DOCU){obj.removeAttr("disabled")}else{obj.attr("disabled","disabled")}},selectNode:function(setting,node,addFlag){if(!addFlag){view.cancelPreSelectedNode(setting)}$$(node,consts.id.A,setting).addClass(consts.node.CURSELECTED);data.addSelectedNode(setting,node)},setNodeFontCss:function(setting,treeNode){var aObj=$$(treeNode,consts.id.A,setting),fontCss=view.makeNodeFontCss(setting,treeNode);if(fontCss){aObj.css(fontCss)}},setNodeLineIc
return proxyResult},_initNode=function(setting,level,n,parentNode,isFirstNode,isLastNode,openFlag){if(!n)return;n.isHover=false;n.editNameFlag=false},_zTreeTools=function(setting,zTreeTools){zTreeTools.cancelEditName=function(newName){var root=data.getRoot(this.setting);if(!root.curEditNode)return;view.cancelCurEditNode(this.setting,newName?newName:null,true)};zTreeTools.copyNode=function(targetNode,node,moveType,isSilent){if(!node)return null;if(targetNode&&!targetNode.isParent&&this.setting.data.keep.leaf&&moveType===consts.move.TYPE_INNER)return null;var _this=this,newNode=tools.clone(node);if(!targetNode){targetNode=null;moveType=consts.move.TYPE_INNER}if(moveType==consts.move.TYPE_INNER){function copyCallback(){view.addNodes(_this.setting,targetNode,[newNode],isSilent)}if(tools.canAsync(this.setting,targetNode)){view.asyncNode(this.setting,targetNode,isSilent,copyCallback)}else{copyCallback()}}else{view.addNodes(this.setting,targetNode.parentNode,[newNode],isSilent);view.moveNode(this.setting,targetNode,newNode,moveType,false,isSilent)}return newNode};zTreeTools.editName=function(node){if(!node||!node.tId||node!==data.getNodeCache(this.setting,node.tId))return;if(node.parentTId)view.expandCollapseParentNode(this.setting,node.getParentNode(),true);view.editNode(this.setting,node)};zTreeTools.moveNode=function(targetNode,node,moveType,isSilent){if(!node)return node;if(targetNode&&!targetNode.isParent&&this.setting.data.keep.leaf&&moveType===consts.move.TYPE_INNER){return null}else if(targetNode&&(node.parentTId==targetNode.tId&&moveType==consts.move.TYPE_INNER||$$(node,this.setting).find("#"+targetNode.tId).length>0)){return null}else if(!targetNode){targetNode=null}var _this=this;function moveCallback(){view.moveNode(_this.setting,targetNode,node,moveType,false,isSilent)}if(tools.canAsync(this.setting,targetNode)&&moveType===consts.move.TYPE_INNER){view.asyncNode(this.setting,targetNode,isSilent,moveCallback)}else{moveCallback()}return node};zTreeTools.setEditable=function(editable){this.setting.edit.enable=editable;return this.refresh()}},_data={setSonNodeLevel:function(setting,parentNode,node){if(!node)return;var childKey=setting.data.key.children;node.level=parentNode?parentNode.level+1:0;if(!node[childKey])return;for(var i=0,l=node[childKey].length;i<l;i++){if(node[childKey][i])data.setSonNodeLevel(setting,node,node[childKey][i])}}},_event={},_handler={onHoverOverNode:function(event,node){var setting=data.getSetting(event.data.treeId),root=data.getRoot(setting);if(root.curHoverNode!=node){_handler.onHoverOutNode(event)}root.curHoverNode=node;view.addHoverDom(setting,node)},onHoverOutNode:function(event,node){var setting=data.getSetting(event.data.treeId),root=data.getRoot(setting);if(root.curHoverNode&&!data.isSelectedNode(setting,root.curHoverNode)){view.removeTreeDom(setting,root.curHoverNode);root.curHoverNode=null}},onMousedownNode:function(eventMouseDown,_node){var i,l,setting=data.getSetting(eventMouseDown.data.treeId),root=data.getRoot(setting),roots=data.getRoots();if(eventMouseDown.button==2||!setting.edit.enable||!setting.edit.drag.isCopy&&!setting.edit.drag.isMove)return true;var target=eventMouseDown.target,_nodes=data.getRoot(setting).curSelectedList,nodes=[];if(!data.isSelectedNode(setting,_node)){nodes=[_node]}else{for(i=0,l=_nodes.length;i<l;i++){if(_nodes[i].editNameFlag&&tools.eqs(target.tagName,"input")&&target.getAttribute("treeNode"+consts.id.INPUT)!==null){return true}nodes.push(_nodes[i]);if(nodes[0].parentTId!==_nodes[i].parentTId){nodes=[_node];break}}}view.editNodeBlur=true;view.cancelCurEditNode(setting);var doc=$(setting.treeObj.get(0).ownerDocument),body=$(setting.treeObj.get(0).ownerDocument.body),curNode,tmpArrow,tmpTarget,isOtherTree=false,targetSetting=setting,sourceSetting=setting,preNode,nextNode,preTmpTargetNodeId=null,preTmpMoveType=null,tmpTargetNodeId=null,moveType=consts.move.TYPE_INNER,mouseDownX=eventMouseDown.clientX,mouseDownY=eventMouseDown.clientY,startTime=(new Date).getTime();if(tools.uCanDo(setting)){doc.bind("mousemove",_docMouseMove)}function _docMouseMove(event