#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 = " " +
"$UDA_MAPPING_WARNING";
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; 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(!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: '{udaName}
',
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;
}
}