<!--almcustomizeudatestcasedlg.vm--> <!-- This file is resource bundle enabled --> #set ($TESTCASE_ID= $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.testcaseid")) #set ($UDA_MAPPING_WARNING = $CommonFunctions.displayTermFromResourceBundle($currentUserId, "ALMTerms", "almterms.almconnections.udamappingwarning")) var LOADTESTCASEUDAS = "LOAD_TESTCASE_UDAS"; var SAVE_TESTCASE_UDAS = "SAVE_TESTCASE_UDAS"; var LOAD_TESTCASE_ATTR_MAPPING = "LOAD_TESTCASE_ATTR_MAPPING"; var almtestcaseudadlg = { isWizardMode:false, udaFormDialog : null, udaProgressMsgBox : null, udaFormCtrl : null, storeTestcaseUda : null, isEnumerationFieldMapped : false, udaNamesArray: null, init : function() { Ext.QuickTips.init(); //add all uda strings almtestcaseudadlg.udaNamesArray=new Array("udatestcasename","udatestcasedesc","udatestcasestatus", "udatestcaseid"); //Data store for testcase UDAs almtestcaseudadlg.storeTestcaseUda = 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"} }); almtestcaseudadlg.storeTestcaseUda.addListener( 'beforeload', function(storeRef, options) { var currentALMLinkName = null; if( linksTable.selectedItem == null ) { currentALMLinkName = linksTable.formCtrl.findById('linkname').getValue(); } else { currentALMLinkName = linksTable.selectedItem['linkname']; } almtestcaseudadlg.udaProgressMsgBox = Ext.MessageBox.wait( '$LOADING_UDAS_PROGRESS_MSG' + currentALMLinkName); } ); almtestcaseudadlg.storeTestcaseUda.addListener( 'loadexception', function(proxy, data, arg, e) { almtestcaseudadlg.udaProgressMsgBox.hide(); Ext.MessageBox.show({ title: '$ERROR_TEXT', msg: arg.responseText, buttons: Ext.MessageBox.OK}); } ); var text = "<input type='image' src='../themes/default/images/warning16x16.gif'/> " + "<span>$UDA_MAPPING_WARNING</span>"; almtestcaseudadlg.udaFormCtrl = new Ext.FormPanel({ buttonAlign: 'right', labelAlign: 'right', id: 'TESTCASEUDA', isDirty: false, layout:'form', frame: true, height: 220, 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: [almtestcaseudadlg.createComboBox('$NAME_TEXT', 'udatestcasename', false ), almtestcaseudadlg.createComboBox('$DESCRIPTION_TEXT', 'udatestcasedesc', 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: [ almtestcaseudadlg.createComboBox('$STATUS_TEXT', 'udatestcasestatus', false), almtestcaseudadlg.createComboBox('$TESTCASE_ID', 'udatestcaseid', true) ] }] } ] }], buttons: [{ text: '$saveudabutton', handler: function(){ almtestcaseudadlg.saveUDAs(); } }, { text: '$canceludabutton', handler: function() { if (almtestcaseudadlg.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") { almtestcaseudadlg.udaFormCtrl.isDirty = false; almtestcaseudadlg.isEnumerationFieldMapped = false; almtestcaseudadlg.udaFormDialog.hide(); } } }); } else { almtestcaseudadlg.udaFormDialog.hide(); } } } ] }); if(!almtestcaseudadlg.udaFormDialog){ almtestcaseudadlg.udaFormDialog = new Ext.Window({ el:'udaTestcaseFormDialogHTML', layout:'fit', width:690, height:220, closeAction:'hide', plain: true, items: almtestcaseudadlg.udaFormCtrl, modal: true, resizable : false }); }; }, validateUDAs:function() { var values = new Array(almtestcaseudadlg.udaNamesArray.length); for (var i=0; i<almtestcaseudadlg.udaNamesArray.length; i++) { var name = almtestcaseudadlg.udaNamesArray[i]; var value = almtestcaseudadlg.udaFormCtrl.findById(name).getValue(); values[i] = value; if(value.length >0) { for (var j=0; j<=i; j++) { if(i != j) { if(values[j] == value) { var msg = '$DUPLICATE_MAPPING_TEXT' + "<br>" + value; Ext.MessageBox.show({ title: '$ERROR_TEXT', msg: msg, buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); return false; } } } } } return true; }, saveUDAs : function() { if(!almtestcaseudadlg.validateUDAs()) return; var xid = almtestcaseudadlg.udaFormCtrl.findById('uda_xLinkId').getValue(); almtestcaseudadlg.udaFormCtrl.form.submit({ url:'ajax/AsyncHandler', waitMsg:'$SAVING_DATA', params:{action: SAVE_TESTCASE_UDAS, uda_xLinkId : xid, projectid:'$projectId' , elementtype:TESTCASE}, success:function(form, action) { if(almtestcaseudadlg.isWizardMode || almtestcaseudadlg.isEnumerationFieldMapped) { var name = linksTable.ds.getById(xid).get('linkname'); var type = linksTable.ds.getById(xid).get('type'); linksTable.showMapEnumerations(xid,name,type); } almtestcaseudadlg.udaFormCtrl.isDirty = false; almtestcaseudadlg.isEnumerationFieldMapped = false; almtestcaseudadlg.udaFormDialog.hide(); almtestcaseudadlg.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) { almtestcaseudadlg.isWizardMode = wizardMode; almtestcaseudadlg.isEnumerationFieldMapped = false; almtestcaseudadlg.storeTestcaseUda.proxy = new Ext.data.HttpProxy({ url: 'ajax/AsyncHandler?action=' + LOADTESTCASEUDAS + '&id=' + xLinkId + '&elementtype=' + TESTCASE + "&projectid=$projectId" }); almtestcaseudadlg.storeTestcaseUda.load({ callback: function(record, options, success){ if ( success ) { almtestcaseudadlg.initUDAComboBoxes(); almtestcaseudadlg.disableComboBoxes(true); almtestcaseudadlg.udaFormCtrl.form.load({ url:'ajax/AsyncHandler?action=' + LOAD_TESTCASE_ATTR_MAPPING + '&id=' + xLinkId + "&projectid=$projectId", waitMsg:'$LOADING_MAPPING', params: { action: LOAD_TESTCASE_ATTR_MAPPING, id: xLinkId, elementtype:TESTCASE }, failure:function(form, action) { almtestcaseudadlg.udaProgressMsgBox.hide(); almtestcaseudadlg.disableComboBoxes(false); //ErrorHandlerLib.onFormFailure(form, action); alert('$UDA_MAPPING_LOAD_ERROR'+" : "+action.failureType); }, success:function(form, action) { almtestcaseudadlg.udaProgressMsgBox.hide(); almtestcaseudadlg.disableComboBoxes(false); }, settings: {show:true, title:'$UDA_MAPPING_LOAD_ERROR'} }); almtestcaseudadlg.udaFormDialog.show(); } else { almtestcaseudadlg.udaProgressMsgBox.hide(); var options = {settings:{show:"true", title:'$UDA_LOAD_ERROR'}}; var libDataStr = almtestcaseudadlg.storeTestcaseUda.reader.jsonData; ErrorHandlerLib.showErrorWithJSONObject( libDataStr, options ); } } }); }, isEnumFieldMapped: function () { if( (almtestcaseudadlg.udaFormCtrl.findById('udatestcasestatus').getValue() != DEFAULT_VALUE) ) { return true; } return false; }, initUDAComboBoxes: function () { //almtestcaseudadlg.udaFormCtrl.findById('udatestcasename').setValue(DEFAULT_VALUE); almtestcaseudadlg.udaFormCtrl.findById('udatestcasedesc').setValue(DEFAULT_VALUE); //almtestcaseudadlg.udaFormCtrl.findById('udatestcasestatus').setValue(DEFAULT_VALUE); //almtestcaseudadlg.udaFormCtrl.findById('udatestcaseid').setValue(DEFAULT_VALUE); }, disableComboBoxes: function(value){ almtestcaseudadlg.udaFormCtrl.findById('udatestcasestatus').setDisabled(value); }, createComboBox: function(displayName, id, allowblank, filterFn) { var cbox = new Ext.form.ComboBox({ fieldLabel: displayName, id: id, store: almtestcaseudadlg.storeTestcaseUda, displayField: 'udaName', valueField:'udaId', tpl: '<tpl for="."><div ext:qtip="{udatt}" class="x-combo-list-item">{udaName}</div></tpl>', width: 175, editable: false, allowBlank: allowblank, emptyText: 'Select an attribute...', mode: 'local', triggerAction: 'all', typeAhead: false, listeners: { select: function() { almtestcaseudadlg.udaFormCtrl.isDirty = true; if( this.id == 'udatestcasestatus' ) { almtestcaseudadlg.isEnumerationFieldMapped = true; } }, expand: function() { almtestcaseudadlg.storeTestcaseUda.currentComboName = this.id; almtestcaseudadlg.storeTestcaseUda.filterBy(almtestcaseudadlg.filterComboByUDAType); } } }); return cbox; }, filterComboByUDAType: function(record, id) { var cn = almtestcaseudadlg.storeTestcaseUda.currentComboName; if( record.get("udaName") == DEFAULT_VALUE ) { return true; } if( ((cn == 'udatestcasename') || (cn == 'udatestcasedesc') || (cn == 'udatestcaseid') )&& (record.get("type").indexOf("TEXT") <= -1) ) { return false; } if( ((cn == 'udatestcasename') || (cn == 'udatestcasedesc') || (cn == 'udatestcaseid') )&& (record.get("type").indexOf("TEXT") >= 0) ) { return true; } if( ((cn=='udatestcasestatus') ) && (record.get("isEnum") == "true") ) { return true; } if( ((cn!='udatestcasestatus') ) && (record.get("isEnum") == "false") ) { return true; } return false; } }