diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php index 7cb10180a..09ecfcaf0 100644 --- a/workflow/engine/classes/model/ListInbox.php +++ b/workflow/engine/classes/model/ListInbox.php @@ -318,12 +318,13 @@ class ListInbox extends BaseListInbox public function loadFilters (&$criteria, $filters) { - $filter = isset($filters['filter']) ? $filters['filter'] : ""; - $search = isset($filters['search']) ? $filters['search'] : ""; - $process = isset($filters['process']) ? $filters['process'] : ""; - $category = isset($filters['category']) ? $filters['category'] : ""; - $dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : ""; - $dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : ""; + $filter = isset($filters['filter']) ? $filters['filter'] : ""; + $search = isset($filters['search']) ? $filters['search'] : ""; + $process = isset($filters['process']) ? $filters['process'] : ""; + $category = isset($filters['category']) ? $filters['category'] : ""; + $dateFrom = isset($filters['dateFrom']) ? $filters['dateFrom'] : ""; + $dateTo = isset($filters['dateTo']) ? $filters['dateTo'] : ""; + $filterStatus = isset($filters['filterStatus']) ? $filters['filterStatus'] : ""; if ($filter != '') { switch ($filter) { @@ -339,8 +340,8 @@ class ListInbox extends BaseListInbox if ($search != '') { $criteria->add( $criteria->getNewCriterion( ListInboxPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE )-> - addOr( $criteria->getNewCriterion( ListInboxPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE )-> - addOr( $criteria->getNewCriterion( ListInboxPeer::APP_NUMBER, $search, Criteria::LIKE ) ) ) ); + addOr( $criteria->getNewCriterion( ListInboxPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE )-> + addOr( $criteria->getNewCriterion( ListInboxPeer::APP_NUMBER, $search, Criteria::LIKE ) ) ) ); } if ($process != '') { @@ -368,7 +369,7 @@ class ListInbox extends BaseListInbox } $criteria->add( $criteria->getNewCriterion( ListInboxPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL )-> - addAnd( $criteria->getNewCriterion( ListInboxPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); + addAnd( $criteria->getNewCriterion( ListInboxPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ) ) ); } else { $dateFrom = $dateFrom . " 00:00:00"; @@ -379,6 +380,21 @@ class ListInbox extends BaseListInbox $criteria->add( ListInboxPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL ); } + + if ($filterStatus != '') { + switch ($filterStatus) { + case 'ON_TIME': + $criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE." , NOW( ) ) > 0", Criteria::CUSTOM); + break; + case 'AT_RISK': + $criteria->add( ListInboxPeer::DEL_RISK_DATE , "TIMEDIFF(". ListInboxPeer::DEL_RISK_DATE .", NOW( ) ) < 0", Criteria::CUSTOM); + $criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE .", NOW( ) ) > 0", Criteria::CUSTOM); + break; + case 'OVERDUE': + $criteria->add( ListInboxPeer::DEL_DUE_DATE , "TIMEDIFF(". ListInboxPeer::DEL_DUE_DATE." , NOW( ) ) < 0", Criteria::CUSTOM); + break; + } + } } public function countTotal ($usr_uid, $filters = array()) diff --git a/workflow/engine/controllers/strategicDashboard.php b/workflow/engine/controllers/strategicDashboard.php index c2b07ca7a..07848812f 100644 --- a/workflow/engine/controllers/strategicDashboard.php +++ b/workflow/engine/controllers/strategicDashboard.php @@ -174,6 +174,7 @@ class StrategicDashboard extends Controller $this->setView( 'strategicDashboard/viewDashboard' ); $this->setVar('urlProxy', $this->urlProxy); + $this->setVar('SYS_SYS', SYS_SYS); $this->setVar('usrId', $this->usrId); $this->setVar('credentials', $this->clientToken); $this->setVar('unitCost', $this->usrUnitCost); diff --git a/workflow/engine/js/strategicDashboard/timeSeriesView.js b/workflow/engine/js/strategicDashboard/timeSeriesView.js index 4116c8df8..4d585c92e 100644 --- a/workflow/engine/js/strategicDashboard/timeSeriesView.js +++ b/workflow/engine/js/strategicDashboard/timeSeriesView.js @@ -54,8 +54,9 @@ $(document).ready(function() { }); -var bindTimeSeriesLists = function (presenter, elementsToConserve = []) { +var bindTimeSeriesLists = function (presenter, elementsToConserve) { var conserveStates =[]; + elementsToConserve =[]; $.each (elementsToConserve, function (i, elem){ conserveStates.push({id:elem, selValue: $('#' + elem).val()}); }); diff --git a/workflow/engine/js/strategicDashboard/viewDashboardView.js b/workflow/engine/js/strategicDashboard/viewDashboardView.js index 9fb6e2c17..9aedf57c9 100644 --- a/workflow/engine/js/strategicDashboard/viewDashboardView.js +++ b/workflow/engine/js/strategicDashboard/viewDashboardView.js @@ -376,6 +376,18 @@ $(document).ready(function() { loadIndicator(indicatorId, defaultInitDate(), defaultEndDate()); }); + $('#indicatorsGridStack').on('click','.status-indicator-low', function() { + locationCases('OVERDUE'); + }); + + $('#indicatorsGridStack').on('click','.status-indicator-medium', function() { + locationCases('AT_RISK'); + }); + + $('#indicatorsGridStack').on('click','.status-indicator-high', function() { + locationCases('ON_TIME'); + }); + $('body').on('click','.bread-back-selector', function() { var indicatorId = window.currentIndicator.id; loadIndicator(indicatorId, defaultInitDate(), defaultEndDate()); @@ -1001,6 +1013,28 @@ var animateProgress = function (indicatorItem, widget){ fpAnimationFrame(animacion); }; +var createCookie = function (name, value, time) { + if (time) { + var date = new Date(); + date.setTime(date.getTime()+(time*24*60*60*1000)); + var expires = "; expires="+date.toUTCString(); + } else { + var expires = ""; + } + document.cookie = name+"="+value+expires+"; path=/sys"+workspace; +}; + +var locationCases = function (type) { + createCookie("dashboardListInbox", type, 1); + + var currentLocation = location.href; + var position = currentLocation.lastIndexOf('/', currentLocation.lastIndexOf('/') - 1); + currentLocation = currentLocation.substring(0, position+1); + currentLocation = currentLocation + 'cases/main'; + + parent.location.href = currentLocation; +}; + /*var dashboardButtonTemplate = '
\ \ \ diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 48e7560e3..650de87f1 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -4,6 +4,10 @@ unset($_SESSION['APPLICATION']); //get the action from GET or POST, default is todo $action = isset( $_GET['action'] ) ? $_GET['action'] : (isset( $_POST['action'] ) ? $_POST['action'] : 'todo'); +/*----------------------------------********---------------------------------*/ +$filterAction = isset( $_GET['filterAction'] ) ? $_GET['filterAction'] : (isset( $_POST['filterAction'] ) ? $_POST['filterAction'] : ''); +/*----------------------------------********---------------------------------*/ + //fix a previous inconsistency $urlProxy = 'proxyCasesList'; if ($action == 'selfservice') { @@ -143,7 +147,7 @@ if ($action == "todo" || $action == "draft" || $action == "sent" || $action == " $solrConf['solr_instance'] ); if ($applicationSolrIndex->isSolrEnabled()) { - $solrEnabled = 1; + $solrEnabled = 1; } } } @@ -179,6 +183,28 @@ $oHeadPublisher->assign( 'allUsersValues', $allUsers ); //Sending the listing of $oHeadPublisher->assign( 'solrEnabled', $solrEnabled ); //Sending the status of solar $oHeadPublisher->assign( 'enableEnterprise', $enableEnterprise ); //sending the page size + +/*----------------------------------********---------------------------------*/ +$licensedFeatures = & PMLicensedFeatures::getSingleton(); +if ($licensedFeatures->verifyfeature('r19Vm5DK1UrT09MenlLYjZxejlhNUZ1b1NhV0JHWjBsZEJ6dnpJa3dTeWVLVT0=') ) { + $filterStatus[] = array('', G::LoadTranslation('ID_ALL_STATUS')); + $filterStatus[] = array('ON_TIME', G::LoadTranslation('ID_ON_TIME')); + $filterStatus[] = array('AT_RISK', G::LoadTranslation('ID_AT_RISK')); + $filterStatus[] = array('OVERDUE', G::LoadTranslation('ID_TASK_OVERDUE')); + + $oHeadPublisher->assign('filterStatus', $filterStatus); + + if (isset($_COOKIE['dashboardListInbox'])) { + $oHeadPublisher->assign('valueFilterStatus', $_COOKIE['dashboardListInbox']); + if (PHP_VERSION < 5.2) { + setcookie("dashboardListInbox", '', time() + (24 * 60 * 60), "/sys" . SYS_SYS, "; HttpOnly"); + } else { + setcookie("dashboardListInbox", '', time() + (24 * 60 * 60), "/sys" . SYS_SYS, null, false, true); + } + } +} +/*----------------------------------********---------------------------------*/ + //menu permissions /*$c = new Criteria('workflow'); $c->clearSelectColumns(); diff --git a/workflow/engine/methods/cases/proxyNewCasesList.php b/workflow/engine/methods/cases/proxyNewCasesList.php index 7e1a3f394..a916a2d4e 100644 --- a/workflow/engine/methods/cases/proxyNewCasesList.php +++ b/workflow/engine/methods/cases/proxyNewCasesList.php @@ -32,6 +32,7 @@ try { $filters['action'] = isset( $_REQUEST["action"] ) ? $_REQUEST["action"] : ""; $listName = isset( $_REQUEST["list"] ) ? $_REQUEST["list"] : "inbox"; + $filters['filterStatus'] = isset( $_REQUEST["filterStatus"] ) ? $_REQUEST["filterStatus"] : ""; // Select list switch ($listName) { @@ -145,16 +146,17 @@ try { ); $filtersData = array(); - $filtersData['start'] = $filters['start']; - $filtersData['limit'] = $filters['limit']; - $filtersData['sort'] = G::toLower($filters['sort']); - $filtersData['dir'] = G::toLower($filters['dir']); - $filtersData['cat_uid'] = $filters['category']; - $filtersData['pro_uid'] = $filters['process']; - $filtersData['search'] = $filters['search']; - $filtersData['date_from'] = $filters['dateFrom']; - $filtersData['date_to'] = $filters['dateTo']; - $filtersData["action"] = $filters["action"]; + $filtersData['start'] = $filters['start']; + $filtersData['limit'] = $filters['limit']; + $filtersData['sort'] = G::toLower($filters['sort']); + $filtersData['dir'] = G::toLower($filters['dir']); + $filtersData['cat_uid'] = $filters['category']; + $filtersData['pro_uid'] = $filters['process']; + $filtersData['search'] = $filters['search']; + $filtersData['date_from'] = $filters['dateFrom']; + $filtersData['date_to'] = $filters['dateTo']; + $filtersData["action"] = $filters["action"]; + $filtersData["filterStatus"] = $filters['filterStatus']; $response = array(); $response['filters'] = $filtersData; diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index b27ac37ef..082521694 100755 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -1,19 +1,19 @@ new Ext.KeyMap(document, { - key: Ext.EventObject.F5, + 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; + 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(); } - e.stopEvent(); - //document.location = document.location; - storeCases.reload(); - } - else - Ext.Msg.alert(_('ID_REFRESH_LABEL'), _('ID_REFRESH_MESSAGE')); - } + else + Ext.Msg.alert(_('ID_REFRESH_LABEL'), _('ID_REFRESH_MESSAGE')); + } }); @@ -27,892 +27,899 @@ var winReassignInCasesList; function formatAMPM(date, initVal, calendarDate) { - var currentDate = new Date(); - var currentDay = currentDate.getDate(); - var currentMonth = currentDate.getMonth()+1; - if (currentDay < 10) { - currentDay = '0' + currentDay; - } - if (currentMonth < 10) { - currentMonth = '0' + currentMonth; - } - currentDate = currentMonth + '-' + currentDay; - if (currentDate == calendarDate) { - var hours = date.getHours(); - var minutes = (initVal === true)? ((date.getMinutes()<15)? 15: ((date.getMinutes()<30)? 30: ((date.getMinutes()<45)? 45: 45))): date.getMinutes(); - var ampm = hours >= 12 ? 'PM' : 'AM'; - hours = hours % 12; - hours = hours ? hours : 12; // the hour '0' should be '12' - minutes = minutes < 10 ? '0' + minutes : minutes; - var strTime = hours + ':' + minutes + ' ' + ampm; - } else { - var strTime = '12:00 AM'; - } - return strTime; + var currentDate = new Date(); + var currentDay = currentDate.getDate(); + var currentMonth = currentDate.getMonth()+1; + if (currentDay < 10) { + currentDay = '0' + currentDay; + } + if (currentMonth < 10) { + currentMonth = '0' + currentMonth; + } + currentDate = currentMonth + '-' + currentDay; + if (currentDate == calendarDate) { + var hours = date.getHours(); + var minutes = (initVal === true)? ((date.getMinutes()<15)? 15: ((date.getMinutes()<30)? 30: ((date.getMinutes()<45)? 45: 45))): date.getMinutes(); + var ampm = hours >= 12 ? 'PM' : 'AM'; + hours = hours % 12; + hours = hours ? hours : 12; // the hour '0' should be '12' + minutes = minutes < 10 ? '0' + minutes : minutes; + var strTime = hours + ':' + minutes + ' ' + ampm; + } else { + var strTime = '12:00 AM'; + } + return strTime; } Ext.Ajax.timeout = 4 * 60 * 1000; var caseSummary = function() { - var rowModel = grid.getSelectionModel().getSelected(); - if (rowModel) { - openSummaryWindow(rowModel.data.APP_UID, rowModel.data.DEL_INDEX, action); - } - else { - msgBox(_('ID_INFORMATION'), _('ID_SELECT_ONE_AT_LEAST')); - } + var rowModel = grid.getSelectionModel().getSelected(); + if (rowModel) { + openSummaryWindow(rowModel.data.APP_UID, rowModel.data.DEL_INDEX, action); + } + else { + msgBox(_('ID_INFORMATION'), _('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; - var task = (typeof(rowModel.json.TAS_UID) != 'undefined') ? rowModel.json.TAS_UID : ''; - var proid = (typeof(rowModel.json.PRO_UID) != 'undefined') ? rowModel.json.PRO_UID : ''; + 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; + var task = (typeof(rowModel.json.TAS_UID) != 'undefined') ? rowModel.json.TAS_UID : ''; + var proid = (typeof(rowModel.json.PRO_UID) != 'undefined') ? rowModel.json.PRO_UID : ''; - openCaseNotesWindow(appUid, delIndex, true, caseTitle, proid, task); - }else{ - msgBox(_('ID_INFORMATION'), _('ID_SELECT_ONE_AT_LEAST') ); - } + openCaseNotesWindow(appUid, delIndex, true, caseTitle, proid, task); + }else{ + msgBox(_('ID_INFORMATION'), _('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; + 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: _('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 { + Ext.Msg.show({ + msg: _('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 { - parent._CASE_TITLE = caseTitle; + try { + parent._CASE_TITLE = caseTitle; + } + catch (e) { + // Nothing to do + } } catch (e) { - // Nothing to do + // Nothing to do } - } - catch (e) { - // Nothing to do - } - params += '&action=' + action; - redirect(requestFile + '?' + params); + params += '&action=' + action; + redirect(requestFile + '?' + params); } else - msgBox(_('ID_INFORMATION'), _('ID_SELECT_ONE_AT_LEAST')); + msgBox(_('ID_INFORMATION'), _('ID_SELECT_ONE_AT_LEAST')); } function jumpToCase(appNumber){ - // Code add by Brayan Pereyra - cochalo - // This ajax validate the appNumber exists - Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); - Ext.Ajax.request({ - url: 'cases_Ajax', - success: function(response) { - var res = Ext.decode(response.responseText); - if (res.exists === true) { - params = 'APP_NUMBER=' + appNumber; - params += '&action=jump'; - requestFile = '../cases/open'; - redirect(requestFile + '?' + params); - } else { - Ext.MessageBox.hide(); - var message = new Array(); - message['CASE_NUMBER'] = appNumber; - msgBox(_('ID_INPUT_ERROR'), _('ID_CASE_DOES_NOT_EXIST_JS', appNumber), 'error'); - } - }, - params: {action:'previusJump', appNumber: appNumber} - }); + // Code add by Brayan Pereyra - cochalo + // This ajax validate the appNumber exists + Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); + Ext.Ajax.request({ + url: 'cases_Ajax', + success: function(response) { + var res = Ext.decode(response.responseText); + if (res.exists === true) { + params = 'APP_NUMBER=' + appNumber; + params += '&action=jump'; + requestFile = '../cases/open'; + redirect(requestFile + '?' + params); + } else { + Ext.MessageBox.hide(); + var message = new Array(); + message['CASE_NUMBER'] = appNumber; + msgBox(_('ID_INPUT_ERROR'), _('ID_CASE_DOES_NOT_EXIST_JS', appNumber), 'error'); + } + }, + params: {action:'previusJump', appNumber: appNumber} + }); } function deleteCase() { - var rows = grid.getSelectionModel().getSelections(); - Ext.Ajax.request({ - url : 'casesList_Ajax' , - params : {actionAjax : 'verifySession'}, - success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); - if( data.lostSession ) { - Ext.Msg.show({ - title: _('ID_ERROR'), - msg: data.message, - animEl: 'elId', - icon: Ext.MessageBox.ERROR, - buttons: Ext.MessageBox.OK, - fn : function(btn) { - try - { - prnt = parent.parent; - top.location = top.location; - } - catch (err) - { - parent.location = parent.location; - } + var rows = grid.getSelectionModel().getSelections(); + Ext.Ajax.request({ + url : 'casesList_Ajax' , + params : {actionAjax : 'verifySession'}, + success: function ( result, request ) { + var data = Ext.util.JSON.decode(result.responseText); + if( data.lostSession ) { + Ext.Msg.show({ + title: _('ID_ERROR'), + msg: data.message, + animEl: 'elId', + icon: Ext.MessageBox.ERROR, + buttons: Ext.MessageBox.OK, + fn : function(btn) { + try + { + prnt = parent.parent; + top.location = top.location; + } + catch (err) + { + parent.location = parent.location; + } + } + }); + } else { + if( rows.length > 0 ) { + ids = Array(); + for(i=0; i 0 ) { - ids = Array(); - for(i=0; i' + _('ID_PAUSE_CASE_TO_DATE') +' '+date.format('M j, Y')+'?

' - }, - new Ext.form.TimeField({ - id: 'unpauseTime', - fieldLabel: _('ID_UNPAUSE_TIME'), - name: 'unpauseTime', - value: formatAMPM(new Date(), false, date.format('m-d')), - minValue: formatAMPM(new Date(), true, date.format('m-d')), - format: 'h:i A' - }), - { - xtype: 'textarea', - id: 'noteReason', - fieldLabel: _('ID_CASE_PAUSE_REASON'), - name: 'noteReason', - width: 450, - height: 50 - }, - { - id: 'notifyReason', - xtype:'checkbox', - name: 'notifyReason', - hideLabel: true, - boxLabel: _('ID_NOTIFY_USERS_CASE') - } - ], + items: [ + new Ext.FormPanel({ + labelAlign: 'top', + labelWidth: 75, + border: false, + frame: true, + items: [ + { + html: '
' + _('ID_PAUSE_CASE_TO_DATE') +' '+date.format('M j, Y')+'?

' + }, + new Ext.form.TimeField({ + id: 'unpauseTime', + fieldLabel: _('ID_UNPAUSE_TIME'), + name: 'unpauseTime', + value: formatAMPM(new Date(), false, date.format('m-d')), + minValue: formatAMPM(new Date(), true, date.format('m-d')), + format: 'h:i A' + }), + { + xtype: 'textarea', + id: 'noteReason', + fieldLabel: _('ID_CASE_PAUSE_REASON'), + name: 'noteReason', + width: 450, + height: 50 + }, + { + id: 'notifyReason', + xtype:'checkbox', + name: 'notifyReason', + hideLabel: true, + boxLabel: _('ID_NOTIFY_USERS_CASE') + } + ], - buttonAlign: 'center', + buttonAlign: 'center', - buttons: [{ - text: 'Ok', - handler: function(){ - if (Ext.getCmp('noteReason').getValue() != '') { - var noteReasonTxt = _('ID_CASE_PAUSE_LABEL_NOTE') + ' ' + Ext.getCmp('noteReason').getValue(); - } else { - var noteReasonTxt = ''; - } - var notifyReasonVal = Ext.getCmp('notifyReason').getValue() == true ? 1 : 0; + buttons: [{ + text: 'Ok', + handler: function(){ + if (Ext.getCmp('noteReason').getValue() != '') { + var noteReasonTxt = _('ID_CASE_PAUSE_LABEL_NOTE') + ' ' + Ext.getCmp('noteReason').getValue(); + } else { + var noteReasonTxt = ''; + } + var notifyReasonVal = Ext.getCmp('notifyReason').getValue() == true ? 1 : 0; - Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); - Ext.Ajax.request({ - url: 'cases_Ajax', - success: function(response) { - try { - parent.updateCasesView(true); - } - catch (e) { - // Nothing to do - } - Ext.MessageBox.hide(); - try { - parent.updateCasesTree(); - } - catch (e) { - // Nothing to do - } - Ext.MessageBox.hide(); - msgPause.close(); - }, - params: { - action: 'pauseCase', - unpausedate: unpauseDate, - unpauseTime: Ext.getCmp('unpauseTime').getValue(), - APP_UID: rowModel.data.APP_UID, - DEL_INDEX: rowModel.data.DEL_INDEX, - NOTE_REASON: noteReasonTxt, - NOTIFY_PAUSE: notifyReasonVal - } - }); - } - },{ - text: 'Cancel', //COCHATRA - handler: function(){ - msgPause.close(); - } - }] - }) - ] - }); - msgPause.show(this); + Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); + Ext.Ajax.request({ + url: 'cases_Ajax', + success: function(response) { + try { + parent.updateCasesView(true); + } + catch (e) { + // Nothing to do + } + Ext.MessageBox.hide(); + try { + parent.updateCasesTree(); + } + catch (e) { + // Nothing to do + } + Ext.MessageBox.hide(); + msgPause.close(); + }, + params: { + action: 'pauseCase', + unpausedate: unpauseDate, + unpauseTime: Ext.getCmp('unpauseTime').getValue(), + APP_UID: rowModel.data.APP_UID, + DEL_INDEX: rowModel.data.DEL_INDEX, + NOTE_REASON: noteReasonTxt, + NOTIFY_PAUSE: notifyReasonVal + } + }); + } + },{ + text: 'Cancel', //COCHATRA + handler: function(){ + msgPause.close(); + } + }] + }) + ] + }); + msgPause.show(this); - } else { - Ext.Msg.show({ - title:'', - msg: _('ID_NO_SELECTION_WARNING'), - buttons: Ext.Msg.INFO, - fn: function(){}, - animEl: 'elId', - icon: Ext.MessageBox.INFO, - buttons: Ext.MessageBox.OK - }); - } + } else { + Ext.Msg.show({ + title:'', + msg: _('ID_NO_SELECTION_WARNING'), + buttons: Ext.Msg.INFO, + fn: function(){}, + animEl: 'elId', + icon: Ext.MessageBox.INFO, + buttons: Ext.MessageBox.OK + }); + } } function cancelCase(){ - var rows = grid.getSelectionModel().getSelections(); - if( rows.length > 0 ) { - app_uid = Array(); - del_index = Array(); + var rows = grid.getSelectionModel().getSelections(); + if( rows.length > 0 ) { + app_uid = Array(); + del_index = Array(); - for(i=0; i" + _('ID_VIEW') + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); } - data = Ext.util.Format.htmlEncode(data); - metadata.attr = 'ext:qtip="' + data + '" style="'+ style +' white-space: normal; "'; - return data; - }; - - function openLink(value, p, r){ - return String.format("" + _('ID_VIEW') + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); - } - - function deleteLink(value, p, r){ - return String.format("" + _('ID_DELETE') + "", r.data['APP_UID'] ); - } - - function viewLink(value, p, r){ - return String.format("" + _('ID_VIEW') + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); - } - - function unpauseLink(value, p, r){ - return String.format("" + _('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] ); + function deleteLink(value, p, r){ + return String.format("" + _('ID_DELETE') + "", r.data['APP_UID'] ); } - } + + function viewLink(value, p, r){ + return String.format("" + _('ID_VIEW') + "", r.data['APP_UID'], r.data['DEL_INDEX'], r.data['APP_TITLE']); + } + + function unpauseLink(value, p, r){ + return String.format("" + _('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){ - if (value) { - var myDate = convertDate( value ); - var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; - return String.format("{0}", myDate.dateFormat(FORMATS.casesListDateFormat), myColor ); + return myDate; } - else { - return ''; + function showDate (value,p,r) { + var myDate = convertDate( value ); + return String.format("{0}", myDate.dateFormat( FORMATS.casesListDateFormat )); } - } - var renderSummary = function (val, p, r) { - var summaryIcon = ''; - return summaryIcon; - }; - - function renderNote(val,p,r) { - var pro = r.json.PRO_UID; - var tas = r.json.TAS_UID; - var appUid = r.data.APP_UID; - var delIndex = r.data.DEL_INDEX; - var title = Ext.util.Format.htmlEncode(r.data.APP_TITLE); - - return ""; - } - - //Render Full Name - full_name = function(v, x, s) { - if (s.data.USR_UID) { - return _FNF(s.data.USR_USERNAME, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME); - } - else { - return '[' + _('ID_UNASSIGNED').toUpperCase() + ']'; - } - }; - - previous_full_name = function(v, x, s) { - if (s.data.PREVIOUS_USR_UID) { - return _FNF(s.data.PREVIOUS_USR_USERNAME, s.data.PREVIOUS_USR_FIRSTNAME, s.data.PREVIOUS_USR_LASTNAME); - } - else { - return ''; - } - }; - - for(var i = 0, len = columns.length; i < len; i++){ - var c = columns[i]; - c.renderer = columnRenderer; - 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; - - if( c.dataIndex == 'CASE_SUMMARY') c.sortable = false; - if( c.dataIndex == 'CASE_NOTES_COUNT') c.sortable = false; - - //Format the name if is disabled solr, otherwise show without format - if (solrEnabled == 0) { - if( c.dataIndex == 'APP_DEL_PREVIOUS_USER') c.renderer = previous_full_name; - if( c.dataIndex == 'APP_CURRENT_USER') c.renderer = full_name; + function dueDate(value, p, r){ + if (value) { + var myDate = convertDate( value ); + var myColor = (myDate < new Date()) ? " color:red;" : 'color:green;'; + return String.format("{0}", myDate.dateFormat(FORMATS.casesListDateFormat), myColor ); + } + else { + return ''; + } } - c.header = _(c.header); - } - //adding the hidden field DEL_INIT_DATE - readerFields.push ( {name: "DEL_INIT_DATE"}); - readerFields.push ( {name: "APP_UID"}); - readerFields.push ( {name: "DEL_INDEX"}); + var renderSummary = function (val, p, r) { + var summaryIcon = ''; + return summaryIcon; + }; - readerFields.push ( {name: "USR_FIRSTNAME"}); - readerFields.push ( {name: "USR_LASTNAME"}); - readerFields.push ( {name: "USR_USERNAME"}); + function renderNote(val,p,r) { + var pro = r.json.PRO_UID; + var tas = r.json.TAS_UID; + var appUid = r.data.APP_UID; + var delIndex = r.data.DEL_INDEX; + var title = Ext.util.Format.htmlEncode(r.data.APP_TITLE); - for (i=0; i"; } - if(columns[i].dataIndex == 'PREVIOUS_USR_UID') { - columns[i].hideable=false; - } - } - var cm = new Ext.grid.ColumnModel({ - defaults: { - sortable: true // columns are sortable by default - }, - columns: columns + //Render Full Name + full_name = function(v, x, s) { + if (s.data.USR_UID) { + return _FNF(s.data.USR_USERNAME, s.data.USR_FIRSTNAME, s.data.USR_LASTNAME); + } + else { + return '[' + _('ID_UNASSIGNED').toUpperCase() + ']'; + } + }; + + previous_full_name = function(v, x, s) { + if (s.data.PREVIOUS_USR_UID) { + return _FNF(s.data.PREVIOUS_USR_USERNAME, s.data.PREVIOUS_USR_FIRSTNAME, s.data.PREVIOUS_USR_LASTNAME); + } + else { + return ''; + } + }; + + for(var i = 0, len = columns.length; i < len; i++){ + var c = columns[i]; + c.renderer = columnRenderer; + 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; + + if( c.dataIndex == 'CASE_SUMMARY') c.sortable = false; + if( c.dataIndex == 'CASE_NOTES_COUNT') c.sortable = false; + + //Format the name if is disabled solr, otherwise show without format + if (solrEnabled == 0) { + if( c.dataIndex == 'APP_DEL_PREVIOUS_USER') c.renderer = previous_full_name; + if( c.dataIndex == 'APP_CURRENT_USER') c.renderer = full_name; + } + c.header = _(c.header); + } + + //adding the hidden field DEL_INIT_DATE + readerFields.push ( {name: "DEL_INIT_DATE"}); + readerFields.push ( {name: "APP_UID"}); + readerFields.push ( {name: "DEL_INDEX"}); + + readerFields.push ( {name: "USR_FIRSTNAME"}); + readerFields.push ( {name: "USR_LASTNAME"}); + readerFields.push ( {name: "USR_USERNAME"}); + + for (i=0; i" ; + }; + } + + if (ajaxServerResponse['TOTAL']!=undefined&&ajaxServerResponse['TOTAL']!=-1){ + message = message + "
" + _('ID_TOTAL_CASES_REASSIGNED') + ": " + ajaxServerResponse['TOTAL']; + } else { + message = ""; + }; + + if (message!=""){ + Ext.MessageBox.alert( _('ID_STATUS_REASSIGNMENT'), message, '' ); + } + }, + params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:true } + }); } - }); - var btnExecReassign = new Ext.Button ({ - text: _('ID_REASSIGN_ALL'), - // text: 'Reassign All', - // text: TRANSLATIONS.LABEL_SELECT_ALL, - handler: function(){ - var rs = storeReassignCases.getModifiedRecords(); - var sv = []; - for(var i = 0; i <= rs.length-1; i++){ - //sv[i]= rs[i].data['name']; - sv[i]= rs[i].data; - } - var gridData = storeReassignCases.getModifiedRecords(); + // Create HttpProxy instance, all CRUD requests will be directed to single proxy url. + if (caseListBuilder) { + var proxyCasesList = new Ext.data.HttpProxy({ + api: { + read : urlProxy + } + }); + } else { + var proxyCasesList = new Ext.data.HttpProxy({ + api: { + read : urlProxy + } + }); + } - Ext.Ajax.request({ - url: 'proxySaveReassignCasesList', - success: function(response) { - newPopUp.hide(); - storeCases.reload(); + // 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' }, - params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:false } - }); + readerFields + ); - /* - storeReassignCases.setBaseParam('selected', false); - var result = storeReassignCases.save(); - newPopUp.hide(); - storeCases.reload(); - */ - //storeReassignCases.reload(); - } - }); + // 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 ExecReassign = function () { - newPopUp.hide(); - var rs = storeReassignCases.getModifiedRecords(); - - var sv = []; - for(var i = 0; i <= rs.length-1; i++){ - sv[i]= rs[i].data; - } - var gridData = storeReassignCases.getModifiedRecords(); - Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); - Ext.Ajax.request({ - url: 'proxySaveReassignCasesList', - success: function(response) { - Ext.MessageBox.hide(); - storeCases.reload(); - var ajaxServerResponse = Ext.util.JSON.decode(response.responseText); - var count; - var message = ''; - - for (count in ajaxServerResponse) { - if ( ajaxServerResponse[count]['TAS_TITLE'] != undefined ){ - message = message + _('ID_CASE') + ": " + ajaxServerResponse[count]['APP_TITLE'] + " - " + _('ID_REASSIGNED_TO') + ": " + ajaxServerResponse[count]['APP_REASSIGN_USER'] + "
" ; - }; + var proxyReassignCasesList = new Ext.data.HttpProxy({ + api: { + read : 'proxyReassignCasesList' + //destroy : 'proxyReassignCasesList' } + }); - if (ajaxServerResponse['TOTAL']!=undefined&&ajaxServerResponse['TOTAL']!=-1){ - message = message + "
" + _('ID_TOTAL_CASES_REASSIGNED') + ": " + ajaxServerResponse['TOTAL']; - } else { - message = ""; - }; + var readerReassignCasesList = new Ext.data.JsonReader({ + totalProperty: 'totalCount', + successProperty: 'success', + idProperty: 'index', + root: 'data', + messageProperty: 'message' + }, + reassignReaderFields + ); - if (message!=""){ - Ext.MessageBox.alert( _('ID_STATUS_REASSIGNMENT'), message, '' ); + // 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"}, + listeners: { + load: function(response){ + + if (response.reader.jsonData.result === false) { + PMExt.notify('ERROR', response.reader.jsonData.message); + //PMExt.error + } + }, + exception: function(dp, type, action, options, response, arg) { + responseObject = Ext.util.JSON.decode(response.responseText); + if (typeof(responseObject.error) != 'undefined') { + Ext.Msg.show({ + title: _('ID_ERROR'), + msg: responseObject.error, + fn: function(){parent.parent.location = '../login/login';}, + animEl: 'elId', + icon: Ext.MessageBox.ERROR, + buttons: Ext.MessageBox.OK + }); + } + } } - }, - params: { APP_UIDS:ids, data:Ext.util.JSON.encode(sv), selected:true } }); - } - - // Create HttpProxy instance, all CRUD requests will be directed to single proxy url. - if (caseListBuilder) { - var proxyCasesList = new Ext.data.HttpProxy({ - api: { - read : urlProxy - } + 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. }); - } else { - var proxyCasesList = new Ext.data.HttpProxy({ - api: { - read : urlProxy - } + + //Layout Resizing + /*----------------------------------********---------------------------------*/ + if (typeof valueFilterStatus != 'undefined') { + if (valueFilterStatus != '') { + storeCases.setBaseParam('filterStatus', valueFilterStatus); + } + } + /*----------------------------------********---------------------------------*/ + 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'); - // 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 - ); + // creating the button for filters + var btnRead = new Ext.Button ({ + id: 'read', + text: _('ID_OPT_READ'), + enableToggle: true, + toggleHandler: onItemToggle, + allowDepress: false, + pressed: false + }); - // 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 btnUnread = new Ext.Button ({ + id: 'unread', + text: _('ID_OPT_UNREAD'), + enableToggle: true, + toggleHandler: onItemToggle, + allowDepress: false, + pressed: false + }); - var proxyReassignCasesList = new Ext.data.HttpProxy({ - api: { - read : 'proxyReassignCasesList' - //destroy : 'proxyReassignCasesList' - } - }); + var btnAll = new Ext.Button ({ + id: 'all', + text: _('ID_OPT_ALL'), + enableToggle: true, + toggleHandler: onItemToggle, + allowDepress: false, + pressed: true + }); - 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"}, - listeners: { - load: function(response){ - - if (response.reader.jsonData.result === false) { - PMExt.notify('ERROR', response.reader.jsonData.message); - //PMExt.error - } - }, - exception: function(dp, type, action, options, response, arg) { - responseObject = Ext.util.JSON.decode(response.responseText); - if (typeof(responseObject.error) != 'undefined') { - Ext.Msg.show({ - title: _('ID_ERROR'), - msg: responseObject.error, - fn: function(){parent.parent.location = '../login/login';}, - animEl: 'elId', - icon: Ext.MessageBox.ERROR, - buttons: Ext.MessageBox.OK - }); - } - } - } - }); - - 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: _('ID_OPT_READ'), - enableToggle: true, - toggleHandler: onItemToggle, - allowDepress: false, - pressed: false - }); - - var btnUnread = new Ext.Button ({ - id: 'unread', - text: _('ID_OPT_UNREAD'), - enableToggle: true, - toggleHandler: onItemToggle, - allowDepress: false, - pressed: false - }); - - var btnAll = new Ext.Button ({ - id: 'all', - text: _('ID_OPT_ALL'), - enableToggle: true, - toggleHandler: onItemToggle, - allowDepress: false, - pressed: true - }); - - var btnStarted = new Ext.Button ({ - id: 'started', + var btnStarted = new Ext.Button ({ + id: 'started', // text: 'started by me', - text: _('ID_OPT_STARTED'), - enableToggle: true, - toggleHandler: onItemToggle, - allowDepress: true, - pressed: false - }); + text: _('ID_OPT_STARTED'), + enableToggle: true, + toggleHandler: onItemToggle, + allowDepress: true, + pressed: false + }); - var btnCompleted = new Ext.Button ({ - id: 'completed', + var btnCompleted = new Ext.Button ({ + id: 'completed', // text: 'Completed by me', - text: _('ID_OPT_COMPLETED'), - enableToggle: true, - toggleHandler: onItemToggle, - allowDepress: true, - pressed: false - }); + text: _('ID_OPT_COMPLETED'), + enableToggle: true, + toggleHandler: onItemToggle, + allowDepress: true, + pressed: false + }); - // ComboBox creation processValues - var resultTpl = new Ext.XTemplate( - '
', - ' {APP_PRO_TITLE}', - '
' - ); + // ComboBox creation processValues + var resultTpl = new Ext.XTemplate( + '
', + ' {APP_PRO_TITLE}', + '
' + ); Ext.Ajax.request({ url : 'casesList_Ajax' , params : {actionAjax : 'processListExtJs', - action: action, - CATEGORY_UID: filterCategory}, + action: action, + CATEGORY_UID: filterCategory}, success: function ( result, request ) { processValues = Ext.util.JSON.decode(result.responseText); comboProcess.getStore().removeAll(); @@ -925,81 +932,81 @@ Ext.onReady ( function() { } }); - var comboProcess = new Ext.form.ComboBox({ - width : 180, - boxMaxWidth : 200, - editable : false, - displayField : 'APP_PRO_TITLE', - valueField : 'PRO_UID', - forceSelection: false, - emptyText: _('ID_EMPTY_PROCESSES'), - selectOnFocus: true, - tpl: resultTpl, + var comboProcess = new Ext.form.ComboBox({ + width : 180, + boxMaxWidth : 200, + editable : false, + displayField : 'APP_PRO_TITLE', + valueField : 'PRO_UID', + forceSelection: false, + emptyText: _('ID_EMPTY_PROCESSES'), + selectOnFocus: true, + tpl: resultTpl, - typeAhead: true, - mode: 'local', - autocomplete: true, - triggerAction: 'all', + 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 - }); + 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', + 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: _('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; + emptyText: _('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 - }); + /*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 comboCategory = new Ext.form.ComboBox({ width : 180, @@ -1016,993 +1023,1029 @@ Ext.onReady ( function() { triggerAction : 'all', store : new Ext.data.ArrayStore({ - fields : ['CATEGORY_UID','CATEGORY_NAME'], - data : categoryValues + fields : ['CATEGORY_UID','CATEGORY_NAME'], + data : categoryValues }), listeners:{ - scope: this, - 'select': function() { + scope: this, + 'select': function() { - filterCategory = comboCategory.value; - storeCases.setBaseParam('category', filterCategory); - storeCases.setBaseParam('process', ''); - //storeCases.load({params:{category: filterCategory, start : 0 , limit : pageSize}}); + filterCategory = comboCategory.value; + storeCases.setBaseParam('category', filterCategory); + storeCases.setBaseParam('process', ''); + //storeCases.load({params:{category: filterCategory, start : 0 , limit : pageSize}}); - Ext.Ajax.request({ - url : 'casesList_Ajax' , - params : {actionAjax : 'processListExtJs', - action: action, - CATEGORY_UID: filterCategory}, - success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); - comboProcess.getStore().removeAll(); - comboProcess.getStore().loadData( data ); - comboProcess.setValue(''); + Ext.Ajax.request({ + url : 'casesList_Ajax' , + params : {actionAjax : 'processListExtJs', + action: action, + CATEGORY_UID: filterCategory}, + success: function ( result, request ) { + var data = Ext.util.JSON.decode(result.responseText); + comboProcess.getStore().removeAll(); + comboProcess.getStore().loadData( data ); + comboProcess.setValue(''); - }, - failure: function ( result, request) { - if (typeof(result.responseText) != 'undefined') { - Ext.MessageBox.alert(_('ID_FAILED'), result.responseText); + }, + failure: function ( result, request) { + if (typeof(result.responseText) != 'undefined') { + Ext.MessageBox.alert(_('ID_FAILED'), result.responseText); + } } - } - }); - }}, + }); + }}, iconCls: 'no-icon' }); - var btnSelectAll = new Ext.Button ({ - text: _('CHECK_ALL'), - // text: 'Check All', - // text: TRANSLATIONS.LABEL_SELECT_ALL, - handler: function(){ - grid.getSelectionModel().selectAll(); - } - }); + /*----------------------------------********---------------------------------*/ + var comboFilterStatus = new Ext.form.ComboBox({ + width : 180, + boxMaxWidth : 200, + editable : false, + displayField : 'NAME', + valueField : 'UID', + forceSelection : false, + emptyText : _('ID_SELECT_STATUS'), + selectOnFocus : true, + typeAhead : true, + mode : 'local', + autocomplete : true, + triggerAction : 'all', + store : new Ext.data.ArrayStore({ + fields : ['UID','NAME'], + data : filterStatus + }), + listeners:{ + scope: this, + 'select': function() { + var filter = comboFilterStatus.value; + if ( action == 'search' ){ + storeCases.setBaseParam('dateFrom', dateFrom.getValue()); + storeCases.setBaseParam('dateTo', dateTo.getValue()); + } + storeCases.setBaseParam('filterStatus', filter); + storeCases.load({params:{ start : 0 , limit : pageSize }}); + } + }, + iconCls: 'no-icon' + }); + /*----------------------------------********---------------------------------*/ - var btnUnSelectAll = new Ext.Button ({ - text: _('UNCHECK_ALL'), - // text: 'Un-Check All', - // text: TRANSLATIONS.LABEL_UNSELECT_ALL, - handler: function(){ - grid.getSelectionModel().clearSelections(); - } - }); + var btnSelectAll = new Ext.Button ({ + text: _('CHECK_ALL'), + // text: 'Check All', + // text: TRANSLATIONS.LABEL_SELECT_ALL, + handler: function(){ + grid.getSelectionModel().selectAll(); + } + }); - var btnReassign = new Ext.Button ({ - text: _('ID_REASSIGN'), - // text: 'Reassign', - // text: TRANSLATIONS.LABEL_UNSELECT_ALL, - handler: function(){ - reassign(); - } - }); + var btnUnSelectAll = new Ext.Button ({ + text: _('UNCHECK_ALL'), + // text: 'Un-Check All', + // text: TRANSLATIONS.LABEL_UNSELECT_ALL, + handler: function(){ + grid.getSelectionModel().clearSelections(); + } + }); + + var btnReassign = new Ext.Button ({ + text: _('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: _('ID_REASSIGN_TO'), - name:'txt_stock_in', - allowBlank:true - }] - }); + var nav = new Ext.FormPanel({ + labelWidth:100, + frame:true, + width:300, + collapsible:true, + defaultType:'textfield', + items:[{ + fieldLabel: _('ID_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: _('ID_SUBMIT'), - handler:function(){ - Ext.Msg.alert('OK','save ?'); - Ext.Msg.prompt(_('ID_NAME'),'please enter your name: ',function(btn,text){ - if(btn=='ok') { - alert('ok'); - } - }); - } - }, { - text: _('ID_CLOSE'), - handler:function() { - reassignPopup.hide(); - } - }] - }); - // ComboBox creation - var comboStatus = new Ext.form.ComboBox({ - width : 80, - boxMaxWidth : 90, - editable : false, - mode : 'local', - store : new Ext.data.ArrayStore({ - fields: ['id', 'value'], - data : statusValues - }), - valueField : 'id', - displayField : 'value', - triggerAction : 'all', + 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: _('ID_SUBMIT'), + handler:function(){ + Ext.Msg.alert('OK','save ?'); + Ext.Msg.prompt(_('ID_NAME'),'please enter your name: ',function(btn,text){ + if(btn=='ok') { + alert('ok'); + } + }); + } + }, { + text: _('ID_CLOSE'), + handler:function() { + reassignPopup.hide(); + } + }] + }); + // ComboBox creation + var comboStatus = new Ext.form.ComboBox({ + width : 80, + 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 - }); + //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 userStore = new Ext.data.Store( { - proxy : new Ext.data.HttpProxy( { - url : 'casesList_Ajax?actionAjax=userValues&action='+action, - method : 'POST' - }), - reader : new Ext.data.JsonReader( { - fields : [ { - name : 'USR_UID' - }, { - name : 'USR_FULLNAME' - } ] - }) - }); - - var suggestUser = new Ext.form.ComboBox({ - store: userStore, - valueField : 'USR_UID', - displayField:'USR_FULLNAME', - typeAhead: false, - triggerAction: 'all', - emptyText : _('ID_ALL_USERS'), - selectOnFocus : true, - editable : true, - width: 180, - allowBlank : true, - autocomplete: true, - minChars: 1, - hideTrigger:true, - listeners:{ - scope: this, - 'select': function() { - //storeCases.setBaseParam( 'user', comboUser.store.getAt(0).get(comboUser.valueField)); - filterUser = suggestUser.value; - storeCases.setBaseParam( 'user', filterUser); - storeCases.setBaseParam( 'start', 0); - storeCases.setBaseParam( 'limit', pageSize); + // ComboBox creation processValues + var userStore = new Ext.data.Store( { + proxy : new Ext.data.HttpProxy( { + url : 'casesList_Ajax?actionAjax=userValues&action='+action, + method : 'POST' + }), + reader : new Ext.data.JsonReader( { + fields : [ { + name : 'USR_UID' + }, { + name : 'USR_FULLNAME' + } ] + }) + }); + + var suggestUser = new Ext.form.ComboBox({ + store: userStore, + valueField : 'USR_UID', + displayField:'USR_FULLNAME', + typeAhead: false, + triggerAction: 'all', + emptyText : _('ID_ALL_USERS'), + selectOnFocus : true, + editable : true, + width: 180, + allowBlank : true, + autocomplete: true, + minChars: 1, + hideTrigger:true, + listeners:{ + scope: this, + 'select': function() { + //storeCases.setBaseParam( 'user', comboUser.store.getAt(0).get(comboUser.valueField)); + filterUser = suggestUser.value; + storeCases.setBaseParam( 'user', filterUser); + storeCases.setBaseParam( 'start', 0); + storeCases.setBaseParam( 'limit', pageSize); + } } - } - }); + }); - var textSearch = new Ext.form.TextField ({ - allowBlank: true, - ctCls:'pm_search_text_field', - width: 140, - emptyText: _('ID_EMPTY_SEARCH'), - listeners: { - specialkey: function(f,e){ - if (e.getKey() == e.ENTER) { - doSearch(); - } - } - } - }); - - var btnSearch = new Ext.Button ({ - text: _('ID_SEARCH'), - iconCls: 'button_menu_ext ss_sprite ss_page_find', - //cls: 'x-form-toolbar-standardButton', - handler: doSearch - }); - - function doSearch(){ - //var viewText = Ext.getCmp('casesGrid').getView(); - viewText.emptyText = _('ID_NO_RECORDS_FOUND'); - //Ext.getCmp('casesGrid').getView().refresh(); - - searchText = textSearch.getValue(); - storeCases.setBaseParam('dateFrom', dateFrom.getValue()); - storeCases.setBaseParam('dateTo', dateTo.getValue()); - storeCases.setBaseParam( 'search', searchText); - storeCases.load({params:{ start : 0 , limit : pageSize }}); - } - - var resetSearchButton = { - text:'X', - ctCls:"pm_search_x_button_des", - handler: function(){ - textSearch.setValue(''); - doSearch(); - } - } - - var resetSuggestButton = { - text:'X', - ctCls:"pm_search_x_button_des", - handler: function(){ - suggestUser.setValue(''); - doSearch(); - } - } - - textJump = { - xtype: 'numberfield', - id : 'textJump', - allowBlank: true, - width: 50, - emptyText: _('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(_('ID_INPUT_ERROR'), _('ID_INVALID_APPLICATION_NUMBER'), 'error'); - } - } - } - }; - - var btnJump = new Ext.Button ({ - text: _('ID_OPT_JUMP'), - handler: function(){ - var caseNumber = parseFloat(Ext.util.Format.trim(Ext.getCmp('textJump').getValue())); - if (caseNumber){ - jumpToCase(caseNumber); - } else { - msgBox(_('ID_INPUT_ERROR'), _('ID_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: _('ID_UNPAUSE_CASE'), - iconCls: 'ICON_CASES_UNPAUSE', - handler: unpauseCase - }); - - optionMenuPause = new Ext.Action({ - text: _('ID_PAUSE_CASE'), - iconCls: 'ICON_CASES_PAUSED', - menu: new Ext.menu.DateMenu({ - //vtype: 'daterange', - handler: function(dp, date){ - Ext.Ajax.request({ - url : 'casesList_Ajax' , - params : {actionAjax : 'verifySession'}, - success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); - if( data.lostSession ) { - Ext.Msg.show({ - title: _('ID_ERROR'), - msg: data.message, - animEl: 'elId', - icon: Ext.MessageBox.ERROR, - buttons: Ext.MessageBox.OK, - fn : function(btn) { - try - { - prnt = parent.parent; - top.location = top.location; - } - catch (err) - { - parent.location = parent.location; - } - } - }); - } else { - pauseCase(date); + var textSearch = new Ext.form.TextField ({ + allowBlank: true, + ctCls:'pm_search_text_field', + width: 140, + emptyText: _('ID_EMPTY_SEARCH'), + listeners: { + specialkey: function(f,e){ + if (e.getKey() == e.ENTER) { + doSearch(); } - }, - failure: function ( result, request) { - if (typeof(result.responseText) != 'undefined') { - Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); + } + } + }); + + var btnSearch = new Ext.Button ({ + text: _('ID_SEARCH'), + iconCls: 'button_menu_ext ss_sprite ss_page_find', + //cls: 'x-form-toolbar-standardButton', + handler: doSearch + }); + + function doSearch(){ + //var viewText = Ext.getCmp('casesGrid').getView(); + viewText.emptyText = _('ID_NO_RECORDS_FOUND'); + //Ext.getCmp('casesGrid').getView().refresh(); + + searchText = textSearch.getValue(); + storeCases.setBaseParam('dateFrom', dateFrom.getValue()); + storeCases.setBaseParam('dateTo', dateTo.getValue()); + storeCases.setBaseParam( 'search', searchText); + storeCases.load({params:{ start : 0 , limit : pageSize }}); + } + + var resetSearchButton = { + text:'X', + ctCls:"pm_search_x_button_des", + handler: function(){ + textSearch.setValue(''); + doSearch(); + } + } + + var resetSuggestButton = { + text:'X', + ctCls:"pm_search_x_button_des", + handler: function(){ + suggestUser.setValue(''); + doSearch(); + } + } + + textJump = { + xtype: 'numberfield', + id : 'textJump', + allowBlank: true, + width: 50, + emptyText: _('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(_('ID_INPUT_ERROR'), _('ID_INVALID_APPLICATION_NUMBER'), 'error'); } - } - }); - } - }) - }); + } + } + }; - 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(){ - var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); - loadMask.show(); - 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'; + var btnJump = new Ext.Button ({ + text: _('ID_OPT_JUMP'), + handler: function(){ + var caseNumber = parseFloat(Ext.util.Format.trim(Ext.getCmp('textJump').getValue())); + if (caseNumber){ + jumpToCase(caseNumber); } else { - var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); - loadMask.hide(); - winReassignInCasesList.hide(); - alert(data.msg); + msgBox(_('ID_INPUT_ERROR'), _('ID_INVALID_APPLICATION_NUMBER'), 'error'); } - }, - failure: function ( result, request) { - var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); - loadMask.hide(); - winReassignInCasesList.hide(); - if (typeof(result.responseText) != 'undefined') { - Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); - } - } - }); - }); + } + }); + + /*** menu and toolbars **/ + + function onMessageContextMenu(grid, rowIndex, e) { + e.stopEvent(); + var coords = e.getXY(); + messageContextMenu.showAt([coords[0], coords[1]]); + enableDisableMenuOption(); } - } - //optionMenuPause.setMinValue('2010-11-04'); - - var optionMenuReassignGlobal = {}; - optionMenuReassignGlobal.APP_UID = ""; - optionMenuReassignGlobal.DEL_INDEX = ""; - - optionMenuReassign = new Ext.Action({ - text: _('ID_REASSIGN'), - iconCls: 'ICON_CASES_TO_REASSIGN', - handler: function() { - Ext.Ajax.request({ - url : 'casesList_Ajax' , - params : {actionAjax : 'verifySession'}, - success: function ( result, request ) { - var data = Ext.util.JSON.decode(result.responseText); - if( data.lostSession ) { - Ext.Msg.show({ - title: _('ID_ERROR'), - msg: data.message, - animEl: 'elId', - icon: Ext.MessageBox.ERROR, - buttons: Ext.MessageBox.OK, - fn : function(btn) { - try - { - prnt = parent.parent; - top.location = top.location; - } - catch (err) - { - parent.location = parent.location; - } - } - }); - } else { - 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 : 'USR_USERNAME'}, - {name : 'USR_FIRSTNAME'}, - {name : 'USR_LASTNAME'} - ] - }) - }); - - var grid = new Ext.grid.GridPanel( { - id: 'reassignGrid', - height:300, - width:'300', - title : '', - stateful : true, - stateId : 'gridCasesList', - 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(); - } - } - }); - - winReassignInCasesList = new Ext.Window({ - title: '', - width: 450, - height: 280, - layout:'fit', - autoScroll:true, - modal: true, - maximizable: false, - items: [grid] - }); - winReassignInCasesList.show(); - } - } - }, - failure: function ( result, request) { - if (typeof(result.responseText) != 'undefined') { - Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); - } - } - }); + 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); + } + } } - }); - optionMenuDelete = new Ext.Action({ - text: _('ID_DELETE'), - iconCls: 'ICON_CASES_DELETE', - handler: deleteCase - }); - optionMenuCancel = new Ext.Action({ - text: _('ID_CANCEL'), - iconCls: 'ICON_CASES_CANCEL', - handler: cancelCase - }); + var menuItems; + //alert(action); + optionMenuOpen = new Ext.Action({ + text: _('ID_OPEN'), + handler: openCase, + disabled: true + }); - switch(action){ - case 'todo': - menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; + optionMenuUnpause = new Ext.Action({ + text: _('ID_UNPAUSE_CASE'), + iconCls: 'ICON_CASES_UNPAUSE', + handler: unpauseCase + }); - if( ___p34315105.search('R') != -1 ) - menuItems.push(optionMenuReassign); + optionMenuPause = new Ext.Action({ + text: _('ID_PAUSE_CASE'), + iconCls: 'ICON_CASES_PAUSED', + menu: new Ext.menu.DateMenu({ + //vtype: 'daterange', + handler: function(dp, date){ + Ext.Ajax.request({ + url : 'casesList_Ajax' , + params : {actionAjax : 'verifySession'}, + success: function ( result, request ) { + var data = Ext.util.JSON.decode(result.responseText); + if( data.lostSession ) { + Ext.Msg.show({ + title: _('ID_ERROR'), + msg: data.message, + animEl: 'elId', + icon: Ext.MessageBox.ERROR, + buttons: Ext.MessageBox.OK, + fn : function(btn) { + try + { + prnt = parent.parent; + top.location = top.location; + } + catch (err) + { + parent.location = parent.location; + } + } + }); + } else { + pauseCase(date); + } + }, + failure: function ( result, request) { + if (typeof(result.responseText) != 'undefined') { + Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); + } + } + }); + } + }) + }); - break; + var optionMenuSummary = new Ext.Action({ + text: _('ID_SUMMARY'), + iconCls: 'x-tree-node-icon ss_application_form', + handler: caseSummary + }); - case 'draft': - menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; - if( ___p34315105.search('R') != -1 ) - menuItems.push(optionMenuReassign); - menuItems.push(optionMenuDelete); + optionMenuNotes = new Ext.Action({ + text: _('ID_CASES_NOTES'), + iconCls: 'ICON_CASES_NOTES', + handler: caseNotes + }); - 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 - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + var rowSelected = Ext.getCmp('reassignGrid').getSelectionModel().getSelected(); + if( rowSelected ) { + PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){ + var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); + loadMask.show(); + 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 { + var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); + loadMask.hide(); + winReassignInCasesList.hide(); + alert(data.msg); + } + }, + failure: function ( result, request) { + var loadMask = new Ext.LoadMask(winReassignInCasesList.getEl(), {msg: _('ID_PROCESSING')}); + loadMask.hide(); + winReassignInCasesList.hide(); + if (typeof(result.responseText) != 'undefined') { + Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); + } + } + }); + }); + } + } - var toolbarGeneral = [ - optionMenuOpen, - btnRead, - '-', - btnUnread, - '-', - btnAll, - '->', // begin using the right-justified button container - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + //optionMenuPause.setMinValue('2010-11-04'); - var toolbarUnassigned = [ - optionMenuOpen, - btnRead, - '-', - btnUnread, - '-', - btnAll, - '->', // begin using the right-justified button container - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + var optionMenuReassignGlobal = {}; + optionMenuReassignGlobal.APP_UID = ""; + optionMenuReassignGlobal.DEL_INDEX = ""; + + optionMenuReassign = new Ext.Action({ + text: _('ID_REASSIGN'), + iconCls: 'ICON_CASES_TO_REASSIGN', + handler: function() { + Ext.Ajax.request({ + url : 'casesList_Ajax' , + params : {actionAjax : 'verifySession'}, + success: function ( result, request ) { + var data = Ext.util.JSON.decode(result.responseText); + if( data.lostSession ) { + Ext.Msg.show({ + title: _('ID_ERROR'), + msg: data.message, + animEl: 'elId', + icon: Ext.MessageBox.ERROR, + buttons: Ext.MessageBox.OK, + fn : function(btn) { + try + { + prnt = parent.parent; + top.location = top.location; + } + catch (err) + { + parent.location = parent.location; + } + } + }); + } else { + 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 : 'USR_USERNAME'}, + {name : 'USR_FIRSTNAME'}, + {name : 'USR_LASTNAME'} + ] + }) + }); + + var grid = new Ext.grid.GridPanel( { + id: 'reassignGrid', + height:300, + width:'300', + title : '', + stateful : true, + stateId : 'gridCasesList', + 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(); + } + } + }); + + winReassignInCasesList = new Ext.Window({ + title: '', + width: 450, + height: 280, + layout:'fit', + autoScroll:true, + modal: true, + maximizable: false, + items: [grid] + }); + winReassignInCasesList.show(); + } + } + }, + failure: function ( result, request) { + if (typeof(result.responseText) != 'undefined') { + Ext.MessageBox.alert( _('ID_FAILED'), result.responseText); + } + } + }); + } + }); + optionMenuDelete = new Ext.Action({ + text: _('ID_DELETE'), + iconCls: 'ICON_CASES_DELETE', + handler: deleteCase + }); + optionMenuCancel = new Ext.Action({ + text: _('ID_CANCEL'), + iconCls: 'ICON_CASES_CANCEL', + handler: cancelCase + }); + switch(action){ + case 'todo': + menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; - var toolbarDraft = [ - optionMenuOpen, - { - xtype: 'tbsplit', - text: _('ID_ACTIONS'), - menu: menuItems - }, - '->', - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + if( ___p34315105.search('R') != -1 ) + menuItems.push(optionMenuReassign); - var toolbarToRevise = [ - optionMenuOpen, - '->', // begin using the right-justified button container - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + break; - var toolbarToReassign = [ - optionMenuOpen, - "-", - btnSelectAll, - btnUnSelectAll, - "-", - btnReassign, - "->", - _("ID_USER"), - comboAllUsers, - "-", - _("ID_CATEGORY"), - comboCategory, - "-", - _("ID_PROCESS"), - comboProcess, - textSearch, - resetSearchButton, - btnSearch, - " ", - " " - ]; + case 'draft': + menuItems = [optionMenuPause, optionMenuSummary, optionMenuNotes]; + if( ___p34315105.search('R') != -1 ) + menuItems.push(optionMenuReassign); + menuItems.push(optionMenuDelete); - var toolbarSent = [ - optionMenuOpen, - btnStarted, - '-', - btnCompleted, - '-', - btnAll, - '->', // begin using the right-justified button container - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - _('ID_STATUS'), - comboStatus, - '-', - textSearch, - resetSearchButton, - btnSearch, - '-', - textJump, - btnJump, - ' ', - ' ' - ]; + break; - var clearDateFrom = new Ext.Action({ - text: "X", - ctCls: "pm_search_x_button_des", - handler: function(){ - Ext.getCmp("dateFrom").setValue(""); - } - }); + case 'paused': + menuItems = [optionMenuUnpause, optionMenuSummary, optionMenuNotes]; + break; - var clearDateTo = new Ext.Action({ - text: "X", - ctCls: "pm_search_x_button_des", - handler: function(){ - Ext.getCmp("dateTo").setValue(""); - } - }); + default: + menuItems = [optionMenuSummary, optionMenuNotes] + } - var toolbarSearch = [ - ' ', - _('ID_DELEGATE_DATE_FROM'), - dateFrom, - clearDateFrom, - ' ', - _('ID_TO'), - dateTo, - clearDateTo, - "->", - '-', - textSearch, - resetSearchButton, - btnSearch , - '   ' + contextMenuItems = new Array(); + contextMenuItems.push(optionMenuOpen); + for (i=0; i', // begin using the right-justified button container + _('ID_OVERDUE'), + comboFilterStatus, + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' ]; - var firstToolbarSearch = new Ext.Toolbar({ - region: 'north', - width: '100%', - autoHeight: true, - items: [ - optionMenuOpen, - '->', - _("ID_CATEGORY"), - comboCategory, - "-", - _('ID_PROCESS'), - comboProcess, - '-', - _('ID_STATUS'), - comboStatus, - "-", - _("ID_USER"), - //comboUser, - suggestUser, - resetSuggestButton, - '   ' - //'-', - //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 toolbarGeneral = [ + optionMenuOpen, + btnRead, + '-', + btnUnread, + '-', + btnAll, + '->', // begin using the right-justified button container + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' + ]; - var tb = new Ext.Toolbar({ - height: 33, - items: itemToolbar - }); + var toolbarUnassigned = [ + optionMenuOpen, + btnRead, + '-', + btnUnread, + '-', + btnAll, + '->', // begin using the right-justified button container + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' + ]; + + + + var toolbarDraft = [ + optionMenuOpen, + { + xtype: 'tbsplit', + text: _('ID_ACTIONS'), + menu: menuItems + }, + '->', + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' + ]; + + var toolbarToRevise = [ + optionMenuOpen, + '->', // begin using the right-justified button container + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' + ]; + + var toolbarToReassign = [ + optionMenuOpen, + "-", + btnSelectAll, + btnUnSelectAll, + "-", + btnReassign, + "->", + _("ID_USER"), + comboAllUsers, + "-", + _("ID_CATEGORY"), + comboCategory, + "-", + _("ID_PROCESS"), + comboProcess, + textSearch, + resetSearchButton, + btnSearch, + " ", + " " + ]; + + var toolbarSent = [ + optionMenuOpen, + btnStarted, + '-', + btnCompleted, + '-', + btnAll, + '->', // begin using the right-justified button container + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + _('ID_STATUS'), + comboStatus, + '-', + textSearch, + resetSearchButton, + btnSearch, + '-', + textJump, + btnJump, + ' ', + ' ' + ]; + + var clearDateFrom = new Ext.Action({ + text: "X", + ctCls: "pm_search_x_button_des", + handler: function(){ + Ext.getCmp("dateFrom").setValue(""); + } + }); + + var clearDateTo = new Ext.Action({ + text: "X", + ctCls: "pm_search_x_button_des", + handler: function(){ + Ext.getCmp("dateTo").setValue(""); + } + }); + + var toolbarSearch = [ + ' ', + _('ID_DELEGATE_DATE_FROM'), + dateFrom, + clearDateFrom, + ' ', + _('ID_TO'), + dateTo, + clearDateTo, + "->", + '-', + textSearch, + resetSearchButton, + btnSearch , + '   ' + ]; + + var firstToolbarSearch = new Ext.Toolbar({ + region: 'north', + width: '100%', + autoHeight: true, + items: [ + optionMenuOpen, + '->', + _("ID_CATEGORY"), + comboCategory, + "-", + _('ID_PROCESS'), + comboProcess, + '-', + _('ID_STATUS'), + comboStatus, + "-", + _("ID_USER"), + //comboUser, + suggestUser, + resetSuggestButton, + '   ' + //'-', + //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 + }); var mask = new Ext.LoadMask(Ext.getBody(), {msg: _('ID_LOADING')}); - // create the editor grid - grid = new Ext.grid.GridPanel({ - region: 'center', - id: 'casesGrid', - store: storeCases, - cm: cm, - loadMask: mask, + // create the editor grid + grid = new Ext.grid.GridPanel({ + region: 'center', + id: 'casesGrid', + store: storeCases, + cm: cm, + loadMask: mask, - 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: ( _('ID_NO_RECORDS_FOUND') ) - }, - listeners: { - rowdblclick: openCase, - render: function(){ - //this.loadMask = new Ext.LoadMask(this.body, {msg:TRANSLATIONS.LABEL_GRID_LOADING}); - //this.ownerCt.doLayout(); - } - }, + 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: ( _('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: _('ID_DISPLAY_ITEMS') + '   ', - emptyMsg: _('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 btnExecReassignSelected = new Ext.Button ({ - text: _('ID_REASSIGN'), - handler: function(){ - var rs = storeReassignCases.getModifiedRecords(); - if (rs.length < storeReassignCases.totalLength) { - Ext.Msg.confirm( _('ID_CONFIRM'), _('ID_CONFIRM_TO_REASSIGN'), function (btn, text) { - if ( btn == 'yes' ) { - ExecReassign(); - } + 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: _('ID_DISPLAY_ITEMS') + '   ', + emptyMsg: _('ID_DISPLAY_EMPTY') }) - } else { - ExecReassign(); - } - } - }); + }); -var gridForm = new Ext.FormPanel({ + + 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 btnExecReassignSelected = new Ext.Button ({ + text: _('ID_REASSIGN'), + handler: function(){ + var rs = storeReassignCases.getModifiedRecords(); + if (rs.length < storeReassignCases.totalLength) { + Ext.Msg.confirm( _('ID_CONFIRM'), _('ID_CONFIRM_TO_REASSIGN'), function (btn, text) { + if ( btn == 'yes' ) { + ExecReassign(); + } + }) + } else { + ExecReassign(); + } + } + }); + + var gridForm = new Ext.FormPanel({ id: 'reassign-form', frame: true, labelAlign: 'left', @@ -2024,10 +2067,10 @@ var gridForm = new Ext.FormPanel({ sm: new Ext.grid.RowSelectionModel({ singleSelect: true /*listeners: { - rowselect: function(sm, row, rec) { - Ext.getCmp("reassign-form").getForm().loadRecord(rec); - } - }*/ + rowselect: function(sm, row, rec) { + Ext.getCmp("reassign-form").getForm().loadRecord(rec); + } + }*/ }), //autoExpandColumn: 'company', height: 265, @@ -2043,13 +2086,13 @@ var gridForm = new Ext.FormPanel({ var currentUser = ''; comboUsersToReassign.disable(); if( rows.length > 0 ) { - comboUsersToReassign.enable(); + comboUsersToReassign.enable(); var ids = ''; for(i=0; i 0 ) { - ids = ''; - for(i=0; i 0 ) { + ids = ''; + for(i=0; i