From 9f7a522dff4ffb2c086100476537c9459d67b04f Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Thu, 21 Jun 2012 12:02:11 -0400 Subject: [PATCH 1/2] BUG 8445 Don't work jump the cases list SOLVED - I Add validate to cases numbers not exists - I Add message in translation ID_CASE_DOES_NOT_EXIST_JS --- workflow/engine/methods/cases/cases_Ajax.php | 18 ++++++++++++++ workflow/engine/templates/cases/casesList.js | 26 +++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/workflow/engine/methods/cases/cases_Ajax.php b/workflow/engine/methods/cases/cases_Ajax.php index 390dfbc84..d7329d73d 100755 --- a/workflow/engine/methods/cases/cases_Ajax.php +++ b/workflow/engine/methods/cases/cases_Ajax.php @@ -967,6 +967,24 @@ switch(($_POST['action'])?$_POST['action']:$_REQUEST['action']) { echo $json->encode($aTypesID); } break; + case "previusJump": + require_once 'classes/model/Application.php'; + + $oCriteria = new Criteria('workflow'); + $oCriteria->add(ApplicationPeer::APP_NUMBER, $_POST['appNumber']); + $oDataset = ApplicationPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + $aApplication = $oDataset->getRow(); + + if (is_array($aApplication)) { + echo '{"success": true, "exists": true}'; + } else { + echo '{"success": true, "exists": false}'; + } + break; + + default: echo 'default'; diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 97f07f934..e84b15fff 100644 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -101,10 +101,28 @@ function openCase(){ } function jumpToCase(appNumber){ - params = 'APP_NUMBER=' + appNumber; - params += '&action=jump'; - requestFile = '../cases/open'; - redirect(requestFile + '?' + params); + + // 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() { From 8bd64664c4b0d5f0e162a4a6ad7b57a336ab61ad Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Thu, 21 Jun 2012 18:19:55 -0400 Subject: [PATCH 2/2] BUG 8445 Amend code SOLVED - Serialize using G::json_encode --- workflow/engine/methods/cases/cases_Ajax.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/workflow/engine/methods/cases/cases_Ajax.php b/workflow/engine/methods/cases/cases_Ajax.php index d7329d73d..229c961c3 100755 --- a/workflow/engine/methods/cases/cases_Ajax.php +++ b/workflow/engine/methods/cases/cases_Ajax.php @@ -971,6 +971,9 @@ switch(($_POST['action'])?$_POST['action']:$_REQUEST['action']) { require_once 'classes/model/Application.php'; $oCriteria = new Criteria('workflow'); + $response = array( "success" => true ); + + $oCriteria->add(ApplicationPeer::APP_NUMBER, $_POST['appNumber']); $oDataset = ApplicationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); @@ -978,10 +981,12 @@ switch(($_POST['action'])?$_POST['action']:$_REQUEST['action']) { $aApplication = $oDataset->getRow(); if (is_array($aApplication)) { - echo '{"success": true, "exists": true}'; + $response['exists'] = true; } else { - echo '{"success": true, "exists": false}'; + $response['exists'] = false; } + + echo G::json_encode($response); break;