From 3a9c26207b3a3680e69ea76cd8955ab60c52c5c3 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 22 Oct 2013 11:46:03 -0400 Subject: [PATCH 1/7] BUG 13332 "Problem with link target FrameName" SOLVED - Problem with link target "FrameName". - Problema: Al crear un nuevo campo Link en el DynaForm "Add Link", en el atributo "Target" se selecciona la opcion "Framename" se habilita un campo de tipo "Text", donde se introduce un nombre cualquiera, se guarda esta configuracion del nuevo campo, al momento de editar este campo link, el atributo "Target" no refleja la configuracion inicial. Solucion: El problema es el siguiente: al momento de guardar los datos del campo Link, cuando se elegia la opcion "Framename" el atributo "target_sel" se define vacio y este atributo no existe como tal en el "XML", ahora ya existe. Ejemplos: Antes de la solucion: Yahoo! Con la solucion: Yahoo! --- workflow/engine/methods/dynaforms/fields_Save.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workflow/engine/methods/dynaforms/fields_Save.php b/workflow/engine/methods/dynaforms/fields_Save.php index e946ce71f..c9a0c537c 100755 --- a/workflow/engine/methods/dynaforms/fields_Save.php +++ b/workflow/engine/methods/dynaforms/fields_Save.php @@ -236,7 +236,11 @@ foreach ($FieldAttributes as $key => $value) { case 'string': if (!empty($value)) { $FieldAttrib[strtolower($key)] = $value; - } + } else { + if ($_POST["form"]["TYPE"] == "link" && $key == "TARGET_SEL") { + $FieldAttrib[strtolower($key)] = $value; + } + } break; case 'integer': $FieldAttrib[strtolower($key)] = $value; From 64a70f0a297ab9e72f42179606c98711df6048f9 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Tue, 22 Oct 2013 12:34:08 -0400 Subject: [PATCH 2/7] BUG-13398 La restauracion de workspace en windows... SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - El problema empieza cuando se quiere hacer un workspace-restore sobre windows no se pueden cambiar los permisos de los files, dando como consecuencia que no se restaure el backup o se hacia parcialmente. - Se añadio en la class.wstools.php la funcion dirPerms la validacion para permitir cambiar permisos en windows. - al ejecutar la consola se requiere que este en modo administrador para permitir a "icacls" ejecutarse normalmente. --- workflow/engine/classes/class.wsTools.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index 01ef1b53b..c464d3aed 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1162,7 +1162,11 @@ class workspaceTools $chgrp = @chgrp($filename, $group); $chmod = @chmod($filename, $perms); if ($chgrp === false || $chmod === false || $chown === false) { - CLI::logging(CLI::error("Failed to set permissions for $filename") . "\n"); + if (strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN') { + exec( 'icacls ' . $dirNameWin . '/grant Administrador:(D,WDAC) /T', $res ); + } else { + CLI::logging(CLI::error("Failed to set permissions for $filename") . "\n"); + } } if (is_dir($filename)) { foreach (array_merge(glob($filename . "/*"), glob($filename . "/.*")) as $item) { From 66c498615752c2d13701ff073981ce65d270e936 Mon Sep 17 00:00:00 2001 From: jennylee Date: Tue, 22 Oct 2013 17:45:52 -0400 Subject: [PATCH 3/7] BUG-9869 DobleClick para descargar documentos en Home>Documents En Home>Documents ya se realizaba la descarga mediante click sobre el documento, en el listado en HOME>Documents, este estaba funcionando a medias, ya que un fix que se realizo anteriormente para el funcionamiento de la visualizacion y almacenamiento de las versiones de los outputdocuments, hizo que deje de funcionar correctamente habilitando el download haciendo click sobre el file solo para los outputdocuments con version pdf y doc, no asi para los inputfiles ni para los outputs generados solo en pdf o solo en doc. Se agrego un cambio js con una validacion para que esto funcione correctamente tambien para los inputdocs y para los outputdocs generados solo en pdf o solo en doc. --- workflow/engine/templates/cases/casesDocuments.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/workflow/engine/templates/cases/casesDocuments.js b/workflow/engine/templates/cases/casesDocuments.js index 3e85ca323..a4250f46b 100755 --- a/workflow/engine/templates/cases/casesDocuments.js +++ b/workflow/engine/templates/cases/casesDocuments.js @@ -1908,6 +1908,11 @@ var documentsTab = { 'rowcontextmenu' : { fn : rowContextMenu }, + 'cellclick': function(){ + if (ext_itemgrid.getSelectionModel().getSelected().get('outDocGenerate') == '') { + openActionDialog(this, 'download', ''); + } + }, 'celldblclick' : { fn : function(grid, rowIndex, columnIndex, e) { From 423fa6ede16da7e838baf4ee3465735772be5b43 Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Wed, 23 Oct 2013 10:41:49 -0400 Subject: [PATCH 4/7] BUG-13376 Self service value based assignment is set to self... SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Al editar el "Self Service Value Based Assignment" y asignarles un valor a "Variable for Self Service Value Based Assignment" y luego cambiar a cualquier pestaña no se guardaba el valor. - La opcion ya se guardaba en el js solo que no se recuperaba el valor, se edito el file tasks_AssignmentRules.xml y se recupera el dato de TAS_GROUP_VARIABLE cuando es del tipo SELF_SERVICE_EVALUATE. --- workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml b/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml index 2d7ad6a0d..81b6f0591 100755 --- a/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml +++ b/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml @@ -143,6 +143,7 @@ if (aTaskFlag[1]) if (oTaskData.TAS_ASSIGN_TYPE == "SELF_SERVICE") { getField("TAS_ASSIGN_TYPE][SELF_SERVICE").checked = true; } else { + getField("TAS_GROUP_VARIABLE").value = oTaskData.TAS_GROUP_VARIABLE; if (getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE")) { getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE").checked = true; } From 83c9a7a9ba3ac7a8e832cbac53532c4c73e25782 Mon Sep 17 00:00:00 2001 From: jennylee Date: Wed, 23 Oct 2013 11:50:18 -0400 Subject: [PATCH 5/7] BUG-9869 DobleClick para descargar documentos en Home>Documents En Home>Documents ya se realizaba la descarga mediante click sobre el documento, en el listado en HOME>Documents, este estaba funcionando a medias, ya que un fix que se realizo anteriormente para el funcionamiento de la visualizacion y almacenamiento de las versiones de los outputdocuments, hizo que deje de funcionar correctamente habilitando el download haciendo click sobre el file solo para los outputdocuments con version pdf y doc, no asi para los inputfiles ni para los outputs generados solo en pdf o solo en doc. Se agrego un cambio js con una validacion para que esto funcione correctamente al hacer doble click en los inputdocs y para los outputdocs generados solo en pdf o solo en doc. --- workflow/engine/templates/cases/casesDocuments.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/workflow/engine/templates/cases/casesDocuments.js b/workflow/engine/templates/cases/casesDocuments.js index a4250f46b..b558c9b10 100755 --- a/workflow/engine/templates/cases/casesDocuments.js +++ b/workflow/engine/templates/cases/casesDocuments.js @@ -1908,14 +1908,12 @@ var documentsTab = { 'rowcontextmenu' : { fn : rowContextMenu }, - 'cellclick': function(){ - if (ext_itemgrid.getSelectionModel().getSelected().get('outDocGenerate') == '') { - openActionDialog(this, 'download', ''); - } - }, 'celldblclick' : { fn : function(grid, rowIndex, columnIndex, e) { + if (ext_itemgrid.getSelectionModel().getSelected().get('outDocGenerate') == '') { + openActionDialog(this, 'download', ''); + } if (Ext.isOpera) { // because Opera <= 9 // doesn't support the From bef23addcf6d6157f4d241b6781bdd2bf784bcaa Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Wed, 23 Oct 2013 14:55:59 -0400 Subject: [PATCH 6/7] BUG-13376 Self service value based assignment is set to self... SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Al editar el "Self Service Value Based Assignment" y asignarles un valor a "Variable for Self Service Value Based Assignment" y luego cambiar a cualquier pestaña no se guardaba el valor. - La opcion ya se guardaba en el js solo que no se recuperaba el valor, se edito el file tasks_AssignmentRules.xml y se recupera el dato de TAS_GROUP_VARIABLE cuando es del tipo SELF_SERVICE_EVALUATE. - Se agrego un switch en el archivo tasks.ajax.php al momento de hacer el saveTaskData recuperar datos que no se ubieran modificado en el formulario principal. --- workflow/engine/methods/tasks/tasks_Ajax.php | 52 +++++++++++++++----- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/workflow/engine/methods/tasks/tasks_Ajax.php b/workflow/engine/methods/tasks/tasks_Ajax.php index 9a5a6d4d8..7399c8b44 100755 --- a/workflow/engine/methods/tasks/tasks_Ajax.php +++ b/workflow/engine/methods/tasks/tasks_Ajax.php @@ -32,6 +32,7 @@ try { $response = array (); $oTask = new Task(); + $aTaskInfo = $oTask->load($aData['TAS_UID']); /** * routine to replace @amp@ by & @@ -46,7 +47,7 @@ try { if (isset( $aData['SEND_EMAIL'] )) { $aData['TAS_SEND_LAST_EMAIL'] = $aData['SEND_EMAIL'] == 'TRUE' ? 'TRUE' : 'FALSE'; } else { - $aTaskInfo = $oTask->load($aData['TAS_UID']); + //$aTaskInfo = $oTask->load($aData['TAS_UID']); $aData['TAS_SEND_LAST_EMAIL'] = is_null($aTaskInfo['TAS_SEND_LAST_EMAIL']) ? 'FALSE' : $aTaskInfo['TAS_SEND_LAST_EMAIL']; } @@ -65,22 +66,47 @@ try { } //Validating TAS_ASSIGN_VARIABLE value - + $sw = false; if (!isset($aData['TAS_ASSIGN_TYPE'])) { - $derivateType = $oTask->kgetassigType($_SESSION['PROCESS'],$aData['TAS_UID']); - if (is_null($derivateType)){ - $aData['TAS_ASSIGN_TYPE'] = 'BALANCED'; + $sw = true; + if (isset($aTaskInfo['TAS_ASSIGN_TYPE'])) { + switch($aTaskInfo['TAS_ASSIGN_TYPE']) { + case 'SELF_SERVICE': + case 'SELF_SERVICE_EVALUATE': + $aData['TAS_ASSIGN_TYPE'] = ($aTaskInfo['TAS_GROUP_VARIABLE'] == '') ? 'SELF_SERVICE':'SELF_SERVICE_EVALUATE'; + $aData['TAS_GROUP_VARIABLE'] = $aTaskInfo['TAS_GROUP_VARIABLE']; + break; + default: + $aData['TAS_ASSIGN_TYPE'] = $aTaskInfo['TAS_ASSIGN_TYPE']; + break; + } } else { - $aData['TAS_ASSIGN_TYPE'] = $derivateType['TAS_ASSIGN_TYPE']; + $derivateType = $oTask->kgetassigType($_SESSION['PROCESS'],$aData['TAS_UID']); + if (is_null($derivateType)){ + $aData['TAS_ASSIGN_TYPE'] = 'BALANCED'; + } else { + $aData['TAS_ASSIGN_TYPE'] = $derivateType['TAS_ASSIGN_TYPE']; + } } } - if ($aData['TAS_ASSIGN_TYPE'] == 'SELF_SERVICE_EVALUATE') { - $aData['TAS_ASSIGN_TYPE'] = 'SELF_SERVICE'; - if(trim($aData['TAS_GROUP_VARIABLE']) == '') { - $aData['TAS_GROUP_VARIABLE'] = '@@SYS_GROUP_TO_BE_ASSIGNED'; - } - } else { - $aData['TAS_GROUP_VARIABLE'] = ''; + switch($aData['TAS_ASSIGN_TYPE']) { + case 'SELF_SERVICE': + case 'SELF_SERVICE_EVALUATE': + if ($aData['TAS_ASSIGN_TYPE'] == 'SELF_SERVICE_EVALUATE') { + $aData['TAS_ASSIGN_TYPE'] = 'SELF_SERVICE'; + if(trim($aData['TAS_GROUP_VARIABLE']) == '') { + $aData['TAS_GROUP_VARIABLE'] = '@@SYS_GROUP_TO_BE_ASSIGNED'; + } + } else { + $aData['TAS_GROUP_VARIABLE'] = ''; + } + break; + default: + if (isset($aTaskInfo['TAS_ASSIGN_TYPE']) && $sw) { + $aData['TAS_ASSIGN_TYPE'] = $aTaskInfo['TAS_ASSIGN_TYPE']; + } + $aData['TAS_GROUP_VARIABLE'] = ''; + break; } $result = $oTask->update( $aData ); From 2461c3b0fdba56dd8152cc4cb09c6e41f807b5cb Mon Sep 17 00:00:00 2001 From: jennylee Date: Wed, 23 Oct 2013 16:07:21 -0400 Subject: [PATCH 7/7] BUG-12254 Funcionalidad Search en las grillas DATA de los PMTables y Report Tables. Se aniadio la nueva funcionalidad de busqueda en el display de los datos de los PMTables y Report Tables, en ADMIN > Settings > PM Tables > Data, el cual realiza las busquedas por todas las columnas del PM Table o Report Table. Se corrigio el ordenamiento ASC y DESC. --- .../engine/classes/model/AdditionalTables.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php index a3d291596..65cc7b5ca 100755 --- a/workflow/engine/classes/model/AdditionalTables.php +++ b/workflow/engine/classes/model/AdditionalTables.php @@ -383,12 +383,20 @@ class AdditionalTables extends BaseAdditionalTables eval('$fieldsTable = ' . $sClassPeerName . '::getFieldNames(BasePeer::TYPE_FIELDNAME);'); $countField = count($fieldsTable); $stringOr = '$oCriteria->add('; - $cont = 1; + $cont = 0; foreach ($fieldsTable as $value) { - if ($cont == $countField) { - $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)'; + if (($cont+1) == $countField) { + if ($aData['FIELDS'][$cont]['FLD_TYPE'] == 'VARCHAR') { + $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)'; + } else { + $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "' . $filter . '", Criteria::LIKE)'; + } } else { - $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)->addOr('; + if ($aData['FIELDS'][$cont]['FLD_TYPE'] == 'VARCHAR') { + $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)->addOr('; + } else { + $stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "' . $filter . '", Criteria::LIKE)->addOr('; + } } $cont++; }