diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 5e3f478f7..5ad3d3308 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -751,7 +751,16 @@ class Derivation //if (isset($nextDel['TAS_DEF_PROC_CODE'])) //$appFields['APP_PROC_CODE'] = $nextDel['TAS_DEF_PROC_CODE']; /*----------------------------------********---------------------------------*/ - if ($nextDel['TAS_UID'] != '-1') { + if ($nextDel['TAS_UID'] == '-2') { + $oRow = ApplicationPeer::retrieveByPK($appFields['APP_UID']); + $aFields = $oRow->toArray( BasePeer::TYPE_FIELDNAME ); + $users = new Users(); + if ($aFields['APP_STATUS'] == 'DRAFT') { + $users->refreshTotal($appFields['CURRENT_USER_UID'], 'remove', 'draft'); + } else { + $users->refreshTotal($appFields['CURRENT_USER_UID'], 'remove', 'inbox'); + } + } elseif ($nextDel['TAS_UID'] != '-1') { $taskNex = TaskPeer::retrieveByPK($nextDel['TAS_UID']); $aTask = $taskNex->toArray( BasePeer::TYPE_FIELDNAME ); $arrayTaskTypeToExclude = array("WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT"); diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index 4979ad2c9..467cb39d0 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -1009,7 +1009,6 @@ class adminProxy extends HttpProxyController public function uploadImage() { //!dataSystem - G::LoadSystem('inputfilter'); $filter = new InputFilter(); $_SERVER["REQUEST_URI"] = $filter->xssFilterHard($_SERVER["REQUEST_URI"]); @@ -1090,7 +1089,13 @@ class adminProxy extends HttpProxyController $uploaded = $filter->validateInput($uploaded,'int'); $files_img_type = $filter->xssFilterHard($files_img_type); $failed = $filter->validateInput($failed,'int'); - echo '{success: true, failed: ' . $failed . ', uploaded: ' . $uploaded . ', type: "' . $files_img_type . '"}'; + $resp = array( + 'success' => true, + 'failed' => $failed, + 'uploaded' => $uploaded, + 'type' => $files_img_type + ); + echo G::json_encode($resp); exit(); } diff --git a/workflow/engine/controllers/installer.php b/workflow/engine/controllers/installer.php index 3ea60b913..706c405c5 100644 --- a/workflow/engine/controllers/installer.php +++ b/workflow/engine/controllers/installer.php @@ -321,13 +321,8 @@ class Installer extends Controller G::verifyPath( $aux['dirname'], true ); if (is_dir( $aux['dirname'] )) { if (! file_exists( $_REQUEST['pathLogFile'] )) { - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - $pathLogFile = $filter->validateInput($_REQUEST['pathLogFile'], "path"); - $pathShared = $filter->validateInput($_REQUEST['pathShared'], "path"); - - @file_put_contents( $pathLogFile, '' ); - @chmod($pathShared, 0770); + @file_put_contents( $_REQUEST['pathLogFile'], '' ); + @chmod($_REQUEST['pathShared'], 0770); } } } @@ -1096,8 +1091,6 @@ class Installer extends Controller } $this->installLog( G::LoadTranslation('ID_CREATING', SYS_LANG, Array($db_file) )); - - $db_file = $filter->validateInput($db_file, "path"); file_put_contents( $db_file, $dbText ); // Generate the databases.php file @@ -1118,8 +1111,6 @@ class Installer extends Controller $databasesText = str_replace( '{dbData}', $dbData, @file_get_contents( PATH_HOME . 'engine/templates/installer/databases.tpl' ) ); $this->installLog( G::LoadTranslation('ID_CREATING', SYS_LANG, Array($databases_file) )); - - $databases_file = $filter->validateInput($databases_file, "path"); file_put_contents( $databases_file, $databasesText ); //execute scripts to create and populates databases diff --git a/workflow/engine/src/ProcessMaker/Project/Bpmn.php b/workflow/engine/src/ProcessMaker/Project/Bpmn.php index cefce6f69..13feacc2e 100755 --- a/workflow/engine/src/ProcessMaker/Project/Bpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Bpmn.php @@ -353,6 +353,10 @@ class Bpmn extends Handler $data["ACT_UID"] = (array_key_exists("ACT_UID", $data))? $data["ACT_UID"] : Common::generateUID(); $data["PRO_UID"] = $processUid; + if (isset($data["ACT_LOOP_TYPE"]) && $data["ACT_LOOP_TYPE"] == "NONE") { + $data["ACT_LOOP_TYPE"] = "EMPTY"; + } + try { self::log("Add Activity with data: ", $data); @@ -400,6 +404,10 @@ class Bpmn extends Handler public function updateActivity($actUid, $data) { try { + if (isset($data["ACT_LOOP_TYPE"]) && $data["ACT_LOOP_TYPE"] == "NONE") { + $data["ACT_LOOP_TYPE"] = "EMPTY"; + } + self::log("Update Activity: $actUid, with data: ", $data); $activity = ActivityPeer::retrieveByPk($actUid); diff --git a/workflow/engine/templates/admin/pmLogo.js b/workflow/engine/templates/admin/pmLogo.js index 0da25c7c1..fe349cec2 100644 --- a/workflow/engine/templates/admin/pmLogo.js +++ b/workflow/engine/templates/admin/pmLogo.js @@ -257,7 +257,7 @@ Ext.onReady(function() { waitTitle : " ", success : function(form, o) { obj = Ext.util.JSON.decode(o.response.responseText); - if (obj.failed == '0' && obj.uploaded != '0') { + if ((obj.failed == '' || obj.failed == '0') && obj.uploaded != '0') { PMExt.notify(_('ID_SUCCESS'), _('ID_YOUR_IMAGE_HAS_BEEN_SUCCESSFULLY')); } else { diff --git a/workflow/engine/templates/services/login_getStarted.html b/workflow/engine/templates/services/login_getStarted.html index 9272c1418..f8111a5a4 100755 --- a/workflow/engine/templates/services/login_getStarted.html +++ b/workflow/engine/templates/services/login_getStarted.html @@ -37,6 +37,10 @@ body, table { font-family: tahoma,arial,verdana,sans-serif; } + + p { + line-height: 0.5em; + } span.cMargLeft { padding-left: 20; } .cell2 { @@ -90,7 +94,7 @@ -

Welcome to ProcessMaker 3.

+

Welcome to ProcessMaker 3.


This new version features a new process designer based upon the Business Process Management Notation 2 standard. It offers a new form designer with flexible layouts for desktops, tablets and cellphones and a new REST API to remotely access ProcessMaker.

To get started, log in using the following credentials. You can change them later:

Username: {name}