new Ext.KeyMap(document, { key: Ext.EventObject.F5, fn: function(keycode, e) { if (! e.ctrlKey) { if (Ext.isIE) { // IE6 doesn't allow cancellation of the F5 key, so trick it into // thinking some other key was pressed (backspace in this case) e.browserEvent.keyCode = 8; } e.stopEvent(); //document.location = document.location; storeCases.reload(); } else Ext.Msg.alert(TRANSLATIONS.ID_REFRESH_LABEL, TRANSLATIONS.ID_REFRESH_MESSAGE); } }); /*** global variables **/ var storeCases; var storeReassignCases; var grid; var textJump; var caseSummary = function() { var rowModel = grid.getSelectionModel().getSelected(); if (rowModel) { openSummaryWindow(rowModel.data.APP_UID, rowModel.data.DEL_INDEX); } else { msgBox('Information', TRANSLATIONS.ID_SELECT_ONE_AT_LEAST); } }; function caseNotes(){ var rowModel = grid.getSelectionModel().getSelected(); if(rowModel){ var appUid = rowModel.data.APP_UID; var delIndex = rowModel.data.DEL_INDEX; var caseTitle = (rowModel.data.APP_TITLE) ? rowModel.data.APP_TITLE : rowModel.data.APP_UID; openCaseNotesWindow(appUid,true); }else{ msgBox('Information', TRANSLATIONS.ID_SELECT_ONE_AT_LEAST); } } function openCase(){ var rowModel = grid.getSelectionModel().getSelected(); if(rowModel){ var appUid = rowModel.data.APP_UID; var delIndex = rowModel.data.DEL_INDEX; var caseTitle = (rowModel.data.APP_TITLE) ? rowModel.data.APP_TITLE : rowModel.data.APP_UID; Ext.Msg.show({ msg: TRANSLATIONS.ID_OPEN_CASE + ' ' + caseTitle, width:300, wait:true, waitConfig: {interval:200} }); params = ''; switch(action){ case 'to_revise': params += 'APP_UID=' + appUid; params += '&DEL_INDEX=' + delIndex; params += '&to_revise=true'; requestFile = 'open'; break; case 'sent': // = participated params += 'APP_UID=' + appUid; params += '&DEL_INDEX=' + delIndex; //requestFile = '../cases/cases_Open'; requestFile = 'open'; break; case 'todo': case 'draft': case 'paused': case 'unassigned': default: params += 'APP_UID=' + appUid; params += '&DEL_INDEX=' + delIndex; //requestFile = '../cases/cases_Open'; requestFile = 'open'; break; } try { try { parent._CASE_TITLE = caseTitle; } catch (e) { // Nothing to do } } catch (e) { // Nothing to do } params += '&action=' + action; redirect(requestFile + '?' + params); } else msgBox('Information', TRANSLATIONS.ID_SELECT_ONE_AT_LEAST); } function jumpToCase(appNumber){ params = 'APP_NUMBER=' + appNumber; params += '&action=jump'; requestFile = '../cases/open'; redirect(requestFile + '?' + params); } function deleteCase() { var rows = grid.getSelectionModel().getSelections(); if( rows.length > 0 ) { ids = Array(); for(i=0; i 0 ) { app_uid = Array(); del_index = Array(); for(i=0; i" + TRANSLATIONS.ID_VIEW + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); } function deleteLink(value, p, r){ return String.format("" + TRANSLATIONS.ID_DELETE + "", r.data['APP_UID'] ); } function viewLink(value, p, r){ return String.format("" + TRANSLATIONS.ID_VIEW + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); } function unpauseLink(value, p, r){ return String.format("" + TRANSLATIONS.ID_UNPAUSE + "", r.data['APP_UID'], r.data['DEL_INDEX'] ); } function convertDate ( value ) { myDate = new Date( 1900,0,1,0,0,0); try{ if(!Ext.isDate( value )){ var myArray = value.split(' '); var myArrayDate = myArray[0].split('-'); if ( myArray.length > 1 ) var myArrayHour = myArray[1].split(':'); else var myArrayHour = new Array('0','0','0'); var myDate = new Date( myArrayDate[0], myArrayDate[1]-1, myArrayDate[2], myArrayHour[0], myArrayHour[1], myArrayHour[2] ); } } catch(e){}; return myDate; } function showDate (value,p,r) { var myDate = convertDate( value ); return String.format("{0}", myDate.dateFormat( FORMATS.casesListDateFormat )); } function dueDate(value, p, r){ var myDate = convertDate( value ); var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; return String.format("{0}", myDate.dateFormat(FORMATS.casesListDateFormat), myColor ); } var renderSummary = function (val, p, r) { var summaryIcon = ''; return summaryIcon; }; function renderNote(val,p,r) { appUid = r.data['APP_UID']; title = r.data['APP_TITLE']; return ''; } function showField (value,p,r) { if ( r.data['DEL_INIT_DATE'] ) return String.format("{0}", value ); else return String.format("{0}", value ); } for(var i = 0, len = columns.length; i < len; i++){ var c = columns[i]; c.renderer = showField; if( c.dataIndex == 'DEL_TASK_DUE_DATE') c.renderer = dueDate; if( c.dataIndex == 'APP_UPDATE_DATE') c.renderer = showDate; if( c.id == 'deleteLink') c.renderer = deleteLink; if( c.id == 'viewLink') c.renderer = viewLink; if( c.id == 'unpauseLink') c.renderer = unpauseLink; if( c.dataIndex == 'CASE_SUMMARY') c.renderer = renderSummary; if( c.dataIndex == 'CASE_NOTES_COUNT') c.renderer = renderNote; } //adding the hidden field DEL_INIT_DATE readerFields.push ( {name: "DEL_INIT_DATE"}); readerFields.push ( {name: "APP_UID"}); readerFields.push ( {name: "DEL_INDEX"}); for (i=0; i" ; }; } if (ajaxServerResponse['TOTAL']!=undefined&&ajaxServerResponse['TOTAL']!=-1){ message = message + "Total Cases Reassigned: " + ajaxServerResponse['TOTAL']; } else { message = ""; }; if (message!=""){ Ext.MessageBox.alert( 'Status Reassignment', message, '' ); } }, params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:true } }); /*storeReassignCases.setBaseParam('selected', true); var result = storeReassignCases.save(); //storeCases.load({params:{process: filterProcess, start : 0 , limit : pageSize}}); newPopUp.hide(); storeCases.reload(); //storeReassignCases.reload(); */ } }); // Create HttpProxy instance, all CRUD requests will be directed to single proxy url. var proxyCasesList = new Ext.data.HttpProxy({ api: { read : 'proxyCasesList' } }); // Typical JsonReader with additional meta-data params for defining the core attributes of your json-response // the readerFields is defined in PHP server side var readerCasesList = new Ext.data.JsonReader({ totalProperty: 'totalCount', successProperty: 'success', idProperty: 'index', root: 'data', messageProperty: 'message' }, readerFields ); // The new DataWriter component. //currently we are not using this in casesList, but it is here just for complete definition var writerCasesList = new Ext.data.JsonWriter({ encode: true, writeAllFields: true }); var proxyReassignCasesList = new Ext.data.HttpProxy({ api: { read : 'proxyReassignCasesList' //create : 'proxySaveReassignCasesList', //update : 'proxySaveReassignCasesList', //destroy : 'proxyReassignCasesList' } }); var readerReassignCasesList = new Ext.data.JsonReader({ totalProperty: 'totalCount', successProperty: 'success', idProperty: 'index', root: 'data', messageProperty: 'message' }, reassignReaderFields ); // The new DataWriter component. //currently we are not using this in casesList, but it is here just for complete definition var writerReassignCasesList = new Ext.data.JsonWriter({ encode: true, writeAllFields: true }); // Typical Store collecting the Proxy, Reader and Writer together. // This is the store for Cases List storeCases = new Ext.data.Store({ remoteSort: true, proxy: proxyCasesList, reader: readerCasesList, writer: writerCasesList, // <-- plug a DataWriter into the store just as you would a Reader autoSave: true, // <-- false would delay executing create, update, destroy requests until specifically told to do so with some [save] buton. sortInfo:{field: 'APP_CACHE_VIEW.APP_NUMBER', direction: "DESC"} }); storeReassignCases = new Ext.data.Store({ remoteSort: false, proxy : proxyReassignCasesList, reader: readerReassignCasesList //writer: writerReassignCasesList, // <-- plug a DataWriter into the store just as you would a Reader //autoSave: false // <-- false would delay executing create, update, destroy requests until specifically told to do so with some [save] buton. }); //Layout Resizing storeCases.on('load',function(){var viewport = Ext.getCmp("viewportcases");viewport.doLayout();}) // create the Data Store for processes var storeProcesses = new Ext.data.JsonStore({ root: 'data', totalProperty: 'totalCount', idProperty: 'index', remoteSort: true, fields: [ 'PRO_UID', 'APP_PRO_TITLE' ], proxy: new Ext.data.HttpProxy({ url: 'proxyProcessList?t=new' }) }); storeProcesses.setDefaultSort('APP_PRO_TITLE', 'asc'); // creating the button for filters var btnRead = new Ext.Button ({ id: 'read', text: TRANSLATIONS.ID_OPT_READ, enableToggle: true, toggleHandler: onItemToggle, allowDepress: false, pressed: false }); var btnUnread = new Ext.Button ({ id: 'unread', text: TRANSLATIONS.ID_OPT_UNREAD, enableToggle: true, toggleHandler: onItemToggle, allowDepress: false, pressed: false }); var btnAll = new Ext.Button ({ id: 'all', text: TRANSLATIONS.ID_OPT_ALL, enableToggle: true, toggleHandler: onItemToggle, allowDepress: false, pressed: true }); var btnStarted = new Ext.Button ({ id: 'started', // text: 'started by me', text: TRANSLATIONS.ID_OPT_STARTED, enableToggle: true, toggleHandler: onItemToggle, allowDepress: true, pressed: false }); var btnCompleted = new Ext.Button ({ id: 'completed', // text: 'Completed by me', text: TRANSLATIONS.ID_OPT_COMPLETED, enableToggle: true, toggleHandler: onItemToggle, allowDepress: true, pressed: false }); // ComboBox creation processValues var resultTpl = new Ext.XTemplate( '
', ' {APP_PRO_TITLE}', '
' ); var comboProcess = new Ext.form.ComboBox({ width : 200, boxMaxWidth : 200, editable : true, displayField : 'APP_PRO_TITLE', valueField : 'PRO_UID', forceSelection: false, emptyText: TRANSLATIONS.ID_EMPTY_PROCESSES, selectOnFocus: true, tpl: resultTpl, typeAhead: true, mode: 'local', autocomplete: true, triggerAction: 'all', store : new Ext.data.ArrayStore({ fields : ['PRO_UID','APP_PRO_TITLE'], data : processValues }), listeners:{ scope: this, 'select': function() { filterProcess = comboProcess.value; if ( action == 'search' ){ storeCases.setBaseParam('dateFrom', dateFrom.getValue()); storeCases.setBaseParam('dateTo', dateTo.getValue()); } storeCases.setBaseParam('process', filterProcess); storeCases.load({params:{process: filterProcess, start : 0 , limit : pageSize}}); }}, iconCls: 'no-icon' //use iconCls if placing within menu to shift to right side of menu }); var comboAllUsers = new Ext.form.ComboBox({ width : 180, boxMaxWidth : 180, editable : false, displayField : 'USR_FULLNAME', valueField : 'USR_UID', //typeAhead : true, mode : 'local', forceSelection: true, triggerAction: 'all', emptyText: TRANSLATIONS.ID_EMPTY_USERS, selectOnFocus: true, //getListParent: function() { // return this.el.up('.x-menu'); //}, store : new Ext.data.ArrayStore({ fields: ['USR_UID','USR_FULLNAME'], data : allUsersValues }), listeners:{ scope: this, 'select': function() { filterProcess = comboAllUsers.value; if (filterProcess==''){ btnSelectAll.hide(); btnUnSelectAll.hide(); btnReassign.hide(); } else { btnSelectAll.show(); btnUnSelectAll.show(); btnReassign.show(); } storeCases.setBaseParam( 'user', filterProcess); storeCases.load({params:{user: filterProcess, start : 0 , limit : pageSize}}); }}, iconCls: 'no-icon' //use iconCls if placing within menu to shift to right side of menu }); var btnSelectAll = new Ext.Button ({ text: TRANSLATIONS.CHECK_ALL, // text: 'Check All', // text: TRANSLATIONS.LABEL_SELECT_ALL, handler: function(){ grid.getSelectionModel().selectAll(); } }); var btnUnSelectAll = new Ext.Button ({ text: TRANSLATIONS.UNCHECK_ALL, // text: 'Un-Check All', // text: TRANSLATIONS.LABEL_UNSELECT_ALL, handler: function(){ grid.getSelectionModel().clearSelections(); } }); var btnReassign = new Ext.Button ({ text: TRANSLATIONS.ID_REASSIGN, // text: 'Reassign', // text: TRANSLATIONS.LABEL_UNSELECT_ALL, handler: function(){ reassign(); } }); // var conn = new Ext.data.Connection(); var nav = new Ext.FormPanel({ labelWidth:100, frame:true, width:300, collapsible:true, defaultType:'textfield', items:[{ fieldLabel:'Reassign To', name:'txt_stock_in', allowBlank:true }] }); var reassignPopup = new Ext.Window({ el:'reassign-panel', modal:true, layout:'fit', width:300, height:300, closable:false, resizable:false, plain:true, items:[nav], buttons:[{ text: TRANSLATIONS.ID_SUBMIT, handler:function(){ Ext.Msg.alert('OK','save ?'); Ext.Msg.prompt('Name','please enter your name: ',function(btn,text){ if(btn=='ok') { alert('ok'); } }); } }, { text: TRANSLATIONS.ID_CLOSE, handler:function() { reassignPopup.hide(); } }] }); // ComboBox creation var comboStatus = new Ext.form.ComboBox({ width : 90, boxMaxWidth : 90, editable : false, mode : 'local', store : new Ext.data.ArrayStore({ fields: ['id', 'value'], data : statusValues }), valueField : 'id', displayField : 'value', triggerAction : 'all', //typeAhead: true, //forceSelection: true, //emptyText: 'Select a status...', //selectOnFocus: true, //getListParent: function() { // return this.el.up('.x-menu'); //}, listeners:{ scope: this, 'select': function() { filterStatus = comboStatus.value; storeCases.setBaseParam( 'status', filterStatus); storeCases.setBaseParam( 'start', 0); storeCases.setBaseParam( 'limit', pageSize); storeCases.load(); }}, iconCls: 'no-icon' //use iconCls if placing within menu to shift to right side of menu }); // ComboBox creation processValues var comboUser = new Ext.form.ComboBox({ width : 160, boxMaxWidth : 180, editable : true, displayField : 'USR_FULLNAME', valueField : 'USR_UID', mode : 'local', forceSelection: false, emptyText: TRANSLATIONS.ID_SELECT, selectOnFocus: true, typeAhead: true, mode: 'local', autocomplete: true, triggerAction: 'all', store : new Ext.data.ArrayStore({ fields: ['USR_UID','USR_FULLNAME'], data : userValues }), listeners:{ scope: this, 'select': function() { filterUser = comboUser.value; storeCases.setBaseParam( 'user', filterUser); storeCases.setBaseParam( 'start', 0); storeCases.setBaseParam( 'limit', pageSize); storeCases.load(); }}, iconCls: 'no-icon' //use iconCls if placing within menu to shift to right side of menu }); var textSearch = new Ext.form.TextField ({ allowBlank: true, ctCls:'pm_search_text_field', width: 150, emptyText: TRANSLATIONS.ID_EMPTY_SEARCH, listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { doSearch(); } } } }); var btnSearch = new Ext.Button ({ text: TRANSLATIONS.ID_SEARCH, handler: doSearch }); function doSearch(){ searchText = textSearch.getValue(); storeCases.setBaseParam( 'search', searchText); storeCases.load({params:{ start : 0 , limit : pageSize }}); } var resetSearchButton = { text:'X', ctCls:'pm_search_x_button', handler: function(){ textSearch.setValue(''); doSearch(); } } textJump = { xtype: 'numberfield', id : 'textJump', allowBlank: true, width: 50, emptyText: TRANSLATIONS.ID_CASESLIST_APP_UID, listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { // defining an id and using the Ext.getCmp method improves the accesibility of Ext components caseNumber = parseFloat(Ext.util.Format.trim(Ext.getCmp('textJump').getValue())); if( caseNumber ) jumpToCase(caseNumber); else msgBox('Input Error', 'You have set a invalid Application Number', 'error'); } } } }; var btnJump = new Ext.Button ({ text: TRANSLATIONS.ID_OPT_JUMP, handler: function(){ var caseNumber = parseFloat(Ext.util.Format.trim(Ext.getCmp('textJump').getValue())); if (caseNumber){ jumpToCase(caseNumber); } else { msgBox('Input Error', 'You have set a invalid Application Number', 'error'); } } }); /*** menu and toolbars **/ function onMessageContextMenu(grid, rowIndex, e) { e.stopEvent(); var coords = e.getXY(); messageContextMenu.showAt([coords[0], coords[1]]); enableDisableMenuOption(); } function enableDisableMenuOption(){ var rows = grid.getSelectionModel().getSelections(); switch(action){ case 'todo': if( rows.length == 0 ) { optionMenuOpen.setDisabled(true); optionMenuPause.setDisabled(true); optionMenuReassign.setDisabled(true); optionMenuCancel.setDisabled(true); } else if( rows.length == 1 ) { optionMenuOpen.setDisabled(false); optionMenuPause.setDisabled(false); optionMenuReassign.setDisabled(false); optionMenuCancel.setDisabled(false); } else { optionMenuOpen.setDisabled(true); optionMenuPause.setDisabled(true); optionMenuReassign.setDisabled(true); optionMenuCancel.setDisabled(false); } break; case 'draft': if( rows.length == 0 ) { optionMenuOpen.setDisabled(true); optionMenuPause.setDisabled(true); optionMenuReassign.setDisabled(true); optionMenuDelete.setDisabled(true); } else if( rows.length == 1 ) { optionMenuOpen.setDisabled(false); optionMenuPause.setDisabled(false); optionMenuReassign.setDisabled(false); optionMenuDelete.setDisabled(false); } else { optionMenuOpen.setDisabled(true); optionMenuPause.setDisabled(true); optionMenuReassign.setDisabled(true); optionMenuDelete.setDisabled(false); } break; default: if( rows.length == 0 ) { optionMenuOpen.setDisabled(true); } else { optionMenuOpen.setDisabled(false); } } } var menuItems; //alert(action); optionMenuOpen = new Ext.Action({ text: _('ID_OPEN'), handler: openCase, disabled: true }); optionMenuUnpause = new Ext.Action({ text: TRANSLATIONS.ID_UNPAUSE_CASE, iconCls: 'ICON_CASES_UNPAUSE', handler: unpauseCase }); optionMenuPause = new Ext.Action({ text: TRANSLATIONS.ID_PAUSE_CASE, iconCls: 'ICON_CASES_PAUSED', menu: new Ext.menu.DateMenu({ //vtype: 'daterange', handler: function(dp, date){ pauseCase(date); } }) }); var optionMenuSummary = new Ext.Action({ text: _('ID_SUMMARY'), iconCls: 'x-tree-node-icon ss_application_form', handler: caseSummary }); optionMenuNotes = new Ext.Action({ text: _('ID_CASES_NOTES'), iconCls: 'ICON_CASES_NOTES', handler: caseNotes }); reassingCaseToUser = function() { var APP_UID = optionMenuReassignGlobal.APP_UID; var DEL_INDEX = optionMenuReassignGlobal.DEL_INDEX; var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); if( rowSelected ) { PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ Ext.Ajax.request({ url : 'casesList_Ajax' , params : {actionAjax : 'reassignCase', USR_UID: rowSelected.data.USR_UID, APP_UID: APP_UID, DEL_INDEX:DEL_INDEX}, success: function ( result, request ) { var data = Ext.util.JSON.decode(result.responseText); if( data.status == 0 ) { try { parent.notify('', data.msg); } catch (e) { // Nothing to do } location.href = 'casesListExtJs'; } else { alert(data.msg); } }, failure: function ( result, request) { Ext.MessageBox.alert('Failed', result.responseText); } }); }); } } reassingCaseToUser = function() { var APP_UID = optionMenuReassignGlobal.APP_UID; var DEL_INDEX = optionMenuReassignGlobal.DEL_INDEX; var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); if( rowSelected ) { PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ Ext.Ajax.request({ url : 'casesList_Ajax' , params : {actionAjax : 'reassignCase', USR_UID: rowSelected.data.USR_UID, APP_UID: APP_UID, DEL_INDEX:DEL_INDEX}, success: function ( result, request ) { var data = Ext.util.JSON.decode(result.responseText); if( data.status == 0 ) { parent.notify('', data.msg); location.href = 'casesListExtJs'; } else { alert(data.msg); } }, failure: function ( result, request) { Ext.MessageBox.alert('Failed', result.responseText); } }); }); } } //optionMenuPause.setMinValue('2010-11-04'); var optionMenuReassignGlobal = {}; optionMenuReassignGlobal.APP_UID = ""; optionMenuReassignGlobal.DEL_INDEX = ""; optionMenuReassign = new Ext.Action({ text: TRANSLATIONS.ID_REASSIGN, iconCls: 'ICON_CASES_TO_REASSIGN', handler: function() { var casesGrid_ = Ext.getCmp('casesGrid'); var rowSelected = casesGrid_.getSelectionModel().getSelected(); var rowAllJsonArray = casesGrid_.store.reader.jsonData.data; var rowSelectedIndex = casesGrid_.getSelectionModel().lastActive; var rowSelectedJsonArray = rowAllJsonArray[rowSelectedIndex]; var TAS_UID = rowSelectedJsonArray.TAS_UID; var USR_UID = rowSelectedJsonArray.USR_UID; var APP_UID = rowSelectedJsonArray.APP_UID; var DEL_INDEX = rowSelectedJsonArray.DEL_INDEX; optionMenuReassignGlobal.APP_UID = APP_UID; optionMenuReassignGlobal.DEL_INDEX = DEL_INDEX; if( rowSelected ){ var store = new Ext.data.Store( { autoLoad: true, proxy : new Ext.data.HttpProxy({ url: 'casesList_Ajax?actionAjax=getUsersToReassign&TAS_UID='+TAS_UID }), reader : new Ext.data.JsonReader( { root: 'data', fields : [ {name : 'USR_UID'}, {name : 'PRO_USERNAME'}, {name : 'USR_FIRSTNAME'}, {name : 'PRO_LASTNAME'} ] }) }); var grid = new Ext.grid.GridPanel( { id: 'reassignGrid', height:300, width:'300', title : '', stateful : true, stateId : 'grid', enableColumnResize: true, enableHdMenu: true, frame:false, cls : 'grid_with_checkbox', columnLines: true, viewConfig: { forceFit:true }, cm: new Ext.grid.ColumnModel({ defaults: { width: 200, sortable: true }, columns: [ {id:'USR_UID', dataIndex: 'USR_UID', hidden:true, hideable:false}, {header: _('ID_FIRSTNAME'), dataIndex: 'USR_FIRSTNAME', width: 300}, {header: _('ID_LASTNAME'), dataIndex: 'USR_LASTNAME', width: 300} ] }), store: store, tbar:[ { text:_('ID_REASSIGN'), iconCls: 'ICON_CASES_TO_REASSIGN', handler: function(){ //Actions.reassignCase reassingCaseToUser(); } } ], listeners: { //rowdblclick: openCase, render: function(){ this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')}); this.ownerCt.doLayout(); } } }); var win = new Ext.Window({ title: '', width: 450, height: 280, layout:'fit', autoScroll:true, modal: true, maximizable: false, items: [grid] }); win.show(); } } }); optionMenuDelete = new Ext.Action({ text: TRANSLATIONS.ID_DELETE, iconCls: 'ICON_CASES_DELETE', handler: deleteCase }); optionMenuCancel = new Ext.Action({ text: TRANSLATIONS.ID_CANCEL, iconCls: 'ICON_CASES_CANCEL', handler: cancelCase }); switch(action){ case 'todo': menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); break; case 'draft': menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; if( ___p34315105.search('R') != -1 ) menuItems.push(optionMenuReassign); menuItems.push(optionMenuDelete); break; case 'paused': menuItems = [optionMenuUnpause, optionMenuSummary, optionMenuNotes]; break; default: menuItems = [optionMenuSummary, optionMenuNotes] } contextMenuItems = new Array(); contextMenuItems.push(optionMenuOpen); for (i=0; i', // begin using the right-justified button container TRANSLATIONS.ID_PROCESS, comboProcess, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarGeneral = [ optionMenuOpen, btnRead, '-', btnUnread, '-', btnAll, '->', // begin using the right-justified button container TRANSLATIONS.ID_PROCESS, comboProcess, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarUnassigned = [ optionMenuOpen, btnRead, '-', btnUnread, '-', btnAll, '->', // begin using the right-justified button container TRANSLATIONS.ID_PROCESS, comboProcess, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarDraft = [ optionMenuOpen, { xtype: 'tbsplit', text: TRANSLATIONS.ID_ACTIONS, menu: menuItems }, '->', TRANSLATIONS.ID_PROCESS, comboProcess, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarToRevise = [ optionMenuOpen, '->', // begin using the right-justified button container TRANSLATIONS.ID_PROCESS, comboProcess, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarToReassign = [ optionMenuOpen, '-', btnSelectAll, btnUnSelectAll, '-', btnReassign, '->', 'user', comboAllUsers, '-', TRANSLATIONS.ID_PROCESS, comboProcess, textSearch, resetSearchButton, btnSearch, ' ', ' ' ]; var toolbarSent = [ optionMenuOpen, btnStarted, '-', btnCompleted, '-', btnAll, '->', // begin using the right-justified button container TRANSLATIONS.ID_PROCESS, comboProcess, '-', TRANSLATIONS.ID_STATUS, comboStatus, '-', textSearch, resetSearchButton, btnSearch, '-', textJump, btnJump, ' ', ' ' ]; var toolbarSearch = [ ' ', TRANSLATIONS.ID_DELEGATE_DATE_FROM, dateFrom, ' ', TRANSLATIONS.ID_TO, dateTo, new Ext.Button ({ text: TRANSLATIONS.ID_FILTER_BY_DELEGATED_DATE, handler: function(){ storeCases.setBaseParam('dateFrom', dateFrom.getValue()); storeCases.setBaseParam('dateTo', dateTo.getValue()); storeCases.load({params:{ start : 0 , limit : pageSize }}); } }), '-' ]; var firstToolbarSearch = new Ext.Toolbar({ region: 'north', width: '100%', autoHeight: true, items: [ optionMenuOpen, '->', TRANSLATIONS.ID_PROCESS, comboProcess, '-', TRANSLATIONS.ID_STATUS, comboStatus, '-', TRANSLATIONS.ID_USER, comboUser, '-', textSearch, resetSearchButton, btnSearch ] }); //alert(action); switch (action) { case 'draft' : itemToolbar = toolbarDraft; break; case 'sent' : itemToolbar = toolbarSent; break; case 'to_revise' : itemToolbar = toolbarToRevise; break; case 'to_reassign': itemToolbar = toolbarToReassign; break; case 'search' : itemToolbar = toolbarSearch; break; case 'unassigned' : itemToolbar = toolbarUnassigned; break; case 'gral' : itemToolbar = toolbarGeneral; break; default : itemToolbar = toolbarTodo; break; } var tb = new Ext.Toolbar({ height: 33, items: itemToolbar }); // create the editor grid grid = new Ext.grid.GridPanel({ region: 'center', id: 'casesGrid', store: storeCases, cm: cm, sm: new Ext.grid.RowSelectionModel({ selectSingle: false, listeners:{ selectionchange: function(sm){ enableDisableMenuOption(); // switch(sm.getCount()){ // case 0: Ext.getCmp('assignButton').disable(); break; // default: Ext.getCmp('assignButton').enable(); break; // } } } }), //autoHeight: true, layout: 'fit', viewConfig: { forceFit:true, cls:"x-grid-empty", emptyText: (TRANSLATIONS.ID_NO_RECORDS_FOUND) }, listeners: { rowdblclick: openCase, render: function(){ //this.loadMask = new Ext.LoadMask(this.body, {msg:TRANSLATIONS.LABEL_GRID_LOADING}); //this.ownerCt.doLayout(); } }, tbar: tb, // paging bar on the bottom bbar: new Ext.PagingToolbar({ pageSize: pageSize, store: storeCases, displayInfo: true, //displayMsg: 'Displaying items {0} - {1} of {2} ' + '   ' , displayMsg: TRANSLATIONS.ID_DISPLAY_ITEMS + '   ', emptyMsg: TRANSLATIONS.ID_DISPLAY_EMPTY }) }); grid.on('rowcontextmenu', function (grid, rowIndex, evt) { var sm = grid.getSelectionModel(); sm.selectRow(rowIndex, sm.isSelected(rowIndex)); }, this); grid.on('contextmenu', function (evt) { evt.preventDefault(); }, this); grid.addListener('rowcontextmenu', onMessageContextMenu,this); // patch in order to hide the USR_UIR and PREVIOUS_USR_UID columns var userIndex = grid.getColumnModel().findColumnIndex('USR_UID'); if ( userIndex >= 0 ) grid.getColumnModel().setHidden(userIndex, true); var prevUserIndex = grid.getColumnModel().findColumnIndex('PREVIOUS_USR_UID'); if ( prevUserIndex >= 0 ) grid.getColumnModel().setHidden(prevUserIndex, true); if (action=='to_reassign'){ //grid.getColumnModel().setHidden(0, true); grid.getColumnModel().setHidden(1, true); } // create reusable renderer // create the editor grid var reassignGrid = new Ext.grid.EditorGridPanel({ id : Ext.id(), region: 'center', store: storeReassignCases, cm: reassignCm, autoHeight: true, viewConfig: { forceFit:true } }); var gridForm = new Ext.FormPanel({ id: 'reassign-form', frame: true, labelAlign: 'left', //title: 'Company data', bodyStyle:'padding:5px', width: 750, layout: 'column', // Specifies that the items will now be arranged in columns items: [{ id : 'tasksGrid', columnWidth: 0.60, layout: 'fit', items: { id: 'TasksToReassign', xtype: 'grid', ds: storeReassignCases, cm: reassignCm, sm: new Ext.grid.RowSelectionModel({ singleSelect: true /*listeners: { rowselect: function(sm, row, rec) { Ext.getCmp("reassign-form").getForm().loadRecord(rec); } }*/ }), //autoExpandColumn: 'company', height: 350, title : 'Cases to reassign - Task List', border : true, listeners: { click: function() { rows = this.getSelectionModel().getSelections(); var application = ''; if( rows.length > 0 ) { var ids = ''; for(i=0; i 0 ) { ids = ''; for(i=0; i