#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;
}
}