GO.tasks.TasksObservable=function(){GO.tasks.TasksObservable.superclass.constructor.call(this);this.addEvents({save:true})};Ext.extend(GO.tasks.TasksObservable,Ext.util.Observable);GO.tasks.tasksObservable=new GO.tasks.TasksObservable();GO.tasks.SelectTaskStatus=Ext.extend(GO.form.ComboBox,{name:"status_text",hiddenName:"status",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true,fieldLabel:GO.lang.strStatus,mode:"local",value:"ACCEPTED",valueField:"value",displayField:"text",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["NEEDS-ACTION",GO.tasks.lang.needsAction],["ACCEPTED",GO.tasks.lang.accepted],["DECLINED",GO.tasks.lang.declined],["TENTATIVE",GO.tasks.lang.tentative],["DELEGATED",GO.tasks.lang.delegated],["COMPLETED",GO.tasks.lang.completed],["IN-PROCESS",GO.tasks.lang.inProcess]]})});GO.tasks.ContinueTaskDialog=function(b){if(!b){b={}}this.buildForm();var a=function(){this.formPanel.items.items[0].focus()};b.layout="fit";b.modal=false;b.width=500;b.autoHeight=true;b.closeAction="hide";b.title=GO.tasks.lang.continueTask;b.items=this.formPanel;b.focus=a.createDelegate(this);b.buttons=[{text:GO.lang.cmdOk,handler:function(){this.submitForm()},scope:this},{text:GO.lang.cmdCancel,handler:function(){this.hide()},scope:this}];GO.tasks.ContinueTaskDialog.superclass.constructor.call(this,b);this.addEvents({save:true})};Ext.extend(GO.tasks.ContinueTaskDialog,Ext.Window,{show:function(a){this.task_id=a.id;if(!this.rendered){this.render(Ext.getBody())}delete a.description;this.formPanel.form.reset();this.formPanel.form.setValues(a);this.selectTaskList.setValue(a.tasklist_id);this.selectTaskList.setRemoteText(a.tasklist_name);GO.tasks.ContinueTaskDialog.superclass.show.call(this)},submitForm:function(){this.formPanel.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"continue_task",task_id:this.task_id},waitMsg:GO.lang.waitMsgSave,success:function(a,b){this.fireEvent("save",this);this.hide()},failure:function(a,b){if(b.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,b.result.feedback)}},scope:this})},buildForm:function(){var c=new Date();var a=c.add(Date.DAY,1);var b=Date.parseDate(a.format("Y-m-d")+" 08:00","Y-m-d G:i");var d=new Ext.DatePicker({xtype:"datepicker",name:"remind_date",format:GO.settings.date_format,fieldLabel:GO.tasks.lang.dueDate});d.setValue(a);d.on("select",function(e,f){this.formPanel.baseParams.date=f.format(GO.settings.date_format)},this);this.formPanel=new Ext.form.FormPanel({url:GO.settings.modules.tasks.url+"action.php",border:false,baseParams:{task:"note",date:a.format(GO.settings.date_format)},cls:"go-form-panel",waitMsgTarget:true,autoHeight:true,items:[{items:d,width:220,style:"margin:auto;"},new GO.form.HtmlComponent({html:"<br />"}),{xtype:"timefield",name:"remind_time",format:GO.settings.time_format,value:b.format(GO.settings.time_format),fieldLabel:GO.lang.strTime,anchor:"100%"},new GO.tasks.SelectTaskStatus(),{xtype:"textarea",name:"description",anchor:"100%",height:100,fieldLabel:GO.lang.strDescription},this.selectTaskList=new GO.tasks.SelectTasklist({fieldLabel:GO.tasks.lang.tasklist,anchor:"100%"})]})}});GO.tasks.TaskPanel=Ext.extend(GO.DisplayPanel,{link_type:12,loadParams:{task:"task_with_items"},idParam:"task_id",loadUrl:GO.settings.modules.tasks.url+"json.php",stateId:"ta-task-panel",editGoDialogId:"task",editHandler:function(){GO.tasks.showTaskDialog({task_id:this.link_id})},initComponent:function(){this.template='<table class="display-panel" cellpadding="0" cellspacing="0" border="0"><tr><td colspan="2" class="display-panel-heading">{name}</td></tr><tr><td>ID:</td><td>{id}</td></tr><tr><td>'+GO.tasks.lang.tasklist+":</td><td>{tasklist_name}</td></tr><tr><td>"+GO.tasks.lang.startsAt+":</td><td>{start_date}</td></tr><tr><td>"+GO.tasks.lang.dueAt+":</td><td>{due_date}</td></tr><tr><td>"+GO.lang.createdBy+":</td><td>{user_name}</td></tr><tr><td>"+GO.lang.strStatus+':</td><td>{status_text}</td></tr><tpl if="!GO.util.empty(description)"><tr><td colspan="2" class="display-panel-heading">'+GO.lang.strDescription+'</td></tr><tr><td colspan="2">{description}</td></tr></tpl></table>';if(GO.customfields){this.template+=GO.customfields.displayPanelTemplate}if(GO.tasks){this.template+=GO.tasks.TaskTemplate}if(GO.calendar){this.template+=GO.calendar.EventTemplate}this.template+=GO.linksTemplate;if(GO.files){Ext.apply(this.templateConfig,GO.files.filesTemplateConfig);this.template+=GO.files.filesTemplate}Ext.apply(this.templateConfig,GO.linksTemplateConfig);if(GO.comments){this.template+=GO.comments.displayPanelTemplate}this.buttons=[this.continueTaskButton=new Ext.Button({text:GO.tasks.lang.continueTask,handler:function(){if(!this.continueTaskDialog){this.continueTaskDialog=new GO.tasks.ContinueTaskDialog({listeners:{save:function(){this.reload();var a=GO.mainLayout.getModulePanel("tasks");if(a&&a.rendered){a.gridPanel.store.reload()}},scope:this}})}this.continueTaskDialog.show(this.data)},scope:this,disabled:true})];GO.tasks.TaskPanel.superclass.initComponent.call(this)},setData:function(a){GO.tasks.TaskPanel.superclass.setData.call(this,a);this.continueTaskButton.setDisabled(!a.write_permission)},reset:function(){GO.tasks.TaskPanel.superclass.reset.call(this);this.continueTaskButton.setDisabled(true)}});GO.tasks.ScheduleCallDialog=function(b){if(!b){b={}}this.buildForm();var a=function(){this.formPanel.items.items[0].focus()};b.layout="fit";b.modal=false;b.width=500;b.autoHeight=true;b.closeAction="hide";b.title=GO.tasks.lang.scheduleCall;b.items=this.formPanel;b.focus=a.createDelegate(this);b.buttons=[{text:GO.lang.cmdOk,handler:function(){this.submitForm()},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];GO.tasks.ScheduleCallDialog.superclass.constructor.call(this,b);this.addEvents({save:true})};Ext.extend(GO.tasks.ScheduleCallDialog,Ext.Window,{link_config:{},show:function(a){this.linkConfig=a;if(!this.rendered){this.render(Ext.getBody())}this.formPanel.form.reset();this.selectTaskList.setValue(GO.tasks.defaultTasklist.id);this.selectTaskList.setRemoteText(GO.tasks.defaultTasklist.name);GO.tasks.ScheduleCallDialog.superclass.show.call(this)},submitForm:function(){this.formPanel.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"schedule_call",links:Ext.encode(this.linkConfig.links),name:GO.tasks.lang.call+": "+this.linkConfig.name},waitMsg:GO.lang.waitMsgSave,success:function(a,b){if(this.linkConfig.callback){this.linkConfig.callback.call(this.linkConfig.scope)}this.fireEvent("save",this);this.hide()},failure:function(a,b){if(b.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,b.result.feedback)}},scope:this})},buildForm:function(){var c=new Date();var a=c.add(Date.DAY,1);var b=Date.parseDate(a.format("Y-m-d")+" 08:00","Y-m-d G:i");var d=new Ext.DatePicker({xtype:"datepicker",name:"remind_date",format:GO.settings.date_format,fieldLabel:GO.lang.strDate});d.setValue(a);d.on("select",function(e,f){this.formPanel.baseParams.date=f.format(GO.settings.date_format)},this);this.formPanel=new Ext.form.FormPanel({url:GO.settings.modules.tasks.url+"action.php",border:false,baseParams:{task:"note",date:a.format(GO.settings.date_format)},cls:"go-form-panel",waitMsgTarget:true,autoHeight:true,items:[{items:d,width:220,style:"margin:auto;"},new GO.form.HtmlComponent({html:"<br />"}),{xtype:"timefield",name:"remind_time",format:GO.settings.time_format,value:b.format(GO.settings.time_format),fieldLabel:GO.lang.strTime,anchor:"100%"},{xtype:"textarea",name:"description",anchor:"100%",height:100,fieldLabel:GO.lang.strDescription},this.selectTaskList=new GO.tasks.SelectTasklist({fieldLabel:GO.tasks.lang.tasklist,anchor:"100%"})]})}});GO.tasks.ScheduleCallMenuItem=Ext.extend(Ext.menu.Item,{linkConfig:{name:"",links:[{link_id:0,link_type:0}]},initComponent:function(){this.iconCls="tasks-call";this.text=GO.tasks.lang.scheduleCall;this.cls="x-btn-text-icon";this.disabled=true;this.handler=function(){if(!GO.tasks.scheduleCallDialog){GO.tasks.scheduleCallDialog=new GO.tasks.ScheduleCallDialog()}GO.tasks.scheduleCallDialog.show(this.linkConfig)};GO.tasks.ScheduleCallMenuItem.superclass.initComponent.call(this)},setLinkConfig:function(a){this.linkConfig=a;this.setDisabled(false)}});GO.tasks.TasklistDialog=function(a){if(!a){a={}}this.propertiesTab=new Ext.form.FormPanel({waitMsgTarget:true,url:GO.settings.modules.tasks.url+"action.php",title:GO.lang.strProperties,layout:"form",anchor:"100% 100%",defaultType:"textfield",autoHeight:true,cls:"go-form-panel",waitMsgTarget:true,labelWidth:75,items:[this.selectUser=new GO.form.SelectUser({fieldLabel:GO.lang.strUser,disabled:!GO.settings.has_admin_permission,value:GO.settings.user_id,anchor:"100%"}),{fieldLabel:GO.lang.strName,name:"name",allowBlank:false,anchor:"100%"},this.exportButton=new Ext.Button({text:GO.lang.cmdExport,disabled:true,handler:function(){document.location=GO.settings.modules.tasks.url+"export.php?tasklist_id="+this.tasklist_id},scope:this})]});this.readPermissionsTab=new GO.grid.PermissionsPanel({});var b=new GO.form.UploadFile({inputName:"ical_file",max:1});b.on("filesChanged",function(d,c){this.importButton.setDisabled(c.getCount()==1)},this);this.importTab=new Ext.form.FormPanel({fileUpload:true,waitMsgTarget:true,disabled:true,title:GO.lang.cmdImport,items:[{xtype:"panel",html:GO.tasks.lang.selectIcalendarFile,border:false},b,this.importButton=new Ext.Button({xtype:"button",disabled:true,text:GO.lang.cmdImport,handler:function(){this.importTab.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"import",tasklist_id:this.tasklist_id},success:function(c,d){b.clearQueue();if(d.result.success){Ext.MessageBox.alert(GO.lang.strSuccess,d.result.feedback)}else{Ext.MessageBox.alert(GO.lang.strError,d.result.feedback)}},failure:function(c,d){Ext.MessageBox.alert(GO.lang.strError,d.result.feedback)},scope:this})},scope:this})],cls:"go-form-panel"});this.tabPanel=new Ext.TabPanel({hideLabel:true,deferredRender:false,xtype:"tabpanel",activeTab:0,border:false,anchor:"100% 100%",items:[this.propertiesTab,this.readPermissionsTab,this.importTab]});GO.tasks.TasklistDialog.superclass.constructor.call(this,{title:GO.tasks.lang.tasklist,layout:"fit",modal:false,height:500,width:400,closeAction:"hide",items:this.tabPanel,buttons:[{text:GO.lang.cmdOk,handler:function(){this.save(true)},scope:this},{text:GO.lang.cmdApply,handler:function(){this.save(false)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}]})};Ext.extend(GO.tasks.TasklistDialog,Ext.Window,{initComponent:function(){this.addEvents({save:true});GO.tasks.TasklistDialog.superclass.initComponent.call(this)},show:function(a){if(!this.rendered){this.render(Ext.getBody())}this.propertiesTab.show();if(a>0){if(a!=this.tasklist_id){this.loadTasklist(a)}else{GO.tasks.TasklistDialog.superclass.show.call(this)}}else{this.tasklist_id=0;this.propertiesTab.form.reset();this.readPermissionsTab.setDisabled(true);this.exportButton.setDisabled(true);this.importTab.setDisabled(true);GO.tasks.TasklistDialog.superclass.show.call(this)}},loadTasklist:function(a){this.propertiesTab.form.load({url:GO.settings.modules.tasks.url+"json.php",params:{tasklist_id:a,task:"tasklist"},success:function(b,c){this.tasklist_id=a;this.selectUser.setRemoteText(c.result.data.user_name);this.readPermissionsTab.setAcl(c.result.data.acl_id);this.exportButton.setDisabled(false);this.importTab.setDisabled(false);GO.tasks.TasklistDialog.superclass.show.call(this)},failure:function(b,c){Ext.Msg.alert(GO.lang.strError,c.result.feedback)},scope:this})},save:function(a){this.propertiesTab.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"save_tasklist",tasklist_id:this.tasklist_id},waitMsg:GO.lang.waitMsgSave,success:function(b,c){if(c.result.tasklist_id){this.tasklist_id=c.result.tasklist_id;this.readPermissionsTab.setAcl(c.result.acl_id);this.exportButton.setDisabled(false);this.importTab.setDisabled(false)}this.fireEvent("save");if(a){this.hide()}},failure:function(c,d){var b="";if(d.failureType=="client"){b=GO.lang.strErrorsInForm}else{b=d.result.feedback}Ext.MessageBox.alert(GO.lang.strError,b)},scope:this})}});GO.tasks.TaskDialog=function(){this.buildForm();var a=function(){this.nameField.focus()};this.goDialogId="task";this.win=new GO.Window({layout:"fit",modal:false,resizable:true,width:560,height:400,closeAction:"hide",collapsible:true,title:GO.tasks.lang.task,items:this.formPanel,focus:a.createDelegate(this),buttons:[{text:GO.lang.cmdOk,handler:function(){this.submitForm(true)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.win.hide()},scope:this}]});this.win.render(Ext.getBody());GO.tasks.TaskDialog.superclass.constructor.call(this)};Ext.extend(GO.tasks.TaskDialog,Ext.util.Observable,{show:function(a){if(!a){a={}}GO.dialogListeners.apply(this);if(!GO.tasks.categoriesStore.loaded){GO.tasks.categoriesStore.load()}this.formPanel.baseParams.tmp_files=a.tmp_files?Ext.encode(a.tmp_files):"";if(a.projectName){this.formPanel.baseParams.project_name=a.projectName}else{delete this.formPanel.baseParams.project_name}delete this.link_config;this.formPanel.form.reset();this.formPanel.form.findField("remind").setValue(!GO.util.empty(GO.tasks.remind));this.formPanel.form.findField("remind_date").setDisabled(GO.util.empty(GO.tasks.remind));this.formPanel.form.findField("remind_time").setDisabled(GO.util.empty(GO.tasks.remind));this.tabPanel.setActiveTab(0);if(!a.task_id){a.task_id=0}this.setTaskId(a.task_id);if(a.task_id>0){this.formPanel.load({url:GO.settings.modules.tasks.url+"json.php",success:function(b,c){this.win.show();this.changeRepeat(c.result.data.repeat_type);this.setValues(a.values);this.selectTaskList.setRemoteText(c.result.data.tasklist_name);this.setWritePermission(c.result.data.write_permission);if(c.result.data.category_id==0){}else{this.selectCategory.setRemoteText(c.result.data.category_name)}},failure:function(b,c){Ext.Msg.alert(GO.lang.strError,c.result.feedback)},scope:this})}else{delete this.formPanel.form.baseParams.exception_task_id;delete this.formPanel.form.baseParams.exceptionDate;this.lastTaskListId=this.selectTaskList.getValue();this.selectTaskList.setValue(this.lastTaskListId);this.setWritePermission(true);this.win.show();this.setValues(a.values);if(GO.util.empty(a.tasklist_id)){a.tasklist_id=GO.tasks.defaultTasklist.id;a.tasklist_name=GO.tasks.defaultTasklist.name}this.selectTaskList.setValue(a.tasklist_id);if(a.tasklist_name){this.selectTaskList.setRemoteText(a.tasklist_name);this.selectTaskList.container.up("div.x-form-item").setDisplayed(true)}else{this.selectTaskList.container.up("div.x-form-item").setDisplayed(false)}}if(a.link_config){this.link_config=a.link_config;if(a.link_config.type_id){this.selectLinkField.setValue(a.link_config.type_id);this.selectLinkField.setRemoteText(a.link_config.text)}}},setWritePermission:function(a){this.win.buttons[0].setDisabled(!a);this.win.buttons[1].setDisabled(!a)},setValues:function(a){if(a){for(var b in a){var c=this.formPanel.form.findField(b);if(c){c.setValue(a[b])}}}},setTaskId:function(a){this.formPanel.form.baseParams.task_id=a;this.task_id=a},setCurrentDate:function(){var b={};var a=new Date();b.start_date=b.remind_date=a.format(GO.settings.date_format);b.start_hour=a.format("H");b.start_min="00";b.end_date=a.format(GO.settings.date_format);b.end_hour=a.add(Date.HOUR,1).format("H");b.end_min="00";this.formPanel.form.setValues(b)},submitForm:function(a){this.formPanel.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"save_task"},waitMsg:GO.lang.waitMsgSave,success:function(b,c){if(c.result.task_id){this.setTaskId(c.result.task_id)}if(this.link_config&&this.link_config.callback){this.link_config.callback.call(this)}GO.tasks.tasksObservable.fireEvent("save",this,this.task_id);this.fireEvent("save",this,this.task_id);if(a){this.win.hide()}},failure:function(b,c){if(c.failureType=="client"){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strErrorsInForm)}else{Ext.MessageBox.alert(GO.lang.strError,c.result.feedback)}},scope:this})},buildForm:function(){this.nameField=new Ext.form.TextField({name:"name",allowBlank:false,fieldLabel:GO.lang.strSubject});this.selectLinkField=new GO.form.SelectLink();var e=function(o){if(o.name=="due_date"){if(c.getValue()>l.getValue()){c.setValue(l.getValue())}}else{if(c.getValue()>l.getValue()){l.setValue(c.getValue())}}var n=c.getValue().add(Date.DAY,-GO.tasks.reminderDaysBefore);d.form.findField("remind_date").setValue(n);if(this.repeatType.getValue()>0){if(this.repeatEndDate.getValue()==""){this.repeatForever.setValue(true)}else{var i=l.getValue();if(this.repeatEndDate.getValue()<i){this.repeatEndDate.setValue(i.add(Date.DAY,1))}}}};var a=new Date();var c=new Ext.form.DateField({name:"start_date",format:GO.settings.date_format,allowBlank:false,fieldLabel:GO.tasks.lang.startsAt,value:a.format(GO.settings.date_format),listeners:{change:{fn:e,scope:this}}});var l=new Ext.form.DateField({name:"due_date",format:GO.settings.date_format,allowBlank:false,fieldLabel:GO.tasks.lang.dueAt,value:a.format(GO.settings.date_format),listeners:{change:{fn:e,scope:this}}});var h=new GO.tasks.SelectTaskStatus();this.selectTaskList=new GO.tasks.SelectTasklist({fieldLabel:GO.tasks.lang.tasklist});this.selectCategory=new GO.form.ComboBoxReset({hiddenName:"category_id",fieldLabel:GO.tasks.lang.category,valueField:"id",displayField:"name",store:GO.tasks.categoriesStore,mode:"local",triggerAction:"all",emptyText:GO.tasks.lang.selectCategory,editable:false,selectOnFocus:true,forceSelection:true});this.selectPriority=new GO.form.SelectPriority();var b=new Ext.Panel({hideMode:"offsets",title:GO.lang.strProperties,defaults:{anchor:"-20"},bodyStyle:"padding:5px",layout:"form",autoScroll:true,items:[this.nameField,this.selectLinkField,c,l,h,this.selectTaskList,this.selectCategory,this.selectPriority,{xtype:"textarea",fieldLabel:GO.lang.strDescription,name:"description",anchor:"-20 -220"}]});this.repeatEvery=new Ext.form.ComboBox({name:"repeat_every_text",hiddenName:"repeat_every",triggerAction:"all",editable:false,selectOnFocus:true,width:50,forceSelection:true,mode:"local",value:"1",valueField:"value",displayField:"text",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"],["12","12"]]})});this.repeatType=new Ext.form.ComboBox({hiddenName:"repeat_type",triggerAction:"all",editable:false,selectOnFocus:true,width:200,forceSelection:true,mode:"local",value:"0",valueField:"value",displayField:"text",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["0",GO.lang.noRecurrence],["1",GO.lang.strDays],["2",GO.lang.strWeeks],["3",GO.lang.monthsByDate],["4",GO.lang.monthsByDay],["5",GO.lang.strYears]]}),hideLabel:true,listeners:{change:{fn:e,scope:this}}});this.repeatType.on("select",function(n,i){this.changeRepeat(i.data.value)},this);this.monthTime=new Ext.form.ComboBox({hiddenName:"month_time",triggerAction:"all",selectOnFocus:true,disabled:true,width:80,forceSelection:true,fieldLabel:GO.tasks.lang.atDays,mode:"local",value:"1",valueField:"value",displayField:"text",store:new Ext.data.SimpleStore({fields:["value","text"],data:[["1",GO.lang.strFirst],["2",GO.lang.strSecond],["3",GO.lang.strThird],["4",GO.lang.strFourth]]})});this.cb=[];for(var k=0;k<7;k++){this.cb[k]=new Ext.form.Checkbox({boxLabel:GO.lang.shortDays[k],name:"repeat_days_"+k,disabled:true,checked:false,width:"auto",hideLabel:true,laelSeperator:""})}this.repeatEndDate=this.repeatEndDate=new Ext.form.DateField({name:"repeat_end_date",width:100,disabled:true,format:GO.settings.date_format,allowBlank:true,fieldLabel:GO.tasks.lang.repeatUntil,listeners:{change:{fn:e,scope:this}}});this.repeatForever=new Ext.form.Checkbox({boxLabel:GO.tasks.lang.repeatForever,name:"repeat_forever",checked:true,disabled:true,width:"auto",hideLabel:true,laelSeperator:""});this.recurrencePanel=new Ext.Panel({title:GO.calendar.lang.recurrence,bodyStyle:"padding: 5px",layout:"form",hideMode:"offsets",defaults:{forceLayout:true,border:false},items:[{fieldLabel:GO.calendar.lang.repeatEvery,xtype:"compositefield",items:[this.repeatEvery,this.repeatType]},{xtype:"compositefield",fieldLabel:GO.calendar.lang.atDays,items:[this.monthTime,this.cb[1],this.cb[2],this.cb[3],this.cb[4],this.cb[5],this.cb[6],this.cb[0]]},{fieldLabel:GO.calendar.lang.repeatUntil,xtype:"compositefield",items:[this.repeatEndDate,this.repeatForever]}]});var g=a.add(Date.DAY,-GO.tasks.reminderDaysBefore);var m=new Ext.Panel({title:GO.tasks.lang.options,defaults:{anchor:"100%"},bodyStyle:"padding:5px",layout:"form",hideMode:"offsets",autoScroll:true,items:[{xtype:"checkbox",boxLabel:GO.tasks.lang.remindMe,hideLabel:true,name:"remind",listeners:{check:function(n,i){this.formPanel.form.findField("remind_date").setDisabled(!i);this.formPanel.form.findField("remind_time").setDisabled(!i)},scope:this}},{xtype:"datefield",name:"remind_date",format:GO.settings.date_format,value:g.format(GO.settings.date_format),fieldLabel:GO.lang.strDate,disabled:true},{xtype:"timefield",name:"remind_time",format:GO.settings.time_format,value:GO.tasks.reminderTime,fieldLabel:GO.lang.strTime,disabled:true}]});var j=[b,this.recurrencePanel,m];if(GO.customfields&&GO.customfields.types["12"]){for(var f=0;f<GO.customfields.types["12"].panels.length;f++){j.push(GO.customfields.types["12"].panels[f])}}this.tabPanel=new Ext.TabPanel({activeTab:0,deferredRender:false,border:false,anchor:"100% 100%",hideLabel:true,items:j});var d=this.formPanel=new Ext.form.FormPanel({waitMsgTarget:true,url:GO.settings.modules.tasks.url+"action.php",border:false,baseParams:{task:"task"},items:this.tabPanel})},changeRepeat:function(b){var a=this.formPanel.form;switch(b){case"0":this.disableDays(true);this.monthTime.setDisabled(true);this.repeatForever.setDisabled(true);this.repeatEndDate.setDisabled(true);this.repeatEvery.setDisabled(true);break;case"1":this.disableDays(true);this.monthTime.setDisabled(true);this.repeatForever.setDisabled(false);this.repeatEndDate.setDisabled(false);this.repeatEvery.setDisabled(false);break;case"2":this.disableDays(false);this.monthTime.setDisabled(true);this.repeatForever.setDisabled(false);this.repeatEndDate.setDisabled(false);this.repeatEvery.setDisabled(false);break;case"3":this.disableDays(true);this.monthTime.setDisabled(true);this.repeatForever.setDisabled(false);this.repeatEndDate.setDisabled(false);this.repeatEvery.setDisabled(false);break;case"4":this.disableDays(false);this.monthTime.setDisabled(false);this.repeatForever.setDisabled(false);this.repeatEndDate.setDisabled(false);this.repeatEvery.setDisabled(false);break;case"5":this.disableDays(true);this.monthTime.setDisabled(true);this.repeatForever.setDisabled(false);this.repeatEndDate.setDisabled(false);this.repeatEvery.setDisabled(false);break}},disableDays:function(b){for(var a=0;a<7;a++){this.formPanel.form.findField("repeat_days_"+a).setDisabled(b)}}});GO.tasks.TasksPanel=function(c){if(!c){c={}}this.checkColumn=new GO.grid.CheckColumn({dataIndex:"completed",width:30,hideInExport:true,header:'<div class="tasks-complete-icon"></div>',sortable:false});this.checkColumn.on("change",function(e,f){this.store.baseParams.completed_task_id=e.data.id;this.store.baseParams.checked=f;this.store.reload({callback:function(){GO.tasks.tasksObservable.fireEvent("save",this,this.task_id,this.store)},scope:this});delete this.store.baseParams.completed_task_id;delete this.store.baseParams.checked},this);var b={fields:["id","icon","name","completed","due_time","late","description","status","ctime","mtime","start_time","completion_time","disabled","tasklist_name","category_name","priority","project_name"],columns:[this.checkColumn,{header:"&nbsp;",width:23,dataIndex:"icon",renderer:this.renderIcon,hideable:false,fixed:true,sortable:false},{id:"name",header:GO.lang.strName,dataIndex:"name",renderer:function(f,g,e){if(!GO.util.empty(e.data.description)){g.attr='ext:qtip="'+Ext.util.Format.htmlEncode(e.data.description)+'"'}return f}},{header:GO.tasks.lang.tasklist,dataIndex:"tasklist_name",width:60},{header:GO.tasks.lang.category,dataIndex:"category_name",width:150},{header:GO.tasks.lang.dueDate,dataIndex:"due_time",width:100},{header:GO.tasks.lang.startsAt,dataIndex:"start_time",hidden:true,width:110},{header:GO.tasks.lang.completedAt,dataIndex:"completion_time",hidden:true,width:110},{header:GO.lang.strStatus,dataIndex:"status",width:110},{header:GO.lang.strCtime,dataIndex:"ctime",hidden:true,width:110},{header:GO.lang.strMtime,dataIndex:"mtime",hidden:true,width:110}]};if(GO.projects){b.columns.push({header:GO.projects.lang.project,dataIndex:"project_name",hidden:true,width:150})}if(GO.customfields){GO.customfields.addColumns(12,b)}var a=new Ext.data.JsonReader({root:"results",totalProperty:"total",fields:b.fields,id:"id"});c.store=new Ext.data.GroupingStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"tasks"},reader:a,sortInfo:{field:"name",direction:"ASC"},groupField:"tasklist_name",remoteGroup:true,remoteSort:true});c.store.on("load",function(){if(c.store.reader.jsonData.feedback){alert(c.store.reader.jsonData.feedback)}},this);c.view=new Ext.grid.GroupingView({scrollOffset:2,hideGroupedColumn:true,emptyText:GO.tasks.lang.noTask,getRowClass:function(e,h,g,f){if(e.data.late){return"tasks-late"}}}),c.sm=new Ext.grid.RowSelectionModel();var d=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:b.columns});c.cm=d;c.paging=true,c.plugins=this.checkColumn;c.autoExpandColumn="name";c.autoExpandMax=2500;c.enableColumnHide=true;c.enableColumnMove=true;c.autoScroll=true;this.searchField=new GO.form.SearchField({store:c.store,width:320});c.enableDragDrop=true;c.ddGroup="TasklistsDD";c.tbar=[GO.lang.strSearch+":",this.searchField];GO.tasks.TasksPanel.superclass.constructor.call(this,c);this.addEvents({checked:true})};Ext.extend(GO.tasks.TasksPanel,GO.grid.GridPanel,{saveListenerAdded:true,renderIcon:function(c,b,a){if(a.data.priority){if(a.data.priority>1){return'<div class="email-grid-icon btn-high-priority"></div>'}if(a.data.priority<1){return'<div class="email-grid-icon btn-low-priority"></div>'}}}});GO.tasks.SelectTasklist=function(a){a=a||{};if(!a.hiddenName){a.hiddenName="tasklist_id"}if(!a.fieldLabel){a.fieldLabel=GO.tasks.lang.tasklist}Ext.apply(this,a);this.store=new GO.data.JsonStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"tasklists",auth_type:"write"},root:"results",totalProperty:"total",id:"id",fields:["id","name","user_name"],remoteSort:true});GO.tasks.SelectTasklist.superclass.constructor.call(this,{displayField:"name",valueField:"id",triggerAction:"all",mode:"remote",editable:true,selectOnFocus:true,forceSelection:true,typeAhead:true,emptyText:GO.lang.strPleaseSelect,pageSize:parseInt(GO.settings.max_rows_list)})};Ext.extend(GO.tasks.SelectTasklist,GO.form.ComboBox,{});GO.tasks.MainPanel=function(a){if(!a){a={}}this.taskListsStore=new GO.data.JsonStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"tasklists",limit:GO.settings.config.nav_page_size},root:"results",totalProperty:"total",id:"id",fields:["id","dom_id","name","checked"]});this.taskListsPanel=new GO.tasks.TaskListsGrid({id:"ta-tasksgrid",region:"center",loadMask:true,store:this.taskListsStore,title:GO.tasks.lang.tasklists});this.taskListsPanel.on("drop",function(c){this.taskListsPanel.store.reload()},this);this.taskListsPanel.on("change",function(d,e,c){this.gridPanel.store.baseParams.tasklists=Ext.encode(e);this.gridPanel.store.load();this.tasklist_ids=e;if(c.length){this.addTaskPanel.populateComboBox(c);this.tasklist_id=c[0].data.id;this.tasklist_name=c[0].data.name}delete this.gridPanel.store.baseParams.tasklists},this);var b=new Ext.form.FormPanel({height:142,cls:"go-form-panel",waitMsgTarget:true,region:"north",border:true,split:true,items:[{hideLabel:true,anchor:"100%",xtype:"radiogroup",value:GO.tasks.show,columns:1,listeners:{change:function(d,c){this.gridPanel.store.baseParams.show=c.inputValue;this.gridPanel.store.load();delete this.gridPanel.store.baseParams.show},scope:this},items:[{boxLabel:GO.tasks.lang.active,name:"show",inputValue:"active",checked:true},{boxLabel:GO.tasks.lang.dueInSevenDays,name:"show",inputValue:"sevendays"},{boxLabel:GO.tasks.lang.overDue,name:"show",inputValue:"overdue"},{boxLabel:GO.tasks.lang.completed,name:"show",inputValue:"completed"},{boxLabel:GO.tasks.lang.futureTasks,name:"show",inputValue:"future"},{boxLabel:GO.tasks.lang.all,name:"show",inputValue:"all"}]}]});this.categoriesPanel=new GO.grid.MultiSelectGrid({id:"ta-categories-grid",title:GO.tasks.lang.categories,region:"south",loadMask:true,height:150,allowNoSelection:true,store:GO.tasks.categoriesStore});this.categoriesPanel.on("change",function(e,d,c){this.gridPanel.store.baseParams.categories=Ext.encode(d);this.gridPanel.store.reload();delete this.gridPanel.store.baseParams.categories},this);this.addTaskPanel=new GO.tasks.AddTaskPanel({region:"north"});this.gridPanel=new GO.tasks.TasksPanel({id:"ta-tasks-grid",loadMask:true,region:"center"});this.gridPanel.on("delayedrowselect",function(c,e,d){this.taskPanel.load(d.data.id)},this);this.gridPanel.on("rowdblclick",function(c,d){this.taskPanel.editHandler()},this);this.gridPanel.on("checked",function(d,c){if(this.taskPanel.data&&this.taskPanel.data.id==c){this.taskPanel.reload()}},this);this.gridPanel.store.on("load",function(c){this.deleteButton.setDisabled(!c.reader.jsonData.data.write_permission);this.addButton.setDisabled(!c.reader.jsonData.data.write_permission);var e=false;for(var d=0;d<this.tasklist_ids.length;d++){if(this.tasklist_ids[d]==this.taskPanel.data.tasklist_id){e=true}}if(!e){this.taskPanel.reset()}},this);this.taskPanel=new GO.tasks.TaskPanel({region:"east",width:400,border:true});a.layout="border";a.tbar=new Ext.Toolbar({cls:"go-head-tb",items:[this.addButton=new Ext.Button({iconCls:"btn-add",text:GO.lang.cmdAdd,cls:"x-btn-text-icon",handler:function(){this.taskPanel.reset();GO.tasks.showTaskDialog({tasklist_id:this.tasklist_id,tasklist_name:this.tasklist_name})},scope:this}),this.deleteButton=new Ext.Button({iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",handler:function(){this.gridPanel.deleteSelected({callback:this.taskPanel.gridDeleteCallback,scope:this.taskPanel})},scope:this}),{iconCls:"btn-settings",text:GO.lang.administration,cls:"x-btn-text-icon",handler:function(){this.showAdminDialog()},scope:this},{iconCls:"btn-export",text:GO.lang.cmdExport,cls:"x-btn-text-icon",handler:function(){var c={};c.colModel=this.gridPanel.getColumnModel();c.title=GO.tasks.lang.tasks;var d=this.gridPanel.searchField.getValue();if(!GO.util.empty(d)){c.subtitle=GO.lang.searchQuery+": "+d}else{c.subtitle=""}if(!this.exportDialog){this.exportDialog=new GO.ExportQueryDialog({query:"get_tasks"})}this.exportDialog.show(c)},scope:this},{iconCls:"btn-refresh",text:GO.lang.cmdRefresh,cls:"x-btn-text-icon",handler:function(){this.taskListsStore.load()},scope:this}]});a.items=[new Ext.Panel({region:"west",titlebar:false,autoScroll:false,closeOnTab:true,width:210,split:true,resizable:true,layout:"border",baseCls:"x-plain",items:[this.taskListsPanel,b,this.categoriesPanel]}),{region:"center",border:false,layout:"border",items:[this.gridPanel,this.addTaskPanel]},this.taskPanel];GO.tasks.MainPanel.superclass.constructor.call(this,a);this.on("show",function(){GO.tasks.notificationEl.setDisplayed(false)},this)};Ext.extend(GO.tasks.MainPanel,Ext.Panel,{tasklist_ids:[],afterRender:function(){GO.tasks.MainPanel.superclass.afterRender.call(this);GO.tasks.tasksObservable.on("save",function(c,a,b){if(this.gridPanel.store!=b){this.gridPanel.store.reload()}},this);this.taskListsStore.on("load",function(){var a=[];for(var b=0;b<this.taskListsStore.data.length;b++){var c=this.taskListsStore.data.items[b];if(c.data.checked){a.push(c)}}this.addTaskPanel.populateComboBox(a);if(a.length){this.tasklist_id=a[0].data.id;this.tasklist_name=a[0].data.name}this.gridPanel.store.load()},this);this.getEl().mask(GO.lang.waitMsgLoad);Ext.Ajax.request({url:GO.settings.modules.tasks.url+"json.php",params:{task:"init"},callback:function(b,d,a){if(!d){alert(GO.lang.strRequestError)}else{var c=Ext.decode(a.responseText);GO.tasks.categoriesStore.loadData(c.categories);this.taskListsStore.loadData(c.tasklists);this.getEl().unmask()}},scope:this});GO.mainLayout.on("linksDeleted",function(b,a){GO.mainLayout.onLinksDeletedHandler(a[12],this,this.gridPanel.store)},this)},showAdminDialog:function(){if(!this.adminDialog){this.tasklistDialog=new GO.tasks.TasklistDialog();this.categoryDialog=new GO.tasks.CategoryDialog();GO.tasks.writableTasklistsStore.on("load",function(){if(GO.tasks.writableTasklistsStore.reader.jsonData.new_default_tasklist){GO.tasks.defaultTasklist=GO.tasks.writableTasklistsStore.reader.jsonData.new_default_tasklist}},this);this.tasklistDialog.on("save",function(){GO.tasks.writableTasklistsStore.load();this.taskListsStore.load()},this);this.categoryDialog.on("save",function(){GO.tasks.categoriesStore.load()},this);this.tasklistsGrid=new GO.grid.GridPanel({paging:true,border:false,title:GO.tasks.lang.tasklists,store:GO.tasks.writableTasklistsStore,deleteConfig:{callback:function(){this.taskListsStore.load()},scope:this},columns:[{header:GO.lang.strName,dataIndex:"name",sortable:true},{header:GO.lang.strOwner,dataIndex:"user_name"}],view:new Ext.grid.GridView({autoFill:true}),sm:new Ext.grid.RowSelectionModel(),loadMask:true,tbar:[{iconCls:"btn-add",text:GO.lang.cmdAdd,cls:"x-btn-text-icon",handler:function(){this.tasklistDialog.show()},disabled:!GO.settings.modules.tasks.write_permission,scope:this},{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",disabled:!GO.settings.modules.tasks.write_permission,handler:function(){this.tasklistsGrid.deleteSelected()},scope:this},"-",new GO.form.SearchField({store:GO.tasks.writableTasklistsStore,width:150})]});this.categoriesGrid=new GO.grid.GridPanel({paging:true,border:false,title:GO.tasks.lang.categories,store:GO.tasks.categoriesStore,deleteConfig:{callback:function(){GO.tasks.categoriesStore.load()},scope:this},columns:[{header:GO.lang.strName,dataIndex:"name",sortable:true},{header:GO.lang.strOwner,dataIndex:"user_name"}],view:new Ext.grid.GridView({autoFill:true}),sm:new Ext.grid.RowSelectionModel(),loadMask:true,tbar:[{iconCls:"btn-add",text:GO.lang.cmdAdd,cls:"x-btn-text-icon",handler:function(){this.categoryDialog.show()},disabled:!GO.settings.modules.tasks.write_permission,scope:this},{iconCls:"btn-delete",text:GO.lang.cmdDelete,cls:"x-btn-text-icon",disabled:!GO.settings.modules.tasks.write_permission,handler:function(){this.categoriesGrid.deleteSelected()},scope:this}]});this.tasklistsGrid.on("rowdblclick",function(a,b,c){this.tasklistDialog.show(a.selModel.selections.keys[0])},this);this.categoriesGrid.on("rowdblclick",function(b,c){var a=b.getStore().getAt(c);if(GO.settings.has_admin_permission||(a.data.user_id>0)){this.categoryDialog.show(a)}},this);this.tabPanel=new Ext.TabPanel({activeTab:0,border:false,items:[this.tasklistsGrid,this.categoriesGrid]});this.adminDialog=new Ext.Window({title:GO.lang.cmdSettings,layout:"fit",modal:false,minWidth:300,minHeight:300,height:400,width:600,closeAction:"hide",items:this.tabPanel,buttons:[{text:GO.lang.cmdClose,handler:function(){this.adminDialog.hide()},scope:this}]})}if(!GO.tasks.writableTasklistsStore.loaded){GO.tasks.writableTasklistsStore.load()}if(!GO.tasks.categoriesStore.loaded){GO.tasks.categoriesStore.load()}this.adminDialog.show()}});GO.tasks.showTaskDialog=function(a){if(!GO.tasks.taskDialog){GO.tasks.taskDialog=new GO.tasks.TaskDialog()}GO.tasks.taskDialog.show(a)};GO.tasks.writableTasklistsStore=new GO.data.JsonStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"tasklists",auth_type:"write"},root:"results",totalProperty:"total",id:"id",fields:["id","name","user_name"],remoteSort:true,sortInfo:{field:"name",direction:"ASC"}});GO.tasks.categoriesStore=new GO.data.JsonStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"categories"},root:"results",totalProperty:"total",id:"id",fields:["id","name","user_name","checked","user_id"],remoteSort:true,sortInfo:{field:"name",direction:"ASC"}});GO.moduleManager.addModule("tasks",GO.tasks.MainPanel,{title:GO.tasks.lang.tasks,iconCls:"go-tab-icon-tasks"});GO.linkHandlers[12]=function(c,b){if(!GO.tasks.taskLinkWindow){var a=new GO.tasks.TaskPanel();GO.tasks.taskLinkWindow=new GO.LinkViewWindow({title:GO.tasks.lang.task,closeAction:"hide",items:a,taskPanel:a})}GO.tasks.taskLinkWindow.taskPanel.load(c);GO.tasks.taskLinkWindow.show()};GO.linkPreviewPanels[12]=function(a){a=a||{};return new GO.tasks.TaskPanel(a)};GO.newMenuItems.push({text:GO.tasks.lang.task,iconCls:"go-link-icon-12",itemId:"ta-new-task",handler:function(b,c){var a=b.parentMenu.taskShowConfig||{};a.link_config=b.parentMenu.link_config;GO.tasks.showTaskDialog(a)}});GO.mainLayout.onReady(function(){if(GO.checker){var a=Ext.get("notification-area");if(a){GO.tasks.notificationEl=a.createChild({id:"ta-notify",tag:"a",href:"#",style:"display:none"});GO.tasks.notificationEl.on("click",function(){GO.mainLayout.openModule("tasks")},this)}GO.checker.on("check",function(b,c){var d=GO.mainLayout.getModulePanel("tasks");if(c.tasks.active!=GO.tasks.last_active&&c.tasks.active>0){if(!d||!d.isVisible()){GO.tasks.notificationEl.setDisplayed(true)}}GO.tasks.notificationEl.update(c.tasks.active);GO.tasks.last_active=c.tasks.active})}});GO.tasks.SimpleTasksPanel=function(b){if(!b){b={}}b.id="su-tasks-grid";var a=new Ext.data.JsonReader({root:"results",totalProperty:"total",fields:["id","name","completed","due_time","description","tasklist_name","late"],id:"id"});b.store=new Ext.data.GroupingStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"tasks",user_id:GO.settings.user_id,active_only:true,portlet:true},reader:a,sortInfo:{field:"due_time",direction:"ASC"},groupField:"tasklist_name",remoteGroup:true,remoteSort:true});b.store.on("load",function(){if(this.rendered){this.ownerCt.ownerCt.ownerCt.doLayout()}},this);var c=new GO.grid.CheckColumn({dataIndex:"completed",width:30,header:'<div class="tasks-complete-icon"></div>'});c.on("change",function(d,e){this.store.baseParams.completed_task_id=d.data.id;this.store.baseParams.checked=e;this.store.reload({callback:function(){GO.tasks.tasksObservable.fireEvent("save",this,this.task_id,this.store)},scope:this});delete this.store.baseParams.completed_task_id;delete this.store.baseParams.checked},this);b.paging=false,b.plugins=c;b.autoExpandColumn="task-portlet-name-col";b.autoExpandMax=2500;b.enableColumnHide=false;b.enableColumnMove=false;b.columns=[c,{id:"task-portlet-name-col",header:GO.lang.strName,dataIndex:"name",renderer:function(e,f,d){if(!GO.util.empty(d.data.description)){f.attr='ext:qtip="'+Ext.util.Format.htmlEncode(d.data.description)+'"'}return e},sortable:true},{header:GO.tasks.lang.dueDate,dataIndex:"due_time",width:100,sortable:true},{header:GO.tasks.lang.tasklist,dataIndex:"tasklist_name",sortable:true,width:150}];b.view=new Ext.grid.GroupingView({scrollOffset:2,hideGroupedColumn:true,emptyText:GO.tasks.lang.noTask,getRowClass:function(d,g,f,e){if(d.data.late){return"tasks-late"}}}),b.sm=new Ext.grid.RowSelectionModel();b.loadMask=true;b.autoHeight=true;GO.tasks.SimpleTasksPanel.superclass.constructor.call(this,b)};Ext.extend(GO.tasks.SimpleTasksPanel,GO.grid.GridPanel,{saveListenerAdded:false,afterRender:function(){GO.tasks.SimpleTasksPanel.superclass.afterRender.call(this);GO.tasks.tasksObservable.on("save",function(c,a,b){if(this.store!=b){this.store.reload()}},this);this.on("rowdblclick",function(a,b,c){GO.linkHandlers[12].call(this,a.selModel.selections.keys[0])},this);Ext.TaskMgr.start({run:function(){this.store.load()},scope:this,interval:960000})}});GO.mainLayout.onReady(function(){if(GO.summary){var a=new GO.tasks.SimpleTasksPanel();GO.summary.portlets["portlet-tasks"]=new GO.summary.Portlet({id:"portlet-tasks",title:GO.tasks.lang.tasks,layout:"fit",tools:[{id:"gear",handler:function(){if(!this.manageTasksWindow){this.manageTasksWindow=new Ext.Window({layout:"fit",items:this.PortletSettings=new GO.tasks.PortletSettings(),width:700,height:400,title:GO.tasks.lang.visibleTasklists,closeAction:"hide",buttons:[{text:GO.lang.cmdSave,handler:function(){var b={task:"save_portlet"};if(this.PortletSettings.store.loaded){b.tasklists=Ext.encode(this.PortletSettings.getGridData())}Ext.Ajax.request({url:GO.settings.modules.tasks.url+"action.php",params:b,callback:function(d,e,c){if(!e){Ext.MessageBox.alert(GO.lang.strError,GO.lang.strRequestError)}else{this.PortletSettings.store.reload();this.manageTasksWindow.hide();a.store.reload()}},scope:this})},scope:this}],listeners:{show:function(){if(!this.PortletSettings.store.loaded){this.PortletSettings.store.load()}},scope:this}})}this.manageTasksWindow.show()}},{id:"close",handler:function(d,c,b){b.removePortlet()}}],items:a,autoHeight:true})}});GO.tasks.SettingsPanel=function(c){if(!c){c={}}var b=new Date();var a=Date.parseDate(b.format("Y-m-d")+" 08:00","Y-m-d G:i");c.autoScroll=true;c.border=false;c.hideLabel=true;c.title=GO.tasks.lang.tasks;c.hideMode="offsets";c.layout="form";c.labelWidth=125;c.bodyStyle="padding:5px;";c.items={xtype:"fieldset",autoHeight:true,layout:"form",forceLayout:true,title:GO.tasks.lang.taskDefaults,items:[this.remindCheck=new Ext.form.Checkbox({boxLabel:GO.tasks.lang.remindMe,hideLabel:true,name:"remind",listeners:{check:function(e,d){this.numberField.setDisabled(!d);this.timeField.setDisabled(!d)},scope:this}}),this.numberField=new GO.form.NumberField({decimals:0,name:"reminder_days",value:"0",fieldLabel:GO.tasks.lang.daysBeforeStart,disabled:true}),this.timeField=new Ext.form.TimeField({name:"reminder_time",format:GO.settings.time_format,value:a.format(GO.settings.time_format),fieldLabel:GO.lang.strTime,disabled:true}),new GO.form.HtmlComponent({html:"<br />"}),this.selectTaskList=new GO.tasks.SelectTasklist({fieldLabel:GO.tasks.lang.defaultTasklist,hiddenName:"default_tasklist_id"})]};GO.tasks.SettingsPanel.superclass.constructor.call(this,c)};Ext.extend(GO.tasks.SettingsPanel,Ext.Panel,{onLoadSettings:function(a){this.selectTaskList.setRemoteText(a.result.data.default_tasklist_name)},onSaveSettings:function(){var c=GO.tasks.taskDialog;var b=new Date();GO.tasks.reminderDaysBefore=parseInt(this.numberField.getValue());GO.tasks.reminderTime=this.timeField.getValue();if(c){var a=b.add(Date.DAY,-GO.tasks.reminderDaysBefore);c.formPanel.form.findField("remind").originalValue=this.remindCheck.getValue();c.formPanel.form.findField("remind_time").originalValue=this.timeField.getValue();c.formPanel.form.findField("remind_date").originalValue=a}}});GO.mainLayout.onReady(function(){GO.moduleManager.addSettingsPanel("tasks",GO.tasks.SettingsPanel)});GO.tasks.PortletSettings=function(c){if(!c){c={}}c.layout="fit";c.autoScroll=true;c.split=true;var b=new GO.grid.CheckColumn({header:GO.tasks.lang.visible,dataIndex:"visible",width:55,disabled_field:"",sortable:false});var a={fields:["name","tasklist_id"],columns:[{header:GO.lang.strTitle,dataIndex:"name"},b]};c.store=new GO.data.JsonStore({url:GO.settings.modules.tasks.url+"json.php",baseParams:{task:"settings"},root:"results",id:"tasklist_id",totalProperty:"total",fields:["tasklist_id","name","visible"],remoteSort:true});var d=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:a.columns});c.cm=d;c.view=new Ext.grid.GridView({autoFill:true,forceFit:true,emptyText:GO.lang.strNoItems});c.sm=new Ext.grid.RowSelectionModel();c.loadMask=true;c.plugins=[b];GO.tasks.PortletSettings.superclass.constructor.call(this,c)};Ext.extend(GO.tasks.PortletSettings,Ext.grid.GridPanel,{getGridData:function(){var d={};for(var b=0;b<this.store.data.items.length;b++){var c=this.store.data.items[b].data;d[b]={};for(var a in c){d[b][a]=c[a]}}return d}});GO.tasks.CategoryDialog=function(b){if(!b){b={}}this.buildForm();var a=function(){this.formPanel.items.items[0].focus()};b.layout="fit";b.title=GO.tasks.lang.category;b.modal=false;b.border=false;b.width=400;b.autoHeight=true;b.resizable=false;b.plain=true;b.shadow=false,b.closeAction="hide";b.items=this.formPanel;b.focus=a.createDelegate(this);b.buttons=[{text:GO.lang.cmdOk,handler:function(){this.submitForm(true)},scope:this},{text:GO.lang.cmdApply,handler:function(){this.submitForm(false)},scope:this},{text:GO.lang.cmdClose,handler:function(){this.hide()},scope:this}];GO.tasks.CategoryDialog.superclass.constructor.call(this,b);this.addEvents({save:true})};Ext.extend(GO.tasks.CategoryDialog,Ext.Window,{show:function(a){if(!this.rendered){this.render(Ext.getBody())}if(a){this.category_id=a.data.id}else{this.category_id=0}if(this.category_id>0){this.formPanel.form.findField("name").setValue(a.data.name);if(GO.settings.has_admin_permission){this.formPanel.form.findField("global").setValue(a.data.user_id==0)}}else{this.formPanel.form.reset()}GO.tasks.CategoryDialog.superclass.show.call(this)},submitForm:function(a){this.formPanel.form.submit({url:GO.settings.modules.tasks.url+"action.php",params:{task:"save_category",id:this.category_id},waitMsg:GO.lang.waitMsgSave,success:function(b,c){if(c.result.id){this.category_id=c.result.id}this.fireEvent("save");if(a){this.hide()}},failure:function(c,d){var b="";if(d.failureType=="client"){b=GO.lang.strErrorsInForm}else{b=d.result.feedback}Ext.MessageBox.alert(GO.lang.strError,b)},scope:this})},buildForm:function(){var a=[];a.push({fieldLabel:GO.lang.strName,name:"name",allowBlank:false});if(GO.settings.has_admin_permission){a.push(this.globalCategory=new Ext.form.Checkbox({name:"global",boxLabel:GO.tasks.lang.globalCategory,hideLabel:true,checked:false}))}this.formPanel=new Ext.FormPanel({cls:"go-form-panel",anchor:"100% 100%",bodyStyle:"padding:5px",defaults:{anchor:"95%"},defaultType:"textfield",autoHeight:true,waitMsgTarget:true,labelWidth:75,items:a})}});GO.tasks.TaskListsGrid=function(a){if(!a){a={}}a.layout="fit";a.autoScroll=true;a.split=true;a.ddGroup="TasklistsDD";a.enableDD=true;Ext.apply(a,{allowNoSelection:true,bbar:new GO.SmallPagingToolbar({items:[this.searchField=new GO.form.SearchField({store:a.store,width:120,emptyText:GO.lang.strSearch})],store:a.store,pageSize:GO.settings.config.nav_page_size})});GO.tasks.TaskListsGrid.superclass.constructor.call(this,a)};Ext.extend(GO.tasks.TaskListsGrid,GO.grid.MultiSelectGrid,{afterRender:function(){GO.tasks.TaskListsGrid.superclass.afterRender.call(this);var a=new Ext.dd.DropTarget(this.getView().mainBody,{ddGroup:"TasklistsDD",notifyDrop:this.onNotifyDrop.createDelegate(this)})},onNotifyDrop:function(g,h,f){var d=g.dragData.selections;var a=this.getView().findRowIndex(h.target);var c=this.getView().grid.store.data.items[a].id;var j=[];for(var b=0;b<d.length;b++){j.push(d[b].id)}if(c>0){Ext.Ajax.request({url:GO.settings.modules.tasks.url+"action.php",params:{task:"move_tasks",tasklist_id:c,items:Ext.encode(j)},callback:function(i,l,e){var k=Ext.decode(e.responseText);if(!k.success){Ext.Msg.alert(GO.lang.strError,k.feedback)}else{if(k.reload_store){this.fireEvent("drop")}}},scope:this});return true}else{return false}}});GO.tasks.TaskTemplate='<tpl if="values.tasks && values.tasks.length">{[this.collapsibleSectionHeader(GO.tasks.lang.incompleteTasks, "tasks-"+values.panelId, "tasks")]}<table class="display-panel" cellpadding="0" cellspacing="0" border="0" id="tasks-{panelId}"><tr><td class="table_header_links" width="16px;"></td><td class="table_header_links" width="10px;"></td><td class="table_header_links">'+GO.lang.strName+'</a></td><td class="table_header_links" width="110px">'+GO.tasks.lang.dueDate+'</td><td class="table_header_links" width="120px">'+GO.tasks.lang.tasklist+'</td></tr><tpl if="!tasks.length"><tr><td colspan="4">'+GO.lang.strNoItems+'</td></tr></tpl><tpl for="tasks"><tr class="display-panel-link"><td style="padding-right:0px !important;"><div class="display-panel-link-icon go-link-icon-12"></div></td><td style="padding-right:0px !important;padding-left:0px !important;"><div class="display-panel-has-links <tpl if="link_count&gt;1">has-links</tpl>"></div></td><td><a href="#" onclick="GO.linkHandlers[12].call(this, {id});" <tpl if="completion_time!=\'\'">class="tasks-completed"</tpl>>{name}</a></td><td>{due_time}</td><td>{tasklist_name}</td></tr></tpl></table></tpl>';GO.tasks.AddTaskPanel=function(a){a=a||{};this.ntName=new Ext.form.TextField({emptyText:GO.tasks.lang.addTask,fieldLabel:GO.lang.strName,flex:1});this.ntTasklist=new GO.form.ComboBox({fieldLabel:GO.tasks.lang.tasklist,valueField:"id",displayField:"name",store:new Ext.data.ArrayStore({fields:["id","name"]}),mode:"local",triggerAction:"all",editable:false,selectOnFocus:true,forceSelection:true});this.ntTasklist.on("select",function(c,b){this.store.baseParams.tasklist_id=b.data.id});this.ntDue=new Ext.form.DateField({value:new Date(),fieldLabel:GO.tasks.lang.dueDate,disabled:true,format:GO.settings.date_format});this.btnNewTask=new Ext.Button({text:"<b>+</b>",cls:"btn-new-task",width:20,handler:function(){this.userTriggered=true;this.doBlur()},disabled:true,scope:this});a=Ext.apply(a,{border:false,bodyStyle:"padding:1px 2px",height:26,items:[{anchor:"100%",xtype:"compositefield",hideLabel:true,items:[this.ntName,this.ntTasklist,this.ntDue,this.btnNewTask]}]});GO.tasks.AddTaskPanel.superclass.constructor.call(this,a)};Ext.extend(GO.tasks.AddTaskPanel,Ext.FormPanel,{populateComboBox:function(a){var d=[];if(a.length){for(var b=0;b<a.length;b++){var c=[];c.push(a[b].id);c.push(a[b].data.name);d.push(c)}}else{d=[[GO.tasks.defaultTasklist.id,GO.tasks.defaultTasklist.name]]}this.ntTasklist.store.loadData(d);this.ntTasklist.setValue(this.ntTasklist.store.getAt(0).data.id)},afterRender:function(){GO.tasks.AddTaskPanel.superclass.afterRender.call(this);this.editing=false;this.focused=false;this.userTriggered=false;var a={focus:function(){this.focused=true},blur:function(){this.focused=false;this.doBlur.defer(250,this);if(Ext.isEmpty(this.ntName.getValue())){this.btnNewTask.disable()}},specialkey:function(b,c){if(c.getKey()==c.ENTER){this.userTriggered=true;c.stopEvent();b.el.blur();if(b.triggerBlur){b.triggerBlur()}}},scope:this};this.ntName.on(a,this);this.ntDue.on(a,this);this.ntName.on("focus",function(){this.focused=true;this.btnNewTask.enable();if(!this.editing){this.ntDue.enable();this.editing=true}},this)},syncFields:function(){var a=this.getColumnModel();this.ntName.setSize(a.getColumnWidth(1)-4);this.ntDue.setSize(a.getColumnWidth(2)-4)},doBlur:function(){if(this.userTriggered&&this.editing&&!this.focused){var a=this.ntName.getValue();var c=this.ntDue.getValue();var b=this.ntTasklist.getValue();if(!Ext.isEmpty(a)&&c){Ext.Ajax.request({url:GO.settings.modules.tasks.url+"action.php",params:{task:"save_task",tasklist_id:b,name:a,start_date:new Date().format(GO.settings.date_format),due_date:c.format(GO.settings.date_format)},callback:function(e,g,d){var f=Ext.decode(d.responseText);if(!f.success){alert(f.feedback)}else{GO.tasks.tasksObservable.fireEvent("save",this,this.task_id)}},scope:this});this.ntName.setValue("");if(this.userTriggered){this.userTriggered=false;this.ntName.focus.defer(100,this.ntName)}}if(c){this.ntDue.disable();this.btnNewTask.disable();this.editing=false}}}});GO.moduleManager.on("moduleconstructed",function(d,c,b){if(c=="settings"){var a=new Ext.form.FieldSet({title:GO.tasks.lang.tasks,items:[{xtype:"textfield",name:"task_name_template",fieldLabel:GO.tasks.lang.globalsettings_templatelabel,width:300},{xtype:"checkbox",name:"change_all_task_names",fieldLabel:GO.tasks.lang.globalsettings_allchangelabel,listeners:{check:function(e,f){if(f&&!confirm(GO.tasks.lang.globalsettings_renameall)){e.setValue(false)}},scope:this}}]});b.add(a)}});