#set ($TASK_START_DATE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.taskstartdate")) #set ($TASK_END_DATE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.taskenddate")) #set ($TASK_ESTIMATED_EFFORT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.taskestimatedeffort")) #set ($TASK_SPENT_EFFORT = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.taskspenteffort")) #set ($TASK_REMAINING_EFFORT = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.taskremainingeffort")) #set ($UDA_MAPPING_WARNING = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.udamappingwarning")) #set ($WATERFALLTASK_ESTIMATED_EFFORT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.waterfall.taskestimatedeffort")) #set ($WATERFALLTASK_SPENT_EFFORT = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.waterfall.taskspenteffort")) #set ($WATERFALLTASK_REMAINING_EFFORT = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.waterfall.taskremainingeffort")) var LOADTASKUDAS = "LOADTASKUDAS"; var SAVE_TASK_UDAS = "SAVE_TASK_UDAS"; var LOAD_TASK_ATTR_MAPPING = "LOAD_TASK_ATTR_MAPPING"; var almtaskudadlg = { isWizardMode:false, udaFormDialog : null, udaProgressMsgBox : null, udaFormCtrl : null, storeTaskUda : null, isEnumerationFieldMapped : false, udaNamesArray: null, init : function() { Ext.QuickTips.init(); //add all uda strings almtaskudadlg.udaNamesArray=new Array("udataskname","udataskdesc","udataskstatus", "udataskstartdate","udataskenddate","udataskestimatedeffort","udataskspenteffort", "udataskremainingeffort"); //Data store for task UDAs almtaskudadlg.storeTaskUda = new Ext.data.Store({ reader: new Ext.data.JsonReader( { root: 'rows', data: 'data', success: 'success' }, [ {name: 'udaId'}, {name: 'udaName'}, {name: 'udatt'}, {name: 'type'}, {name: 'isEnum'} ]), sortInfo:{field: 'udaName', direction: "ASC"} }); almtaskudadlg.storeTaskUda.addListener( 'beforeload', function(storeRef, options) { var currentALMLinkName = null; if( linksTable.selectedItem == null ) { currentALMLinkName = linksTable.formCtrl.findById('linkname').getValue(); } else { currentALMLinkName = linksTable.selectedItem['linkname']; } almtaskudadlg.udaProgressMsgBox = Ext.MessageBox.wait( '$LOADING_UDAS_PROGRESS_MSG' + currentALMLinkName); } ); almtaskudadlg.storeTaskUda.addListener( 'loadexception', function(proxy, data, arg, e) { almtaskudadlg.udaProgressMsgBox.hide(); Ext.MessageBox.show({ title: '$ERROR_TEXT', msg: arg.responseText, buttons: Ext.MessageBox.OK}); } ); var text = "   " + "$UDA_MAPPING_WARNING"; almtaskudadlg.udaFormCtrl = new Ext.FormPanel({ buttonAlign: 'right', labelAlign: 'right', id: 'TASKUDA', isDirty: false, layout:'form', frame: true, height: 290, margins:{ right: 5, left: 5}, items:[{ layout:'form', items: [ new Ext.Panel({ autowidth:true, height:50, html:text }), { layout: 'column', items: [ { columnWidth: .55, margins: { right: 5, left: 5 }, layout: 'form', anchor: 'left', border: false, items: [almtaskudadlg.createComboBox('$NAME_TEXT', 'udataskname', false ), almtaskudadlg.createComboBox('$DESCRIPTION_TEXT', 'udataskdesc', true), almtaskudadlg.createComboBox('$TASK_START_DATE', 'udataskstartdate', true), almtaskudadlg.createComboBox('$TASK_END_DATE', 'udataskenddate', true) ] }, { name: 'uda_xLinkId', xtype: 'hidden', id: 'uda_xLinkId' }, { name: 'agile', xtype: 'hidden', id: 'agile' },{ columnWidth: .45, margins: { right: 5, left: 5 }, layout: 'form', anchor: 'right', border: false, items: [ almtaskudadlg.createComboBox('$STATUS_TEXT', 'udataskstatus', false), almtaskudadlg.createComboBox('$TASK_ESTIMATED_EFFORT', 'udataskestimatedeffort', true), almtaskudadlg.createComboBox('$TASK_SPENT_EFFORT', 'udataskspenteffort', true), almtaskudadlg.createComboBox('$TASK_REMAINING_EFFORT', 'udataskremainingeffort', true) ] }] } ] }], buttons: [{ text: '$saveudabutton', handler: function(){ almtaskudadlg.saveUDAs(); } }, { text: '$canceludabutton', handler: function() { if (almtaskudadlg.udaFormCtrl.isDirty) { Ext.MessageBox.show({ title:'$CHANGES_DETECTED', msg: '$CHANGES_DETECTED_MSG', buttons: Ext.MessageBox.YESNO, icon: Ext.MessageBox.QUESTION, fn: function(btn){ if (btn == "yes") { almtaskudadlg.udaFormCtrl.isDirty = false; almtaskudadlg.isEnumerationFieldMapped = false; almtaskudadlg.udaFormDialog.hide(); } } }); } else { almtaskudadlg.udaFormDialog.hide(); } } } ] }); if(!almtaskudadlg.udaFormDialog){ almtaskudadlg.udaFormDialog = new Ext.Window({ el:'udaTaskFormDialogHTML', layout:'fit', width:690, height:290, closeAction:'hide', plain: true, items: almtaskudadlg.udaFormCtrl, modal: true, resizable : false }); }; }, validateUDAs:function() { var values = new Array(almtaskudadlg.udaNamesArray.length); for (var i=0; i0) { for (var j=0; j<=i; j++) { if(i != j) { if(values[j] == value) { var msg = '$DUPLICATE_MAPPING_TEXT' + "

" + value; Ext.MessageBox.show({ title: '$ERROR_TEXT', msg: msg, buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); return false; } } } } } return true; }, saveUDAs : function() { if(!almtaskudadlg.validateUDAs()) return; var xid = almtaskudadlg.udaFormCtrl.findById('uda_xLinkId').getValue(); almtaskudadlg.udaFormCtrl.form.submit({ url:'ajax/AsyncHandler', waitMsg:'$SAVING_DATA', params:{action: SAVE_TASK_UDAS, uda_xLinkId : xid, projectid:'$projectId' , elementtype:TASK}, success:function(form, action) { if(almtaskudadlg.isWizardMode || almtaskudadlg.isEnumerationFieldMapped) { var name = linksTable.ds.getById(xid).get('linkname'); var type = linksTable.ds.getById(xid).get('type'); linksTable.showMapEnumerations(xid,name,type); } almtaskudadlg.udaFormCtrl.isDirty = false; almtaskudadlg.isEnumerationFieldMapped = false; almtaskudadlg.udaFormDialog.hide(); almtaskudadlg.udaFormCtrl.form.reset(); linksTable.ds.load({waitMsg:'$LOADING_TEXT',params:{start:0, limit:25}}); }, failure:function(form, action) { if (action.result) { Ext.MessageBox.show({ title: '$ERROR_TEXT', msg: action.result.data[0].msg, buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); } } }); }, showUDACustomization: function(xLinkId,wizardMode) { almtaskudadlg.isWizardMode = wizardMode; almtaskudadlg.isEnumerationFieldMapped = false; almtaskudadlg.storeTaskUda.proxy = new Ext.data.HttpProxy({ url: 'ajax/AsyncHandler?action=' + LOADTASKUDAS + '&id=' + xLinkId + '&elementtype=' + TASK + "&projectid=$projectId" }); almtaskudadlg.storeTaskUda.load({ callback: function(record, options, success){ if ( success ) { almtaskudadlg.initUDAComboBoxes(); almtaskudadlg.disableComboBoxes(true); almtaskudadlg.udaFormCtrl.form.load({ url:'ajax/AsyncHandler?action=' + LOAD_TASK_ATTR_MAPPING + '&id=' + xLinkId + "&projectid=$projectId", waitMsg:'$LOADING_MAPPING', params: { action: LOAD_TASK_ATTR_MAPPING, id: xLinkId, elementtype:TASK }, failure:function(form, action) { almtaskudadlg.udaProgressMsgBox.hide(); almtaskudadlg.disableComboBoxes(false); //ErrorHandlerLib.onFormFailure(form, action); alert('$UDA_MAPPING_LOAD_ERROR'+" : "+action.failureType); }, success:function(form, action) { almtaskudadlg.setLabels(); almtaskudadlg.udaProgressMsgBox.hide(); almtaskudadlg.disableComboBoxes(false); }, settings: {show:true, title:'$UDA_MAPPING_LOAD_ERROR'} }); almtaskudadlg.udaFormDialog.show(); } else { almtaskudadlg.udaProgressMsgBox.hide(); var options = {settings:{show:"true", title:'$UDA_LOAD_ERROR'}}; var libDataStr = almtaskudadlg.storeTaskUda.reader.jsonData; ErrorHandlerLib.showErrorWithJSONObject( libDataStr, options ); } } }); }, isEnumFieldMapped: function () { if( (almtaskudadlg.udaFormCtrl.findById('udataskstatus').getValue() != DEFAULT_VALUE) ) { return true; } return false; }, setLabels: function () { var agile = almtaskudadlg.udaFormCtrl.findById('agile').getValue(); var estimated = almtaskudadlg.udaFormCtrl.getForm().findField('udataskestimatedeffort'); var spent = almtaskudadlg.udaFormCtrl.getForm().findField('udataskspenteffort'); var remaining = almtaskudadlg.udaFormCtrl.getForm().findField('udataskremainingeffort'); if(agile==true) { document.getElementById(estimated.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$TASK_ESTIMATED_EFFORT:'; document.getElementById(spent.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$TASK_SPENT_EFFORT:'; document.getElementById(remaining.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$TASK_REMAINING_EFFORT:'; } else { document.getElementById(estimated.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$WATERFALLTASK_ESTIMATED_EFFORT:'; document.getElementById(spent.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$WATERFALLTASK_SPENT_EFFORT:'; document.getElementById(remaining.container.up('div.x-form-item').id).childNodes[0].innerHTML = '$WATERFALLTASK_REMAINING_EFFORT:'; } }, initUDAComboBoxes: function () { //almtaskudadlg.udaFormCtrl.findById('udataskname').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskdesc').setValue(DEFAULT_VALUE); //almtaskudadlg.udaFormCtrl.findById('udataskstatus').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskstartdate').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskenddate').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskestimatedeffort').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskspenteffort').setValue(DEFAULT_VALUE); almtaskudadlg.udaFormCtrl.findById('udataskremainingeffort').setValue(DEFAULT_VALUE); }, disableComboBoxes: function(value){ almtaskudadlg.udaFormCtrl.findById('udataskstatus').setDisabled(value); }, createComboBox: function(displayName, id, allowblank, filterFn) { var cbox = new Ext.form.ComboBox({ fieldLabel: displayName, id: id, store: almtaskudadlg.storeTaskUda, displayField: 'udaName', valueField:'udaId', tpl: '
{udaName}
', width: 175, editable: false, allowBlank: allowblank, emptyText: 'Select an attribute...', mode: 'local', triggerAction: 'all', typeAhead: false, listeners: { select: function() { almtaskudadlg.udaFormCtrl.isDirty = true; if( this.id == 'udataskstatus' ) { almtaskudadlg.isEnumerationFieldMapped = true; } }, expand: function() { almtaskudadlg.storeTaskUda.currentComboName = this.id; almtaskudadlg.storeTaskUda.filterBy(almtaskudadlg.filterComboByUDAType); } } }); //if( id === 'udataskname' || id === 'udataskdesc' || id == 'udataskestimatedeffort' || // id == 'udataskspenteffort' || id == 'udataskremainingeffort') //{ //cbox.setDisabled(true); //} return cbox; }, filterComboByUDAType: function(record, id) { var cn = almtaskudadlg.storeTaskUda.currentComboName; if( record.get("udaName") == DEFAULT_VALUE ) { return true; } // we aren't supporting uda's for now for these /*if( cn == 'udataskspenteffort' ) { return false; } if( cn == 'udataskestimatedeffort') { return false; } if( cn == 'udataskremainingeffort') { return false; }*/ if( ((cn == 'udataskstartdate') || (cn == 'udataskenddate') ) && (record.get("type").indexOf("DATE") <= -1)) { return false; } if( ((cn == 'udataskname') || (cn == 'udataskdesc') )&& (record.get("type").indexOf("TEXT") <= -1) ) { return false; } if( (cn == 'udataskestimatedeffort') && (record.get("type").indexOf("FLOAT") <= -1)) { return false; } if( (cn == 'udataskspenteffort') && (record.get("type").indexOf("FLOAT") <= -1) ) { return false; } if( (cn == 'udataskremainingeffort') && (record.get("type").indexOf("FLOAT") <= -1) ) { return false; } if( ((cn=='udataskstatus') ) && (record.get("isEnum") == "true") ) { return true; } if( ((cn!='udataskstatus') ) && (record.get("isEnum") == "false") ) { return true; } return false; } }