From 08c216b7577c9961dd21f2b8d8a5a4d263fb8973 Mon Sep 17 00:00:00 2001 From: norahmollo Date: Wed, 15 Jan 2014 09:44:14 -0400 Subject: [PATCH 01/30] BUG-13808 Missing "<" and ">" between "info@processmaker.com" email Added simbols "<" and ">" in email. --- workflow/engine/classes/model/Event.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/workflow/engine/classes/model/Event.php b/workflow/engine/classes/model/Event.php index 630463ff5..e06b8febb 100755 --- a/workflow/engine/classes/model/Event.php +++ b/workflow/engine/classes/model/Event.php @@ -303,7 +303,7 @@ class Event extends BaseEvent $oTP = new TemplatePower( PATH_TPL . 'events' . PATH_SEP . 'sendMessage.tpl' ); $oTP->prepare(); - $oTP->assign( 'from', 'info@processmaker.com' ); + $oTP->assign( 'from', '' ); $oTP->assign( 'subject', addslashes( $aData['EVN_ACTION_PARAMETERS']['SUBJECT'] ) ); $oTP->assign( 'template', $aData['EVN_ACTION_PARAMETERS']['TEMPLATE'] ); $oTP->assign( 'timestamp', date( "l jS \of F Y h:i:s A" ) ); @@ -504,9 +504,9 @@ class Event extends BaseEvent $when = (float) $aData['EVN_WHEN']; $whenOccurs = $aData['EVN_WHEN_OCCURS']; - if ($oCalendar->pmCalendarUid == '') { - $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); - $oCalendar->getCalendarData(); + if ($oCalendar->pmCalendarUid == '') { + $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); + $oCalendar->getCalendarData(); } if ($whenOccurs == 'AFTER_TIME') { @@ -620,9 +620,9 @@ class Event extends BaseEvent $when = (float) $aData['EVN_WHEN']; $whenOccurs = $aData['EVN_WHEN_OCCURS']; - if ($oCalendar->pmCalendarUid == '') { - $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); - $oCalendar->getCalendarData(); + if ($oCalendar->pmCalendarUid == '') { + $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); + $oCalendar->getCalendarData(); } if ($whenOccurs == 'AFTER_TIME') { @@ -880,9 +880,9 @@ class Event extends BaseEvent $when = $aData['EVN_WHEN']; //how many days $whenOccurs = $aData['EVN_WHEN_OCCURS']; //time on action (AFTER_TIME/TASK_STARTED) - if ($oCalendar->pmCalendarUid == '') { - $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); - $oCalendar->getCalendarData(); + if ($oCalendar->pmCalendarUid == '') { + $oCalendar->getCalendar(null, $aData['PRO_UID'], $aData['TAS_UID']); + $oCalendar->getCalendarData(); } if ($whenOccurs == 'TASK_STARTED') { From e5dd8d8582f83539295187f82416d09e765918c4 Mon Sep 17 00:00:00 2001 From: norahmollo Date: Wed, 15 Jan 2014 11:09:59 -0400 Subject: [PATCH 02/30] BUG-13862 fails importing plugins trim function has been added for evaluate string --- workflow/engine/methods/setup/pluginsImportFile.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/methods/setup/pluginsImportFile.php b/workflow/engine/methods/setup/pluginsImportFile.php index b5b65c4bf..b20dda9af 100755 --- a/workflow/engine/methods/setup/pluginsImportFile.php +++ b/workflow/engine/methods/setup/pluginsImportFile.php @@ -58,9 +58,9 @@ try { ) ) )); } foreach ($aFiles as $key => $val) { - if ($val['filename'] == $sClassName . '.php') + if (trim($val['filename']) == $sClassName . '.php') $bMainFile = true; - if ($val['filename'] == $sClassName . PATH_SEP . 'class.' . $sClassName . '.php') + if (trim($val['filename']) == $sClassName . PATH_SEP . 'class.' . $sClassName . '.php') $bClassFile = true; } From 14b23e71002bd89f637df945e55b0463294c4c41 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 15 Jan 2014 11:52:06 -0400 Subject: [PATCH 03/30] =?UTF-8?q?BUG-13839=20SOLVED=20La=20secci=C3=B3n=20?= =?UTF-8?q?DESIGNER=20/=20{task=20selected}=20/=20DYNAFORMS=20/=20Edit=20{?= =?UTF-8?q?selected=20element},=20no=20debe=20mostrar=20la=20ficha=20Javas?= =?UTF-8?q?cript=20en=20las=20opciones=20de=20edici=C3=B3n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/class.dynaformEditor.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php index d084fd112..4a41d8837 100755 --- a/workflow/engine/classes/class.dynaformEditor.php +++ b/workflow/engine/classes/class.dynaformEditor.php @@ -213,7 +213,9 @@ class dynaformEditor extends WebResource $G_PUBLISH->AddContent('panel-tab', G::LoadTranslation("ID_HTML"), $sName . '[5]', 'dynaformEditor.changeToHtmlCode', 'dynaformEditor.saveCurrentView'); } $G_PUBLISH->AddContent('panel-tab', G::LoadTranslation("ID_FIELDS_LIST"), $sName . '[6]', 'dynaformEditor.changeToFieldsList', 'dynaformEditor.saveCurrentView'); - $G_PUBLISH->AddContent('panel-tab', G::LoadTranslation("ID_JAVASCRIPTS"), $sName . '[7]', 'dynaformEditor.changeToJavascripts', 'dynaformEditor.saveCurrentView'); + if ($Properties["DYN_TYPE"] != "grid") { + $G_PUBLISH->AddContent('panel-tab', G::LoadTranslation("ID_JAVASCRIPTS"), $sName . '[7]', 'dynaformEditor.changeToJavascripts', 'dynaformEditor.saveCurrentView'); + } $G_PUBLISH->AddContent('panel-tab', G::LoadTranslation("ID_PROPERTIES"), $sName . '[8]', 'dynaformEditor.changeToProperties', 'dynaformEditor.saveCurrentView'); //for showHide tab option @Neyek From 2ffd4e315faffc8bad2e46422664528d49fd00ab Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Wed, 15 Jan 2014 12:16:46 -0400 Subject: [PATCH 04/30] FIXES on Bootstrap and Path classes 1. On bootstrap class, was added static declaration for registerClass() method 2. On Patch class was removed at top the loadClass('system') call, because this make a redeclaration error, in PHP ver 5.3.2x and it was moved into function that use that, now it is just loaded conditionally. --- gulliver/system/class.bootstrap.php | 2 +- workflow/engine/classes/class.patch.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index 2e61e4e44..1a50bb526 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -30,7 +30,7 @@ class Bootstrap return; } - public function registerClass($classname, $includeFile) + public static function registerClass($classname, $includeFile) { BootStrap::$includeClassPaths[strtolower($classname)] = $includeFile; return; diff --git a/workflow/engine/classes/class.patch.php b/workflow/engine/classes/class.patch.php index ec10a6099..1f8eab0e6 100644 --- a/workflow/engine/classes/class.patch.php +++ b/workflow/engine/classes/class.patch.php @@ -2,7 +2,6 @@ G::LoadClass("Task"); G::LoadClass("TaskUser"); -G::LoadClass("System"); /** * class, helping to set some not desirable settings but necesary @@ -26,6 +25,10 @@ class p11835 extends patch */ static public function isApplicable() { + if (! class_exists('System')) { + G::LoadClass("System"); + } + patch::$isPathchable = false; $con = Propel::getConnection("workflow"); $stmt = $con->prepareStatement("describe TASK;"); From 4e24be8f3b896b986c001b1efb87ed13813a7c82 Mon Sep 17 00:00:00 2001 From: norahmollo Date: Wed, 15 Jan 2014 15:14:36 -0400 Subject: [PATCH 05/30] B-Fails importing plugins trim function has been added for evaluate the name of plugin --- workflow/engine/methods/setup/pluginsImportFile.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workflow/engine/methods/setup/pluginsImportFile.php b/workflow/engine/methods/setup/pluginsImportFile.php index b20dda9af..e55399b1e 100755 --- a/workflow/engine/methods/setup/pluginsImportFile.php +++ b/workflow/engine/methods/setup/pluginsImportFile.php @@ -1,5 +1,6 @@ Date: Wed, 15 Jan 2014 16:44:31 -0400 Subject: [PATCH 06/30] =?UTF-8?q?BUG-13709=20SOLVED=20Al=20activar=20la=20?= =?UTF-8?q?opci=C3=B3n=20ADMIN=20->=20Login=20/=20Enable=20Forgot=20passwo?= =?UTF-8?q?rd,=20el=20modulo=20de=20recuperaci=C3=B3n=20de=20password=20'F?= =?UTF-8?q?orgot=20password'=20en=20la=20ventana=20de=20login,=20muestra?= =?UTF-8?q?=20el=20mensaje:=20'WARNING:=20Invalid=20email=20address=20in?= =?UTF-8?q?=20FROM=20parameter=20(<>)'=20despu=C3=A9s=20de=20ingresar=20lo?= =?UTF-8?q?s=20datos=20de=20un=20usuario=20valido.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/methods/login/retrivePassword.php | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/workflow/engine/methods/login/retrivePassword.php b/workflow/engine/methods/login/retrivePassword.php index 217107c93..99027a42d 100755 --- a/workflow/engine/methods/login/retrivePassword.php +++ b/workflow/engine/methods/login/retrivePassword.php @@ -11,7 +11,7 @@ $user = new Users(); $userData = $rbacUser->getByUsername($data['USR_USERNAME']); -if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL']) { +if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL'] && $userData['USR_AUTH_TYPE'] === '' ) { $aSetup = getEmailConfiguration(); if (count($aSetup) == 0 || !isset($aSetup['MESS_ENGINE'])) { G::SendTemporalMessage ('ID_EMAIL_ENGINE_IS_NOT_ENABLED', "warning"); @@ -27,7 +27,20 @@ if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL' $rbacUser->update($aData); $user->update($aData); */ - $sFrom = ($aSetup['MESS_ACCOUNT'] != '' ? $aSetup['MESS_ACCOUNT'] . ' ' : '') . '<' . $aSetup['MESS_ACCOUNT'] . '>'; + + if (trim($aSetup["MESS_FROM_NAME"]) === '') { + $aSetup["MESS_FROM_NAME"] = 'PROCESSMAKER'; + } + if ($aSetup['MESS_ENGINE'] === 'MAIL') { + $sFrom = $aSetup["MESS_FROM_NAME"] . " "; + } else { + if (trim($aSetup["MESS_ACCOUNT"]) === '') { + $sFrom = $aSetup["MESS_FROM_NAME"] . " "; + } else { + $sFrom = $aSetup["MESS_FROM_NAME"] . " <" . $aSetup["MESS_ACCOUNT"] . ">"; + } + } + $sSubject = G::LoadTranslation('ID_RESET_PASSWORD').' - ProcessMaker' ; $msg = '

ProcessMaker Forgot password Service

'; $msg .='

'.G::LoadTranslation('ID_YOUR_USERMANE_IS').' : '.$userData['USR_USERNAME'].'

'; @@ -115,7 +128,11 @@ if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL' G::SendTemporalMessage ($e->getMessage(), "warning", 'string'); } } else { + if ($userData['USR_AUTH_TYPE'] === '') { $msg = G::LoadTranslation('ID_USER') . ' ' . htmlentities($data['USR_USERNAME'], ENT_QUOTES, 'UTF-8') . ' '. G::LoadTranslation('ID_IS_NOT_REGISTERED'); + } else { + $msg = G::LoadTranslation('ID_USER_NOT_FUNCTIONALITY'); + } G::SendTemporalMessage ($msg, "warning", 'string'); G::header('location: forgotPassword'); } From 272f00c3c3e6f7deaa8b63fe0cdddfc57d6db997 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 15 Jan 2014 16:47:14 -0400 Subject: [PATCH 07/30] =?UTF-8?q?BUG-13709=20SOLVED=20Al=20activar=20la=20?= =?UTF-8?q?opci=C3=B3n=20ADMIN=20->=20Login=20/=20Enable=20Forgot=20passwo?= =?UTF-8?q?rd,=20el=20modulo=20de=20recuperaci=C3=B3n=20de=20password=20'F?= =?UTF-8?q?orgot=20password'=20en=20la=20ventana=20de=20login,=20muestra?= =?UTF-8?q?=20el=20mensaje:=20'WARNING:=20Invalid=20email=20address=20in?= =?UTF-8?q?=20FROM=20parameter=20(<>)'=20despu=C3=A9s=20de=20ingresar=20lo?= =?UTF-8?q?s=20datos=20de=20un=20usuario=20valido.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/methods/login/retrivePassword.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/methods/login/retrivePassword.php b/workflow/engine/methods/login/retrivePassword.php index 99027a42d..ea83b0a9c 100755 --- a/workflow/engine/methods/login/retrivePassword.php +++ b/workflow/engine/methods/login/retrivePassword.php @@ -129,7 +129,7 @@ if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL' } } else { if ($userData['USR_AUTH_TYPE'] === '') { - $msg = G::LoadTranslation('ID_USER') . ' ' . htmlentities($data['USR_USERNAME'], ENT_QUOTES, 'UTF-8') . ' '. G::LoadTranslation('ID_IS_NOT_REGISTERED'); + $msg = G::LoadTranslation('ID_USER') . ' ' . htmlentities($data['USR_USERNAME'], ENT_QUOTES, 'UTF-8') . ' '. G::LoadTranslation('ID_IS_NOT_REGISTERED'); } else { $msg = G::LoadTranslation('ID_USER_NOT_FUNCTIONALITY'); } From 0ac2953fb4219fd644c8b06d4d90b02335de759d Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 16 Jan 2014 13:10:09 -0400 Subject: [PATCH 08/30] =?UTF-8?q?SOLVED=20La=20secci=C3=B3n=20DESIGNER=20/?= =?UTF-8?q?=20columna=20Category,=20los=20procesos=20que=20no=20tiene=20un?= =?UTF-8?q?a=20categor=C3=ADa=20se=20confunden=20cuando=20se=20realiza=20l?= =?UTF-8?q?a=20ordenaci=C3=B3n=20respectiva.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/model/Process.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index a8bdfd8bf..c62df5ace 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -721,7 +721,7 @@ class Process extends BaseProcess $process['PRO_CREATE_DATE'] = date( $creationDateMask, mktime( $h, $i, $s, $m, $d, $y ) ); } - $process['PRO_CATEGORY_LABEL'] = trim( $process['PRO_CATEGORY'] ) != '' ? $process['CATEGORY_NAME'] : G::LoadTranslation( 'ID_PROCESS_NO_CATEGORY' ); + $process['PRO_CATEGORY_LABEL'] = trim( $process['PRO_CATEGORY'] ) != '' ? $process['CATEGORY_NAME'] : '- ' . G::LoadTranslation( 'ID_PROCESS_NO_CATEGORY' ) . ' -'; $process['PRO_TITLE'] = $proTitle; $process['PRO_DESCRIPTION'] = $proDescription; $process['PRO_DEBUG'] = $process['PRO_DEBUG']; From cb21599db0aef9c4eb98d5521ac5dd08cbe60593 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 16 Jan 2014 14:33:40 -0400 Subject: [PATCH 09/30] =?UTF-8?q?BUG-13892=20SOLVED=20La=20secci=C3=B3n=20?= =?UTF-8?q?DESIGNER=20/=20{dblclick=20en=20alg=C3=BAn=20proceso}=20/=20{ta?= =?UTF-8?q?sk}=20Properties=20/=20{tab}=20Notifications=20el=20checkbox=20?= =?UTF-8?q?no=20muestra=20ninguna=20etiqueta,=20el=20contenido=20del=20tex?= =?UTF-8?q?to=20deber=C3=ADa=20ser=20'After=20routing=20notify=20the=20nex?= =?UTF-8?q?t=20assigned=20user(s).'=20para=20el=20idioma=20ingles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/xmlform/tasks/tasks_Notifications.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/xmlform/tasks/tasks_Notifications.html b/workflow/engine/xmlform/tasks/tasks_Notifications.html index 9d9f57a82..bcb1fe346 100755 --- a/workflow/engine/xmlform/tasks/tasks_Notifications.html +++ b/workflow/engine/xmlform/tasks/tasks_Notifications.html @@ -17,7 +17,7 @@ {$form.IFORM} - + {$SEND_EMAIL} {$form.SEND_EMAIL} From 96e9d7047e2d7b7acbf2259180fd938748ef12f9 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 17 Jan 2014 12:56:40 -0400 Subject: [PATCH 10/30] BUG-13892 IMPROVEMENT. --- workflow/engine/xmlform/tasks/tasks_Notifications.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/xmlform/tasks/tasks_Notifications.html b/workflow/engine/xmlform/tasks/tasks_Notifications.html index bcb1fe346..c44cc5212 100755 --- a/workflow/engine/xmlform/tasks/tasks_Notifications.html +++ b/workflow/engine/xmlform/tasks/tasks_Notifications.html @@ -17,8 +17,8 @@ {$form.IFORM} - {$SEND_EMAIL} - {$form.SEND_EMAIL} + + {$form.SEND_EMAIL} {$SEND_EMAIL} * {$TAS_DEF_SUBJECT_MESSAGE} From f43862af9b062421f6ef9ed27a281819f273e4f0 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Fri, 17 Jan 2014 14:39:29 -0400 Subject: [PATCH 11/30] BUG 13915 13915: The 'workspace-restore' action changes the actual files structure SOLVED - The command ./processmaker workspace-restore always change the files directory structure to new estructure - The original structure shold not be changed in the 'workspace-restore' command, for this purpose exists another command to execute this action when the user require this functionality --- workflow/engine/classes/class.wsTools.php | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index d3fcd2eae..478172cd9 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -141,10 +141,10 @@ class workspaceTools $this->dbHost = $values["DB_HOST"]; $this->dbUser = $values["DB_USER"]; $this->dbPass = $values["DB_PASS"]; - - $this->dbRbacHost = $values["DB_RBAC_HOST"]; - $this->dbRbacName = $values["DB_RBAC_NAME"]; - $this->dbRbacUser = $values["DB_RBAC_USER"]; + + $this->dbRbacHost = $values["DB_RBAC_HOST"]; + $this->dbRbacName = $values["DB_RBAC_NAME"]; + $this->dbRbacUser = $values["DB_RBAC_USER"]; $this->dbRbacPass = $values["DB_RBAC_PASS"]; return $this->dbInfo = $values; @@ -361,7 +361,7 @@ class workspaceTools } return $this->db; } - + /** * Close any database opened with getDatabase */ @@ -690,7 +690,7 @@ class workspaceTools } $oDataBase = $this->getDatabase($rbac); - + $oDataBase->iFetchType = MYSQL_NUM; $oDataBase->logQuery(count($changes)); @@ -1356,13 +1356,6 @@ class workspaceTools $stop = microtime(true); $final = $stop - $start; CLI::logging("<*> Database Upgrade Process took $final seconds.\n"); - - $start = microtime(true); - CLI::logging("> Updating cases directories structure...\n"); - $workspace->upgradeCasesDirectoryStructure($workspaceName); - $stop = microtime(true); - $final = $stop - $start; - CLI::logging("<*> Database Upgrade Structure Process took $final seconds.\n"); } $start = microtime(true); CLI::logging("> Updating cache view...\n"); @@ -1431,11 +1424,11 @@ class workspaceTools return $result; } - + public function backupLogFiles() { $config = System::getSystemConfiguration(); - + clearstatcache(); $path = PATH_DATA . "log" . PATH_SEP; $filePath = $path . "cron.log"; From adeea26e32d1894372a062f1903f4385d53829d8 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Tue, 21 Jan 2014 13:02:08 -0400 Subject: [PATCH 12/30] BUG 13938 Line error_reporting(E_ALL) in cron.php and cron_single.php is generating unnecesary errors SOLVED - Unnecesary lines to set the configuration for "display_errors" and "error_reporting" - Delete unnecesary lines and now this configurations is setted with the processmaker configuration (env.ini) --- workflow/engine/bin/cron.php | 4 ---- workflow/engine/bin/cron_single.php | 12 ++++-------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/workflow/engine/bin/cron.php b/workflow/engine/bin/cron.php index ec985c7a2..e9eb0eca7 100755 --- a/workflow/engine/bin/cron.php +++ b/workflow/engine/bin/cron.php @@ -3,10 +3,6 @@ * cron.php * @package workflow-engine-bin */ -ini_set('display_errors', 1); -error_reporting(E_ALL); -ini_set('memory_limit', '300M'); // nore: this may need to be higher for many projects -$mem_limit = (int) ini_get('memory_limit'); if ( !defined('PATH_SEP') ) { define('PATH_SEP', ( substr(PHP_OS, 0, 3) == 'WIN' ) ? '\\' : '/'); diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index 5d5ea8312..928eb67a0 100755 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -3,10 +3,6 @@ * cron_single.php * @package workflow-engine-bin */ -ini_set('display_errors', 1); -error_reporting(E_ALL); - -ini_set("memory_limit", "256M"); if (!defined('SYS_LANG')) { define('SYS_LANG', 'en'); @@ -823,11 +819,11 @@ function executeCaseSelfService() $taskSelfServiceTimeUnit = $row["TAS_SELFSERVICE_TIME_UNIT"]; $taskSelfServiceTriggerUid = $row["TAS_SELFSERVICE_TRIGGER_UID"]; - if ($calendar->pmCalendarUid == '') { - $calendar->getCalendar(null, $appcacheProUid, $taskUid); - $calendar->getCalendarData(); + if ($calendar->pmCalendarUid == '') { + $calendar->getCalendar(null, $appcacheProUid, $taskUid); + $calendar->getCalendarData(); } - + $dueDate = $calendar->calculateDate( $appcacheDelDelegateDate, $taskSelfServiceTime, From ebfd073195b84ac42742eb4d6e62b992392b6b2b Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Tue, 21 Jan 2014 17:14:09 -0400 Subject: [PATCH 13/30] =?UTF-8?q?BUG-13873=20IMPROVEMENT=20ordenaci=C3=B3n?= =?UTF-8?q?=20de=20columnas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/model/Process.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index c62df5ace..7535a10af 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -881,9 +881,9 @@ class Process extends BaseProcess if (($this->sort) == '') { $this->sort = 'PRO_TITLE'; } - if ($a[$this->sort] > $b[$this->sort]) { + if (strtolower($a[$this->sort]) > strtolower($b[$this->sort])) { return 1; - } elseif ($a[$this->sort] < $b[$this->sort]) { + } elseif (strtolower($a[$this->sort]) < strtolower($b[$this->sort])) { return - 1; } else { return 0; @@ -895,9 +895,9 @@ class Process extends BaseProcess if (($this->sort) == '') { $this->sort = 'PRO_TITLE'; } - if ($a[$this->sort] > $b[$this->sort]) { + if (strtolower($a[$this->sort]) > strtolower($b[$this->sort])) { return - 1; - } elseif ($a[$this->sort] < $b[$this->sort]) { + } elseif (strtolower($a[$this->sort]) < strtolower($b[$this->sort])) { return 1; } else { return 0; From f3e7b7234d7e391e4d3e3ccce4295379333f47a0 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Wed, 22 Jan 2014 09:59:52 -0400 Subject: [PATCH 14/30] BUG 13942 Mala generacion de output document Processmaker 2.5.2 SOLVED - Los saltos de linea no estaban siendo parseados correctamente debido a un cambio previo en la version 2.5.2 - Se repuso y adapto parte del codigo que hacia el cambio de los saltos de linea --- gulliver/system/class.g.php | 29 ++++++++++++++----- .../engine/classes/model/OutputDocument.php | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/gulliver/system/class.g.php b/gulliver/system/class.g.php index 359c52747..2a0d773ae 100755 --- a/gulliver/system/class.g.php +++ b/gulliver/system/class.g.php @@ -1727,7 +1727,7 @@ class G * @param type Array $aFields * @return type String */ - public function replaceDataGridField($sContent, $aFields) + public function replaceDataGridField($sContent, $aFields, $nl2brRecursive = true) { $nrt = array("\n", "\r", "\t"); $nrthtml = array("(n /)", "(r /)", "(t /)"); @@ -1760,6 +1760,13 @@ class G if (isset($aFields[$grdName]) && is_array($aFields[$grdName])) { foreach ($aFields[$grdName] as $aRow) { + if ($nl2brRecursive) { + foreach ($aRow as $sKey => $vValue) { + if (!is_array($vValue)) { + $aRow[$sKey] = nl2br($aRow[$sKey]); + } + } + } $strData = $strData . G::replaceDataField($arrayMatch2[2], $aRow); } } @@ -1778,6 +1785,14 @@ class G $sContent = $strContentAux; + if ($nl2brRecursive) { + foreach ($aFields as $sKey => $vValue) { + if (!is_array($vValue)) { + $aFields[$sKey] = nl2br($aFields[$sKey]); + } + } + } + $sContent = G::replaceDataField($sContent, $aFields); return $sContent; @@ -5219,7 +5234,7 @@ class G return in_array(strtolower($functionName), $allFunctions['user']); } - /** + /** * Constructor for inputFilter class. Only first parameter is required. * @access constructor * @data Mixed - input string/array-of-string to be 'cleaned' @@ -5235,11 +5250,11 @@ class G $filtro = new InputFilter($tagsArray , $attrArray, $tagsMethod, $attrMethod, $xssAuto); return $filtro->process($data); } - + /** - * Stores a message in the log file, if the file size exceeds + * Stores a message in the log file, if the file size exceeds * specified log file is renamed and a new one is created. - * + * * @param type $message * @param type $pathData * @param type $file @@ -5248,9 +5263,9 @@ class G { $config = System::getSystemConfiguration(); G::LoadSystem('logger'); - + $oLogger =& Logger::getSingleton($pathData, PATH_SEP, $file); - $oLogger->limitFile = $config['number_log_file']; + $oLogger->limitFile = $config['number_log_file']; $oLogger->limitSize = $config['size_log_file']; $oLogger->write($message); } diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 5c0b0c2e1..e2061789b 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -477,7 +477,7 @@ class OutputDocument extends BaseOutputDocument public function generate($sUID, $aFields, $sPath, $sFilename, $sContent, $sLandscape = false, $sTypeDocToGener = 'BOTH', $aProperties = array()) { if (($sUID != '') && is_array($aFields) && ($sPath != '')) { - $sContent = nl2br(G::replaceDataGridField($sContent, $aFields)); + $sContent = G::replaceDataGridField($sContent, $aFields); G::verifyPath($sPath, true); From 73f9b84fc7ba12a2f056e09be3a7ac95cc3354db Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Wed, 22 Jan 2014 10:20:51 -0400 Subject: [PATCH 15/30] BUG 12981 When using the plugin ActionByEmail. The email received is not very user freindly IMPROVEMENT --- workflow/engine/classes/class.case.php | 54 ++++++++++++------------ workflow/engine/classes/class.wsBase.php | 4 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 0aa369cd9..0491ab691 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -3906,12 +3906,12 @@ class Cases if (AppDelegationPeer::doCount($oCriteria) == 1) { $aFields['APP_STATUS'] = 'CANCELLED'; $oApplication->update($aFields); - - G::LoadClass('reportTables'); - require_once 'classes/model/AdditionalTables.php'; + + G::LoadClass('reportTables'); + require_once 'classes/model/AdditionalTables.php'; $oReportTables = new ReportTables(); - $addtionalTables = new additionalTables(); - $oReportTables->updateTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA']); + $addtionalTables = new additionalTables(); + $oReportTables->updateTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA']); $addtionalTables->updateReportTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA'], $aFields['APP_STATUS']); } $this->CloseCurrentDelegation($sApplicationUID, $iIndex); @@ -4932,9 +4932,9 @@ class Cases throw (new Exception("Template file \"$fileTemplate\" does not exist.")); } - $sBody = G::replaceDataGridField(file_get_contents($fileTemplate), $aFields); + $sBody = G::replaceDataGridField(file_get_contents($fileTemplate), $aFields, false); } else { - $sBody = nl2br(G::replaceDataGridField($aTaskInfo["TAS_DEF_MESSAGE"], $aFields)); + $sBody = nl2br(G::replaceDataGridField($aTaskInfo["TAS_DEF_MESSAGE"], $aFields, false)); } G::LoadClass("tasks"); @@ -5910,7 +5910,7 @@ class Cases $oCriteria->add(AppMessagePeer::APP_MSG_SHOW_MESSAGE, 1); } $oCriteria->addAscendingOrderByColumn(AppMessagePeer::APP_MSG_DATE); - + $oDataset = AppMessagePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); @@ -6759,27 +6759,27 @@ class Cases } } - public function ordProcess ($a, $b) + public function ordProcess ($a, $b) { if ($this->sort == '') { $this->sort = 'APP_MSG_DATE'; - } - if ($this->dir=='ASC') { - if ($a[$this->sort] > $b[$this->sort]) { - return 1; - } elseif ($a[$this->sort] < $b[$this->sort]) { - return - 1; - } else { - return 0; - } - } else { - if ($a[$this->sort] > $b[$this->sort]) { - return - 1; - } elseif ($a[$this->sort] < $b[$this->sort]) { - return 1; - } else { - return 0; - } - } + } + if ($this->dir=='ASC') { + if ($a[$this->sort] > $b[$this->sort]) { + return 1; + } elseif ($a[$this->sort] < $b[$this->sort]) { + return - 1; + } else { + return 0; + } + } else { + if ($a[$this->sort] > $b[$this->sort]) { + return - 1; + } elseif ($a[$this->sort] < $b[$this->sort]) { + return 1; + } else { + return 0; + } + } } } \ No newline at end of file diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index 21499df7a..3ef625110 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -970,7 +970,7 @@ class wsBase $Fields = array_merge( $oldFields['APP_DATA'], $appFields ); } - $sBody = G::replaceDataGridField(file_get_contents($fileTemplate), $Fields); + $sBody = G::replaceDataGridField(file_get_contents($fileTemplate), $Fields, false); $hasEmailFrom = preg_match( '/(.+)@(.+)\.(.+)/', $sFrom, $match ); if (!$hasEmailFrom || strpos($sFrom, $aSetup["MESS_ACCOUNT"]) === false) { @@ -3288,7 +3288,7 @@ class wsBase return $result; } } - + /** * ClaimCase * From 0c55beb31955eb27b190bcdf1eededb9a0ede32b Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 22 Jan 2014 11:27:11 -0400 Subject: [PATCH 16/30] =?UTF-8?q?BUG-13860=20SOLVED=20El=20formato=20de=20?= =?UTF-8?q?fechas=20en=20grillas=20no=20se=20refleja=20de=20acuerdo=20a=20?= =?UTF-8?q?la=20definici=C3=B3n=20de=20mascara=20en=20la=20secci=C3=B3n=20?= =?UTF-8?q?HOME=20/=20Inbox=20/=20{seleccionar=20un=20caso}=20/=20en=20el?= =?UTF-8?q?=20modo=20vista.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulliver/system/class.xmlform.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index d08f57f43..33e3bbdef 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -4409,10 +4409,8 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText } else { $isRequired = '0'; } - if ($v == 'today') { - $mask = str_replace( "%", "", $this->mask ); - $v = date( masktophp($mask, $v) ); - } + $mask = str_replace( "%", "", $this->mask ); + $v = date( masktophp($mask, $v) ); $html = 'NSRequiredValue() . ' class="module_app_input___gray" id="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" name="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" type ="text" size="' . $this->size . '" maxlength="' . $this->maxLength . '" value="' . $this->htmlentities( $v, ENT_COMPAT, 'utf-8' ) . '" pm:required="' . $isRequired . '" style="display:none;' . htmlentities( $this->style, ENT_COMPAT, 'utf-8' ) . '" ' . $this->NSGridType() . '/>' . htmlentities( $v, ENT_COMPAT, 'utf-8' ); } else { $id = 'form[' . $owner->name . '][' . $r . '][' . $this->name . ']'; From 02bb9e3e0fd0ff3a9eea9c4f5f3ba0bb9aa92c5e Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Wed, 22 Jan 2014 13:48:19 -0400 Subject: [PATCH 17/30] BUG 13712 Manual assignment doesn't validate when you don't select a user for the next task SOLVED - Incorrect validation when the routing rule is "selection" and the next task assigment type is "manual" - Fix incorrect validation --- workflow/engine/methods/cases/cases_Step.php | 5 +++-- workflow/engine/templates/cases/cases_ScreenDerivation.html | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 7cdf58cfd..80eb5347a 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -2,12 +2,12 @@ if (!isset($_SESSION['USER_LOGGED'])) { G::SendTemporalMessage( 'ID_LOGIN_AGAIN', 'warning', 'labels' ); die( '