/* * JQuery zTree excheck 3.4 * http://zTree.me/ * * Copyright (c) 2010 Hunter.z * * Licensed same as jquery - MIT License * http://www.opensource.org/licenses/mit-license.php * * email: hunter.z@263.net * Date: 2012-09-03 */ (function(m){var p,q,r,n={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:n.checkbox.STYLE,nocheckInherit:!1,radioType:n.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c,a){if(a.chkDisabled=== !0)return!1;var b=f.getSetting(c.data.treeId),d=b.data.key.checked;if(k.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;a[d]=!a[d];e.checkNodeRelation(b,a);d=m("#"+a.tId+j.id.CHECK);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(j.event.CHECK,[b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=m("#"+a.tId+j.id.CHECK);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c,a){if(a.chkDisabled===!0)return!1; var b=f.getSetting(c.data.treeId),d=m("#"+a.tId+j.id.CHECK);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,n);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,g,l=c.data.key.children,h=c.data.key.checked;b=j.radio;if(c.check.chkStyle==b.STYLE){var i=f.getRadioCheckedList(c);if(a[h])if(c.check.radioType==b.TYPE_ALL){for(d=i.length-1;d>=0;d--)b=i[d],b[h]=!1,i.splice(d,1),e.setChkClass(c,m("#"+b.tId+j.id.CHECK),b),b.parentTId!=a.parentTId&& e.repairParentChkClassWithSelf(c,b);i.push(a)}else{i=a.parentTId?a.getParentNode():f.getRoot(c);for(d=0,g=i[l].length;d-1)&&e.setSonNodeCheckBox(c,a,!0),!a[h]&&(!a[l]||a[l].length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1), a[h]&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!a[h]&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=c.data.key.checked,d=j.checkbox,g=j.radio,e="",e=a.chkDisabled===!0?d.DISABLED:a.halfCheck?d.PART:c.check.chkStyle==g.STYLE?a.check_Child_State<1?d.FULL:d.PART:a[b]?a.check_Child_State===2||a.check_Child_State===-1?d.FULL:d.PART:a.check_Child_State<1?d.FULL:d.PART,b=c.check.chkStyle+"_"+(a[b]?d.TRUE:d.FALSE)+"_"+ e,b=a.check_Focus&&a.chkDisabled!==!0?b+"_"+d.FOCUS:b;return"button "+d.DEFAULT+" "+b},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===j.checkbox.STYLE)for(var b=c.data.key.checked,d=c.data.key.children,g=f.getRoot(c),l=0,h=g[d].length;l0?e.repairParentChkClass(c,a[b][0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b){if(a){var d=c.data.key.children;if(a.chkDisabled!=b)a.chkDisabled=b,a.nocheck!==!0&&e.repairChkClass(c,a);if(a[d])for(var g=0,l=a[d].length;g0){h=!1;break}h&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var g=c.data.key.children,l=c.data.key.checked,h=m("#"+a.tId+j.id.CHECK);d||(d=a);var i=!1;if(a[g])for(var o=0,k=a[g].length;o0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,h,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&c.treeObj.trigger(j.event.CHECK,[c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=f.getRoot(c).radioCheckedList,b=0,d=a.length;b-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var g=c.data.key.children,e=c.data.key.checked,h=b&&c.check.chkStyle==j.radio.STYLE&&c.check.radioType==j.radio.TYPE_ALL,d=!d?[]:d,i=0,o=a.length;i0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var d=c.data.key.children,g=c.data.key.checked,b=!b?[]:b,e=0,h=a.length;e0?2:0,k==2){g=2;break}else k==0&&(g=0);else if(c.check.chkStyle==j.checkbox.STYLE){k=f.nocheck===!0?f.check_Child_State:f.halfCheck===!0?1:f.nocheck!==!0&&f[d]?f.check_Child_State===-1||f.check_Child_State===2?2:1:f.check_Child_State>0?1:0;if(k===1){g=1;break}else if(k===2&&e&&k!==g){g=1;break}else if(g===2&&k>-1&&k<2){g=1;break}else k>-1&&(g=k);e||(e=f.nocheck!==!0)}}a.check_Child_State=g}}}});var n=m.fn.zTree,k=n._z.tools, j=n.consts,e=n._z.view,f=n._z.data;f.exSetting(v);f.addInitBind(function(c){c.treeObj.bind(j.event.CHECK,function(a,b,d){k.apply(c.callback.onCheck,[a,b,d])})});f.addInitUnBind(function(c){c.treeObj.unbind(j.event.CHECK)});f.addInitCache(function(){});f.addInitNode(function(c,a,b,d){if(b){a=c.data.key.checked;typeof b[a]=="string"&&(b[a]=k.eqs(b[a],"true"));b[a]=!!b[a];b.checkedOld=b[a];if(typeof b.nocheck=="string")b.nocheck=k.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&& d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=k.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=k.eqs(b.halfCheck,"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return f.getCheckStatus(c,b)}}});f.addInitProxy(function(c){var a=c.target,b=f.getSetting(c.data.treeId),d="",e=null,l="",h=null;if(k.eqs(c.type,"mouseover")){if(b.check.enable&&k.eqs(a.tagName,"span")&& a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,l="mouseoverCheck"}else if(k.eqs(c.type,"mouseout")){if(b.check.enable&&k.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,l="mouseoutCheck"}else if(k.eqs(c.type,"click")&&b.check.enable&&k.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,l="checkNode";if(d.length>0)switch(e=f.getNodeCache(b,d),l){case "checkNode":h=p;break;case "mouseoverCheck":h=q;break;case "mouseoutCheck":h= r}return{stop:!1,node:e,nodeEventType:l,nodeEventCallback:h,treeEventType:"",treeEventCallback:null}});f.addInitRoot(function(c){f.getRoot(c).radioCheckedList=[]});f.addBeforeA(function(c,a,b){var d=c.data.key.checked;c.check.enable&&(f.makeChkFlag(c,a),c.check.chkStyle==j.radio.STYLE&&c.check.radioType==j.radio.TYPE_ALL&&a[d]&&f.getRoot(c).radioCheckedList.push(a),b.push(""))});f.addZTreeTools(function(c,a){a.checkNode=function(a,b,f,h){var i=this.setting.data.key.checked;if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!a[i]),h=!!h,(a[i]!==b||f)&&!(h&&k.apply(this.setting.callback.beforeCheck,[this.setting.treeId,a],!0)==!1)&&k.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))a[i]=b,b=m("#"+a.tId+j.id.CHECK),(f||this.setting.check.chkStyle===j.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting, a),h&&c.treeObj.trigger(j.event.CHECK,[c.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var b=this.setting.data.key.children;return f.getTreeCheckedNodes(this.setting,f.getRoot(c)[b],a!==!1)};a.getChangeCheckedNodes=function(){var a=this.setting.data.key.children;return f.getTreeChangeCheckedNodes(this.setting,f.getRoot(c)[a])};a.setChkDisabled=function(a,b){b=!!b;e.repairSonChkDisabled(this.setting,a,b);b||e.repairParentChkDisabled(this.setting, a,b)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&m("#"+c.tId).get(0)&&k.uCanDo(this.setting)){var l=m("#"+c.tId+j.id.CHECK);(f==!0||this.setting.check.chkStyle===j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,l,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode= function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))};var u=e.appendNodes;e.appendNodes=function(c,a,b,d,g,j){var h="";u&&(h=u.apply(e,arguments));d&&f.makeChkFlag(c,d);return h}})(jQuery);