From f85113e12648de5f95911ba1779455c687655e0f Mon Sep 17 00:00:00 2001 From: Roly Gutierrez Date: Thu, 24 Oct 2013 13:56:24 -0400 Subject: [PATCH 1/7] =?UTF-8?q?BUG-12219=20SOLVED=20Cuando=20una=20tarea?= =?UTF-8?q?=20tiene=20por=20configuraci=C3=B3n=20marcada=20la=20regla=20de?= =?UTF-8?q?=20asignaci=C3=B3n=20=E2=80=9CSelf=20Service=E2=80=9D,=20la=20t?= =?UTF-8?q?area=20puede=20ser=20apropiada=20por=20otro=20usuario=20en=20la?= =?UTF-8?q?=20secci=C3=B3n=20'HOME=20/=20Unassigned',=20seleccionar=20un?= =?UTF-8?q?=20registro,=20opci=C3=B3n=20'Open'=20,=20opci=C3=B3n=20'Claim?= =?UTF-8?q?=20This=20Case';=20en=20consecuencia=20la=20tarea=20pasa=20al?= =?UTF-8?q?=20Inbox=20del=20usuario.=20Se=20requiere=20una=20opci=C3=B3n?= =?UTF-8?q?=20similar=20por=20ejemplo:=20'claimCase',=20para=20ProcessMake?= =?UTF-8?q?r=20SOAP=20Service.=20Nota:=20ProcessMaker=20SOAP=20Service=20o?= =?UTF-8?q?frece=20el=20servicio=20'UnassignedCaseList'=20que=20obtiene=20?= =?UTF-8?q?la=20lista=20de=20los=20casos=20que=20no=20tiene=20asignaci?= =?UTF-8?q?=C3=B3n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/class.wsBase.php | 25 ++++++++++++++ workflow/engine/methods/services/pmos2.wsdl | 37 +++++++++++++++++++++ workflow/engine/methods/services/soap2.php | 25 ++++++++++++++ 3 files changed, 87 insertions(+) mode change 100755 => 100644 workflow/engine/classes/class.wsBase.php mode change 100755 => 100644 workflow/engine/methods/services/pmos2.wsdl mode change 100755 => 100644 workflow/engine/methods/services/soap2.php diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php old mode 100755 new mode 100644 index eea3faf7f..21499df7a --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -3288,5 +3288,30 @@ class wsBase return $result; } } + + /** + * ClaimCase + * + * @param string $userId + * @param string $guid + * @param string $delIndex + * @return $result will return an object + */ + public function claimCase($userId, $guid, $delIndex) + { + try { + G::LoadClass('case'); + $oCase = new Cases(); + $oCase->loadCase($guid); + $oCase->setCatchUser($guid, $delIndex, $userId); + + $result = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY")); + return $result; + } catch (Exception $e) { + + $result = new wsResponse(100, $e->getMessage()); + return $result; + } + } } diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl old mode 100755 new mode 100644 index 00da67108..507c175d8 --- a/workflow/engine/methods/services/pmos2.wsdl +++ b/workflow/engine/methods/services/pmos2.wsdl @@ -873,6 +873,24 @@ + + + + + + + + + + + + + + + + + + @@ -1101,6 +1119,12 @@ + + + + + + @@ -1263,6 +1287,10 @@ + + + + @@ -1627,6 +1655,15 @@ + + + + + + + + + diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php old mode 100755 new mode 100644 index 2f4c827c7..d33738568 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -1208,6 +1208,30 @@ function addCaseNote($params) return $result; } +function ClaimCase($params) +{ + $vsResult = isValidSession($params->sessionId); + if ($vsResult->status_code !== 0) { + return $vsResult; + } + + if (ifPermission($params->sessionId, 'PM_CASES') == 0) { + $result = new wsResponse(2, G::LoadTranslation('ID_NOT_PRIVILEGES')); + + return $result; + } + + G::LoadClass('sessions'); + + $oSessions = new Sessions(); + $session = $oSessions->getSessionUser($params->sessionId); + + $ws = new wsBase(); + $res = $ws->claimCase($session['USR_UID'], $params->guid, $params->delIndex); + + return $res; +} + $server = new SoapServer($wsdl); $server->addFunction("Login"); @@ -1251,5 +1275,6 @@ $server->addFunction("cancelCase"); $server->addFunction("pauseCase"); $server->addFunction("unpauseCase"); $server->addFunction("addCaseNote"); +$server->addFunction("ClaimCase"); $server->handle(); From e4e0b3fa94b648a7215c561ea0ef5468493c6b29 Mon Sep 17 00:00:00 2001 From: Roly Gutierrez Date: Thu, 24 Oct 2013 14:23:40 -0400 Subject: [PATCH 2/7] BUG-12219 SOLVED CamelCase notation --- workflow/engine/methods/services/soap2.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index d33738568..3a8395199 100644 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -1208,7 +1208,7 @@ function addCaseNote($params) return $result; } -function ClaimCase($params) +function claimCase($params) { $vsResult = isValidSession($params->sessionId); if ($vsResult->status_code !== 0) { @@ -1275,6 +1275,6 @@ $server->addFunction("cancelCase"); $server->addFunction("pauseCase"); $server->addFunction("unpauseCase"); $server->addFunction("addCaseNote"); -$server->addFunction("ClaimCase"); +$server->addFunction("claimCase"); $server->handle(); From 2ae6da9f1007ad4e69a51653949f6633cadf3f1a Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Thu, 24 Oct 2013 17:00:32 -0400 Subject: [PATCH 3/7] BUG 12738 "SQL doesn't work in GRID - Text-Area..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SQL doesn't work in GRID - Text-Area fields. - Problema: Al crear una dependencia entre un Dropdown y Textarea en un grid, al añrlo a un Dynaform y ejecutar el caso, la dependiencia no funcionaba, al seleccionar una opcion del Dropdown en el textarea no se mostraba ningun valor, y al adicionar mas filas igual no funcionaba. Solucion: El problema es el siguiente: en la clase "class XmlForm_Field_Textarea" en su metodo "renderGrid" no estaba definido variables de importancia y seteo de las mismas, se completo las variables faltantes. Otro de los problemas que ocasionaba esta dificultad estaba en el archivo JavaScript en el metodo "updateDepententFields" se agrego una validacion cuando es un campo de tipo "textarea", esto porque no se podia utilizar el metodo "G_TextArea" que tambien le faltaba codigo, colocando este codigo faltante tampoco funcionaba. Al crear una dependencia entre un Dropdown y Textarea en un grid la añrlo a un Dynaform, y ejecutar el caso, dependiencia funciona correctamente. Se agrego el siguiente codigo en la clase "class XmlForm_Field_Textarea" en el metodo "renderGrid": ... $this->executeSQL($owner, $r); if (isset($this->sqlOption)) { $firstElement = key($this->sqlOption); } if (isset($firstElement)) { $v = $firstElement; } $arrayOptions[$r] = $v; ... $this->options = $arrayOptions; ... Disponible para la version 2.5.2 --- gulliver/js/form/core/form.js | 15 ++++++++++++++- gulliver/js/maborak/core/maborak.js | 3 ++- gulliver/methods/defaultAjax.php | 2 +- gulliver/system/class.xmlform.php | 26 ++++++++++++++++++-------- 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/gulliver/js/form/core/form.js b/gulliver/js/form/core/form.js index 75d6b58b3..522eb477e 100755 --- a/gulliver/js/form/core/form.js +++ b/gulliver/js/form/core/form.js @@ -192,7 +192,20 @@ function G_Field ( form, element, name ) var oAux2 = oAux.getElementByName(row, newcont[i].name); if (oAux2) { oAux2.setValue(newcont[i].value); - oAux2.setContent(newcont[i].content); + + if (oAux2.element.type != "textarea") { + oAux2.setContent(newcont[i].content); + } else { + //This code fragment is copy of method G_Text.setContent() + oAux2.element.value = ""; + + if (newcont[i].content.options) { + if (newcont[i].content.options[0]) { + oAux2.element.value = newcont[i].content.options[0].value; + } + } + } + oAux2.updateDepententFields(); // this line is also needed to trigger the onchange event to trigger the calculation of // sumatory or average functions in text fields diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index 7ef5ba2e0..3e38fa51c 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -965,7 +965,8 @@ for(i=0;i-1){var arrayAux=oAux.name.split("][");grid=arrayAux[0];row=parseInt(arrayAux[1]);fieldName=arrayAux[2];gridField=gridGetAllFieldAndValue(oAux.name,0);if(Fields.length>0){aux=Fields;aux.push('?');if(aux.join('*').indexOf(fieldName+'*')==-1){Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}}else{Fields.push(fieldName);eval("var oAux2 = {"+fieldName+":'"+oAux.value()+"'}");fields=fields.concat(oAux2);}} else{aux=Fields;aux.push('?');oAux=me.dependentFields[i].dependentOf[0];if(Fields.length>0){if(aux.join('*').indexOf(oAux.name+'*')==-1){Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}else{Fields.push(oAux.name);fields=fields.concat(me.dependentFields[i].dependentOf);}}}}} var callServer;callServer=new leimnud.module.rpc.xmlhttp({url:me.form.ajaxServer,async:false,method:"POST",args:"function=reloadField"+"&form="+encodeURIComponent(me.form.id)+"&fields="+encodeURIComponent(fields.toJSONString())+((grid!="")?"&grid="+grid+((gridField!="")?"&gridField="+encodeURIComponent("{"+gridField+"}"):""):"")+((row>0)?"&row="+row:"")});callServer.make();var response=callServer.xmlhttp.responseText;if(response.substr(0,1)==='['){var newcont;eval('newcont='+response+';');if(grid==''){for(var i=0;icontent->{$attribute} = $value; break; case 'options': - if ($sendContent[$r]->content->type != 'text') { + if ($sendContent[$r]->content->type != "text" && $sendContent[$r]->content->type != "textarea") { $sendContent[$r]->content->{$attribute} = toJSArray($value); } else { $sendContent[$r]->content->{$attribute} = toJSArray((isset($value[$_POST["row"]])? array($value[$_POST["row"]]) : array())); diff --git a/gulliver/system/class.xmlform.php b/gulliver/system/class.xmlform.php index d00e52253..cdaf17738 100755 --- a/gulliver/system/class.xmlform.php +++ b/gulliver/system/class.xmlform.php @@ -1982,24 +1982,32 @@ class XmlForm_Field_Textarea extends XmlForm_Field * @param string owner * @return string */ - public function renderGrid ($values = null, $owner = null) + public function renderGrid ($values = array(), $owner = null) { $this->gridFieldType = 'textarea'; if ($owner->mode != 'view') { $this->renderMode = $this->modeForGrid; } - $result = array (); + + $result = array(); + $arrayOptions = array(); + $r = 1; foreach ($values as $v) { - $this->executeSQL( $owner, $r ); - if (isset( $this->sqlOption )) { - $firstElement = key( $this->sqlOption ); - if (isset( $firstElement )) { - $v = $firstElement; - } + $this->executeSQL($owner, $r); + + if (isset($this->sqlOption)) { + $firstElement = key($this->sqlOption); } + + if (isset($firstElement)) { + $v = $firstElement; + } + + $arrayOptions[$r] = $v; + $scrollStyle = $this->style . "overflow:scroll;overflow-y:scroll;overflow-x:hidden;overflow:-moz-scrollbars-vertical;"; $html = ''; if ($this->renderMode == 'edit') { @@ -2031,6 +2039,8 @@ class XmlForm_Field_Textarea extends XmlForm_Field $result[] = $html; $r ++; } + + $this->options = $arrayOptions; return $result; } } From 0ca3a504ef3c35f55cd5e4f82569ef0d7b1232dd Mon Sep 17 00:00:00 2001 From: Roly Gutierrez Date: Fri, 25 Oct 2013 11:23:48 -0400 Subject: [PATCH 4/7] BUG-12219 file mode changed --- workflow/engine/classes/class.wsBase.php | 0 workflow/engine/methods/services/pmos2.wsdl | 0 workflow/engine/methods/services/soap2.php | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 workflow/engine/classes/class.wsBase.php mode change 100644 => 100755 workflow/engine/methods/services/pmos2.wsdl mode change 100644 => 100755 workflow/engine/methods/services/soap2.php diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php old mode 100644 new mode 100755 diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl old mode 100644 new mode 100755 diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php old mode 100644 new mode 100755 From 1016580c184603f4352ad46fde0b869430f73e55 Mon Sep 17 00:00:00 2001 From: jennylee Date: Fri, 25 Oct 2013 15:43:33 -0400 Subject: [PATCH 5/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 | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php index 65cc7b5ca..22e511165 100755 --- a/workflow/engine/classes/model/AdditionalTables.php +++ b/workflow/engine/classes/model/AdditionalTables.php @@ -384,24 +384,31 @@ class AdditionalTables extends BaseAdditionalTables $countField = count($fieldsTable); $stringOr = '$oCriteria->add('; $cont = 0; + $fieldAppUid = ''; foreach ($fieldsTable as $value) { - 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)'; - } + if ($value != 'APP_UID') { + 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 { + 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('; + } + } } else { - 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('; - } + $fieldAppUid = $cont; } $cont++; } - for ($c = 1; $c < $countField; $c ++) { - $stringOr .= ')'; + for ($c = 0; $c < $countField-1; $c++) { + if ($fieldAppUid !== $c) { + $stringOr .= ')'; + } } $stringOr .= ');'; eval($stringOr); From b5263f3dbbf32686d8bfdafc2e855b8fea01b6c5 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Fri, 25 Oct 2013 17:00:32 -0400 Subject: [PATCH 6/7] Se quita el commitWithin='5000', para la actualizacion de los contadores --- workflow/engine/classes/class.AppSolr.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.AppSolr.php b/workflow/engine/classes/class.AppSolr.php index 4d5667ee2..d45c7a05c 100755 --- a/workflow/engine/classes/class.AppSolr.php +++ b/workflow/engine/classes/class.AppSolr.php @@ -1547,7 +1547,7 @@ class AppSolr } // search data from DB $xmlDoc = "\n"; - $xmlDoc .= "\n"; + $xmlDoc .= "\n"; //get all application data from DB of all applications and delegations $aAPPUIDs = array(); From 79334d8463e6a6dc7adb4bc7b0e2b5993bdfef9f Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Mon, 28 Oct 2013 13:53:03 -0400 Subject: [PATCH 7/7] BUG-13398 Cambiando explode con valor por defecto IMPROVEMENT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - en la funcion executeSQLScript se añadio por error el ";" del explode. --- workflow/engine/classes/class.wsTools.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index c464d3aed..5e804b41c 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1084,7 +1084,7 @@ class workspaceTools mysql_select_db($database); $script = file_get_contents($filename); - $lines = explode(";\n", $script); + $lines = explode("\n", $script); $previous = null; foreach ($lines as $j => $line) { // Remove comments from the script