diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index d062d39ea..2c16891b0 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2133,7 +2133,7 @@ function PMFCreateUser ($userId, $password, $firstname, $lastname, $email, $role * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFUpdateUser.28.29 * * @param string(32) | $userUid | User UID | The user UID. - * @param string(32) | $userName | User ID | The username for the user. + * @param string(32) | $userName | Username | The username for the user. * @param string(32) | $firstName=null | Firstname of the user | Optional parameter. The first name of the user, which can be up to 50 characters long. * @param string(32) | $lastName=null | Lastname of the user | Optional parameter. The last name of the user, which can be up to 50 characters long. * @param string(32) | $email=null | Email the user | Optional parameter. The email of the user, which can be up to 100 characters long. diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index 828c01560..cea83655a 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -113,6 +113,13 @@ class workspaceTools CLI::logging("> Updating Files Manager...\n\n"); $this->upgradeFilesManager($workSpace); + + $start = microtime(true); + CLI::logging("> Migrate new lists...\n"); + $this->migrateList($workSpace); + $stop = microtime(true); + $final = $stop - $start; + CLI::logging("<*> Migrate new lists Process took $final seconds.\n"); } /** @@ -634,7 +641,7 @@ class workspaceTools $oStatement_sleep->executeQuery(); } - $sql_query = "SELECT * FROM information_schema.processlist WHERE user = SUBSTRING_INDEX(USER(),'@',1) and db = DATABASE() ORDER BY id;"; + $sql_query = "SELECT * FROM information_schema.processlist WHERE user = SUBSTRING_INDEX(USER(),'@',1) and db = DATABASE() and time > 0 ORDER BY id;"; $stmt_query = $connection->createStatement(); $rs_query = $stmt_query->executeQuery( $sql_query, ResultSet::FETCHMODE_ASSOC ); @@ -1853,6 +1860,9 @@ class workspaceTools */ public function migrateList ($workSpace) { + if ($this->listFirstExecution('check')) { + return 1; + } $this->initPropel(true); $appCache = new AppCacheView(); G::LoadClass("case"); @@ -2034,13 +2044,15 @@ class workspaceTools switch ($action) { case 'insert': $conf = new Configuration(); - $data["CFG_UID"] ='MIGRATED_LIST'; - $data["OBJ_UID"] ='list'; - $data["CFG_VALUE"]='true'; - $data["PRO_UID"] ='list'; - $data["USR_UID"] ='list'; - $data["APP_UID"] ='list'; - $conf->create($data); + if (!($conf->exists('MIGRATED_LIST', 'list', 'list', 'list', 'list'))) { + $data["CFG_UID"] ='MIGRATED_LIST'; + $data["OBJ_UID"] ='list'; + $data["CFG_VALUE"]='true'; + $data["PRO_UID"] ='list'; + $data["USR_UID"] ='list'; + $data["APP_UID"] ='list'; + $conf->create($data); + } return true; break; case 'check': diff --git a/workflow/engine/classes/model/Content.php b/workflow/engine/classes/model/Content.php index cec41fcb8..947dfea6b 100755 --- a/workflow/engine/classes/model/Content.php +++ b/workflow/engine/classes/model/Content.php @@ -365,7 +365,7 @@ class Content extends BaseContent $workSpace = new workspaceTools( $workSpace ); $workSpace->getDBInfo(); - $link = mysql_pconnect( $workSpace->dbHost, $workSpace->dbUser, $workSpace->dbPass) or die( "Could not connect" ); + $link = @mysql_pconnect( $workSpace->dbHost, $workSpace->dbUser, $workSpace->dbPass) or die( "Could not connect" ); mysql_select_db( $workSpace->dbName, $link ); mysql_query( "SET NAMES 'utf8';" ); diff --git a/workflow/engine/classes/model/InputDocument.php b/workflow/engine/classes/model/InputDocument.php index b19036ad8..d6004dd16 100755 --- a/workflow/engine/classes/model/InputDocument.php +++ b/workflow/engine/classes/model/InputDocument.php @@ -150,8 +150,15 @@ class InputDocument extends BaseInputDocument if(!empty($aData['INP_DOC_DESTINATION_PATH'])){ $description .= ", Destination Path: ".$aData['INP_DOC_DESTINATION_PATH']; } - $inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB"; - $description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE'].", Maximum Input Document file size: ".$inputDocMaxFileSize; + $inputDocMaxFileSize = ""; + if(!empty($aData['INP_DOC_MAX_FILESIZE'])){ + $inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB"; + $inputDocMaxFileSize = ", Maximum Input Document file size: ".$inputDocMaxFileSize; + } + if(!empty($aData['INP_DOC_MAX_FILESIZE'])){ + $description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE']; + } + $description .= $inputDocMaxFileSize; G::auditLog("CreateInputDocument", $description); return $aData['INP_DOC_UID']; @@ -217,8 +224,15 @@ class InputDocument extends BaseInputDocument if(!empty($aData['INP_DOC_DESTINATION_PATH'])){ $description .= ", Destination Path: ".$aData['INP_DOC_DESTINATION_PATH']; } - $inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB"; - $description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE'].", Maximum Input Document file size: ".$inputDocMaxFileSize; + $inputDocMaxFileSize = ""; + if(!empty($aData['INP_DOC_MAX_FILESIZE'])){ + $inputDocMaxFileSize = $aData['INP_DOC_MAX_FILESIZE']? $aData['INP_DOC_MAX_FILESIZE'].' '.$aData['INP_DOC_MAX_FILESIZE_UNIT'] : "256 MB"; + $inputDocMaxFileSize = ", Maximum Input Document file size: ".$inputDocMaxFileSize; + } + if(!empty($aData['INP_DOC_MAX_FILESIZE'])){ + $description .= ", Extensions: ".$aData['INP_DOC_TYPE_FILE']; + } + $description .= $inputDocMaxFileSize; G::auditLog("UpdateInputDocument", $description); return $iResult; diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index d177b31f3..47d48d602 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -178,7 +178,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR'].", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_GENERATE'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -194,12 +199,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } G::auditLog("CreateOutputDocument", $description); return $aData['OUT_DOC_UID']; @@ -261,7 +268,12 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_DESCRIPTION'])){ $description .= ", Description: ".$aData['OUT_DOC_DESCRIPTION']; } - $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR'].", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Report Generator: ". $aData['OUT_DOC_REPORT_GENERATOR']; + } + if(!empty($aData['OUT_DOC_REPORT_GENERATOR'])){ + $description .= ", Output Document to Generate: ".$aData['OUT_DOC_GENERATE']; + } if($aData['OUT_DOC_PDF_SECURITY_ENABLED']==0){ $pdfSecurity = 'Disabled'; }else{ @@ -277,12 +289,14 @@ class OutputDocument extends BaseOutputDocument if(!empty($aData['OUT_DOC_TAGS'])){ $description .= ", Tags: ".$aData['OUT_DOC_TAGS']; } - if($aData['OUT_DOC_OPEN_TYPE']==0){ - $genLink = 'Open the file'; - }else{ - $genLink = 'Download the file'; - } - $description .= ", By clicking on the generated file link: ".$genLink; + if(!empty($aData['OUT_DOC_OPEN_TYPE'])){ + if($aData['OUT_DOC_OPEN_TYPE']==0){ + $genLink = 'Open the file'; + }else{ + $genLink = 'Download the file'; + } + $description .= ", By clicking on the generated file link: ".$genLink; + } if (isset($aData['OUT_DOC_TEMPLATE'])) { $description .= ", [EDIT TEMPLATE]"; } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php index c8a8830fe..cdb3a9fc8 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/FilesManager.php @@ -224,7 +224,8 @@ class FilesManager $oProcessFiles->setPrfCreateDate($sDate); $oProcessFiles->save(); $fp = fopen($sDirectory, 'w'); - $content = $aData['prf_content']; + $content = stripslashes($aData['prf_content']); + $content = str_replace("@amp@", "&", $content); fwrite($fp, $content); fclose($fp); $oProcessFile = array('prf_uid' => $oProcessFiles->getPrfUid(), @@ -372,7 +373,8 @@ class FilesManager $oProcessFiles->setPrfUpdateDate($sDate); $oProcessFiles->save(); $fp = fopen($path, 'w'); - $content = $aData['prf_content']; + $content = stripslashes($aData['prf_content']); + $content = str_replace("@amp@", "&", $content); fwrite($fp, $content); fclose($fp); $oProcessFile = array('prf_uid' => $oProcessFiles->getPrfUid(), diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php b/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php index e6100cbda..8e4cadce3 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/OutputDocument.php @@ -333,6 +333,8 @@ class OutputDocument $oOutputDocument->setOutDocFilename($outputDocumentData['OUT_DOC_FILENAME']); } if (isset($outputDocumentData['OUT_DOC_TEMPLATE'])) { + $outputDocumentData['OUT_DOC_TEMPLATE'] = stripslashes($outputDocumentData['OUT_DOC_TEMPLATE']); + $outputDocumentData['OUT_DOC_TEMPLATE'] = str_replace("@amp@", "&", $outputDocumentData['OUT_DOC_TEMPLATE']); $oOutputDocument->setOutDocTemplate($outputDocumentData['OUT_DOC_TEMPLATE']); } $oOutputDocument->save(); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index b643559aa..a1278a5f5 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -384,18 +384,20 @@ class Task $result = $task->update($arrayProperty); if (!empty($arrayProperty['CONSOLIDATE_DATA'])) { - G::LoadClass("consolidatedCases"); - $consolidated = new \ConsolidatedCases(); - $dataConso = array( - 'con_status' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_enable'], - 'tas_uid' => $arrayProperty['TAS_UID'], - 'dyn_uid' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_dynaform'], - 'pro_uid' => $arrayProperty['PRO_UID'], - 'rep_uid' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_report_table'], - 'table_name' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_table'], - 'title' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_title'] - ); - $consolidated->saveConsolidated($dataConso); + if (isset($arrayProperty['CONSOLIDATE_DATA']['consolidated_dynaform'])) { + G::LoadClass("consolidatedCases"); + $consolidated = new \ConsolidatedCases(); + $dataConso = array( + 'con_status' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_enable'], + 'tas_uid' => $arrayProperty['TAS_UID'], + 'dyn_uid' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_dynaform'], + 'pro_uid' => $arrayProperty['PRO_UID'], + 'rep_uid' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_report_table'], + 'table_name' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_table'], + 'title' => $arrayProperty['CONSOLIDATE_DATA']['consolidated_title'] + ); + $consolidated->saveConsolidated($dataConso); + } } $arrayResult["status"] = "OK"; diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php index bef609a7f..0d3f8369d 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php @@ -119,14 +119,16 @@ class Activity extends Api $task = new \ProcessMaker\BusinessModel\Task(); $properties = $task->updateProperties($prj_uid, $act_uid, $request_data); - /*----------------------------------********---------------------------------*/ + /*----------------------------------********---------------------------------*/ if (\PMLicensedFeatures ::getSingleton() ->verifyfeature('zLhSk5TeEQrNFI2RXFEVktyUGpnczV1WEJNWVp6cjYxbTU3R29mVXVZNWhZQT0=')) { - $actionsByEmailService = new \ProcessMaker\BusinessModel\ActionsByEmail(); - $actionsByEmailService->saveConfiguration($request_data['properties']['_features']); + if (isset($request_data['properties']['_features'])) { + $actionsByEmailService = new \ProcessMaker\BusinessModel\ActionsByEmail(); + $actionsByEmailService->saveConfiguration($request_data['properties']['_features']); + } } - /*----------------------------------********---------------------------------*/ + /*----------------------------------********---------------------------------*/ } catch (\Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } diff --git a/workflow/engine/templates/pmTables/data.js b/workflow/engine/templates/pmTables/data.js index 75aa13b23..2f2b045d4 100755 --- a/workflow/engine/templates/pmTables/data.js +++ b/workflow/engine/templates/pmTables/data.js @@ -642,9 +642,8 @@ ImportPMTableCSV = function(){ waitTitle : " ", success : function(o, resp){ w.close(); - infoGrid.store.reload(); - PMExt.notify('IMPORT RESULT', resp.result.message); + setTimeout(function(){location.reload();},1500); }, failure: function(o, resp){ w.close();