From e70916ea977ea9384a983dc3f26f343ff07a0324 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Fri, 20 Jun 2014 13:03:57 -0400 Subject: [PATCH 01/20] BUG 15195 "User appear more than once in the..." SOLVED - User appear more than once in the Process Supervisor window - Problema resuelto, cuando se elimina a un usuario por ADMIN>USERS>Users, este usuario puede se eliminado sin restricciones aunque el usuario este asignado como supervisor de un proceso lo cual no es correcto. Se hace una validacion que verifica si el usuario esta asignado como supervisor le saldra un mensaje de confirmacion que indica si deseea eliminar el usuario de todas maneras. Si la respuesta es Si, se eliminara de la lista de usuarios y de la lista de usuarios asignados como supervisores. --- workflow/engine/methods/users/users_Ajax.php | 39 ++++++++++++++++++-- workflow/engine/templates/users/usersList.js | 26 ++++++++++++- 2 files changed, 60 insertions(+), 5 deletions(-) diff --git a/workflow/engine/methods/users/users_Ajax.php b/workflow/engine/methods/users/users_Ajax.php index adb0d17c2..367464768 100644 --- a/workflow/engine/methods/users/users_Ajax.php +++ b/workflow/engine/methods/users/users_Ajax.php @@ -210,6 +210,14 @@ try { $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $UID ); $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE , 'USER'); DashletInstancePeer::doDelete( $criteria ); + + //Delete users as supervisor + $criteria = new Criteria("workflow"); + + $criteria->add(ProcessUserPeer::USR_UID, $UID, Criteria::EQUAL); + $criteria->add(ProcessUserPeer::PU_TYPE, "SUPERVISOR", Criteria::EQUAL); + + ProcessUserPeer::doDelete($criteria); break; case 'changeUserStatus': $response = new stdclass(); @@ -390,9 +398,9 @@ try { $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL); - + $oCriteria->addSelectColumn(UsersPeer::USR_ROLE); - + $oCriteria->addSelectColumn(UsersPeer::USR_DUE_DATE); $oCriteria->addSelectColumn(UsersPeer::USR_STATUS); $oCriteria->addSelectColumn(UsersPeer::USR_UX); @@ -440,7 +448,7 @@ try { $uRole = Array(); while ($oDataset->next()) { $row = $oDataset->getRow(); - + try { $uRole = $oRoles->loadByCode($row['USR_ROLE']); } catch (exception $oError) { @@ -456,7 +464,7 @@ try { $row['DEP_TITLE'] = isset($aDepart[$row['USR_UID']]) ? $aDepart[$row['USR_UID']] : ''; $row['USR_UX'] = isset($uxList[$row['USR_UX']]) ? $uxList[$row['USR_UX']] : $uxList['NORMAL']; $row['USR_AUTH_SOURCE'] = isset($aAuthSources[$row['USR_UID']]) ? $aAuthSources[$row['USR_UID']] : 'ProcessMaker (MYSQL)'; - + $rows[] = $row; } @@ -511,6 +519,29 @@ try { $misc['REPLACED_NAME'] = $replaced_by; echo '{success: true, userdata: ' . G::json_encode($data) . ', cases: ' . G::json_encode($aCount) . ', misc: ' . G::json_encode($misc) . '}'; break; + + case "verifyIfUserAssignedAsSupervisor": + $supervisorUserUid = $_POST["supervisorUserUid"]; + $message = "OK"; + + $criteria = new Criteria("workflow"); + + $criteria->addSelectColumn(ProcessUserPeer::PU_UID); + $criteria->add(ProcessUserPeer::USR_UID, $supervisorUserUid, Criteria::EQUAL); + $criteria->add(ProcessUserPeer::PU_TYPE, "SUPERVISOR", Criteria::EQUAL); + + $rsCriteria = ProcessUserPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if($rsCriteria->next() != 0) { + $message = "ERROR"; + } + + $response = array(); + $response["result"] = $message; + + echo G::json_encode($response); + break; } } catch (Exception $oException) { die($oException->getMessage()); diff --git a/workflow/engine/templates/users/usersList.js b/workflow/engine/templates/users/usersList.js index 42c65ec9f..6060efb18 100755 --- a/workflow/engine/templates/users/usersList.js +++ b/workflow/engine/templates/users/usersList.js @@ -494,6 +494,28 @@ DeleteUserAction = function(){ if (uid.data.USR_UID==user_admin){ Ext.Msg.alert(_('ID_USERS'), _('ID_CANNOT_DELETE_ADMIN_USER')); }else{ + var flagVerifyUserAssigSupervisor = 1; + + Ext.Ajax.request({ + url: "users_Ajax", + method: "POST", + params: { + "function": "verifyIfUserAssignedAsSupervisor", + supervisorUserUid: uid.data.USR_UID + }, + + success: function (response, opts) { + var dataRespuesta = Ext.util.JSON.decode(response.responseText); + + if (dataRespuesta.result == "OK") { + flagVerifyUserAssigSupervisor = 0; + } + }, + failure: function (response, opts){ + // + } + }); + viewport.getEl().mask(_('ID_PROCESSING')); Ext.Ajax.request({ url: 'users_Ajax', @@ -509,7 +531,9 @@ DeleteUserAction = function(){ } ); }else{ - Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_USER'), + var msgConfirm = (flagVerifyUserAssigSupervisor == 1)? _("ID_MSG_CONFIRM_DELETE_USER_ASSINGED_SUPERVISOR") : _("ID_MSG_CONFIRM_DELETE_USER"); + + Ext.Msg.confirm(_('ID_CONFIRM'), msgConfirm, function(btn){ if (btn=='yes') DeleteUser(uid.data.USR_UID); } From 2cdd7c1a02e63b1c870c0fc0c9ae12654cb589aa Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Fri, 20 Jun 2014 16:08:47 -0400 Subject: [PATCH 02/20] BUG-14986 Authorization Bypass via Forceful Browsing IMPROVEMENT --- workflow/engine/controllers/admin.php | 4 ++++ workflow/engine/controllers/dashboard.php | 6 ++++++ workflow/engine/methods/cases/cases_Scheduler_Log.php | 2 ++ workflow/engine/methods/processes/mainInit.php | 2 ++ workflow/engine/methods/setup/appCacheViewConf.php | 2 ++ workflow/engine/methods/setup/clearCompiled.php | 2 ++ workflow/engine/methods/setup/environmentSettings.php | 3 +++ workflow/engine/methods/setup/loginSettings.php | 3 +++ workflow/engine/methods/setup/pluginsMain.php | 2 ++ workflow/engine/methods/setup/processHeartBeatConfig.php | 3 +++ workflow/engine/methods/setup/systemInfo.php | 3 +++ 11 files changed, 32 insertions(+) diff --git a/workflow/engine/controllers/admin.php b/workflow/engine/controllers/admin.php index dc556b438..7e4435ca2 100644 --- a/workflow/engine/controllers/admin.php +++ b/workflow/engine/controllers/admin.php @@ -15,6 +15,8 @@ class Admin extends Controller public function system () { + global $RBAC; + $RBAC->requirePermissions( 'PM_SETUP' ); require_once PATH_CONTROLLERS . 'main.php'; G::loadClass( 'system' ); $skinsList = System::getSkingList(); @@ -60,6 +62,8 @@ class Admin extends Controller public function uxList () { + global $RBAC; + $RBAC->requirePermissions( 'PM_SETUP' ); require_once PATH_CONTROLLERS . 'adminProxy.php'; $this->includeExtJS( 'admin/uxUsersList' ); G::LoadClass( 'configuration' ); diff --git a/workflow/engine/controllers/dashboard.php b/workflow/engine/controllers/dashboard.php index ddafc144e..e7d062236 100644 --- a/workflow/engine/controllers/dashboard.php +++ b/workflow/engine/controllers/dashboard.php @@ -16,6 +16,12 @@ class Dashboard extends Controller // Class constructor public function __construct () { + global $RBAC; + if ($RBAC->userCanAccess('PM_DASHBOARD') != 1) { + G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); + G::header( 'location: login/login' ); + exit(0); + } G::LoadClass( 'pmDashlet' ); $this->pmDashlet = new PMDashlet(); } diff --git a/workflow/engine/methods/cases/cases_Scheduler_Log.php b/workflow/engine/methods/cases/cases_Scheduler_Log.php index eaaec8343..bc28cfb4d 100755 --- a/workflow/engine/methods/cases/cases_Scheduler_Log.php +++ b/workflow/engine/methods/cases/cases_Scheduler_Log.php @@ -22,9 +22,11 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ +global $RBAC; if (($RBAC_Response = $RBAC->userCanAccess( "PM_LOGIN" )) != 1) { return $RBAC_Response; } +$RBAC->requirePermissions( 'PM_SETUP' ); $G_PUBLISH = new Publisher(); G::LoadClass( 'configuration' ); diff --git a/workflow/engine/methods/processes/mainInit.php b/workflow/engine/methods/processes/mainInit.php index 433eaa64d..f14d1fd03 100755 --- a/workflow/engine/methods/processes/mainInit.php +++ b/workflow/engine/methods/processes/mainInit.php @@ -23,6 +23,8 @@ */ //$oHeadPublisher = & headPublisher::getSingleton(); +global $RBAC; +$RBAC->requirePermissions( 'PM_FACTORY' ); G::loadClass( 'configuration' ); $conf = new Configurations(); diff --git a/workflow/engine/methods/setup/appCacheViewConf.php b/workflow/engine/methods/setup/appCacheViewConf.php index 50ef7b09a..4d969c72c 100755 --- a/workflow/engine/methods/setup/appCacheViewConf.php +++ b/workflow/engine/methods/setup/appCacheViewConf.php @@ -1,4 +1,6 @@ requirePermissions( 'PM_SETUP' ); // header('Pragma: no-cache'); // header('Cache-Control: no-store, no-cache, must-revalidate'); diff --git a/workflow/engine/methods/setup/clearCompiled.php b/workflow/engine/methods/setup/clearCompiled.php index 9757d4f57..a2115ef99 100755 --- a/workflow/engine/methods/setup/clearCompiled.php +++ b/workflow/engine/methods/setup/clearCompiled.php @@ -21,6 +21,8 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ +global $RBAC; +$RBAC->requirePermissions( 'PM_SETUP' ); $oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher->addExtJsScript( 'setup/clearCompiled', true ); //adding a javascript file .js diff --git a/workflow/engine/methods/setup/environmentSettings.php b/workflow/engine/methods/setup/environmentSettings.php index 4aa0e6285..ec2ce2ab3 100755 --- a/workflow/engine/methods/setup/environmentSettings.php +++ b/workflow/engine/methods/setup/environmentSettings.php @@ -1,4 +1,7 @@ requirePermissions( 'PM_SETUP' ); + G::loadClass( 'configuration' ); $c = new Configurations(); $oHeadPublisher = & headPublisher::getSingleton(); diff --git a/workflow/engine/methods/setup/loginSettings.php b/workflow/engine/methods/setup/loginSettings.php index b7962e6d3..aecf20bdb 100755 --- a/workflow/engine/methods/setup/loginSettings.php +++ b/workflow/engine/methods/setup/loginSettings.php @@ -21,6 +21,9 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ +global $RBAC; +$RBAC->requirePermissions( 'PM_SETUP' ); + G::loadClass( 'configuration' ); $oConf = new Configurations(); diff --git a/workflow/engine/methods/setup/pluginsMain.php b/workflow/engine/methods/setup/pluginsMain.php index 2f70e5cf0..cfc084570 100755 --- a/workflow/engine/methods/setup/pluginsMain.php +++ b/workflow/engine/methods/setup/pluginsMain.php @@ -21,6 +21,8 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ +global $RBAC; +$RBAC->requirePermissions( 'PM_SETUP' ); $headPublisher = & headPublisher::getSingleton(); $headPublisher->addExtJsScript( 'setup/pluginsMain', false ); diff --git a/workflow/engine/methods/setup/processHeartBeatConfig.php b/workflow/engine/methods/setup/processHeartBeatConfig.php index 518d3be3d..2eacc4eaf 100755 --- a/workflow/engine/methods/setup/processHeartBeatConfig.php +++ b/workflow/engine/methods/setup/processHeartBeatConfig.php @@ -21,6 +21,9 @@ * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ +global $RBAC; +$RBAC->requirePermissions( 'PM_SETUP' ); + $oHeadPublisher = & headPublisher::getSingleton(); G::LoadClass( 'serverConfiguration' ); $oServerConf = & serverConf::getSingleton(); diff --git a/workflow/engine/methods/setup/systemInfo.php b/workflow/engine/methods/setup/systemInfo.php index 8b030a618..5142a2726 100644 --- a/workflow/engine/methods/setup/systemInfo.php +++ b/workflow/engine/methods/setup/systemInfo.php @@ -1,4 +1,7 @@ requirePermissions( 'PM_SETUP' ); + $option = (isset($_GET["option"]))? $_GET["option"] : null; switch ($option) { From a869888d78599f08fdf39d8b3b26ce939d74666e Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Fri, 20 Jun 2014 16:21:23 -0400 Subject: [PATCH 03/20] BUG 15153 Call to undefined function SOLVED - The pmFunctions from the plugins not loaded before include pmScript class - Change the includes order of the related classes --- workflow/engine/bin/cron_single.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index 928eb67a0..6bf7f19b1 100755 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -326,9 +326,7 @@ Bootstrap::registerClass('UsersPeer', PATH_HOME . "engine/classes/mode Bootstrap::registerClass('Xml_Node', PATH_GULLIVER . "class.xmlDocument.php"); -G::LoadClass("case"); G::LoadClass("dates"); -G::LoadClass("pmScript"); if (!defined('SYS_SYS')) { $sObject = $argv[1]; @@ -451,6 +449,13 @@ if (!defined('SYS_SYS')) { function processWorkspace() { try { + Bootstrap::LoadClass("plugin"); + $oPluginRegistry =& PMPluginRegistry::getSingleton(); + if (file_exists(PATH_DATA_SITE . 'plugin.singleton')) { + $oPluginRegistry->unSerializeInstance(file_get_contents(PATH_DATA_SITE . 'plugin.singleton')); + } + Bootstrap::LoadClass("case"); + global $sObject; global $sLastExecution; @@ -578,11 +583,7 @@ function executePlugins() // Executing registered cron files // -> Get registered cron files - Bootstrap::LoadClass( 'plugin' ); $oPluginRegistry =& PMPluginRegistry::getSingleton(); - if (file_exists(PATH_DATA_SITE . 'plugin.singleton')) { - $oPluginRegistry->unSerializeInstance(file_get_contents(PATH_DATA_SITE . 'plugin.singleton')); - } $cronFiles = $oPluginRegistry->getCronFiles(); // -> Execute functions From 9c99af817e53a17fe8fe8672c9c4a0075e132eff Mon Sep 17 00:00:00 2001 From: jennylee Date: Mon, 23 Jun 2014 13:54:12 -0400 Subject: [PATCH 04/20] BUG-15015 HTML EN DYNAFORMS NO ADMITE CSS El html de dynaforms no admite la etiqueta style en el body del html. Se agrego una configuracion al inicio del tinyMCE valid_children : "+body[style],+form[style],+td[style]" para q las etiquetas style no sean eliminadas dentro del body, form y td tags. --- gulliver/js/maborak/core/maborak.js | 2 +- gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js | 1 + gulliver/system/class.wysiwygEditor.php | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index 9cd94b4a6..47a928c0d 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -1848,7 +1848,7 @@ replace(data).replace(/#/g,'#text').replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,fun return html5;};function getHTML4(){var html4=mapCache.html4;if(!html4){html4=mapCache.html4=unpack({Z:'H|K|N|O|P',Y:'X|form|R|Q',ZG:'E|span|width|align|char|charoff|valign',X:'p|T|div|U|W|isindex|fieldset|table',ZF:'E|align|char|charoff|valign',W:'pre|hr|blockquote|address|center|noframes',ZE:'abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height',ZD:'[E][S]',U:'ul|ol|dl|menu|dir',ZC:'p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q',T:'h1|h2|h3|h4|h5|h6',ZB:'X|S|Q',S:'R|P',ZA:'a|G|J|M|O|P',R:'a|H|K|N|O',Q:'noscript|P',P:'ins|del|script',O:'input|select|textarea|label|button',N:'M|L',M:'em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym',L:'sub|sup',K:'J|I',J:'tt|i|b|u|s|strike',I:'big|small|font|basefont',H:'G|F',G:'br|span|bdo',F:'object|applet|img|map|iframe',E:'A|B|C',D:'accesskey|tabindex|onfocus|onblur',C:'onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup',B:'lang|xml:lang|dir',A:'id|class|style|title'},'script[id|charset|type|language|src|defer|xml:space][]'+'style[B|id|type|media|title|xml:space][]'+'object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]'+'param[id|name|value|valuetype|type][]'+'p[E|align][#|S]'+'a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]'+'br[A|clear][]'+'span[E][#|S]'+'bdo[A|C|B][#|S]'+'applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]'+'h1[E|align][#|S]'+'img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]'+'map[B|C|A|name][X|form|Q|area]'+'h2[E|align][#|S]'+'iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]'+'h3[E|align][#|S]'+'tt[E][#|S]'+'i[E][#|S]'+'b[E][#|S]'+'u[E][#|S]'+'s[E][#|S]'+'strike[E][#|S]'+'big[E][#|S]'+'small[E][#|S]'+'font[A|B|size|color|face][#|S]'+'basefont[id|size|color|face][]'+'em[E][#|S]'+'strong[E][#|S]'+'dfn[E][#|S]'+'code[E][#|S]'+'q[E|cite][#|S]'+'samp[E][#|S]'+'kbd[E][#|S]'+'var[E][#|S]'+'cite[E][#|S]'+'abbr[E][#|S]'+'acronym[E][#|S]'+'sub[E][#|S]'+'sup[E][#|S]'+'input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]'+'select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]'+'optgroup[E|disabled|label][option]'+'option[E|selected|disabled|label|value][]'+'textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]'+'label[E|for|accesskey|onfocus|onblur][#|S]'+'button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]'+'h4[E|align][#|S]'+'ins[E|cite|datetime][#|Y]'+'h5[E|align][#|S]'+'del[E|cite|datetime][#|Y]'+'h6[E|align][#|S]'+'div[E|align][#|Y]'+'ul[E|type|compact][li]'+'li[E|type|value][#|Y]'+'ol[E|type|compact|start][li]'+'dl[E|compact][dt|dd]'+'dt[E][#|S]'+'dd[E][#|Y]'+'menu[E|compact][li]'+'dir[E|compact][li]'+'pre[E|width|xml:space][#|ZA]'+'hr[E|align|noshade|size|width][]'+'blockquote[E|cite][#|Y]'+'address[E][#|S|p]'+'center[E][#|Y]'+'noframes[E][#|Y]'+'isindex[A|B|prompt][]'+'fieldset[E][#|legend|Y]'+'legend[E|accesskey|align][#|S]'+'table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]'+'caption[E|align][#|S]'+'col[ZG][]'+'colgroup[ZG][col]'+'thead[ZF][tr]'+'tr[ZF|bgcolor][th|td]'+'th[E|ZE][#|Y]'+'form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]'+'noscript[E][#|Y]'+'td[E|ZE][#|Y]'+'tfoot[ZF][tr]'+'tbody[ZF][tr]'+'area[E|D|shape|coords|href|nohref|alt|target][]'+'base[id|href|target][]'+'body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]');} return html4;};tinymce.html.Schema=function(settings){var self=this,elements={},children={},patternElements=[],validStyles,schemaItems;var whiteSpaceElementsMap,selfClosingElementsMap,shortEndedElementsMap,boolAttrMap,blockElementsMap,nonEmptyElementsMap,customElementsMap={};function createLookupTable(option,default_value,extend){var value=settings[option];if(!value){value=mapCache[option];if(!value){value=makeMap(default_value,' ',makeMap(default_value.toUpperCase(),' '));value=tinymce.extend(value,extend);mapCache[option]=value;}}else{value=makeMap(value,',',makeMap(value.toUpperCase(),' '));} return value;};settings=settings||{};schemaItems=settings.schema=="html5"?getHTML5():getHTML4();if(settings.verify_html===false) -settings.valid_elements='*[*]';if(settings.valid_styles){validStyles={};each(settings.valid_styles,function(value,key){validStyles[key]=tinymce.explode(value);});} +settings.valid_elements='*[*]';settings.valid_children='+body[style],+form[style],+td[style]';if(settings.valid_styles){validStyles={};each(settings.valid_styles,function(value,key){validStyles[key]=tinymce.explode(value);});} whiteSpaceElementsMap=createLookupTable('whitespace_elements','pre script noscript style textarea');selfClosingElementsMap=createLookupTable('self_closing_elements','colgroup dd dt li option p td tfoot th thead tr');shortEndedElementsMap=createLookupTable('short_ended_elements','area base basefont br col frame hr img input isindex link meta param embed source wbr');boolAttrMap=createLookupTable('boolean_attributes','checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls');nonEmptyElementsMap=createLookupTable('non_empty_elements','td th iframe video audio object',shortEndedElementsMap);textBlockElementsMap=createLookupTable('text_block_elements','h1 h2 h3 h4 h5 h6 p div address pre form '+'blockquote center dir fieldset header footer article section hgroup aside nav figure');blockElementsMap=createLookupTable('block_elements','hr table tbody thead tfoot '+'th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup',textBlockElementsMap);function patternToRegExp(str){return new RegExp('^'+str.replace(/([?+*])/g,'.$1')+'$');};function addValidElements(valid_elements){var ei,el,ai,al,yl,matches,element,attr,attrData,elementName,attrName,attrType,attributes,attributesOrder,prefix,outputName,globalAttributes,globalAttributesOrder,transElement,key,childKey,value,elementRuleRegExp=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,attrRuleRegExp=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,hasPatternsRegExp=/[*?+]/;if(valid_elements){valid_elements=split(valid_elements);if(elements['@']){globalAttributes=elements['@'].attributes;globalAttributesOrder=elements['@'].attributesOrder;} for(ei=0,el=valid_elements.length;ei Date: Mon, 23 Jun 2014 14:09:43 -0400 Subject: [PATCH 05/20] BUG 15195 "User appear more than once in the..." SOLVED - User appear more than once in the Process Supervisor window - Problema resuelto, cuando se elimina a un usuario por ADMIN>USERS>Users, este usuario puede se eliminado sin restricciones aunque el usuario este asignado como supervisor de un proceso lo cual no es correcto. Se hace una validacion que verifica si el usuario esta asignado como supervisor le saldra un mensaje de confirmacion que indica si deseea eliminar el usuario de todas maneras. Si la respuesta es Si, se eliminara de la lista de usuarios y de la lista de usuarios asignados como supervisores. --- workflow/engine/classes/class.processMap.php | 1 + workflow/engine/methods/users/users_Ajax.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index debeabc61..5c6bc4883 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -3336,6 +3336,7 @@ class processMap $oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR'); $oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID); + $oCriteria->add(UsersPeer::USR_STATUS, "CLOSED", Criteria::NOT_EQUAL); $oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME); $oDataset = ProcessUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); diff --git a/workflow/engine/methods/users/users_Ajax.php b/workflow/engine/methods/users/users_Ajax.php index 367464768..f175b2e78 100644 --- a/workflow/engine/methods/users/users_Ajax.php +++ b/workflow/engine/methods/users/users_Ajax.php @@ -533,7 +533,7 @@ try { $rsCriteria = ProcessUserPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); - if($rsCriteria->next() != 0) { + if ($rsCriteria->next()) { $message = "ERROR"; } From 0041f066aff044647e50d6c11ea1cc47b0628c4a Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Mon, 23 Jun 2014 15:12:57 -0400 Subject: [PATCH 06/20] BUG-14988 Administrative Interfaces are Accessible from the Internet SOLVED --- workflow/engine/methods/login/sysLogin.php | 32 ++++++++++++++++------ workflow/public_html/sysGeneric.php | 2 ++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/workflow/engine/methods/login/sysLogin.php b/workflow/engine/methods/login/sysLogin.php index f74ae4aa1..025be8010 100755 --- a/workflow/engine/methods/login/sysLogin.php +++ b/workflow/engine/methods/login/sysLogin.php @@ -140,15 +140,31 @@ $_SESSION ['_DBArray'] = $_DBArray; $aField ['LOGIN_VERIFY_MSG'] = G::loadTranslation ('LOGIN_VERIFY_MSG'); $aField['USER_LANG'] = SYS_LANG; -//Get Server Configuration -//G::LoadClass ('serverConfiguration'); //already called -$oServerConf = & serverConf::getSingleton (); - $G_PUBLISH = new Publisher (); -if ($oServerConf->getProperty ('LOGIN_NO_WS')) { - $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'login/sysLoginNoWS', '', $aField, 'sysLogin'); -} else { - $G_PUBLISH->AddContent ('xmlform', 'xmlform', 'login/sysLogin', '', $aField, 'sysLogin'); +if (!defined('ws_in_login')) { + define('ws_in_login', 'serverconf'); +} +$fileLogin = 'login/sysLogin'; +switch (ws_in_login) { + case 'serverconf': + //Get Server Configuration + $oServerConf = & serverConf::getSingleton (); + if ($oServerConf->getProperty ('LOGIN_NO_WS')) { + $fileLogin = 'login/sysLoginNoWS'; + } else { + $fileLogin = 'login/sysLogin'; + } + break; + case 'no': + $fileLogin = 'login/sysLoginNoWS'; + break; + case 'yes': + $fileLogin = 'login/sysLogin'; + break; + default: + $fileLogin = 'login/sysLogin'; + break; } +$G_PUBLISH->AddContent ('xmlform', 'xmlform', $fileLogin, '', $aField, 'sysLogin'); G::RenderPage ("publish"); diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index 4225e2da2..6e5335500 100755 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -316,6 +316,8 @@ define( 'MEMCACHED_ENABLED', $config['memcached'] ); define( 'MEMCACHED_SERVER', $config['memcached_server'] ); define( 'TIME_ZONE', $config['time_zone'] ); +define ('ws_in_login', isset($config['ws_in_login']) ? $config['ws_in_login'] : 'serverconf'); + // IIS Compatibility, SERVER_ADDR doesn't exist on that env, so we need to define it. $_SERVER['SERVER_ADDR'] = isset( $_SERVER['SERVER_ADDR'] ) ? $_SERVER['SERVER_ADDR'] : $_SERVER['SERVER_NAME']; From f7be3c247019b360046857f2e0ac9c19db114066 Mon Sep 17 00:00:00 2001 From: jennylee Date: Mon, 23 Jun 2014 15:34:48 -0400 Subject: [PATCH 07/20] BUG-15015 HTML EN DYNAFORMS NO ADMITE CSS El html de dynaforms no admite la etiqueta style en el body del html. Se agrego una configuracion al inicializar el tinyMCE valid_children : "+body[style],+form[style],+td[style]" para q las etiquetas style no sean eliminadas dentro del body, form, div, p, span, table, tbody, tr y td tags. --- gulliver/js/maborak/core/maborak.js | 2 +- gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js | 2 +- gulliver/system/class.wysiwygEditor.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index 47a928c0d..84b1a181f 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -1848,7 +1848,7 @@ replace(data).replace(/#/g,'#text').replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,fun return html5;};function getHTML4(){var html4=mapCache.html4;if(!html4){html4=mapCache.html4=unpack({Z:'H|K|N|O|P',Y:'X|form|R|Q',ZG:'E|span|width|align|char|charoff|valign',X:'p|T|div|U|W|isindex|fieldset|table',ZF:'E|align|char|charoff|valign',W:'pre|hr|blockquote|address|center|noframes',ZE:'abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height',ZD:'[E][S]',U:'ul|ol|dl|menu|dir',ZC:'p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q',T:'h1|h2|h3|h4|h5|h6',ZB:'X|S|Q',S:'R|P',ZA:'a|G|J|M|O|P',R:'a|H|K|N|O',Q:'noscript|P',P:'ins|del|script',O:'input|select|textarea|label|button',N:'M|L',M:'em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym',L:'sub|sup',K:'J|I',J:'tt|i|b|u|s|strike',I:'big|small|font|basefont',H:'G|F',G:'br|span|bdo',F:'object|applet|img|map|iframe',E:'A|B|C',D:'accesskey|tabindex|onfocus|onblur',C:'onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup',B:'lang|xml:lang|dir',A:'id|class|style|title'},'script[id|charset|type|language|src|defer|xml:space][]'+'style[B|id|type|media|title|xml:space][]'+'object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]'+'param[id|name|value|valuetype|type][]'+'p[E|align][#|S]'+'a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]'+'br[A|clear][]'+'span[E][#|S]'+'bdo[A|C|B][#|S]'+'applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]'+'h1[E|align][#|S]'+'img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]'+'map[B|C|A|name][X|form|Q|area]'+'h2[E|align][#|S]'+'iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]'+'h3[E|align][#|S]'+'tt[E][#|S]'+'i[E][#|S]'+'b[E][#|S]'+'u[E][#|S]'+'s[E][#|S]'+'strike[E][#|S]'+'big[E][#|S]'+'small[E][#|S]'+'font[A|B|size|color|face][#|S]'+'basefont[id|size|color|face][]'+'em[E][#|S]'+'strong[E][#|S]'+'dfn[E][#|S]'+'code[E][#|S]'+'q[E|cite][#|S]'+'samp[E][#|S]'+'kbd[E][#|S]'+'var[E][#|S]'+'cite[E][#|S]'+'abbr[E][#|S]'+'acronym[E][#|S]'+'sub[E][#|S]'+'sup[E][#|S]'+'input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]'+'select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]'+'optgroup[E|disabled|label][option]'+'option[E|selected|disabled|label|value][]'+'textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]'+'label[E|for|accesskey|onfocus|onblur][#|S]'+'button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]'+'h4[E|align][#|S]'+'ins[E|cite|datetime][#|Y]'+'h5[E|align][#|S]'+'del[E|cite|datetime][#|Y]'+'h6[E|align][#|S]'+'div[E|align][#|Y]'+'ul[E|type|compact][li]'+'li[E|type|value][#|Y]'+'ol[E|type|compact|start][li]'+'dl[E|compact][dt|dd]'+'dt[E][#|S]'+'dd[E][#|Y]'+'menu[E|compact][li]'+'dir[E|compact][li]'+'pre[E|width|xml:space][#|ZA]'+'hr[E|align|noshade|size|width][]'+'blockquote[E|cite][#|Y]'+'address[E][#|S|p]'+'center[E][#|Y]'+'noframes[E][#|Y]'+'isindex[A|B|prompt][]'+'fieldset[E][#|legend|Y]'+'legend[E|accesskey|align][#|S]'+'table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]'+'caption[E|align][#|S]'+'col[ZG][]'+'colgroup[ZG][col]'+'thead[ZF][tr]'+'tr[ZF|bgcolor][th|td]'+'th[E|ZE][#|Y]'+'form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]'+'noscript[E][#|Y]'+'td[E|ZE][#|Y]'+'tfoot[ZF][tr]'+'tbody[ZF][tr]'+'area[E|D|shape|coords|href|nohref|alt|target][]'+'base[id|href|target][]'+'body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]');} return html4;};tinymce.html.Schema=function(settings){var self=this,elements={},children={},patternElements=[],validStyles,schemaItems;var whiteSpaceElementsMap,selfClosingElementsMap,shortEndedElementsMap,boolAttrMap,blockElementsMap,nonEmptyElementsMap,customElementsMap={};function createLookupTable(option,default_value,extend){var value=settings[option];if(!value){value=mapCache[option];if(!value){value=makeMap(default_value,' ',makeMap(default_value.toUpperCase(),' '));value=tinymce.extend(value,extend);mapCache[option]=value;}}else{value=makeMap(value,',',makeMap(value.toUpperCase(),' '));} return value;};settings=settings||{};schemaItems=settings.schema=="html5"?getHTML5():getHTML4();if(settings.verify_html===false) -settings.valid_elements='*[*]';settings.valid_children='+body[style],+form[style],+td[style]';if(settings.valid_styles){validStyles={};each(settings.valid_styles,function(value,key){validStyles[key]=tinymce.explode(value);});} +settings.valid_elements='*[*]';settings.valid_children='+body[style],+form[style],+div[style],+td[style],+table[style],+tbody[style],+tr[style],+span[style],+p[style]';if(settings.valid_styles){validStyles={};each(settings.valid_styles,function(value,key){validStyles[key]=tinymce.explode(value);});} whiteSpaceElementsMap=createLookupTable('whitespace_elements','pre script noscript style textarea');selfClosingElementsMap=createLookupTable('self_closing_elements','colgroup dd dt li option p td tfoot th thead tr');shortEndedElementsMap=createLookupTable('short_ended_elements','area base basefont br col frame hr img input isindex link meta param embed source wbr');boolAttrMap=createLookupTable('boolean_attributes','checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls');nonEmptyElementsMap=createLookupTable('non_empty_elements','td th iframe video audio object',shortEndedElementsMap);textBlockElementsMap=createLookupTable('text_block_elements','h1 h2 h3 h4 h5 h6 p div address pre form '+'blockquote center dir fieldset header footer article section hgroup aside nav figure');blockElementsMap=createLookupTable('block_elements','hr table tbody thead tfoot '+'th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup',textBlockElementsMap);function patternToRegExp(str){return new RegExp('^'+str.replace(/([?+*])/g,'.$1')+'$');};function addValidElements(valid_elements){var ei,el,ai,al,yl,matches,element,attr,attrData,elementName,attrName,attrType,attributes,attributesOrder,prefix,outputName,globalAttributes,globalAttributesOrder,transElement,key,childKey,value,elementRuleRegExp=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,attrRuleRegExp=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,hasPatternsRegExp=/[*?+]/;if(valid_elements){valid_elements=split(valid_elements);if(elements['@']){globalAttributes=elements['@'].attributes;globalAttributesOrder=elements['@'].attributesOrder;} for(ei=0,el=valid_elements.length;ei Date: Tue, 24 Jun 2014 12:25:15 -0400 Subject: [PATCH 08/20] Implement changes of concat to concatMaborak --- gulliver/js/maborak/core/maborak.js | 8 +-- gulliver/js/maborak/core/maborak.loader.js | 64 +++++++++---------- gulliver/js/maborak/core/maborak.old.js | 10 +-- gulliver/js/maborak/core/module.app.js | 22 +++---- gulliver/js/maborak/core/module.boxi.js | 4 +- gulliver/js/maborak/core/module.dashboard.js | 24 +++---- gulliver/js/maborak/core/module.dom.js | 8 +-- gulliver/js/maborak/core/module.drag.js | 4 +- gulliver/js/maborak/core/module.dynaform.js | 22 +++---- gulliver/js/maborak/core/module.fx.js | 6 +- gulliver/js/maborak/core/module.grid.js | 12 ++-- gulliver/js/maborak/core/module.panel.js | 20 +++--- gulliver/js/maborak/core/module.rpc.js | 2 +- gulliver/js/maborak/core/module.rss.js | 6 +- gulliver/js/maborak/core/module.services.js | 6 +- gulliver/js/maborak/core/module.slider.js | 4 +- gulliver/js/maborak/core/module.xmlform.js | 2 +- .../engine/js/processmap/core/processmap.js | 10 +-- .../engine/js/stagesmap/core/stagesmap.js | 4 +- 19 files changed, 119 insertions(+), 119 deletions(-) diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index 84b1a181f..e4f3b568d 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -2,7 +2,7 @@ var maborak=function(forceCssLoad){this.info={version:"0.3",name:"maborak",file:"maborak"+((BROWSER_CACHE_FILES_UID!="")?"."+BROWSER_CACHE_FILES_UID:"")+".js"},this.forceCssLoad=forceCssLoad?true:false;this.make=function(options) {this.protoCore();this.module={debug:function(flag){this.flag=flag||false;this.log=function(v) {if(typeof console!='undefined'&&this.flag===true) -{console.log(v||'');}};return this;}}.expand(this);this.options={thisIsNotPM:false}.concat(options||{});this.report=new this.bitacora();this.loadMethods([this.checkBrowser],this);this.event=this.factory(this.mantis,true);this.tools=this.factory(this.extended.tools,true);this.file=this.factory(this.fileCore,true);this.dom=this.factory(this.extended.D0M,true);this.iphone=this.factory(this.iphoneBrowser,true);this.cookie=this.factory(this.extended.cookie,true);this.Package=new this.PackageCore(this,this.file.db);this.report.add("Class loaded.");this.info.base=this.tools.baseJS(this.info.file);this.info.images=this.info.base+"images/";this.path_root=this.tools.path_root(this.info.base)+"/";if(this.options.modules){this.Package.Load(this.options.modules,{Instance:this,Type:"module"});} +{console.log(v||'');}};return this;}}.expand(this);this.options={thisIsNotPM:false}.concatMaborak(options||{});this.report=new this.bitacora();this.loadMethods([this.checkBrowser],this);this.event=this.factory(this.mantis,true);this.tools=this.factory(this.extended.tools,true);this.file=this.factory(this.fileCore,true);this.dom=this.factory(this.extended.D0M,true);this.iphone=this.factory(this.iphoneBrowser,true);this.cookie=this.factory(this.extended.cookie,true);this.Package=new this.PackageCore(this,this.file.db);this.report.add("Class loaded.");this.info.base=this.tools.baseJS(this.info.file);this.info.images=this.info.base+"images/";this.path_root=this.tools.path_root(this.info.base)+"/";if(this.options.modules){this.Package.Load(this.options.modules,{Instance:this,Type:"module"});} if(this.options.files){this.Package.Load(this.options.files,{Type:"file"});} this.exec(this.fix.memoryLeak);if(this.forceCssLoad===true){var st=$dce('link');st.rel='stylesheet';st.type='text/css';st.href=this.info.base+'stylesheet/default.css';this.dom.capture("tag.head 0").appendChild(st);} this.expand(this);return this;};this.factory=function(Class,create) @@ -75,7 +75,7 @@ return this;};Array.prototype.toSelect=function() {var s=[];for(var i=0;i0;i--) {this.name=this.toLoad[this.toLoad.length-i];if(!this.isset()){tl.push(this.name);this.write(false);}}} @@ -367,7 +367,7 @@ return[pageWidth,pageHeight];};this.serializer=this.parent.factory(function(DOM, {};this.rake=function(val) {if(!val){return val;} if(typeof val==="object") -{this.serialized.concat(val);} +{this.serialized.concatMaborak(val);} else {this.serialized+=val;} return true;};this.form=function() diff --git a/gulliver/js/maborak/core/maborak.loader.js b/gulliver/js/maborak/core/maborak.loader.js index 0d2cdab26..23049e90e 100644 --- a/gulliver/js/maborak/core/maborak.loader.js +++ b/gulliver/js/maborak/core/maborak.loader.js @@ -1,7 +1,7 @@ leimnud.Package.Public({info:{Class:"maborak",File:"module.panel.js",Name:"panel",Type:"module",Version:"1.0.5"},content:function(options) {this.uid=this.parent.tools.createUID();this.zIndex=0;this.stepZindex=5;this.controlSize={w:15,h:15};this.elements={};this.setStyle={};this.events={};this.tab={};this.showing={};this.make=function() -{this.makeTmpDB();this.options={statusBar:false,titleBar:true,cursorToDrag:"default",elementToDrag:"title",strict_position:true}.concat(this.options||{});this.options.fx={blinkToFront:true,shadow:true,opacity:true,modal:false,fadeIn:false,fadeOut:false,drag:true}.concat(this.options.fx||{});this.options.control={resize:false,close:true,drag:true}.concat(this.options.control||{});this.options.statusBar=(this.options.statusBarButtons||this.options.control.resize)?true:this.options.statusBar;this.options.size={w:200,h:200}.concat(this.options.size||{});this.options.position={x:20,y:20}.concat(this.options.position||{});this.makeTheme();this.elements.containerWindow=$dce("div");this.elements.containerWindow.className="panel_containerWindow___"+this.getTheme("containerWindow");this.styles.containerWindow();if(this.options.fx.fadeIn===true) +{this.makeTmpDB();this.options={statusBar:false,titleBar:true,cursorToDrag:"default",elementToDrag:"title",strict_position:true}.concatMaborak(this.options||{});this.options.fx={blinkToFront:true,shadow:true,opacity:true,modal:false,fadeIn:false,fadeOut:false,drag:true}.concatMaborak(this.options.fx||{});this.options.control={resize:false,close:true,drag:true}.concatMaborak(this.options.control||{});this.options.statusBar=(this.options.statusBarButtons||this.options.control.resize)?true:this.options.statusBar;this.options.size={w:200,h:200}.concatMaborak(this.options.size||{});this.options.position={x:20,y:20}.concatMaborak(this.options.position||{});this.makeTheme();this.elements.containerWindow=$dce("div");this.elements.containerWindow.className="panel_containerWindow___"+this.getTheme("containerWindow");this.styles.containerWindow();if(this.options.fx.fadeIn===true) {this.parent.dom.opacity(this.elements.containerWindow,0);} this.target().appendChild(this.elements.containerWindow);this.elements.frontend=$dce("div");this.elements.frontend.className="panel_frontend___"+this.getTheme("frontend");this.styles.frontend();this.elements.containerWindow.appendChild(this.elements.frontend);this.elements.titleBar=$dce("div");this.elements.titleBar.className="panel_titleBar___"+this.getTheme("titleBar");this.parent.exec(this.styles.titleBar,false,false,this);this.elements.frontend.appendChild(this.elements.titleBar);this.elements.title=$dce("div");this.elements.title.className="panel_title___"+this.getTheme("title");this.parent.exec(this.styles.title,false,false,this);this.elements.title.innerHTML=this.options.title||"";this.elements.titleBar.appendChild(this.elements.title);this.elements.headerBar=$dce("div");this.elements.headerBar.className="panel_headerBar___"+this.getTheme("headerBar");this.styles.headerBar();this.elements.frontend.appendChild(this.elements.headerBar);this.elements.tab=$dce("div");this.elements.tab.className="panel_tab___"+this.getTheme("tab");this.elements.content=$dce("div");this.elements.content.className="panel_content___"+this.getTheme("content");this.elements.loader=$dce("div");this.elements.loader.className="panel_loader___"+this.getTheme("loader");this.elements.frontend.appendChild(this.elements.content);this.elements.frontend.appendChild(this.elements.tab);this.elements.frontend.appendChild(this.elements.loader);this.elements.statusBar=$dce("div");this.elements.statusBar.className="panel_statusBar___"+this.getTheme("statusBar");this.styles.statusBar();this.elements.frontend.appendChild(this.elements.statusBar);this.elements.statusButtons=$dce("div");this.elements.statusButtons.className="panel_statusButtons___"+this.getTheme("statusButtons");this.styles.statusButtons();this.elements.statusBar.appendChild(this.elements.statusButtons);this.elements.status=$dce("div");this.elements.status.innerHTML=" ";this.elements.status.className="panel_status___"+this.getTheme("status");this.parent.exec(this.styles.status,false,false,this);this.elements.statusBar.appendChild(this.elements.status);this.elements.resize=$dce("div");this.elements.resize.className="panel_resize___"+this.getTheme("resize");this.styles.resize();this.elements.statusBar.appendChild(this.elements.resize);this.makeStatusButtons();this.parent.exec(this.styles.loader,false,false,this);this.parent.exec(this.styles.tab,false,false,this);this.parent.exec(this.styles.content,false,false,this);this.elements.backend=$dce("div");this.elements.backend.className="panel_backend___"+this.getTheme("backend");this.parent.exec(this.styles.backend,false,false,this);this.elements.containerWindow.appendChild(this.elements.backend);if(this.parent.browser.isIE) {this.elements.iframe=$dce("iframe");this.elements.iframe.className="panel_iframe___"+this.getTheme("iframe");this.elements.iframe.frameBorder="no";this.elements.iframe.scrolling="no";this.elements.iframe.src="about:blank";this.parent.exec(this.styles.iframe,false,false,this);this.elements.backend.appendChild(this.elements.iframe);} @@ -26,7 +26,7 @@ if(this.options.fx.rolled) {var b=new button(t[i].value||"Button");this.elements.statusBarButtons.push(b);this.elements.statusButtons.appendChild(b);}}};this.blink=function(){if(this.zIndexthis.options.images.length-1)?0:index;index=(index<0)?this.options.images.length-1:index;this.current=index;this.setLoad();var image=new Image();image.onload=this.show.args(image);image.src=this.options.images[index];if(this.options.counter) {this.domCounter.innerHTML=""+(index+1)+" de "+(this.options.images.length-1)+"";}};this.show=function(evt,image) @@ -353,7 +353,7 @@ this.inPlay=!this.inPlay;},next:function(){this.load(this.current+1);},previous: {this.load(0);},last:function() {this.load(this.options.images.length-1);}}.expand(this);this.expand(this);},slide:function() {this.inPlay=false;this.last=false;this.elements={};this.stopped=false;this.inM=0;this.make=function(options) -{this.options={initIn:0,counter:true,playTimeOut:3,tactil:false,target:document.body,resize:true,size:{w:522,h:363},position:{x:0,y:30,centerX:true},skin_images:this.parent.info.base+"images/app.slide/",images:[]}.concat(options||{});this.options.thumbnail={show:4,size:{w:90,h:55},images:[]}.concat(options.thumbnail||{});this.windowImage();this.toolbarImage();this.image=$dce("img");this.panel.elements.content.appendChild(this.image);this.load(this.options.initIn);this.current=this.options.initIn;};this.windowImage=function() +{this.options={initIn:0,counter:true,playTimeOut:3,tactil:false,target:document.body,resize:true,size:{w:522,h:363},position:{x:0,y:30,centerX:true},skin_images:this.parent.info.base+"images/app.slide/",images:[]}.concatMaborak(options||{});this.options.thumbnail={show:4,size:{w:90,h:55},images:[]}.concatMaborak(options.thumbnail||{});this.windowImage();this.toolbarImage();this.image=$dce("img");this.panel.elements.content.appendChild(this.image);this.load(this.options.initIn);this.current=this.options.initIn;};this.windowImage=function() {this.panel=new this.parent.module.panel();this.panel.options={size:this.options.size,position:this.options.position,target:this.options.target,statusBar:false,titleBar:false,limit:true,control:{drag:false,close:false},fx:{shadow:false,modal:true,opacity:true,rolled:false,rollWidth:150}};this.panel.events={remove:function(){var el=[this.domNext,this.domPlay,this.domPrev,this.buttonNext,this.domCounter,this.domTitle,this.domClose,this.toolbar,this.footer];if(this.options.banner) {el.push(this.banner);} new this.parent.module.fx.fade().make({duration:200,end:0,dom:el,onFinish:function(el){this.parent.dom.remove(el);}.extend(this,el)});}.extend(this)};this.panel.setStyle={content:{overflow:"hidden",textAlign:"center",verticalAlign:"center",margin:10,marginBottom:40,border:"1px solid #fff"},containerWindow:{border:"0px solid black",backgroundColor:"transparent"},modal:{backgroundColor:"black"},shadow:{backgroundColor:"black"},frontend:{background:"",backgroundColor:"#ECECEC"},backend:{backgroundColor:"transparent"},titleBar:{background:"transparent"},title:{textAlign:"left",color:"white"}};this.panel.styles.fx.opacityModal.Static=90;this.panel.make();if(this.options.tactil) @@ -407,19 +407,19 @@ else {this.Null=true;new this.parent.module.fx.algorithm().make({transition:"sineInOut",duration:1000,begin:this.toolbar.scrollLeft,end:this.toolbar.scrollLeft+((this.options.thumbnail.size.w*4)+(4*4)),onTransition:function(fx){this.toolbar.scrollLeft=fx.result;}.extend(this),onFinish:function(fx){this.toolbar.scrollLeft=fx.options.end;var t=this.current+1;this.load(t);this.Null=false;}.extend(this)});}}.expand(this);this.expand(this);},box:function() {this.panel=new this.parent.module.panel();this.panel.options={size:{w:300,h:200},title:"Prueba panel",headerBar:true,titleBar:false,elementToDrag:"backend",position:{x:5,y:5,center:true},fx:{shadow:false,modal:true,opacity:false}};this.panel.setStyle={containerWindow:{border:"0px solid red"},frontend:{backgroundColor:"transparent"},content:{margin:0,border:"0px solid red",borderLeft:"1px solid #DADADA",borderRight:"1px solid #DADADA",backgroundColor:"white"},headerBar:{display:''},statusBar:{}};this.panel.styles.fx.opacityModal.Static=0;this.panel.make();this.panel.elements.headerBar.className="boxTopPanel";this.panel.elements.headerBar.innerHTML="
 
 
 
";this.panel.elements.statusBar.className="boxBottom";this.panel.elements.statusBar.innerHTML="
 
 
 
";return this.panel;},confirm:function() {this.make=function(options) -{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar",cancel:lb.CANCEL||"Cancelar"};this.panel=new this.parent.module.panel();this.options={action:function(){}}.concat(options||{});this.panel.options={statusBarButtons:[{value:label.accept},{value:label.cancel}],position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:350,h:(typeof(options.height)!='undefined')?options.height:100},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:50,background:"url("+this.parent.info.images+"question.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() +{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar",cancel:lb.CANCEL||"Cancelar"};this.panel=new this.parent.module.panel();this.options={action:function(){}}.concatMaborak(options||{});this.panel.options={statusBarButtons:[{value:label.accept},{value:label.cancel}],position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:350,h:(typeof(options.height)!='undefined')?options.height:100},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:50,background:"url("+this.parent.info.images+"question.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() {this.options.action();this.panel.remove();return false;}.extend(this);this.panel.elements.statusBarButtons[1].onmouseup=function() {if(this.options.cancel) {this.options.cancel();} this.panel.remove();return false;}.extend(this);this.panel.events={remove:function(){}.extend(this)};};},alert:function() {this.make=function(options) -{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar"};this.panel=new this.parent.module.panel();this.options={action:function(){},target:document.body}.concat(options||{});this.panel.options={statusBarButtons:[{value:label.accept}],target:this.options.target,position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:300,h:(typeof(options.height)!='undefined')?options.height:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:65,background:"url("+this.parent.info.images+"warning.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() +{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar"};this.panel=new this.parent.module.panel();this.options={action:function(){},target:document.body}.concatMaborak(options||{});this.panel.options={statusBarButtons:[{value:label.accept}],target:this.options.target,position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:300,h:(typeof(options.height)!='undefined')?options.height:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:65,background:"url("+this.parent.info.images+"warning.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() {this.options.action();this.panel.remove();return false;}.extend(this);return this;};},info:function() {this.make=function(options) -{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar"};this.panel=new this.parent.module.panel();this.options={action:function(){},target:document.body}.concat(options||{});this.panel.options={statusBarButtons:[{value:label.accept}],target:this.options.target,position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:300,h:(typeof(options.height)!='undefined')?options.height:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:65,background:"url("+this.parent.info.images+"info.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() +{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar"};this.panel=new this.parent.module.panel();this.options={action:function(){},target:document.body}.concatMaborak(options||{});this.panel.options={statusBarButtons:[{value:label.accept}],target:this.options.target,position:{center:true},size:{w:(typeof(options.width)!='undefined')?options.width:300,h:(typeof(options.height)!='undefined')?options.height:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:65,background:"url("+this.parent.info.images+"info.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.fixContent();this.panel.elements.statusBarButtons[0].onmouseup=function() {this.options.action();this.panel.remove();return false;}.extend(this);return this;};},prompt:function() {this.make=function(options) -{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar",cancel:lb.CANCEL||"Cancelar"};this.panel=new this.parent.module.panel();this.options={action:function(){},value:""}.concat(options||{});this.panel.options={statusBarButtons:[{value:label.accept},{value:label.cancel}],position:{center:true},size:{w:300,h:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:50,background:"url("+this.parent.info.images+"question.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.events={remove:this.functionOnFALSE};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.addContent("
");this.input=$dce("input");this.input.type="text" +{var lb=(typeof G_STRINGS!=='undefined')?G_STRINGS:{};var label={accept:lb.ACCEPT||"Aceptar",cancel:lb.CANCEL||"Cancelar"};this.panel=new this.parent.module.panel();this.options={action:function(){},value:""}.concatMaborak(options||{});this.panel.options={statusBarButtons:[{value:label.accept},{value:label.cancel}],position:{center:true},size:{w:300,h:110},control:{close:true,resize:false},fx:{modal:true}};this.panel.setStyle={content:{padding:10,paddingBottom:2,textAlign:"left",paddingLeft:50,background:"url("+this.parent.info.images+"question.png)",backgroundRepeat:"no-repeat",backgroundPosition:"10 50%",backgroundColor:"transparent",borderWidth:0}};this.panel.events={remove:this.functionOnFALSE};this.panel.make();this.panel.addContent(this.options.label||"");this.panel.addContent("
");this.input=$dce("input");this.input.type="text" this.parent.dom.setStyle(this.input,{font:"normal 8pt Tahoma,MiscFixed",color:"#000",width:"100%",marginTop:3,backgroundColor:"white",border:"1px solid #919B9C"});this.panel.addContent(this.input);this.input.value=this.options.value;this.input.focus();this.input.onkeyup=function(evt) {var evt=(window.event)?window.event:evt;var key=(evt.which)?evt.which:evt.keyCode;if(key==13) {this.functionOnTRUE();} @@ -500,7 +500,7 @@ this.open();return true;};this.open=function() {for(var i=0;i Date: Tue, 24 Jun 2014 17:04:08 -0400 Subject: [PATCH 09/20] BUG 15196 "You are able to select various user..." SOLVED - You are able to select various user re re-assign task - Problema resuelto, cuando se aplica "Reassign" de una tarea, de la lista que aparece para reasignar la tarea se podra seleccionar solo a un usuario de la lista. --- .../engine/methods/groups/groups_Ajax.php | 2 +- workflow/engine/templates/cases/open.js | 56 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php index aa2d04f96..76f350204 100644 --- a/workflow/engine/methods/groups/groups_Ajax.php +++ b/workflow/engine/methods/groups/groups_Ajax.php @@ -354,7 +354,7 @@ switch ($_POST['action']) { $rsCriteria = TaskUserPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); - if($rsCriteria->next() != 0) { + if ($rsCriteria->next()) { $message = "ERROR"; } diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index 45bd27203..d7c6c084d 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -293,7 +293,7 @@ Ext.onReady(function(){ } }); } else { - loadMaskStep.show(); + loadMaskStep.show(); document.getElementById("openCaseFrame").src = node.attributes.url; } } else { @@ -462,12 +462,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -500,12 +500,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -577,12 +577,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -656,12 +656,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -694,12 +694,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -732,12 +732,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -770,12 +770,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -808,12 +808,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -954,7 +954,7 @@ Ext.onReady(function(){ {header: _('ID_LASTNAME'), dataIndex: 'USR_LASTNAME', width: 300} ] }), - + sm: new Ext.grid.RowSelectionModel({singleSelect: true}), store: store, tbar:[ @@ -997,12 +997,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -1153,12 +1153,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -1191,12 +1191,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -1300,12 +1300,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } @@ -1386,12 +1386,12 @@ Ext.onReady(function(){ icon: Ext.MessageBox.ERROR, buttons: Ext.MessageBox.OK, fn : function(btn) { - try + try { prnt = parent.parent; top.location = top.location; } - catch (err) + catch (err) { parent.location = parent.location; } From 592da1651532fd04e5c3d6f3aa06780df8f47b5e Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Wed, 25 Jun 2014 08:50:01 -0400 Subject: [PATCH 10/20] BUG-14988 Administrative Interfaces are Accessible... IMPROVEMENT - Change of variable to uppercase. --- workflow/engine/methods/login/sysLogin.php | 6 +++--- workflow/public_html/sysGeneric.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/methods/login/sysLogin.php b/workflow/engine/methods/login/sysLogin.php index 025be8010..3acc0259b 100755 --- a/workflow/engine/methods/login/sysLogin.php +++ b/workflow/engine/methods/login/sysLogin.php @@ -141,11 +141,11 @@ $aField ['LOGIN_VERIFY_MSG'] = G::loadTranslation ('LOGIN_VERIFY_MSG'); $aField['USER_LANG'] = SYS_LANG; $G_PUBLISH = new Publisher (); -if (!defined('ws_in_login')) { - define('ws_in_login', 'serverconf'); +if (!defined('WS_IN_LOGIN')) { + define('WS_IN_LOGIN', 'serverconf'); } $fileLogin = 'login/sysLogin'; -switch (ws_in_login) { +switch (WS_IN_LOGIN) { case 'serverconf': //Get Server Configuration $oServerConf = & serverConf::getSingleton (); diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index 6e5335500..1fb060fe9 100755 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -316,7 +316,7 @@ define( 'MEMCACHED_ENABLED', $config['memcached'] ); define( 'MEMCACHED_SERVER', $config['memcached_server'] ); define( 'TIME_ZONE', $config['time_zone'] ); -define ('ws_in_login', isset($config['ws_in_login']) ? $config['ws_in_login'] : 'serverconf'); +define ('WS_IN_LOGIN', isset($config['WS_IN_LOGIN']) ? $config['WS_IN_LOGIN'] : 'serverconf'); // IIS Compatibility, SERVER_ADDR doesn't exist on that env, so we need to define it. $_SERVER['SERVER_ADDR'] = isset( $_SERVER['SERVER_ADDR'] ) ? $_SERVER['SERVER_ADDR'] : $_SERVER['SERVER_NAME']; From 15c178540a6416702c7423af381485ba7347eb96 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Wed, 25 Jun 2014 09:15:33 -0400 Subject: [PATCH 11/20] Fix delete project bpmn, timer start. --- workflow/engine/src/ProcessMaker/Project/Bpmn.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Project/Bpmn.php b/workflow/engine/src/ProcessMaker/Project/Bpmn.php index 7741912d4..9bb978098 100644 --- a/workflow/engine/src/ProcessMaker/Project/Bpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Bpmn.php @@ -154,15 +154,15 @@ class Bpmn extends Handler } self::log("Remove Project With Uid: {$this->prjUid}"); + foreach ($this->getEvents() as $event) { + $this->removeEvent($event["EVN_UID"]); + } foreach ($this->getActivities() as $activity) { $this->removeActivity($activity["ACT_UID"]); } foreach ($this->getGateways() as $gateway) { $this->removeGateway($gateway["GAT_UID"]); } - foreach ($this->getEvents() as $event) { - $this->removeEvent($event["EVN_UID"]); - } foreach ($this->getFlows() as $flow) { $this->removeFlow($flow["FLO_UID"]); } @@ -485,8 +485,8 @@ class Bpmn extends Handler { try { self::log("Remove Event: $evnUid"); - $event = EventPeer::retrieveByPK($evnUid); + $event->delete(); self::log("Remove Event Success!"); From 6e221a1e0cec9b998e3b4d5e9b91bab429477424 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Wed, 25 Jun 2014 12:53:18 -0400 Subject: [PATCH 12/20] Se adiciona campo dyn_content para end points de dynaform --- .../classes/model/map/DynaformMapBuilder.php | 2 + .../engine/classes/model/om/BaseDynaform.php | 60 ++++++++++++++++++- .../classes/model/om/BaseDynaformPeer.php | 23 ++++--- .../classes/model/om/BaseHolidayPeer.php | 4 +- .../classes/model/om/BaseOutputDocument.php | 4 +- .../engine/classes/model/om/BaseWebEntry.php | 4 +- workflow/engine/config/schema.xml | 1 + workflow/engine/data/mysql/schema.sql | 1 + .../ProcessMaker/BusinessModel/DynaForm.php | 8 ++- 9 files changed, 90 insertions(+), 17 deletions(-) diff --git a/workflow/engine/classes/model/map/DynaformMapBuilder.php b/workflow/engine/classes/model/map/DynaformMapBuilder.php index 9eac141b1..e2450e7bb 100755 --- a/workflow/engine/classes/model/map/DynaformMapBuilder.php +++ b/workflow/engine/classes/model/map/DynaformMapBuilder.php @@ -73,6 +73,8 @@ class DynaformMapBuilder $tMap->addColumn('DYN_FILENAME', 'DynFilename', 'string', CreoleTypes::VARCHAR, true, 100); + $tMap->addColumn('DYN_CONTENT', 'DynContent', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addValidator('DYN_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'xmlform|grid', 'Please select a valid dynaform type.'); } // doBuild() diff --git a/workflow/engine/classes/model/om/BaseDynaform.php b/workflow/engine/classes/model/om/BaseDynaform.php index 8a2ae695c..2542993af 100755 --- a/workflow/engine/classes/model/om/BaseDynaform.php +++ b/workflow/engine/classes/model/om/BaseDynaform.php @@ -51,6 +51,12 @@ abstract class BaseDynaform extends BaseObject implements Persistent */ protected $dyn_filename = ''; + /** + * The value for the dyn_content field. + * @var string + */ + protected $dyn_content; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -109,6 +115,17 @@ abstract class BaseDynaform extends BaseObject implements Persistent return $this->dyn_filename; } + /** + * Get the [dyn_content] column value. + * + * @return string + */ + public function getDynContent() + { + + return $this->dyn_content; + } + /** * Set the value of [dyn_uid] column. * @@ -197,6 +214,28 @@ abstract class BaseDynaform extends BaseObject implements Persistent } // setDynFilename() + /** + * Set the value of [dyn_content] column. + * + * @param string $v new value + * @return void + */ + public function setDynContent($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->dyn_content !== $v) { + $this->dyn_content = $v; + $this->modifiedColumns[] = DynaformPeer::DYN_CONTENT; + } + + } // setDynContent() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -222,12 +261,14 @@ abstract class BaseDynaform extends BaseObject implements Persistent $this->dyn_filename = $rs->getString($startcol + 3); + $this->dyn_content = $rs->getString($startcol + 4); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 4; // 4 = DynaformPeer::NUM_COLUMNS - DynaformPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = DynaformPeer::NUM_COLUMNS - DynaformPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Dynaform object", $e); @@ -443,6 +484,9 @@ abstract class BaseDynaform extends BaseObject implements Persistent case 3: return $this->getDynFilename(); break; + case 4: + return $this->getDynContent(); + break; default: return null; break; @@ -467,6 +511,7 @@ abstract class BaseDynaform extends BaseObject implements Persistent $keys[1] => $this->getProUid(), $keys[2] => $this->getDynType(), $keys[3] => $this->getDynFilename(), + $keys[4] => $this->getDynContent(), ); return $result; } @@ -510,6 +555,9 @@ abstract class BaseDynaform extends BaseObject implements Persistent case 3: $this->setDynFilename($value); break; + case 4: + $this->setDynContent($value); + break; } // switch() } @@ -549,6 +597,10 @@ abstract class BaseDynaform extends BaseObject implements Persistent $this->setDynFilename($arr[$keys[3]]); } + if (array_key_exists($keys[4], $arr)) { + $this->setDynContent($arr[$keys[4]]); + } + } /** @@ -576,6 +628,10 @@ abstract class BaseDynaform extends BaseObject implements Persistent $criteria->add(DynaformPeer::DYN_FILENAME, $this->dyn_filename); } + if ($this->isColumnModified(DynaformPeer::DYN_CONTENT)) { + $criteria->add(DynaformPeer::DYN_CONTENT, $this->dyn_content); + } + return $criteria; } @@ -636,6 +692,8 @@ abstract class BaseDynaform extends BaseObject implements Persistent $copyObj->setDynFilename($this->dyn_filename); + $copyObj->setDynContent($this->dyn_content); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseDynaformPeer.php b/workflow/engine/classes/model/om/BaseDynaformPeer.php index 0fce2d844..d9e8aa7b0 100755 --- a/workflow/engine/classes/model/om/BaseDynaformPeer.php +++ b/workflow/engine/classes/model/om/BaseDynaformPeer.php @@ -25,7 +25,7 @@ abstract class BaseDynaformPeer const CLASS_DEFAULT = 'classes.model.Dynaform'; /** The total number of columns. */ - const NUM_COLUMNS = 4; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -43,6 +43,9 @@ abstract class BaseDynaformPeer /** the column name for the DYN_FILENAME field */ const DYN_FILENAME = 'DYNAFORM.DYN_FILENAME'; + /** the column name for the DYN_CONTENT field */ + const DYN_CONTENT = 'DYNAFORM.DYN_CONTENT'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -54,10 +57,10 @@ abstract class BaseDynaformPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('DynUid', 'ProUid', 'DynType', 'DynFilename', ), - BasePeer::TYPE_COLNAME => array (DynaformPeer::DYN_UID, DynaformPeer::PRO_UID, DynaformPeer::DYN_TYPE, DynaformPeer::DYN_FILENAME, ), - BasePeer::TYPE_FIELDNAME => array ('DYN_UID', 'PRO_UID', 'DYN_TYPE', 'DYN_FILENAME', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('DynUid', 'ProUid', 'DynType', 'DynFilename', 'DynContent', ), + BasePeer::TYPE_COLNAME => array (DynaformPeer::DYN_UID, DynaformPeer::PRO_UID, DynaformPeer::DYN_TYPE, DynaformPeer::DYN_FILENAME, DynaformPeer::DYN_CONTENT, ), + BasePeer::TYPE_FIELDNAME => array ('DYN_UID', 'PRO_UID', 'DYN_TYPE', 'DYN_FILENAME', 'DYN_CONTENT', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -67,10 +70,10 @@ abstract class BaseDynaformPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('DynUid' => 0, 'ProUid' => 1, 'DynType' => 2, 'DynFilename' => 3, ), - BasePeer::TYPE_COLNAME => array (DynaformPeer::DYN_UID => 0, DynaformPeer::PRO_UID => 1, DynaformPeer::DYN_TYPE => 2, DynaformPeer::DYN_FILENAME => 3, ), - BasePeer::TYPE_FIELDNAME => array ('DYN_UID' => 0, 'PRO_UID' => 1, 'DYN_TYPE' => 2, 'DYN_FILENAME' => 3, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('DynUid' => 0, 'ProUid' => 1, 'DynType' => 2, 'DynFilename' => 3, 'DynContent' => 4, ), + BasePeer::TYPE_COLNAME => array (DynaformPeer::DYN_UID => 0, DynaformPeer::PRO_UID => 1, DynaformPeer::DYN_TYPE => 2, DynaformPeer::DYN_FILENAME => 3, DynaformPeer::DYN_CONTENT => 4, ), + BasePeer::TYPE_FIELDNAME => array ('DYN_UID' => 0, 'PRO_UID' => 1, 'DYN_TYPE' => 2, 'DYN_FILENAME' => 3, 'DYN_CONTENT' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -179,6 +182,8 @@ abstract class BaseDynaformPeer $criteria->addSelectColumn(DynaformPeer::DYN_FILENAME); + $criteria->addSelectColumn(DynaformPeer::DYN_CONTENT); + } const COUNT = 'COUNT(DYNAFORM.DYN_UID)'; diff --git a/workflow/engine/classes/model/om/BaseHolidayPeer.php b/workflow/engine/classes/model/om/BaseHolidayPeer.php index 46a07d158..e517622e4 100755 --- a/workflow/engine/classes/model/om/BaseHolidayPeer.php +++ b/workflow/engine/classes/model/om/BaseHolidayPeer.php @@ -348,8 +348,8 @@ abstract class BaseHolidayPeer $criteria = $values->buildCriteria(); // build Criteria from Holiday object } - $criteria->remove(HolidayPeer::HLD_UID); // remove pkey col since this table uses auto-increment - + //$criteria->remove(HolidayPeer::HLD_UID); // remove pkey col since this table uses auto-increment + // Set the correct dbName $criteria->setDbName(self::DATABASE_NAME); diff --git a/workflow/engine/classes/model/om/BaseOutputDocument.php b/workflow/engine/classes/model/om/BaseOutputDocument.php index 889500012..97ca4755a 100755 --- a/workflow/engine/classes/model/om/BaseOutputDocument.php +++ b/workflow/engine/classes/model/om/BaseOutputDocument.php @@ -151,7 +151,7 @@ abstract class BaseOutputDocument extends BaseObject implements Persistent * The value for the out_doc_open_type field. * @var int */ - protected $out_doc_open_type = 0; + protected $out_doc_open_type = 1; /** * Flag to prevent endless save loop, if this object is referenced @@ -853,7 +853,7 @@ abstract class BaseOutputDocument extends BaseObject implements Persistent $v = (int) $v; } - if ($this->out_doc_open_type !== $v || $v === 0) { + if ($this->out_doc_open_type !== $v || $v === 1) { $this->out_doc_open_type = $v; $this->modifiedColumns[] = OutputDocumentPeer::OUT_DOC_OPEN_TYPE; } diff --git a/workflow/engine/classes/model/om/BaseWebEntry.php b/workflow/engine/classes/model/om/BaseWebEntry.php index b0757e7f8..64624b9c2 100644 --- a/workflow/engine/classes/model/om/BaseWebEntry.php +++ b/workflow/engine/classes/model/om/BaseWebEntry.php @@ -73,7 +73,7 @@ abstract class BaseWebEntry extends BaseObject implements Persistent * The value for the we_data field. * @var string */ - protected $we_data = ''; + protected $we_data; /** * The value for the we_create_usr_uid field. @@ -456,7 +456,7 @@ abstract class BaseWebEntry extends BaseObject implements Persistent $v = (string) $v; } - if ($this->we_data !== $v || $v === '') { + if ($this->we_data !== $v) { $this->we_data = $v; $this->modifiedColumns[] = WebEntryPeer::WE_DATA; } diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index d5ce2d6b6..cd2d14556 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -458,6 +458,7 @@ + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 0b5228978..34609d99a 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -204,6 +204,7 @@ CREATE TABLE `DYNAFORM` `PRO_UID` VARCHAR(32) default '0' NOT NULL, `DYN_TYPE` VARCHAR(20) default 'xmlform' NOT NULL, `DYN_FILENAME` VARCHAR(100) default '' NOT NULL, + `DYN_CONTENT` MEDIUMTEXT, PRIMARY KEY (`DYN_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Forms required'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/DynaForm.php b/workflow/engine/src/ProcessMaker/BusinessModel/DynaForm.php index 3b9f66751..3df12da50 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/DynaForm.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/DynaForm.php @@ -367,6 +367,10 @@ class DynaForm $dynaFormUid = $dynaForm->create($arrayData); + $oDynaform = \DynaformPeer::retrieveByPK( $dynaFormUid ); + $oDynaform->setDynContent( $arrayData['DYN_CONTENT'] ); + $oDynaform->save(); + //Return unset($arrayData["PRO_UID"]); @@ -907,6 +911,7 @@ class DynaForm $criteria->addAsColumn("DYN_TITLE", "CT.CON_VALUE"); $criteria->addAsColumn("DYN_DESCRIPTION", "CD.CON_VALUE"); $criteria->addSelectColumn(\DynaformPeer::DYN_TYPE); + $criteria->addSelectColumn(\DynaformPeer::DYN_CONTENT); $criteria->addAlias("CT", \ContentPeer::TABLE_NAME); $criteria->addAlias("CD", \ContentPeer::TABLE_NAME); @@ -953,7 +958,8 @@ class DynaForm $this->getFieldNameByFormatFieldName("DYN_UID") => $record["DYN_UID"], $this->getFieldNameByFormatFieldName("DYN_TITLE") => $record["DYN_TITLE"], $this->getFieldNameByFormatFieldName("DYN_DESCRIPTION") => $record["DYN_DESCRIPTION"] . "", - $this->getFieldNameByFormatFieldName("DYN_TYPE") => $record["DYN_TYPE"] . "" + $this->getFieldNameByFormatFieldName("DYN_TYPE") => $record["DYN_TYPE"] . "", + $this->getFieldNameByFormatFieldName("DYN_CONTENT") => $record["DYN_CONTENT"] . "" ); } catch (\Exception $e) { throw $e; From d34273d72b0a2fce1fed2dc926396ea8152760fe Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Wed, 25 Jun 2014 15:02:45 -0400 Subject: [PATCH 13/20] adding displayMaveriksNotLoadedError() method on bootstrap class to validate calls to Maverics ClassLoader class --- framework/src/templates/error.phtml | 80 +++++++++++++++++++++++++++++ gulliver/system/class.bootstrap.php | 27 ++++++++++ 2 files changed, 107 insertions(+) create mode 100644 framework/src/templates/error.phtml diff --git a/framework/src/templates/error.phtml b/framework/src/templates/error.phtml new file mode 100644 index 000000000..443dcf739 --- /dev/null +++ b/framework/src/templates/error.phtml @@ -0,0 +1,80 @@ + + + + + + Runtime Exception. + + + +
+

System Error.

+
+

+ : +

+
+
+
+        
+        
+
+
+ + \ No newline at end of file diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index 36ec128d5..3e11bd2b8 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -31,6 +31,10 @@ class Bootstrap public static function registerClass($className, $includePath) { + if (! class_exists('\Maveriks\Util\ClassLoader')) { + self::displayMaveriksNotLoadedError(); + } + $loader = Maveriks\Util\ClassLoader::getInstance(); $loader->addClass($className, $includePath); } @@ -2832,5 +2836,28 @@ class Bootstrap return $result; } + + public static function displayMaveriksNotLoadedError() + { + if (! class_exists('\Maveriks\Util\ClassLoader')) { + require PATH_TRUNK . "framework/src/Maveriks/pattern/Mvc/View.php"; + require PATH_TRUNK . "framework/src/Maveriks/pattern/Mvc/PhtmlView.php"; + + $message = "Please review your apache virtual host configuration file, and be sure you have the following rules: + + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ /app.php [QSA,L] + "; + + $view = new Maveriks\Pattern\Mvc\PhtmlView(PATH_TRUNK . "framework/src/templates/error.phtml"); + $view->set("title", "Sistem Configuration Error"); + $view->set("message", htmlentities($message)); + + echo $view->getOutput(); + die(); + } + } } From a79a99f5e6b17f70a7aab75d6bab243730bfcfde Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Wed, 25 Jun 2014 16:59:01 -0400 Subject: [PATCH 14/20] BUG 15201 "Al momento de editar un Stage del..." SOLVED - Al momento de editar un Stage del case tracker te permite dejar la casilla en blanco - Problema resuelto, se hace una validacion que verifica si el titulo del "stages" esta en blanco o vacio al hacer click en el boton "save" aparecera un mensaje que indica "Stage title required". Disponible para la version 2.5.3 de ProcessMaker. --- .../engine/xmlform/tracker/tracker_StageEdit.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/workflow/engine/xmlform/tracker/tracker_StageEdit.xml b/workflow/engine/xmlform/tracker/tracker_StageEdit.xml index 2463165d3..d527fb5cc 100755 --- a/workflow/engine/xmlform/tracker/tracker_StageEdit.xml +++ b/workflow/engine/xmlform/tracker/tracker_StageEdit.xml @@ -1,4 +1,4 @@ - + @@ -23,9 +23,13 @@ From 93716f2921a7f93d8256802888a931d5758cc64c Mon Sep 17 00:00:00 2001 From: Herbert Saal Date: Thu, 26 Jun 2014 10:43:57 -0400 Subject: [PATCH 15/20] Correct problem in tinymce editor with change of concat to concatMaborak function --- .../tinymce/jscripts/tiny_mce/tiny_mce_src.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js b/gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js index 526481e60..3351ff455 100644 --- a/gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js +++ b/gulliver/js/tinymce/jscripts/tiny_mce/tiny_mce_src.js @@ -4208,7 +4208,7 @@ tinymce.html.Styles = function(settings, schema) { fi = nodes.length; while (fi--) { // ProcessMaker: conditional statemets created in order to assure the compatibility with maborak - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'){ if (!nodes[fi].parent){ nodes.splice(fi, 1); } @@ -4218,7 +4218,7 @@ tinymce.html.Styles = function(settings, schema) { for (i = 0, l = list.length; i < l; i++){ // ProcessMaker: conditional statemets created in order to assure the compatibility with maborak - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'){ list[i](nodes, name, args); } } @@ -4236,7 +4236,7 @@ tinymce.html.Styles = function(settings, schema) { fi = nodes.length; while (fi--) { // ProcessMaker: conditional statemets created in order to assure the compatibility with maborak - if(list.name!='toStr'&&list.name!='concat'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){ + if(list.name!='toStr'&&list.name!='concatMaborak'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){ // if (!nodes[fi].parent){ nodes.splice(fi, 1); // } @@ -4245,7 +4245,7 @@ tinymce.html.Styles = function(settings, schema) { for (fi = 0, fl = list.callbacks.length; fi < fl; fi++){ // ProcessMaker: conditional statemets created in order to assure the compatibility with maborak - if(list.name!='toStr'&&list.name!='concat'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){ + if(list.name!='toStr'&&list.name!='concatMaborak'&&list.name!='get_by_key'&&list.name!='expand'&&list.name!='setParent'&&list.name!='isset_key'){ list.callbacks[fi](nodes, list.name, args); } } @@ -4385,7 +4385,7 @@ tinymce.html.Writer = function(settings) { for (i = 0, l = attrs.length; i < l; i++) { attr = attrs[i]; - var list = ['toStr', 'concat', 'get_by_key', 'expand', 'setParent', 'isset_key', 'toJSONString', 'tostr', 'setparent', 'tojsonstring']; + var list = ['toStr', 'concatMaborak', 'get_by_key', 'expand', 'setParent', 'isset_key', 'toJSONString', 'tostr', 'setparent', 'tojsonstring']; for(var iList = 0; iList < list.length; iList++) { if( attr.value.indexOf(list[iList]) >= 0 ) { attr.value = attr.value.substring(0, attr.value.indexOf(list[iList])); @@ -4592,12 +4592,12 @@ tinymce.dom = {}; function addEvent(target, name, callback, capture) { if (target.addEventListener) { //conditional statement in order to maintain compatibility with the maborak processmaker library - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ target.addEventListener(name, callback, capture || false); } } else if (target.attachEvent) { //conditional statement in order to maintain compatibility with the maborak processmaker library - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ target.attachEvent('on' + name, callback); } } @@ -4605,11 +4605,11 @@ tinymce.dom = {}; function removeEvent(target, name, callback, capture) { if (target.removeEventListener) { - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ target.removeEventListener(name, callback, capture || false); } } else if (target.detachEvent) { - if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ + if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){ target.detachEvent('on' + name, callback); } } @@ -8011,7 +8011,7 @@ Sizzle.filter = function( expr, set, inplace, not ) { while ( expr && set.length ) { for ( type in Expr.filter ) { - if(type!='toStr'&&type!='concat'&&type!='get_by_key'&&type!='expand'&&type!='setParent'&&type!='isset_key'&&type!='toJSONString'&&type!='isObject'&&type!='isArray'&&type!='isObjectStrict'){ + if(type!='toStr'&&type!='concatMaborak'&&type!='get_by_key'&&type!='expand'&&type!='setParent'&&type!='isset_key'&&type!='toJSONString'&&type!='isObject'&&type!='isArray'&&type!='isObjectStrict'){ if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { filter = Expr.filter[ type ]; left = match[1]; From 915db443dd79f5e6e4b9525ee09bcfdf27392828 Mon Sep 17 00:00:00 2001 From: Herbert Saal Date: Thu, 26 Jun 2014 10:47:00 -0400 Subject: [PATCH 16/20] Compiled changes in tinymce correction of function concat to concatMaborak --- gulliver/js/maborak/core/maborak.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gulliver/js/maborak/core/maborak.js b/gulliver/js/maborak/core/maborak.js index e4f3b568d..70640e8f2 100644 --- a/gulliver/js/maborak/core/maborak.js +++ b/gulliver/js/maborak/core/maborak.js @@ -2012,10 +2012,10 @@ node=node.parent;}}},schema);rootNode=node=new Node(args.context||settings.root_ fixInvalidChildren(invalidChildren);else args.invalid=true;} if(rootBlockName&&rootNode.name=='body') -addRootBlocks();if(!args.invalid){for(name in matchedNodes){list=nodeFilters[name];nodes=matchedNodes[name];fi=nodes.length;while(fi--){if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'){if(!nodes[fi].parent){nodes.splice(fi,1);}}} -for(i=0,l=list.length;i0){value=html[html.length-1];if(value.length>0&&value!=='\n') html.push('\n');} -html.push('<',name);if(attrs){for(i=0,l=attrs.length;i=0){attr.value=attr.value.substring(0,attr.value.indexOf(list[iList]));}} +html.push('<',name);if(attrs){for(i=0,l=attrs.length;i=0){attr.value=attr.value.substring(0,attr.value.indexOf(list[iList]));}} html.push(' ',attr.name,'="',encode(attr.value,true),'"');}} if(!empty||htmlOutput) html[html.length]='>';else @@ -2044,8 +2044,8 @@ writer.end(name);}}else handler(node);} if(node.type==1&&!settings.inner) walk(node);else -handlers[11](node);return writer.getContent();};}})(tinymce);tinymce.dom={};(function(namespace,expando){var w3cEventModel=!!document.addEventListener;function addEvent(target,name,callback,capture){if(target.addEventListener){if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.addEventListener(name,callback,capture||false);}}else if(target.attachEvent){if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.attachEvent('on'+name,callback);}}} -function removeEvent(target,name,callback,capture){if(target.removeEventListener){if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.removeEventListener(name,callback,capture||false);}}else if(target.detachEvent){if(name!='toStr'&&name!='concat'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.detachEvent('on'+name,callback);}}} +handlers[11](node);return writer.getContent();};}})(tinymce);tinymce.dom={};(function(namespace,expando){var w3cEventModel=!!document.addEventListener;function addEvent(target,name,callback,capture){if(target.addEventListener){if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.addEventListener(name,callback,capture||false);}}else if(target.attachEvent){if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.attachEvent('on'+name,callback);}}} +function removeEvent(target,name,callback,capture){if(target.removeEventListener){if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.removeEventListener(name,callback,capture||false);}}else if(target.detachEvent){if(name!='toStr'&&name!='concatMaborak'&&name!='get_by_key'&&name!='expand'&&name!='setParent'&&name!='isset_key'&&name!='toJSONString'&&name!='isObject'&&name!='isArray'&&name!='isObjectStrict'){target.detachEvent('on'+name,callback);}}} function fix(original_event,data){var name,event=data||{};function returnFalse(){return false;} function returnTrue(){return true;} for(name in original_event){if(name!=="layerX"&&name!=="layerY"){event[name]=original_event[name];}} @@ -2390,7 +2390,7 @@ return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate= return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0;};Sizzle.find=function(expr,context,isXML){var set,i,len,match,type,left;if(!expr){return[];} for(i=0,len=Expr.order.length;i Date: Thu, 26 Jun 2014 14:32:15 -0400 Subject: [PATCH 17/20] BUG-15276 Error al ejecutar un triggers despues de... SOLVED - the variable trigger_debug_session was empty. - A validation was added for load variable in file cases_SaveData.php. --- workflow/engine/methods/cases/cases_SaveData.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/workflow/engine/methods/cases/cases_SaveData.php b/workflow/engine/methods/cases/cases_SaveData.php index 31bf122c5..37235f5fa 100644 --- a/workflow/engine/methods/cases/cases_SaveData.php +++ b/workflow/engine/methods/cases/cases_SaveData.php @@ -73,6 +73,13 @@ try { if ($_SESSION['TRIGGER_DEBUG']['NUM_TRIGGERS'] != 0) { $_SESSION['TRIGGER_DEBUG']['TRIGGERS_NAMES'] = $oCase->getTriggerNames( $triggers ); $_SESSION['TRIGGER_DEBUG']['TRIGGERS_VALUES'] = $triggers; + $oProcess = new Process(); + $oProcessFieds = $oProcess->Load( $_SESSION['PROCESS'] ); + + #trigger debug routines... + if (isset( $oProcessFieds['PRO_DEBUG'] ) && $oProcessFieds['PRO_DEBUG']) { + $trigger_debug_session = true; + } } if ($_SESSION['TRIGGER_DEBUG']['NUM_TRIGGERS'] != 0) { From 8c9b312b9f8b471497959c57af34933df937355c Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 26 Jun 2014 15:25:06 -0400 Subject: [PATCH 18/20] =?UTF-8?q?BUG=2015225=20La=20bandeja=20"Sin=20asign?= =?UTF-8?q?ar",=20tarda=20demasiado=20en=20cargar=20cuando=20la=20regla=20?= =?UTF-8?q?de=20asignaci=C3=B3s=20"Self=20Service=20Value=20Based=20Assign?= =?UTF-8?q?ment"=20SOLVED?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - La funcion "LoadCase" de la clase "Cases" se usaba N veces y provocaba la lentitud - Se optimizo el query para que no sea necesario usar la funcion "LoadCase" varias veces --- workflow/engine/classes/class.case.php | 29 ++++++++++++------- .../engine/classes/model/AppCacheView.php | 11 ++++--- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index bdbeb7718..c3c2cb5ba 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -512,16 +512,11 @@ class Cases try { $oApp = new Application; $aFields = $oApp->Load($sAppUid); - //$aFields = $oApp->toArray(BasePeer::TYPE_FIELDNAME); - $appData = @unserialize($aFields['APP_DATA']); - // BUG 8134, FIX!// for single/double quote troubles // Unserialize with utf8 content get trouble - if ($appData === false) { - $appData = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $aFields['APP_DATA']); - $appData = @unserialize($appData); - } + $appData = self::unserializeData($aFields['APP_DATA']); $aFields['APP_DATA'] = G::array_merges(G::getSystemConstants(), $appData); + switch ($oApp->getAppStatus()) { case 'COMPLETED': $aFields['STATUS'] = G::LoadTranslation('ID_COMPLETED'); @@ -6456,13 +6451,13 @@ class Cases $row[] = $aUser['USR_UID']; } } - - global $RBAC; - //Adding the actual user if this has the PM_REASSIGNCASE permission assigned. + + global $RBAC; + //Adding the actual user if this has the PM_REASSIGNCASE permission assigned. if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1){ if(!in_array($RBAC->aUserInfo['USER_INFO']['USR_UID'], $row)){ $row[] = $RBAC->aUserInfo['USER_INFO']['USR_UID']; - } + } } require_once 'classes/model/Users.php'; @@ -6728,4 +6723,16 @@ class Cases } } } + + public function unserializeData($data) { + $unserializedData = @unserialize($data); + + // BUG 8134, FIX!// for single/double quote troubles // Unserialize with utf8 content get trouble + if ($unserializedData === false) { + $unserializedData = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $data); + $unserializedData = @unserialize($unserializedData); + } + + return $unserializedData; + } } \ No newline at end of file diff --git a/workflow/engine/classes/model/AppCacheView.php b/workflow/engine/classes/model/AppCacheView.php index c1a802df6..cc049f67a 100755 --- a/workflow/engine/classes/model/AppCacheView.php +++ b/workflow/engine/classes/model/AppCacheView.php @@ -361,6 +361,8 @@ class AppCacheView extends BaseAppCacheView $c2 = new Criteria(); $c2->clearSelectColumns(); $c2->addSelectColumn(AppDelegationPeer::APP_UID); + $c2->addSelectColumn(ApplicationPeer::APP_DATA); + $c2->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); $c2->add(AppDelegationPeer::TAS_UID, $row['TAS_UID']); $c2->add(AppDelegationPeer::USR_UID, ''); $c2->add(AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN'); @@ -368,10 +370,11 @@ class AppCacheView extends BaseAppCacheView $rs2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs2->next(); while ($row2 = $rs2->getRow()) { - $caseData = $caseInstance->LoadCase($row2['APP_UID']); - if (isset($caseData['APP_DATA'][$tasGroupVariable])) { - if (trim($caseData['APP_DATA'][$tasGroupVariable]) != '') { - if (in_array(trim($caseData['APP_DATA'][$tasGroupVariable]), $aGroups)) { + $caseData = $caseInstance->unserializeData($row2['APP_DATA']); + + if (isset($caseData[$tasGroupVariable])) { + if (trim($caseData[$tasGroupVariable]) != '') { + if (in_array(trim($caseData[$tasGroupVariable]), $aGroups)) { $cases[] = $row2['APP_UID']; } } From 4f2bdc2c3f1f6d596174d0f04d9c810d8f16122c Mon Sep 17 00:00:00 2001 From: Marco Antonio Nina Date: Thu, 26 Jun 2014 15:43:07 -0400 Subject: [PATCH 19/20] Improvement changed comment --- workflow/engine/methods/cases/cases_SaveData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/methods/cases/cases_SaveData.php b/workflow/engine/methods/cases/cases_SaveData.php index 37235f5fa..263084f96 100644 --- a/workflow/engine/methods/cases/cases_SaveData.php +++ b/workflow/engine/methods/cases/cases_SaveData.php @@ -76,7 +76,7 @@ try { $oProcess = new Process(); $oProcessFieds = $oProcess->Load( $_SESSION['PROCESS'] ); - #trigger debug routines... + //trigger debug routines... if (isset( $oProcessFieds['PRO_DEBUG'] ) && $oProcessFieds['PRO_DEBUG']) { $trigger_debug_session = true; } From 356af18e41201cc37807d3c82b2982634bf547e3 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 26 Jun 2014 16:52:48 -0400 Subject: [PATCH 20/20] Merging code from github to bitbucket 2014-06-26 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b951fad8a..976524a46 100755 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ workflow/public_html/build-log.html temp.txt update.sh workflow/public_html/translations/ +