diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js new file mode 100644 index 000000000..e492996fc --- /dev/null +++ b/workflow/engine/templates/cases/casesList.js @@ -0,0 +1,1858 @@ +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/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( PMDateFormat )); + } + + function dueDate(value, p, r){ + var myDate = convertDate( value ); + var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; + return String.format("{0}", myDate.dateFormat(PMDateFormat), myColor ); + } + + var renderSummary = function (val, p, r) { + var summaryIcon = ''; + return summaryIcon; + }; + + function renderNote(val,p,r) { + appUid="'"+r.data['APP_UID']+"'"; + 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