From 348782affd3a09d991ab797359293d49f72e14ec Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Tue, 10 Nov 2015 16:19:05 -0400 Subject: [PATCH] PM-3739: 18719: Urgent help required with ProcessMaker on IE 11 . cambio de lugar de la validacion para cerrar el tab validacion try catch control IE11 del boton Cancel en casos sin asignar --- .../engine/methods/cases/casesListExtJs.php | 5 + .../engine/methods/cases/casesStartPage.php | 5 + .../methods/cases/cases_CatchSelfService.php | 8 +- .../engine/methods/cases/cases_Derivate.php | 18 ++++ workflow/engine/skinEngine/skinEngine.php | 7 ++ workflow/engine/templates/cases/casesList.js | 30 ++++-- .../engine/templates/cases/casesStartCase.js | 30 ++++-- .../xmlform/cases/cases_CatchSelfService.html | 92 +++++++++---------- .../xmlform/cases/cases_CatchSelfService.xml | 17 ++++ 9 files changed, 148 insertions(+), 64 deletions(-) diff --git a/workflow/engine/methods/cases/casesListExtJs.php b/workflow/engine/methods/cases/casesListExtJs.php index 650de87f1..ee92cb3cb 100755 --- a/workflow/engine/methods/cases/casesListExtJs.php +++ b/workflow/engine/methods/cases/casesListExtJs.php @@ -223,6 +223,11 @@ $oHeadPublisher->addExtJsScript( 'app/main', true ); $oHeadPublisher->addExtJsScript( 'cases/casesList', false ); //adding a javascript file .js $oHeadPublisher->addContent( 'cases/casesListExtJs' ); //adding a html file .html. $oHeadPublisher->assign( 'FORMATS', $c->getFormats() ); +$ieVersion = null; +if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); +} +$oHeadPublisher->assign( 'ieVersion', $ieVersion ); G::RenderPage( 'publish', 'extJs' ); function getUserArray ($action, $userUid) diff --git a/workflow/engine/methods/cases/casesStartPage.php b/workflow/engine/methods/cases/casesStartPage.php index 5e915f4f2..93f5458c0 100755 --- a/workflow/engine/methods/cases/casesStartPage.php +++ b/workflow/engine/methods/cases/casesStartPage.php @@ -17,6 +17,11 @@ switch ($page) { G::LoadClass( 'configuration' ); $c = new Configurations(); $oHeadPublisher->assign( 'FORMATS', $c->getFormats() ); + $ieVersion = null; + if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); + } + $oHeadPublisher->assign( 'ieVersion', $ieVersion ); break; case "documents": diff --git a/workflow/engine/methods/cases/cases_CatchSelfService.php b/workflow/engine/methods/cases/cases_CatchSelfService.php index a66a41688..a84bae9fe 100755 --- a/workflow/engine/methods/cases/cases_CatchSelfService.php +++ b/workflow/engine/methods/cases/cases_CatchSelfService.php @@ -96,10 +96,16 @@ $oHeadPublisher->addScriptCode( ' leimnud.Package.Load("cases_Step",{Type:"file",Absolute:true,Path:"/jscore/cases/core/cases_Step.js"}); leimnud.Package.Load("processmap",{Type:"file",Absolute:true,Path:"/jscore/processmap/core/processmap.js"}); leimnud.exec(leimnud.fix.memoryLeak); - ' ); + ' ); $oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher->addScriptFile( '/jscore/cases/core/cases_Step.js' ); +$ieVersion = ''; +if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); +} +$Fields['IE_VERSION'] = $ieVersion; + $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_CatchSelfService.xml', '', $Fields, 'cases_CatchExecute' ); G::RenderPage( 'publish', 'blank' ); diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index d98d82820..b9f89784d 100755 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -203,6 +203,24 @@ try { unset( $_SESSION['TRIGGER_DEBUG'] ); } } + + //close tab only if IE11 + $ieVersion = null; + if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); + } + if($ieVersion == 11 && !isset($_SESSION['__OUTLOOK_CONNECTOR__'])) { + $script = ""; + die($script); + } G::header( "location: $loc" ); } catch (Exception $e) { diff --git a/workflow/engine/skinEngine/skinEngine.php b/workflow/engine/skinEngine/skinEngine.php index ea4907cf9..17e05ad08 100755 --- a/workflow/engine/skinEngine/skinEngine.php +++ b/workflow/engine/skinEngine/skinEngine.php @@ -275,6 +275,7 @@ class SkinEngine //Get the IE version if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ $ie = intval($arrayMatch[1]); + $ieVersion = $ie; } $swTrident = (preg_match("/^.*Trident.*$/", $_SERVER["HTTP_USER_AGENT"]))? 1 : 0; //Trident only in IE8+ @@ -293,6 +294,12 @@ class SkinEngine $doctype = null; $meta = ""; + + if (SYS_COLLECTION == 'cases') { + if($ieVersion == 11) { + $meta = ""; + } + } } } diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index c35135b3b..27e1a6c8e 100755 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -24,6 +24,7 @@ var grid; var textJump; var ids = ''; var winReassignInCasesList; +var casesNewTab; function formatAMPM(date, initVal, calendarDate) { @@ -84,13 +85,14 @@ function openCase(){ 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} - }); + if(ieVersion != 11) { + Ext.Msg.show({ + msg: _('ID_OPEN_CASE') + ' ' + caseTitle, + width:300, + wait:true, + waitConfig: {interval:200} + }); + } params = ''; switch(action){ case 'to_revise': @@ -128,7 +130,14 @@ function openCase(){ // Nothing to do } params += '&action=' + action; - redirect(requestFile + '?' + params); + if(ieVersion == 11) { + if(casesNewTab) { + casesNewTab.close(); + } + casesNewTab = window.open(requestFile + '?' + params); + } else { + redirect(requestFile + '?' + params); + } } else msgBox(_('ID_INFORMATION'), _('ID_SELECT_ONE_AT_LEAST')); @@ -2473,3 +2482,8 @@ function msgBox(title, msg, type){ }); } +Ext.EventManager.on(window, 'beforeunload', function () { + if(casesNewTab) { + casesNewTab.close(); + } +}); diff --git a/workflow/engine/templates/cases/casesStartCase.js b/workflow/engine/templates/cases/casesStartCase.js index e57ff324e..cd25db210 100755 --- a/workflow/engine/templates/cases/casesStartCase.js +++ b/workflow/engine/templates/cases/casesStartCase.js @@ -1,5 +1,6 @@ //Ext.BLANK_IMAGE_URL = 'resources/s.gif'; var startCaseFilter; +var newCaseNewTab; Ext.chart.Chart.CHART_URL = '/images/charts.swf'; Ext.FlashComponent.EXPRESS_INSTALL_URL = '/images/expressinstall.swf'; @@ -444,12 +445,14 @@ Ext.onReady(function() { function openCaseA(n){ if (n.attributes.optionType == "startProcess") { - Ext.Msg.show({ - title : '', - msg : TRANSLATIONS.ID_STARTING_NEW_CASE + '

' + n.attributes.text + '', - wait:true, - waitConfig: {interval:500} - }); + if(ieVersion != 11) { + Ext.Msg.show({ + title : '', + msg : TRANSLATIONS.ID_STARTING_NEW_CASE + '

' + n.attributes.text + '', + wait:true, + waitConfig: {interval:500} + }); + } Ext.Ajax.request({ url : 'casesStartPage_Ajax.php', params : { @@ -462,7 +465,14 @@ function openCaseA(n){ try { var res = Ext.util.JSON.decode(response.responseText); if (res.openCase) { + if(ieVersion == 11) { + if(newCaseNewTab) { + newCaseNewTab.close(); + } + newCaseNewTab = window.open(res.openCase.PAGE); + } else { window.location = res.openCase.PAGE; + } }else if (res.lostSession) { Ext.Msg.show({ title : TRANSLATIONS.ID_ERROR_CREATING_NEW_CASE, // 'Error creating a new Case', @@ -574,4 +584,10 @@ Ext.ux.MaskTree = Ext.extend(Ext.tree.TreePanel, { } }); // end of extend -Ext.reg('masktree', Ext.ux.MaskTree); \ No newline at end of file +Ext.reg('masktree', Ext.ux.MaskTree); + +Ext.EventManager.on(window, 'beforeunload', function () { + if(newCaseNewTab) { + newCaseNewTab.close(); + } +}); diff --git a/workflow/engine/xmlform/cases/cases_CatchSelfService.html b/workflow/engine/xmlform/cases/cases_CatchSelfService.html index 7b4f7da70..91a1cd856 100755 --- a/workflow/engine/xmlform/cases/cases_CatchSelfService.html +++ b/workflow/engine/xmlform/cases/cases_CatchSelfService.html @@ -1,76 +1,72 @@ -
-
-
- +
+
 
 
 
+
+
+ + + + +
- - - - + + + +
+ + + + - + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - - - - - -
{$form.IE_VERSION}
{$form.TITLE1}
{$PRO_TITLE}{$form.PRO_TITLE}
{$form.PRO_TITLE}
{$STATUS}{$form.STATUS}
{$form.STATUS}
{$TITLE}{$form.TITLE}
{$form.TITLE}
{$APP_NUMBER}{$form.APP_NUMBER}
{$form.APP_NUMBER}
{$APP_UID}{$form.APP_UID}
{$form.APP_UID}
{$TAS_TITLE}{$form.TAS_TITLE}
{$form.TAS_TITLE}
{$DEL_DELEGATE_DATE}{$form.DEL_DELEGATE_DATE}
{$form.DEL_DELEGATE_DATE}
{$DEL_TASK_DUE_DATE}{$form.DEL_TASK_DUE_DATE}
{$form.DEL_TASK_DUE_DATE}
{$PREVIOUS_TASK}{$form.PREVIOUS_TASK}
{$form.PREVIOUS_TASK}
{$PREVIOUS_USER}{$form.PREVIOUS_USER}
{$form.BTN_CATCH} {$form.BTN_CANCEL}
+
{$form.PREVIOUS_USER}
{$form.BTN_CATCH} {$form.BTN_CANCEL}
-
-
-
-
+ +
 
 
 
+ + + diff --git a/workflow/engine/xmlform/cases/cases_CatchSelfService.xml b/workflow/engine/xmlform/cases/cases_CatchSelfService.xml index 29a4c56b1..63ec58915 100755 --- a/workflow/engine/xmlform/cases/cases_CatchSelfService.xml +++ b/workflow/engine/xmlform/cases/cases_CatchSelfService.xml @@ -1,5 +1,6 @@ + @@ -39,4 +40,20 @@ +