Wtf.TodoList=function(A){Wtf.apply(this,A);this.nodeHash={};this.url=A.url;if(!this.url){this.url=Wtf.req.prj+"todolistmanager.jsp"}this.groupForm=null;this.taskform=null;this.newTaskWindow=null;this.priorityCombo=null;this.assignedCombo=null;this.taskNameField=null;this.tbar=[{iconCls:"addnewgroup",text:"Add new Task Group",tooltip:"Add new Task Group",handler:this.addTaskGroup,scope:this},{iconCls:"addnew",tooltip:"Add new Task",text:"Add new Task",handler:this.addTask,scope:this},{iconCls:"deleteselected",tooltip:"Delete selected",text:"Delete selected",handler:this.deleteSelected,scope:this}];this.listRoot=new Wtf.tree.TreeNode({draggable:false,id:"root_todo"+A.id});this.setRootNode(this.listRoot);if(A.groupType==Wtf.etype.proj){this.memberstore=new Wtf.data.Store({method:"GET",id:"tempstore",url:"jspfiles/project/getProjectMembers.jsp?login="+A.userid+"&pageno=0&pageSize=10000",reader:new Wtf.data.JsonReader({root:"data",fields:[{name:"name",type:"string"},{name:"id",type:"string"}]})});this.memberstore.load()}this.reader=new Wtf.data.JsonReader({root:"data",fields:[{name:"description"},{name:"taskid"},{name:"parentId"},{name:"status"},{name:"taskorder"},{name:"assignedto"},{name:"leafflag"}]});this.ds1=new Wtf.data.Store({url:this.url,baseParams:{action:1,userid:A.userid,grouptype:A.groupType},reader:this.reader});this.selModel=new Wtf.tree.MultiSelectionModel({id:"test"+this.id}),this.ds1.on("load",this.dataRefresh,this);this.ds1.load();Wtf.TodoList.superclass.constructor.call(this);this.on("movenode",this.nodeMoved,this);this.on("beforemovenode",this.beforeNodeMove,this);this.on("contextmenu",this.contextMenu,this);this.getSelectionModel().on("selectionchange",this.selectionChange,this)};Wtf.extend(Wtf.TodoList,Wtf.tree.TreePanel,{dataRefresh:function(D,F,I){for(var H=0;H<F.length;H++){var O=F[H].get("description");var J=F[H].get("taskid");var A=parseInt(F[H].get("status"));var K=parseInt(F[H].get("taskorder"));var L=F[H].get("parentId");var C=F[H].get("assignedto");var N=Boolean(F[H].get("leafflag"));var G=false;L=this.getNodeById(L);var E="todoNode";if(!L){L=this.listRoot}if(!N){E="groupNode"}if(A==1){G=true}else{G=false}var M=new Wtf.tree.TreeNode({id:J,checked:G,text:O,iconCls:E,leaf:N,nodestate:A,Torder:K,assignedTo:C});L.insertBefore(M,L.item(K));L.expand();if(A==1){M.ui.getTextEl().style.textDecoration="line-through"}M.on("checkchange",this.nodeCheckChange,this);M.on("dblclick",this.editNode,this)}var B=this.getChecked()},contextMenu:function(A,B){A.select();menu=new Wtf.menu.Menu({id:"todotreeMenu",items:[{text:"Edit",id:"name",iconCls:"pwnd renameicon",scope:this,handler:this.editNodeOncontextMenu},new Wtf.Action({text:"Delete",iconCls:"pwnd delicon",scope:this,handler:this.deleteSelected})]});menu.showAt(B.getXY())},editNodeOncontextMenu:function(){if(this.getSelectionModel().getSelectedNodes()[0].isLeaf()){this.editnode(this.getSelectionModel().getSelectedNodes()[0])}else{this.editGroup(this.getSelectionModel().getSelectedNodes()[0])}},beforeNodeMove:function(A,E,C,D,B){if(!E.isLeaf()&&D!=this.listRoot){return false}},deleteSelected:function(){var B=this.getSelectionModel().getSelectedNodes();for(var C=0;C<B.length;C++){tempnode=B[C];this.updatedb(4,tempnode);tempnode.remove()}B=this.getSelectionModel().getSelectedNodes();var A=B.length;for(var C=0;C<A;C++){tempnode=B.shift();this.updatedb(4,tempnode);tempnode.remove()}this.getTopToolbar().items.items[2].disable()},editNode:function(B,A){if(B.isLeaf()){this.editnode(B)}else{this.editGroup(B)}},editGroup:function(A){this.makeForm(1);this.taskNameField.setValue(A.text);this.newTaskWindow=new Wtf.Window({width:300,resizable:false,modal:true,title:"Edit Task Group",buttons:[{anchor:"90%",id:"save",text:"Submit",handler:this.editsinglegroup,scope:this}],items:[this.groupForm]}).show()},editnode:function(C){this.makeForm(0);var B=C.text;var A=C.attributes.assignedTo;this.taskNameField.setValue(B.split(" : ")[1]);if(this.assignedCombo){this.assignedCombo.setValue(A)}this.newTaskWindow=new Wtf.Window({width:300,resizable:false,modal:true,title:"Edit Task",buttons:[{anchor:"90%",id:"save",text:"Submit",handler:this.editsinglenode,scope:this}],items:[this.taskform]}).show()},editsinglegroup:function(){var A=this.getSelectionModel().getSelectedNodes()[0];A.setText(this.taskNameField.getValue());this.updatedb(2,A)},editsinglenode:function(){var C=this.taskNameField.getValue();var B="me";if(this.assignedCombo){var A=this.assignedCombo.getValue();if(A!=loginid){B=this.memberstore.getAt(this.memberstore.find("id",A)).data["name"]}}var D=this.getSelectionModel().getSelectedNodes()[0];D.setText(B+" : "+C);D.attributes.assignedTo=A;this.updatedb(2,D)},makeForm:function(A){this.taskNameField=new Wtf.form.TextField({fieldLabel:"Task*",anchor:"99%",allowBlank:false});if(A==0){this.taskform=new Wtf.FormPanel({labelWidth:100,labelAlign:"left",border:false,bodyStyle:"padding:5px 5px 0",layout:"form",anchor:"100%",defaultType:"textfield",buttonAlign:"right",items:[this.taskNameField]});if(this.groupType==Wtf.etype.proj){this.assignedCombo=new Wtf.form.ComboBox({fieldLabel:"Assigned to*",store:this.memberstore,anchor:"99%",displayField:"name",valueField:"id",mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,allowBlank:false});this.taskform.add(this.assignedCombo)}}else{this.taskNameField.fieldLabel="Group Name";this.groupForm=new Wtf.FormPanel({labelWidth:100,labelAlign:"left",border:false,bodyStyle:"padding:5px 5px 0",layout:"form",anchor:"100%",defaultType:"textfield",buttonAlign:"right",items:[this.taskNameField]})}},createNode:function(){var D=this.taskNameField.getValue();if(D!=""){var C="me";if(this.assignedCombo){var B=this.assignedCombo.getValue();if(B!=loginid){C=this.memberstore.getAt(this.memberstore.find("id",this.assignedCombo.getValue())).data["name"]}}var E=new Wtf.tree.TreeNode({checked:false,text:C+" : "+D,iconCls:"todoNode",leaf:true,nodestate:0,Torder:0,assignedTo:B});this.taskNameField.reset();this.taskNameField.focus();this.listRoot.appendChild(E);var A=this.listRoot.indexOf(E);E.on("checkchange",this.nodeCheckChange,this);this.updatedb(3,E)}},createGroup:function(){var B=this.taskNameField.getValue();if(B!=""){var C=new Wtf.tree.TreeNode({checked:false,text:B,iconCls:"groupNode",leaf:false,nodestate:0,Torder:0});this.taskNameField.reset();this.taskNameField.focus();this.listRoot.appendChild(C);var A=this.listRoot.indexOf(C);C.on("checkchange",this.nodeCheckChange,this);C.on("beforeinsert",this.groupbinsert,this);C.on("beforeappend",this.groupbinsert,this);this.updatedb(3,C)}},groupbinsert:function(A,D,C,B){if(!C.isLeaf()){return false}},addTask:function(){this.makeForm(0);this.newTaskWindow=new Wtf.Window({width:300,resizable:false,modal:true,title:"Add New Task",keys:{key:[10,13],fn:this.createNode,scope:this},buttons:[{anchor:"90%",id:"save",text:"Add",handler:this.createNode,scope:this}],items:[this.taskform]}).show()},addTaskGroup:function(){this.makeForm(1);this.newTaskWindow=new Wtf.Window({width:300,resizable:false,modal:true,title:"Add New Task Group",keys:{key:[10,13],fn:this.createGroup,scope:this},buttons:[{anchor:"90%",id:"save",text:"Add",handler:this.createGroup,scope:this}],items:[this.groupForm]}).show();this.taskNameField.reset()},nodeCheckChange:function(C,B){if(B){C.ui.getTextEl().style.textDecoration="line-through";C.attributes.nodestate=1;if(!C.isLeaf()){this.updatedb(2,C)}else{this.updatedb(2,C)}C.eachChild(function(D){D.ui.getTextEl().style.textDecoration="line-through";D.attributes.nodestate=1;D.ui.toggleCheck(true);this.updatedb(2,D)},this)}if(!B){C.ui.getTextEl().style.textDecoration="none";C.attributes.nodestate=0;if(!C.isLeaf()){this.updatedb(2,C)}else{this.updatedb(2,C)}C.eachChild(function(D){D.ui.getTextEl().style.textDecoration="none";D.attributes.nodestate=0;D.ui.toggleCheck(false);this.updatedb(2,D)},this)}var A=this.getChecked();if(A.length<=0){if(this.getSelectionModel().getSelectedNodes().length<=0){this.getTopToolbar().items.items[2].disable()}}else{this.getTopToolbar().items.items[2].enable()}},selectionChange:function(A,B){if(B.length<=0){this.getTopToolbar().items.items[2].disable()}else{this.getTopToolbar().items.items[2].enable()}},nodeMoved:function(A,E,C,D,B){D.eachChild(function(F){this.updatedb(2,F)},this)},updatedb:function(actiontype,node){var tid=node.id;var parentid=node.parentNode.id;if(parentid==this.listRoot.id){parentid=""}var torder=node.parentNode.indexOf(node);var description=node.text;Wtf.Ajax.request({method:"POST",url:this.url,params:({description:description,localid:tid,taskorder:torder,status:node.attributes.nodestate,parentId:parentid,taskid:tid,userid:this.userid,grouptype:this.groupType,assignedto:node.attributes.assignedTo,leafflag:node.isLeaf(),action:actiontype}),scope:this,success:function(result,req){var data=eval("("+result.responseText+")");switch(req.params.action){case 3:var tnode=this.getNodeById(data.localid);tnode.id=data.remoteid;break}},failure:function(result,req){}})}})