/* * ALM Enumeration Mapping Dialog */ #set ($SAVE_TEXT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.save")) #set ($OK_TEXT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.ok")) #set ($CANCEL_TEXT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.cancel")) #set ($LOADING_TEXT= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.loading")) #set ($SAVE_FAILED_MSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.savefailedmsg")) #set ($SAVE_ERROR_TITLE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.saveerrortitle")) #set ($SAVE_CHANGES_TITLE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.common.savechanges")) #set ($loadmsg = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.loading")) #set ($CHOOSE = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.choosemsg")) #set ($DRAGMSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.dragmsg")) #set ($DEFAULTMSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.defaultmsg")) #set ($CHOOSENATIVEMSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.choosenativemsg")) #set ($SAVEMSGPART1 = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.saveemsgpart1")) #set ($SAVEMSGPART2 = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.saveemsgpart2")) #set ($UDA_LOAD_ERROR_MSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.udaloaderrormsg")) #set ($ENUM_LOAD_ERROR_MSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.enumloaderrormsg")) #set ($ENUM_MAPPING_LOAD_ERROR_MSG = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.enummappingsloaderrormsg")) #set ($ENUMERATION_LABEL = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.enumerationlabel")) #set ($MASTER_HEADER= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.masterheader")) #set ($MAPPED_HEADER= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.mappedheader")) #set ($NAME_HEADER= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.nameheader")) #set ($ENUM_DIALOG_TITLE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.title")) #set ($ALT_DEFAULT_MSG= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.altdefaultmsg")) #set ($DROP_HERE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.drophere")) #set ($DEFAULT_MENU_ITEM= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.defaultmenu")) #set ($REMOVE_MENU_ITEM= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.removemenu")) #set ($UDA_VALUE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.udavalue")) #set ($UDA_VALUE= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.saveenumprogress")) #set ($ATTR_LOAD_ERROR= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.attrloaderror")) #set ($SAVE_ENUM_PROGRESS= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almenummappingdialog.saveenumwait")) var SEPARATOR = "$@_%_@$"; //something wierd var LOADREUDA_ENUMVALUES = "LOADREUDA_ENUMVALUES"; //uda enum values var LOADRE_ENUMUDAS = "LOADRE_ENUMUDAS"; //only enum UDAS var LOAD_LINK_ENUMERATION_MAPPINGS = "LOAD_LINK_ENUMERATION_MAPPINGS"; var SAVE_LINK_ENUMERATION_MAPPINGS = "SAVE_LINK_ENUMERATION_MAPPINGS"; //task related var LOADTASKUDA_ENUMVALUES = "LOADTASKUDA_ENUMVALUES"; //uda enum values var LOADTASK_ENUMUDAS = "LOADTASK_ENUMUDAS"; //only enum UDAS var LOAD_TASK_LINK_ENUMERATION_MAPPINGS = "LOAD_TASK_LINK_ENUMERATION_MAPPINGS"; var SAVE_TASK_LINK_ENUMERATION_MAPPINGS = "SAVE_TASK_LINK_ENUMERATION_MAPPINGS"; //test casee var LOAD_TESTCASE_UDA_ENUMVALUES = "LOAD_TESTCASE_UDA_ENUMVALUES"; //uda enum values var LOAD_TESTCASE_ENUMUDAS = "LOAD_TESTCASE_ENUMUDAS"; //only enum UDAS var LOAD_TESTCASE_LINK_ENUMERATION_MAPPINGS = "LOAD_TESTCASE_LINK_ENUMERATION_MAPPINGS"; var SAVE_TESTCASE_LINK_ENUMERATION_MAPPINGS = "SAVE_TESTCASE_LINK_ENUMERATION_MAPPINGS"; //Change request var LOAD_CHANGEREQUEST_UDA_ENUMVALUES = "LOAD_CHANGEREQUEST_UDA_ENUMVALUES"; //uda enum values var LOAD_CHANGEREQUEST_ENUMUDAS = "LOAD_CHANGEREQUEST_ENUMUDAS"; //only enum UDAS var LOAD_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS = "LOAD_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS"; var SAVE_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS = "SAVE_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS"; var almEnumMappingDialog = { xLinkType: REQUIREMENT, // defaults to requirement, will have to be set before calling show xLinkName:'', enumCombo : null, enumComboDS:null, dlgCtrlFrm : null, lhsGridPanel:null, rhsGridPanel:null, lhsDS:null, rhsDS:null, rhsRec:null, projectId:null, xlinkId:null, ddTarget:null, cmenu:null, modified:false, currentEnum:null, callbackfn:null, selecteditem:null, progressWaitMsgBox:null, init : function() { /////////////////////////////////// ENUM COMBO ////////////////////////////////////////////////// almEnumMappingDialog.enumComboDS = new Ext.data.Store({ id : 0, proxy: new Ext.data.HttpProxy({url:'ajax/AsyncHandler?projectId=$projectId&xlinkId=$xlinkId'}), reader: new Ext.data.JsonReader({ id: 'udaId' }, [ {name: 'udaId'}, {name: 'udaName'}, {name: 'udatt'}, {name:'warningMsg'}, {name:'errorcodes'}, {name: 'repositoryid'} ]), sortInfo:{field: 'udaName', direction: "ASC"} }); almEnumMappingDialog.enumComboDS.on('loadexception', function(proxy, data, arg, e) { var options = {settings:{show:"true", title:'$UDA_LOAD_ERROR_MSG'}}; ErrorHandlerLib.showResponseError( arg, options ); }); almEnumMappingDialog.enumComboDS.on('load', function(store, records, options){ ErrorHandlerLib.OnStoreLoad(store, records, options,'$ENUM_LOAD_ERROR_MSG'); }); almEnumMappingDialog.enumCombo = new Ext.form.ComboBox({ fieldLabel: '$ENUMERATION_LABEL', name: 'enumeration', store: almEnumMappingDialog.enumComboDS, displayField: 'udaName', valueField: 'udaId', selectOnFocus: true, forceSelection : true, listClass: 'x-combo-list-small', mode: 'local', emptyText :'$CHOOSE', allowBlank: true, triggerAction: 'all', editable: false, autoWidth: false, anchor: '50%', listeners : { select : almEnumMappingDialog.onEnumerationSelect, beforeselect :almEnumMappingDialog.onEnumerationBeforeSelect } }); /////////////////////////////////// LHS PANEL ////////////////////////////////////////////////// //json reader almEnumMappingDialog.lhsDS = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'ajax/AsyncHandler'}), reader: new Ext.data.JsonReader({}, [ { name:'udaId' }, { name:'udaNativeName' }, { name:'masterId' }, { name:'masterName' }, { name:'nativeIds' }, { name:'nativeNames' }, { name:'masterDefault' }, { name:'nativeDefault' }, {name:'warningMsg'}, {name:'errorcodes'}, {name: 'repositoryid'} ]), listeners : {} }); almEnumMappingDialog.lhsDS.on('load', function(store, records, options){ ErrorHandlerLib.OnStoreLoad(store, records, options,'$ENUM_MAPPING_LOAD_ERROR_MSG'); }); almEnumMappingDialog.lhsDS.on('loadexception', function(proxy, data, arg, e) { var options = {settings:{show:"true", title:'$UDA_LOAD_ERROR_MSG'}}; ErrorHandlerLib.showResponseError( arg, options ); }); var image ='../common/system/images/Default.png'; almEnumMappingDialog.lhsGridPanel = new Ext.grid.GridPanel({ store: almEnumMappingDialog.lhsDS, columns: [ {id:'master',header: '$MASTER_HEADER', width: 140, sortable: false, dataIndex: 'masterName',renderer:almEnumMappingDialog.renderName}, {id:'mapped',header: '$MAPPED_HEADER', width: 140, sortable: false, dataIndex: 'nativeNames',renderer:almEnumMappingDialog.renderMappedTo} ], tbar : [ '' + '$DRAGMSG' + '
' ], bbar : [almEnumMappingDialog.createToolTipButton('',image),'$DEFAULTMSG'], clicksToEdit: 1, stripeRows: false, height:250, width:300, frame: true, border: false, bodyBorder: false, layout: 'fit', autoExpandColumn:'mapped' , enableDragDrop :true, loadMask: {msg:'$loadmsg'}, renderTo : document.body }); // set dragdrop almEnumMappingDialog.lhsGridPanel.getDragDropText = function() { var rec = this.selModel.getSelected(); return rec.get('nativeNames'); } almEnumMappingDialog.lhsGridPanel.ddTarget = new Ext.dd.DropTarget(almEnumMappingDialog.lhsGridPanel.getEl(), { ddGroup : 'UDAGroup', copy:false, containerScroll : true, notifyDrop : almEnumMappingDialog.OnNotifyDrop } ); // For row drag and drop scrolling . Ext.dd.ScrollManager.register(almEnumMappingDialog.lhsGridPanel.view.scroller); /////////////////////////////////// RHS PANEL ////////////////////////////////////////////////// //record almEnumMappingDialog.rhsRec = Ext.data.Record.create([ {name: 'udaValueId'}, {name: 'udaValueName'}, {name:'warningMsg'}, {name:'errorcodes'}, {name: 'repositoryid'} ]); //json reader almEnumMappingDialog.rhsDS = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'ajax/AsyncHandler' }), reader: new Ext.data.JsonReader({},almEnumMappingDialog.rhsRec), sortInfo:{field: 'udaValueName', direction: "ASC"}, listeners : {} }); almEnumMappingDialog.rhsDS.on('load', function(store, records, options){ ErrorHandlerLib.OnStoreLoad(store, records, options,"$ATTR_LOAD_ERROR"); }); almEnumMappingDialog.rhsDS.on('loadexception', function(proxy, data, arg, e) { var options = {settings:{show:"true", title:'$ENUM_MAPPING_LOAD_ERROR_MSG'}}; ErrorHandlerLib.showResponseError( arg, options ); }); almEnumMappingDialog.rhsGridPanel = new Ext.grid.GridPanel({ store:almEnumMappingDialog.rhsDS, columns: [ {id:'id',hidden:true, width: 10, sortable: true, dataIndex: 'udaValueId', renderer:almEnumMappingDialog.renderName}, {id:'name',header:'$NAME_HEADER',width: 160, sortable: true, dataIndex: 'udaValueName', renderer:almEnumMappingDialog.renderName} ], tbar : ['' + '$CHOOSENATIVEMSG'+'' + almEnumMappingDialog.xLinkName + '' ], // bbar:[' '], clicksToEdit: 1, stripeRows: false, height:250, width:200, frame: true, border: false, bodyBorder: false, layout: 'fit', enableDragDrop :true, autoExpandColumn:'name', ddGroup : 'UDAGroup', renderTo : document.body, ddText:'$UDA_VALUE', loadMask: {msg:'$loadmsg'} }); almEnumMappingDialog.rhsGridPanel.getDragDropText = function() { var count = this.selModel.getCount(); var selections = this.selModel.selections; var result = ''; for(i = 0; i < count; i ++) { var rec = selections.get(i); if(i>0) result += ", "; result += rec.data.udaValueName; } return result; } /////////////////////////////////// FORM ////////////////////////////////////////////////// // form control almEnumMappingDialog.dlgFormCtrl = new Ext.FormPanel({ buttonAlign: 'right', labelAlign: 'right', labelWidth: 70, frame:true, width: 600, // reader: new Ext.data.JsonReader({}, almEnumMappingDialog.mappingRec), items: [{ layout: 'form', items: [ almEnumMappingDialog.enumCombo , { items :[{ layout: 'column', items: [ almEnumMappingDialog.lhsGridPanel, new Ext.HTMLComponent({ html:'' }), almEnumMappingDialog.rhsGridPanel ] }] } ] }], buttons: [{ text: '$SAVE_TEXT', handler: function(){ // TODO: validate form, // collect data from gridpanel, format it as json object and add to params // submit. // handle success (close dialog) // handle errors (error message) almEnumMappingDialog.dialog.hide(); almEnumMappingDialog.onSaveChanges(); almEnumMappingDialog.reset(); } }, { text: '$CANCEL_TEXT', handler: function() { almEnumMappingDialog.dialog.hide(); almEnumMappingDialog.reset(); } }] }); // form dialog if(!almEnumMappingDialog.dialog){ almEnumMappingDialog.dialog = new Ext.Window({ layout:'fit', width:550, height:400, closeAction:'hide', plain: true, items: almEnumMappingDialog.dlgFormCtrl, modal: true, resizable : true, closable: true, renderTo: document.body, title:'$ENUM_DIALOG_TITLE' }); }; almEnumMappingDialog.dialog.on('hide',function(){ Ext.getBody().on('contextmenu', function(e){ }); }) almEnumMappingDialog.dialog.on('beforeshow',function(){ document.getElementById('native').innerHTML = '$CHOOSENATIVEMSG'+'
' + almEnumMappingDialog.xLinkName + ''; }); }, /////////////////////////////////// RENDERERS ////////////////////////////////////////////////// renderMappedTo: function(value, p, record, rowindex, colindex, store) { var strs = value.split(","); var nativeids = (record.get('nativeIds') == undefined) ? '':record.get('nativeIds'); var ids = nativeids.split(","); var masterdefault = (record.get('masterDefault') == undefined) ? '':record.get('masterDefault'); var image ='../common/system/images/Default.png'; var defaultTmpl = " "+ "STRING"; var tmpl = "   STRING"; var emptyTmpl = "   <" + '$DROP_HERE' + ">"; var result = ""; for (iIndex = 0; iIndex < strs.length; iIndex++) { if (strs[iIndex] != undefined && strs[iIndex] != '' && strs[iIndex] != ' ') { var data = rowindex+ SEPARATOR + ids[iIndex] + SEPARATOR + strs[iIndex]; if ( strs[iIndex] == masterdefault) { var temp = defaultTmpl.replace(/DEFAULTIMAGE/, image); temp = temp.replace(/STRING/g, strs[iIndex]); temp = temp.replace(/NAME/g, strs[iIndex]); temp = temp.replace(/DATA/g,data); result += temp ; } else { var temp = tmpl.replace(/STRING/g,strs[iIndex]); temp = temp.replace(/NAME/g, strs[iIndex]); temp = temp.replace(/DATA/g,data); result += temp; } if(iIndex < strs.length-1) result +="
"; } else result += emptyTmpl; } return result; }, renderName : function(value, p, record, rowindex, colindex, store) { var name = g_encoder.unescapeBT(value); return "" + name+ ""; }, /////////////////////////////////// EVENT HANDLERS ////////////////////////////////////////////////// OnNotifyDrop : function (dd, e, data) { var ddat = dd.getDragData(e); if(ddat.grid == undefined) { // for across-grid DD. return false; } //only direction is rhs to lhs var srcDS = ddat.grid.getStore(); if (srcDS != almEnumMappingDialog.rhsGridPanel.getStore()) { return false; } var dstidx = ddat.rowIndex; if(dstidx == undefined) { return; } almEnumMappingDialog.modified = true; var rows = data.selections; var dstDS = almEnumMappingDialog.lhsGridPanel.getStore(); var destRecord = dstDS.getAt(dstidx); var nativeids = (destRecord.get('nativeIds') == undefined) ? '':destRecord.get('nativeIds'); var nativenames = (destRecord.get('nativeNames') == undefined) ? '':destRecord.get('nativeNames'); var masterdefault = (destRecord.get('masterDefault') == undefined) ? '':destRecord.get('masterDefault'); for (index = 0; index < rows.length; index++) { var rowidx = srcDS.indexOfId(rows[index].id); var srcRec = srcDS.getAt(rowidx); var udaId = srcRec.get('udaValueId'); var udaValue = srcRec.get('udaValueName'); var separator = ''; if(nativeids.length>0) { separator = ',' ; } nativeids += separator + udaId; nativenames += separator + udaValue; destRecord.set('nativeIds',nativeids); destRecord.set('nativeNames',nativenames); //make the first one as default if(masterdefault == '' ){ masterdefault = udaValue; destRecord.set('masterDefault',masterdefault); } srcDS.remove(srcRec); } dstDS.commitChanges(); srcDS.commitChanges(); almEnumMappingDialog.lhsGridPanel.view.refresh(); almEnumMappingDialog.rhsGridPanel.view.refresh(); }, onSaveChanges:function() { //save if (almEnumMappingDialog.currentEnum == null) { almEnumMappingDialog.currentEnum = almEnumMappingDialog.enumCombo.getValue(); } var ds = almEnumMappingDialog.lhsDS; var paramString = ""; var separator = ":";// because nativeids are already comma separated for(i = 0; i < ds.getCount();i ++) { var rec = ds.getAt(i); if (rec.get('nativeIds') != undefined && rec.get('nativeIds') != '') { paramString += "|" + rec.get('udaId') + separator + rec.get('udaNativeName') + separator + rec.get('masterId') + separator + rec.get('masterName') + separator + rec.get('nativeIds') + separator + rec.get('nativeNames') + separator + rec.get('masterDefault') + separator + rec.get('nativeDefault'); } } almEnumMappingDialog.progressWaitMsgBox = Ext.MessageBox.wait("$SAVE_ENUM_PROGRESS") var action_var = SAVE_LINK_ENUMERATION_MAPPINGS; if(almEnumMappingDialog.xLinkType == TASK){ action_var = SAVE_TASK_LINK_ENUMERATION_MAPPINGS; }else if(almEnumMappingDialog.xLinkType == CHANGEREQUEST) { action_var = SAVE_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS; }else if(almEnumMappingDialog.xLinkType == TESTCASE) { action_var = SAVE_TESTCASE_LINK_ENUMERATION_MAPPINGS; } Ext.Ajax.request({ url: 'ajax/AsyncHandler?action=' + action_var, success: function(response, options){ almEnumMappingDialog.progressWaitMsgBox.hide(); almEnumMappingDialog.OnSaveSuccess(); }, failure: function(response, options){ almEnumMappingDialog.progressWaitMsgBox.hide(); ErrorHandlerLib.onAjaxFailure(); } , settings: {show: true, msg:'$SAVE_FAILED_MSG'}, localvars: { }, params: { start: 0, limit: 25, paramString: paramString, projectid:almEnumMappingDialog.projectId , xlinkid:almEnumMappingDialog.xlinkId, udaid:almEnumMappingDialog.currentEnum } }); } , onEnumerationBeforeSelect : function (combo, rec, index) { almEnumMappingDialog.callbackfn = null; almEnumMappingDialog.selecteditem = null; if(almEnumMappingDialog.modified) { Ext.MessageBox.buttonText.ok = "$SAVE_TEXT"; Ext.Msg.show({ title:'$SAVE_CHANGES_TITLE', msg: '' + '$SAVEMSGPART1' +' ' + almEnumMappingDialog.currentEnum + ' ' + '$SAVEMSGPART2' + '', buttons: Ext.Msg.OKCANCEL, icon: Ext.MessageBox.QUESTION, animEl: almEnumMappingDialog.lhsGridPanel.getEl(), fn: function(btn) { if (btn == 'ok') { almEnumMappingDialog.callbackfn = almEnumMappingDialog.enumerationSelect; almEnumMappingDialog.selecteditem = rec; almEnumMappingDialog.onSaveChanges(); } else{ almEnumMappingDialog.enumCombo.setValue(rec.get('udaId')); almEnumMappingDialog.enumerationSelect(); } } }); Ext.MessageBox.buttonText.ok = "$OK_TEXT"; return false; } else return true;//continue selection }, enumerationSelect:function() { if (almEnumMappingDialog.selecteditem) { almEnumMappingDialog.enumCombo.setValue(almEnumMappingDialog.selecteditem.get('udaId')); } almEnumMappingDialog.callbackfn = null; almEnumMappingDialog.selecteditem = null; if(almEnumMappingDialog.currentEnum != null && almEnumMappingDialog.currentEnum != ''){ almEnumMappingDialog.modified = false; } almEnumMappingDialog.loadNativeValues(almEnumMappingDialog.enumCombo.getValue()); almEnumMappingDialog.loadMappingGrid(almEnumMappingDialog.enumCombo.getValue()); almEnumMappingDialog.currentEnum = almEnumMappingDialog.enumCombo.getValue(); } , onEnumerationSelect : function (combo, rec, index) { almEnumMappingDialog.enumerationSelect(); }, OnSaveSuccess:function(response, options) { if(almEnumMappingDialog.callbackfn) { almEnumMappingDialog.callbackfn(); } }, loadEnumList : function() { var action_var = LOADRE_ENUMUDAS; if(almEnumMappingDialog.xLinkType == TASK){ action_var = LOADTASK_ENUMUDAS; }else if(almEnumMappingDialog.xLinkType == CHANGEREQUEST) { action_var = LOAD_CHANGEREQUEST_ENUMUDAS; }else if(almEnumMappingDialog.xLinkType == TESTCASE) { action_var = LOAD_TESTCASE_ENUMUDAS; } almEnumMappingDialog.enumComboDS.load({waitMsg:'$loadmsg', params:{action: action_var,start:0, limit: 30,projectid:almEnumMappingDialog.projectId ,xlinkid:almEnumMappingDialog.xlinkId}, callback:almEnumMappingDialog.comboLoaded }); }, comboLoaded : function(rec, options, success) { if (success) { if (almEnumMappingDialog.enumComboDS.getCount() == 1) { var id = almEnumMappingDialog.enumComboDS.getAt(0).get('udaId'); almEnumMappingDialog.enumCombo.setValue(id); almEnumMappingDialog.onEnumerationSelect(almEnumMappingDialog.enumComboDS, almEnumMappingDialog.enumComboDS.getAt(0), 0); } else { // fix for displaying 'Choose...' almEnumMappingDialog.enumCombo.setValue(); } } }, setEnumComboValue:function(selection) { if (almEnumMappingDialog.enumCombo.getValue() != selection) { almEnumMappingDialog.enumCombo.setValue(selection); } }, loadNativeValues:function(selection) { var action_var = LOADREUDA_ENUMVALUES; if(almEnumMappingDialog.xLinkType == TASK){ action_var = LOADTASKUDA_ENUMVALUES; }else if(almEnumMappingDialog.xLinkType == CHANGEREQUEST) { action_var = LOAD_CHANGEREQUEST_UDA_ENUMVALUES; }else if(almEnumMappingDialog.xLinkType == TESTCASE) { action_var = LOAD_TESTCASE_UDA_ENUMVALUES; } almEnumMappingDialog.rhsDS.load({waitMsg:'$loadmsg', params:{ action:action_var, start:0, limit:25,projectid:almEnumMappingDialog.projectId ,xlinkid:almEnumMappingDialog.xlinkId,udaid:selection}}); }, loadMappingGrid:function(selection) { var action_var = LOAD_LINK_ENUMERATION_MAPPINGS; if(almEnumMappingDialog.xLinkType == TASK){ action_var = LOAD_TASK_LINK_ENUMERATION_MAPPINGS; }else if(almEnumMappingDialog.xLinkType == CHANGEREQUEST) { action_var = LOAD_CHANGEREQUEST_LINK_ENUMERATION_MAPPINGS; }else if(almEnumMappingDialog.xLinkType == TESTCASE) { action_var = LOAD_TESTCASE_LINK_ENUMERATION_MAPPINGS; } almEnumMappingDialog.lhsDS.load({waitMsg:'$loadmsg', params:{action:action_var,start:0, limit:25,projectid:almEnumMappingDialog.projectId ,xlinkid:almEnumMappingDialog.xlinkId,udaid:selection}}); }, OnMenu: function(event,doc) { almEnumMappingDialog.cmenu = new Ext.menu.Menu({ allowOtherMenus: false }); var id_value = (event.target) ? event.target.id: window.event.srcElement.id; var defaultM = new Ext.menu.Item({ id: 'default',value:id_value, text: '$DEFAULT_MENU_ITEM', handler: almEnumMappingDialog.contextMenuHandler }); var removeM = new Ext.menu.Item({ id: 'remove',value:id_value, text: '$REMOVE_MENU_ITEM', handler: almEnumMappingDialog.contextMenuHandler }); almEnumMappingDialog.cmenu .add(defaultM); almEnumMappingDialog.cmenu .add(removeM); almEnumMappingDialog.cmenu .showAt([event.clientX,event.clientY]); return false; }, contextMenuHandler : function(item, e) { e.stopEvent(); almEnumMappingDialog.modified = true; switch (item.id) { case 'default': almEnumMappingDialog.handleSetAsDefault(item); break; case 'remove': almEnumMappingDialog.removeMapping(item); break; } almEnumMappingDialog.cmenu.hide(); return false; } , handleSetAsDefault: function(item){ var args = item.value.split(SEPARATOR); if(args.length>=3) { var rowIndex = args[0]; var udaValueId = args[1]; var udaValueName = args[2]; var rec = almEnumMappingDialog.lhsDS.getAt(rowIndex); rec.set('masterDefault',udaValueName); almEnumMappingDialog.lhsDS.commitChanges(); almEnumMappingDialog.lhsGridPanel.view.refresh(); } }, removeMapping: function(item){ var args = item.value.split(SEPARATOR); //index, udaValueId,udaValueName if(args.length>=3) { var rowIndex = args[0]; var udaValueId = args[1]; var udaValueName = args[2]; var rec = almEnumMappingDialog.lhsDS.getAt(rowIndex); var nativeidsstr = (rec .get('nativeIds') == undefined) ? '':rec .get('nativeIds'); var nativeids = nativeidsstr.split(","); var nativenamesstr = (rec .get('nativeNames') == undefined) ? '':rec .get('nativeNames'); var nativevalues = nativenamesstr.split(","); var masterdefault = (rec .get('masterDefault') == undefined) ? '':rec .get('masterDefault'); var new_masterdefault = ''; if(nativeids.length > 0 && (nativeids.length == nativevalues.length )) { var new_nativeids = ''; var new_nativevalues = ''; for(iN =0; iN < nativeids.length;iN++) { if( nativeids[iN] != udaValueId) { //cho0se the next in the list as default, suppose masterdefault is same as udaValueName being removed if(new_masterdefault == ''){ new_masterdefault = nativevalues[iN]; } if (new_nativeids.length > 0) { new_nativeids += ","; new_nativevalues+= ","; } new_nativeids +=nativeids[iN]; new_nativevalues += nativevalues[iN]; } } if (masterdefault == udaValueName) { rec.set('masterDefault', new_masterdefault); } rec.set('nativeIds', new_nativeids); rec.set('nativeNames', new_nativevalues); //now add it to the rhs var newRec = new almEnumMappingDialog.rhsRec({ udaValueId: udaValueId, udaValueName: udaValueName}); almEnumMappingDialog.rhsDS.insert(0,newRec); almEnumMappingDialog.rhsDS.commitChanges(); //restore the sorted state var state = almEnumMappingDialog.rhsDS.getSortState(); almEnumMappingDialog.rhsDS.sort(state.field ,state.direction); almEnumMappingDialog.lhsDS.commitChanges(); almEnumMappingDialog.lhsGridPanel.view.refresh(); almEnumMappingDialog.rhsGridPanel.view.refresh(); } } }, reset : function() { almEnumMappingDialog.rhsDS.removeAll(); almEnumMappingDialog.lhsDS.removeAll(); almEnumMappingDialog.currentEnum = ''; almEnumMappingDialog.modified = false; }, editEnumerationMapping : function(projectId,xlinkId,xLinkName,xLinkType) { almEnumMappingDialog.projectId = projectId; almEnumMappingDialog.xlinkId = xlinkId; almEnumMappingDialog.xLinkName = xLinkName; almEnumMappingDialog.xLinkType = xLinkType; almEnumMappingDialog.dlgFormCtrl.form.reset(); Ext.getBody().on('contextmenu', function(e){ e.preventDefault(); }); almEnumMappingDialog.reset(); almEnumMappingDialog.loadEnumList(); almEnumMappingDialog.dialog.show(); }, /////////////////////////////////// HELPERS ////////////////////////////////////////////////// createToolTipButton : function(tip, imageurl) { return new Ext.Toolbar.Button({ icon: imageurl, text: tip, disabled: true, cls: 'x-btn-text-icon' }); } };