#set ($form_update_title_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.update.title")) #set ($form_add_title_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.add.title")) #set ($form_name_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.name")) #set ($form_desc_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.desc")) #set ($form_instructions_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.instructions")) #set ($form_applicability_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.applicability")) #set ($form_applicability_status_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.applicability.status")) #set ($form_applicability_association_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.applicability.association")) #set ($form_delete_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete")) #set ($form_save_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.save")) #set ($form_savecopy_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.savecopy")) #set ($form_cancel_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.cancel")) #set ($error = $CommonFunctions.displayTermFromResourceBundle($currentUserId,"Demand","demandquestions.error")) #set ($savemsg = $CommonFunctions.displayTermFromResourceBundle($currentUserId,"Demand","demandquestions.savemsg")) #set ($form_add_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.add")) #set ($form_add_tooltip_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.add.tooltip")) #set ($form_delete_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete")) #set ($form_delete_tooltip_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete.tooltip")) #set ($itemselector_tooltip_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.itemselector.tooltip")) #set ($itemselector_tolegend_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.itemselector.tolegend")) #set ($itemselector_fromlegend_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.itemselector.fromlegend")) #set ($unanswered_questions_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.unanswered.questions")) #set ($tab0_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.tab0")) #set ($tab1_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.tab1")) #set ($tab2_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.tab2")) #set ($loadmsg_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.loadmsg")) #set ($deletemsg_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.deletemsg")) #set ($requesttype_title_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.requesttypetitle")) #set ($delete_form_title_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete.title")) #set ($delete_form_msg_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete.message")) #set ($delete_form_msg_prefix = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.delete.message.prefix")) #set ($form_summary_checkbox = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.summary.checkbox")) #set ($form_summary_text = $CommonFunctions.getEncodedTermFromResourceBundle($currentUserId, "Demand", "demandforms.summary.label")) var FORM_LOAD_ALL = "FORM_LOAD_ALL"; var FORM_LOAD = "FORM_LOAD"; function displaySummaryLabel(val){ if(val == false){ formsTable.summaryPanel.setVisible(false); } else { formsTable.summaryPanel.setVisible(true); } } var formsTable = { detailDialog : null, addButton : null, deleteButton : null, refreshButton : null, saveButton : null, cancelButton : null, descPanel : null, formPanel : null, applicabilityPanel : null, ds : null, requestTypeGridPanel : null, requestTypeDS : null, requestTypeSM : null, requestTypeIdsField : null, statusGridPanel : null, statusDS : null, statusSM : null, statusIdsField : null, associationGridPanel : null, associationDS : null, associationSM : null, associationIdsField : null, summaryLabelField : null, questionDS : null, allQuestionsDS : null, questionSM : null, multiSelectCtrl : null, gridCtrl : null, toolbar : null, isLoaded : false, summaryPanel : null, summaryText : null, chkbox : null, init : function() { Ext.QuickTips.init(); var ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'ajax2/Gemini?action=demand.web.ajax.GetAllFormsAction'}), reader: new Ext.data.JsonReader( { sortField: 'sortField', sortDirection: 'sortDirection', root: 'rows' }, [ {name: 'formId'}, {name: 'name', sortType:'asUCString'}, {name: 'description'}, {name: 'instructions'}, {name: 'questionsAsked'} ]) //, //sortInfo:{field: 'sortField', direction: 'sortDirection'} }); ds.load({waitMsg:'$loadmsg_text'}); ds.on('loadexception', function(proxy, data, arg, e) { Ext.MessageBox.show({ title: 'Error', msg: arg.responseText, buttons: Ext.MessageBox.OK }); }); ds.on('load', function(store, records, options){ formsTable.ds.sort( store.reader.jsonData.sortField, store.reader.jsonData.sortDirection ); }); formsTable.ds = ds; var xg = Ext.grid; // row expander var expander = new xg.RowExpander({ tpl : new Ext.Template( '

$form_desc: {description}
' ) }); formsTable.gridCtrl = new xg.GridPanel({ ds: ds, autoExpandColumn: 'name', cm: new xg.ColumnModel([ expander, {id:'name',header: '$form_name', width: 100, sortable: true, dataIndex: 'name',renderer: this.containerName }, {header: '$form_question_count', width: 100, sortable: true, dataIndex: 'questionsAsked'} ]), loadMask: {msg:'$loadmsg_text'}, frame:false, collapsible: false, animCollapse: false, tbar:[], title:'$form_table_title', layout:'fit', headerAsText:true, renderTo: document.body, enableHdMenu: false, plugins: expander }); formsTable.gridCtrl.on('sortchange', function(grid, sortInfo) { Ext.Ajax.request({ url : 'ajax2/Gemini?action=common.admin.user.web.ajax.SaveUserSettingsAction', params : {start:0, limit:25, viewId: 'demandFormList', key: 'sort', value: sortInfo.field+","+sortInfo.direction}}); }); formsTable.addButton = new Ext.Toolbar.Button({ text:'$form_add_text', tooltip:'$form_add_tooltip_text', id:'addForm', iconCls:'add' }); formsTable.deleteButton = new Ext.Toolbar.Button({ text:'$form_delete_text', tooltip:'$form_delete_tooltip_text', iconCls:'remove' }); formsTable.refreshButton = new Ext.Toolbar.Button({ text:'$form_refresh', tooltip:'$form_refreshmsg', iconCls:'refresh' }); formsTable.saveButton = new Ext.Toolbar.Button({ text: '$form_save_text', id: 'saveForm', handler: function() { formsTable.requestTypeIdsField.setValue( selectionsToCsv( formsTable.requestTypeSM.getSelections(), 'requestTypeId' ) ); formsTable.statusIdsField.setValue( selectionsToCsv( formsTable.statusSM.getSelections(), 'statusId' ) ); formsTable.associationIdsField.setValue( selectionsToCsv( formsTable.associationSM.getSelections(), 'associationId' ) ); formsTable.questionIdsField.setValue( formsTable.multiSelectCtrl.getValue() ); formsTable.summaryLabelField.setValue( formsTable.summaryText.getValue() ); formsTable.formPanel.form.submit({url:'ajax2/Gemini', waitMsg:'$savemsg', params:{action:'demand.web.ajax.SaveFormAction'}, success:function(form, action) { formsTable.detailDialog.hide(); formsTable.ds.load({waitMsg:'$loadmsg_text',params:{start:0, limit:25}}); }, failure:function(form, action) { if (action.result) { Ext.MessageBox.show({ title: '$error', msg: action.result.data[0].msg, buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); } } }); } }); formsTable.cancelButton = new Ext.Toolbar.Button({ text: '$form_cancel_text', id: 'cancelForm', handler: function() { formsTable.detailDialog.hide(); } }); formsTable.toolbar = formsTable.gridCtrl.getTopToolbar(); formsTable.refreshButton.on('click', function(){ formsTable.ds.reload({waitMsg:'$loadmsg_text',params:{start:0, limit:25, action:'LOADTASKS'}}); }); formsTable.saveButton.on('click', function() { var value = formsTable.chkbox.getValue(); if (value == false) { formsTable.summaryText.setValue(' '); } }); formsTable.addButton.on('click', function() { formsTable.formPanel.form.reset(); formsTable.tabPanel.setActiveTab( 0 ); formsTable.requestTypeSM.clearSelections(); formsTable.statusSM.clearSelections(); formsTable.associationSM.clearSelections(); formsTable.requestTypeGridPanel.getColumnModel().setColumnHeader(0, '

\&\#160;
'); formsTable.statusGridPanel.getColumnModel().setColumnHeader(0, '
\&\#160;
'); formsTable.associationGridPanel.getColumnModel().setColumnHeader(0, '
\&\#160;
'); formsTable.requestTypeDS.load({waitMsg:'$loadmsg_text'}); formsTable.statusDS.load({waitMsg:'$loadmsg_text'}); formsTable.associationDS.load({waitMsg:'$loadmsg_text'}); formsTable.allQuestionsDS.load({waitMsg:'$loadmsg_text'}); formsTable.detailDialog.setTitle("$form_add_title_text"); formsTable.detailDialog.show( formsTable.addButton.getEl() ); }); formsTable.deleteButton.on('click', function() { var selections = formsTable.gridCtrl.selModel.getSelections(); var selectlen = selections.length; if(selectlen > 0) { Ext.Msg.show({ title:'$delete_form_title_text', msg: '$delete_form_msg_text', buttons: Ext.Msg.YESNO, fn: formsTable.onRemove, icon: Ext.MessageBox.QUESTION, animEl : formsTable.deleteButton.getEl() }); } }); formsTable.toolbar.add('->'); formsTable.toolbar.add(formsTable.addButton); formsTable.toolbar.add(formsTable.deleteButton); formsTable.toolbar.add(formsTable.refreshButton); formsTable.requestTypeIdsField = new Ext.form.Hidden({ name:'requestTypeIds' }); formsTable.questionIdsField = new Ext.form.Hidden({ name:'questionIds' }); formsTable.statusIdsField = new Ext.form.Hidden({ name:'statusIds' }); formsTable.associationIdsField = new Ext.form.Hidden({ name:'associationIds' }); formsTable.summaryLabelField = new Ext.form.Hidden({ name:'summaryLabel' }); formsTable.questionSM = new Ext.grid.RowSelectionModel({singleSelect:true}); formsTable.questionDS = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'ajax2/Gemini?action=demand.web.ajax.GetFormQuestionsAction'}), reader: new Ext.data.JsonReader({}, [ {name: 'questionId'}, {name: 'question'} ]) }); formsTable.allQuestionsDS = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'ajax2/Gemini?action=demand.web.ajax.GetAllFormQuestionsAction'}), reader: new Ext.data.JsonReader({}, [ {name: 'questionId'}, {name: 'question'} ]) }); formsTable.chkbox = new Ext.form.Checkbox({ hideLabel: false, id: 'isSummaryForm', labelSeparator : '', name: 'isSummaryForm', value: 'off', width: 350, height: 15, boxLabel: '$form_summary_checkbox' }); formsTable.chkbox.on('check', function(val){ var value = val.getValue(); displaySummaryLabel(value); }); formsTable.summaryText = new Ext.form.TextField ({ xtype:'textfield', id:'summaryLabel', hideLabel: true, name:'summaryLabel', height: 20, width: 150, name: 'summaryname', maxLength: $DemandFormMetaInfo.getColumnWidth("SummaryLabel"), allowBlank: false }); // HTMLComponent - An extension of BoxComponent to allow inline HTML // while preserving lazy rendering Ext.HTMLComponent = function(config) { Ext.apply(this,config); Ext.HTMLComponent.superclass.constructor.call(this); this.on('beforerender',function() { if ( !this.el ) { this.el = Ext.DomHelper.append(Ext.getBody(),{ tag:'div', html:this.html },true); } return true; },this); } Ext.extend(Ext.HTMLComponent,Ext.BoxComponent); var promoteInstructions = new Ext.HTMLComponent({ height: 10, html: '                  $form_summary_text:' }); formsTable.summaryPanel = new Ext.Panel({ labelWidth: 100, //defaults: {width: 230}, height: 20, waitMsgTarget: true, layout:'table', layoutConfig: { // The total column count must be specified here columns: 2 }, items: [ promoteInstructions, formsTable.summaryText ] }); formsTable.descPanel = new Ext.Panel({ labelWidth: 75, defaults: {width: 400}, height: 377, frame: true, border: false, waitMsgTarget: true, layout:'form', items:[ { xtype:'hidden', name:'formId' }, formsTable.requestTypeIdsField, formsTable.questionIdsField, formsTable.statusIdsField, formsTable.associationIdsField, formsTable.summaryLabelField, { xtype:'textfield', id: 'formName', fieldLabel: '$form_name_text', name: 'name', maxLength: $DemandFormMetaInfo.getColumnWidth("Name"), allowBlank: false }, { xtype:'textarea', fieldLabel: '$form_desc_text', id: 'formDescription', name: 'description', height: 130, maxLength: $DemandFormMetaInfo.getColumnWidth("Description"), allowBlank: true }, { xtype:'textarea', fieldLabel: '$form_instructions_text', name: 'instructions', maxLength: $DemandFormMetaInfo.getColumnWidth("Instructions"), id: 'formInstructions', height: 140, allowBlank: true }, formsTable.chkbox, formsTable.summaryPanel ] }); formsTable.multiSelectCtrl = new Ext.ux.ItemSelector({ //xtype:"itemselector", name:"itemselector", //fieldLabel:"Questions", dataFields:["questionId", "question"], toStore: formsTable.questionDS, fromStore: formsTable.allQuestionsDS, width: 550, height: 300, msWidth:315, msHeight:300, valueField:"questionId", displayField:"question", imagePath:"../common/MultiselectItemSelector-3.0", bottomTip:"$itemselector_tooltip_text", //switchToFrom:true, toLegend:"$itemselector_tolegend_text", fromLegend:"$itemselector_fromlegend_text", hideNavIcons:false }); formsTable.questionPanel = new Ext.Panel({ width: 660, height: 377, frame: true, waitMsgTarget: true, //style:"padding:5px;", items: [ formsTable.multiSelectCtrl, { xtype:'checkbox', name: 'unAnsweredQuestions', id: 'unAnsweredQuestions', fieldLabel: '', labelSeparator: '', boxLabel: '$unanswered_questions_text' } ] }); #parse("formapplicabilitytab.vm") formsTable.tabPanel = new Ext.TabPanel({ deferredRender:false, id: 'tabPanel', height: 500, activeTab: 0, items:[ { title: '$tab0_text', tabId: 0, id: 'descriptionTab', items: [ formsTable.descPanel ] }, { title: '$tab1_text', tabId: 1, id: 'applicabilityTab', items: [ formsTable.applicabilityPanel ] }, { title: '$tab2_text', tabId : 2, id: 'questionTab', items: [ formsTable.questionPanel ] } ] }); formsTable.formPanel = new Ext.FormPanel({ buttonAlign: 'right', labelAlign: 'right', labelWidth: 75, frame:true, defaultType: 'textfield', waitMsgTarget: true, reader: new Ext.data.JsonReader({id: 'formId'}, ['formId', 'name', 'description', 'instructions', 'isSummaryForm', 'summaryLabel', 'layout', 'responseOptions', 'layoutQuestionList', 'unAnsweredQuestions' ]), items:[ formsTable.tabPanel ], buttons:[ formsTable.saveButton, formsTable.cancelButton ] }); if (!formsTable.detailDialog) { formsTable.detailDialog = new Ext.Window({ title: '$form_update_title_text', layout: 'fit', width:680, height:500, closeAction:'hide', plain: true, items: formsTable.formPanel, modal: true, resizable : false, renderTo: document.body }); }; }, onRemove : function(val) { if(val == "yes"){ var selections = formsTable.gridCtrl.selModel.getSelections(); var ids = ""; for (i = 0; i < selections.length; i++) { var record = selections[i]; if (ids != "") { ids += ","; } ids += record.data.formId; } formsTable.deleteForms( ids ); } }, deleteForms : function (ids) { formsTable.ds.load({ waitMsg: '$deletemsg', params:{start:0, limit:25, group:'YES', subaction: 'DELETE', deleteids:ids} }); }, loadData : function(formId) { formsTable.requestTypeDS.load({waitMsg:'$loadmsg_text', params:{formId:formId}}); formsTable.statusDS.load({waitMsg:'$loadmsg_text', params:{formId:formId}}); formsTable.associationDS.load({waitMsg:'$loadmsg_text', params:{formId:formId}}); formsTable.questionDS.load({waitMsg:'$loadmsg_text', params:{formId:formId}}); formsTable.allQuestionsDS.load({waitMsg:'$loadmsg_text', params:{formId:formId}}); }, containerName : function(value, metadata, record, rowindex, colindex, store) { var title = value; var formId = record.get('formId'); return "
" + title + "
"; }, showFormDetails : function(formId) { formsTable.formPanel.form.load({ url:'ajax2/Gemini?action=demand.web.ajax.GetFormDetailAction&formId='+formId, waitMsg:'$loadmsg_text', success:function(form, action) { formsTable.loadData( formId ); } }); formsTable.detailDialog.setTitle("$form_update_title_text"); formsTable.tabPanel.setActiveTab( 0 ); formsTable.requestTypeGridPanel.getColumnModel().setColumnHeader(0, '
\&\#160;
'); formsTable.statusGridPanel.getColumnModel().setColumnHeader(0, '
\&\#160;
'); formsTable.associationGridPanel.getColumnModel().setColumnHeader(0, '
\&\#160;
'); formsTable.detailDialog.show( formsTable.addButton.getEl() ); } } function selectRequestTypes (s) { var a = new Array(); var i = 0; var values = s.split(","); for (var j=0; j < values.length; j++) { var records = formsTable.requestTypeDS.query( 'name', values[j] ); records.each ( function (item, index, length) { if (item.get('name') == values[j]) { a[i] = item; i++; } } ); } formsTable.requestTypeSM.selectRecords( a ); } function selectStatuses (s) { var a = new Array(); var i = 0; var values = s.split(","); for (var j=0; j < values.length; j++) { var records = formsTable.statusDS.query( 'name', values[j] ); records.each ( function (item, index, length) { if (item.get('name') == values[j]) { a[i] = item; i++; } } ); } formsTable.statusSM.selectRecords( a ); } function selectAssociations (s) { var a = new Array(); var i = 0; var values = s.split(","); for (var j=0; j < values.length; j++) { var records = formsTable.associationDS.query( 'name', values[j] ); records.each ( function (item, index, length) { if (item.get('name') == values[j]) { a[i] = item; i++; } } ); } formsTable.associationSM.selectRecords( a ); } function selectQuestion (s) { formsTable.multiSelectCtrl.fromMultiselect.setValueByDisplayField( s ); formsTable.multiSelectCtrl.fromTo(); } function setApplicabilityTab () { formsTable.tabPanel.setActiveTab( 1 ) } function setQuestionTab () { formsTable.tabPanel.setActiveTab( 2 ) } function selectionsToCsv (selections, key) { var s = ""; for (var i = 0; i < selections.length; i++) { if (s.length > 0) { s += ","; } s = s + selections[i].get( key ); } return s; } function introspect (x) { var s = ''; for (var i in x) { if (x[i]) s += i + ' = ' + x[i] + '\n'; } alert( s ); }