From 810eeb0c2d296a2e906f0f59d4d1d612fb6aee16 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 9 Aug 2017 14:49:21 -0400 Subject: [PATCH 1/6] HOR-3509 --- workflow/engine/bin/tasks/cliWorkspaces.php | 44 +++++ .../classes/class.consolidatedCases.php | 74 +++++--- workflow/engine/classes/class.wsTools.php | 178 +++++++++++------- .../ProcessMaker/Util/FixReferencePath.php | 172 +++++++++++++++++ .../engine/templates/cases/casesDocuments.js | 44 +++++ 5 files changed, 409 insertions(+), 103 deletions(-) create mode 100644 workflow/engine/src/ProcessMaker/Util/FixReferencePath.php diff --git a/workflow/engine/bin/tasks/cliWorkspaces.php b/workflow/engine/bin/tasks/cliWorkspaces.php index 05b53ecd9..05b4ec6e6 100644 --- a/workflow/engine/bin/tasks/cliWorkspaces.php +++ b/workflow/engine/bin/tasks/cliWorkspaces.php @@ -329,6 +329,22 @@ CLI::taskOpt("lang", "", "lLANG", "lang=LANG"); CLI::taskArg('workspace'); CLI::taskRun("cliListIds"); + /** + * + */ +CLI::taskName('regenerate-pmtable-classes'); +CLI::taskDescription(<< Migrating and populating indexing for avoiding the use of table APP_CACHE_VIEW process took " . ($stop - $start) . " seconds.\n"); } + +/** + * This method recursively finds all PHP files that reference the path PATH_DATA + * incorrectly, which is caused by importing processes where the data directory + * of ProcessMaker has different routes. Modified files are backed up with the + * extension '.backup' in the same directory. + * + * @param array $args + * @param array $opts + * @throws Exception + * @return void + */ +function regenerate_pmtable_classes($args, $opts) +{ + if (sizeof($args) > 0) { + $start = microtime(true); + CLI::logging("> Updating generated class files for PM Tables...\n"); + + Bootstrap::setConstantsRelatedWs($args[0]); + $workspaceTools = new workspaceTools($args[0]); + $workspaceTools->fixReferencePathFiles(PATH_DATA_SITE . "classes", PATH_DATA); + + $stop = microtime(true); + CLI::logging("<*> Updating generated class files for PM Tables took " . ($stop - $start) . " seconds.\n"); + } else { + throw new Exception("No workspace specified for updating generated class files."); + } +} diff --git a/workflow/engine/classes/class.consolidatedCases.php b/workflow/engine/classes/class.consolidatedCases.php index a77e79e0d..537501531 100644 --- a/workflow/engine/classes/class.consolidatedCases.php +++ b/workflow/engine/classes/class.consolidatedCases.php @@ -17,7 +17,7 @@ class ConsolidatedCases $RepTabUid = $data['rep_uid']; $TableName = $data['table_name']; $Title = $data['title']; - if($this->isUpdateFields($data) && $Status) { + if ($this->isUpdateFields($data) && $Status) { return true; } if ($this->existTable && $Status) { @@ -26,14 +26,14 @@ class ConsolidatedCases if ($RepTabUid != '') { $this->deleteRepTab($RepTabUid, $Status, $TasUid, $TableName); - if(!$Status){ + if (!$Status) { return true; } $RepTabUid = ''; } $_POST['form']['PRO_UID'] = $ProUid; - $_POST['form']['REP_TAB_UID'] = $RepTabUid; + $_POST['form']['REP_TAB_UID'] = $RepTabUid; $_POST['form']['REP_TAB_NAME'] = $TableName; $_POST['form']['REP_TAB_TYPE'] = "NORMAL"; $_POST['form']['REP_TAB_GRID'] = ''; @@ -43,7 +43,7 @@ class ConsolidatedCases $_POST['form']['REP_TAB_TITLE'] = $Title; $_POST['form']['FIELDS'] = array(); - $sOldTableName = $_POST['form']['REP_TAB_NAME']; + $sOldTableName = $_POST['form']['REP_TAB_NAME']; $sOldConnection = $_POST['form']['REP_TAB_CONNECTION']; $_POST['form']['REP_TAB_UID'] = $this->createReportTable($_POST['form']); @@ -174,7 +174,7 @@ class ConsolidatedCases if ($this->existTableName) { $diff = array_diff($data, $this->rowRepTab); } - if ($this->existCaseConsolidate){ + if ($this->existCaseConsolidate) { $diff = array_diff($diff, $this->rowCaseConsCore); } return count($diff) <= 0; @@ -213,9 +213,23 @@ class ConsolidatedCases return $oReportTable->getRepTabUid(); } - public function createReportVariables($RepTabUid, $ProUid, $formFields) + public function createReportVariables($repTabUid, $proUid, $formFields) + { + list($fieldsClass, $fields) = $this->buildReportVariables($formFields, function ($repVarName, $repVarType) use ($repTabUid, $proUid) { + $reportVar = new ReportVar(); + $reportVar->create(array( + 'REP_TAB_UID' => $repTabUid, + 'PRO_UID' => $proUid, + 'REP_VAR_NAME' => $repVarName, + 'REP_VAR_TYPE' => $repVarType) + ); + }); + + return array($fieldsClass, $fields); + } + + public function buildReportVariables($formFields, $callbackFunction = null) { - $oReportVar = new ReportVar(); $fieldsClass = array(); $fields = array(); $i = 1; @@ -224,7 +238,7 @@ class ConsolidatedCases $fieldsClass[$i]['FLD_KEY'] = 'on'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_DESCRIPTION'] = ''; - $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ; + $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR'; $fieldsClass[$i]['FLD_SIZE'] = 32; $i++; $fieldsClass[$i]['FLD_NAME'] = 'APP_NUMBER'; @@ -232,26 +246,26 @@ class ConsolidatedCases $fieldsClass[$i]['FLD_KEY'] = 'on'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_DESCRIPTION'] = ''; - $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ; + $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR'; $fieldsClass[$i]['FLD_SIZE'] = 255; - foreach ($formFields as $sField) { - $aField = explode('-', $sField); - if ($aField[1] == 'title' || $aField[1] == 'submit') { + foreach ($formFields as $field) { + $fieldProperty = explode('-', $field); + if ($fieldProperty[1] == 'title' || $fieldProperty[1] == 'submit') { continue; } $i++; - $fieldsClass[$i]['FLD_NAME'] = $aField[0]; + $fieldsClass[$i]['FLD_NAME'] = $fieldProperty[0]; $fieldsClass[$i]['FLD_NULL'] = 'off'; $fieldsClass[$i]['FLD_KEY'] = 'off'; $fieldsClass[$i]['FLD_AUTO_INCREMENT'] = 'off'; $fieldsClass[$i]['FLD_DESCRIPTION'] = ''; - switch ($aField[1]) { + switch ($fieldProperty[1]) { case 'currency': case 'percentage': - $sType = 'number'; - $fieldsClass[$i]['FLD_TYPE'] = 'FLOAT' ; + $type = 'number'; + $fieldsClass[$i]['FLD_TYPE'] = 'FLOAT'; $fieldsClass[$i]['FLD_SIZE'] = 255; break; case 'text': @@ -262,34 +276,32 @@ class ConsolidatedCases case 'radiogroup': case 'hidden': case "link": - $sType = 'char'; - $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ; + $type = 'char'; + $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR'; $fieldsClass[$i]['FLD_SIZE'] = 255; break; case 'textarea': - $sType = 'text'; - $fieldsClass[$i]['FLD_TYPE'] = 'TEXT' ; + $type = 'text'; + $fieldsClass[$i]['FLD_TYPE'] = 'TEXT'; $fieldsClass[$i]['FLD_SIZE'] = ''; break; case 'date': - $sType = 'date'; - $fieldsClass[$i]['FLD_TYPE'] = 'DATE' ; + $type = 'date'; + $fieldsClass[$i]['FLD_TYPE'] = 'DATE'; $fieldsClass[$i]['FLD_SIZE'] = ''; break; default: - $sType = 'char'; - $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR' ; + $type = 'char'; + $fieldsClass[$i]['FLD_TYPE'] = 'VARCHAR'; $fieldsClass[$i]['FLD_SIZE'] = 255; break; } - $oReportVar->create(array( - 'REP_TAB_UID' => $RepTabUid, - 'PRO_UID' => $ProUid, - 'REP_VAR_NAME' => $aField[0], - 'REP_VAR_TYPE' => $sType) - ); - $fields[] = array('sFieldName' => $aField[0], 'sType' => $sType); + if (!empty($callbackFunction) && is_callable($callbackFunction)) { + $callbackFunction($fieldProperty[0], $type); + } + + $fields[] = array('sFieldName' => $fieldProperty[0], 'sType' => $type); } return array($fieldsClass, $fields); } diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index d64660ac8..cdb770ad3 100644 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1,15 +1,14 @@ fillAppCacheView($lang); } //set status in config table - $confParams = Array('LANG' => $lang, 'STATUS' => 'active'); + $confParams = array('LANG' => $lang, 'STATUS' => 'active'); $oConf->aConfig = $confParams; $oConf->saveConfig('APP_CACHE_VIEW_ENGINE', '', '', ''); @@ -862,7 +861,7 @@ class workspaceTools p11835::isApplicable(); $systemSchema = PmSystem::getSystemSchema($this->dbAdapter); $systemSchemaRbac = PmSystem::getSystemSchemaRbac($this->dbAdapter);// get the Rbac Schema - $this->registerSystemTables(array_merge($systemSchema,$systemSchemaRbac)); + $this->registerSystemTables(array_merge($systemSchema, $systemSchemaRbac)); $this->upgradeSchema($systemSchema); $this->upgradeSchema($systemSchemaRbac, false, true, $onedb); // perform Upgrade to Rbac $this->upgradeData(); @@ -983,7 +982,7 @@ class workspaceTools $oDataBase = $this->getDatabase($rbac); if (!$onedb) { - if($rbac){ + if ($rbac) { $rename = PmSystem::verifyRbacSchema($workspaceSchema); if (count($rename) > 0) { foreach ($rename as $tableName) { @@ -1136,7 +1135,6 @@ class workspaceTools $Fields['WORKSPACE_NAME'] = $this->name; if (isset($this->dbHost)) { - $dbNetView = new NET($this->dbHost); $dbNetView->loginDbServer($this->dbUser, $this->dbPass); try { @@ -1205,7 +1203,7 @@ class workspaceTools if ($fields['DB_NAME'] == $fields['DB_RBAC_NAME']) { $info = array('Workspace Name' => $fields['WORKSPACE_NAME'], 'Workflow Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_USER'], $fields['DB_PASS'], $fields['DB_HOST'], $fields['DB_NAME']), 'MySql Version' => $fields['DATABASE']); } else { - $info = array('Workspace Name' => $fields['WORKSPACE_NAME'], + $info = array('Workspace Name' => $fields['WORKSPACE_NAME'], //'Available Databases' => $fields['AVAILABLE_DB'], 'Workflow Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_USER'], $fields['DB_PASS'], $fields['DB_HOST'], $fields['DB_NAME']), 'RBAC Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_RBAC_USER'], $fields['DB_RBAC_PASS'], $fields['DB_RBAC_HOST'], $fields['DB_RBAC_NAME']), 'Report Database' => sprintf("%s://%s:%s@%s/%s", $fields['DB_ADAPTER'], $fields['DB_REPORT_USER'], $fields['DB_REPORT_PASS'], $fields['DB_REPORT_HOST'], $fields['DB_REPORT_NAME']), 'MySql Version' => $fields['DATABASE'] ); @@ -1247,7 +1245,7 @@ class workspaceTools if ($onedb) { $databases = array("rb", "rp"); - } else if ($dbInfo['DB_NAME'] == $dbInfo['DB_RBAC_NAME']) { + } elseif ($dbInfo['DB_NAME'] == $dbInfo['DB_RBAC_NAME']) { $databases = array("wf"); } else { $databases = array("wf", "rp", "rb"); @@ -1290,9 +1288,8 @@ class workspaceTools * @param string $filename the backup filename * @param bool $compress wheter to compress or not */ - static public function createBackup($filename, $compress = true) + public static function createBackup($filename, $compress = true) { - if (!file_exists(dirname($filename))) { mkdir(dirname($filename)); } @@ -1383,7 +1380,7 @@ class workspaceTools } $users = mysql_num_rows($result); if ($users === 0) { - CLI::logging("Creating user $username for $hostname\n"); + CLI::logging("Creating user $username for $hostname\n"); $result = mysql_query("CREATE USER '$username'@'$hostname' IDENTIFIED BY '$password'"); if ($result === false) { throw new Exception("Unable to create user $username: " . mysql_error()); @@ -1436,10 +1433,10 @@ class workspaceTools if (!$flag && !is_null($flagFunction)) { //Replace TYPE by ENGINE - if( $versionBackupEngine == 1) { + if ($versionBackupEngine == 1) { $script = preg_replace($arrayRegExpEngineSearch, $arrayRegExpEngineReplace, file_get_contents($filename)); file_put_contents($filename, $script."\nCOMMIT;"); - }else{ + } else { $arrayRegExpEngineSearch = array("/\)\s*TYPE\s*=\s*(InnoDB)/i", "/\)\s*TYPE\s*=\s*(MyISAM)/i"); $arrayRegExpEngineReplace = array(") ENGINE=\\1 DEFAULT CHARSET=utf8", ") ENGINE=\\1"); $script = preg_replace($arrayRegExpEngineSearch, $arrayRegExpEngineReplace, file_get_contents($filename)); @@ -1475,7 +1472,7 @@ class workspaceTools //Replace TYPE by ENGINE $script = preg_replace($arrayRegExpEngineSearch, $arrayRegExpEngineReplace, file_get_contents($filename)); - if( $versionBackupEngine == 1) { + if ($versionBackupEngine == 1) { $script = $script."\nCOMMIT;"; } @@ -1540,14 +1537,13 @@ class workspaceTools return true; } - static public function restoreLegacy($directory) + public static function restoreLegacy($directory) { throw new Exception("Use gulliver to restore backups from old versions"); } - static public function getBackupInfo($filename) + public static function getBackupInfo($filename) { - $backup = new Archive_Tar($filename); //Get a temporary directory in the upgrade directory $tempDirectory = PATH_DATA . "upgrade/" . basename(tempnam(__FILE__, '')); @@ -1575,7 +1571,7 @@ class workspaceTools G::rm_dir($tempDirectory); } - static public function dirPerms($filename, $owner, $group, $perms) + public static function dirPerms($filename, $owner, $group, $perms) { $chown = @chown($filename, $owner); $chgrp = @chgrp($filename, $group); @@ -1611,9 +1607,8 @@ class workspaceTools * @param string $lang for define the language * @param string $port of database if is empty take 3306 */ - static public function restore($filename, $srcWorkspace, $dstWorkspace = null, $overwrite = true, $lang = 'en', $port = '') + public static function restore($filename, $srcWorkspace, $dstWorkspace = null, $overwrite = true, $lang = 'en', $port = '') { - $backup = new Archive_Tar($filename); //Get a temporary directory in the upgrade directory $tempDirectory = PATH_DATA . "upgrade/" . basename(tempnam(__FILE__, '')); @@ -1725,7 +1720,7 @@ class workspaceTools } else { CLI::logging(CLI::error("Could not get the shared folder permissions, not changing workspace permissions") . "\n"); } - list ($dbHost, $dbUser, $dbPass) = @explode(SYSTEM_HASH, G::decrypt(HASH_INSTALLATION, SYSTEM_HASH)); + list($dbHost, $dbUser, $dbPass) = @explode(SYSTEM_HASH, G::decrypt(HASH_INSTALLATION, SYSTEM_HASH)); if ($port != '') { $dbHost = $dbHost . $port; //127.0.0.1:3306 } @@ -1758,7 +1753,7 @@ class workspaceTools foreach ($metadata->databases as $db) { if ($dbName != $newDBNames[$db->name]) { $dbName = $dbUser = $newDBNames[$db->name]; - if(isset($newDBNames['DB_USER'])){ + if (isset($newDBNames['DB_USER'])) { $dbUser = $newDBNames['DB_USER']; } if (mysql_select_db($dbName, $link)) { @@ -1848,6 +1843,12 @@ class workspaceTools $stop = microtime(true); CLI::logging("<*> Migrating an populating indexing for APP_CACHE_VIEW process took " . ($stop - $start) . " seconds.\n"); + $start = microtime(true); + CLI::logging("> Updating generated class files for PM Tables...\n"); + self::fixReferencePathFiles(PATH_DATA_SITE . "classes", PATH_DATA); + $stop = microtime(true); + CLI::logging("<*> Updating generated class files for PM Tables took " . ($stop - $start) . " seconds.\n"); + mysql_close($link); } @@ -1924,7 +1925,8 @@ class workspaceTools } } - public function checkMafeRequirements ($workspace,$lang) { + public function checkMafeRequirements($workspace, $lang) + { $this->initPropel(true); $pmRestClient = OauthClientsPeer::retrieveByPK('x-pm-local-client'); if (empty($pmRestClient)) { @@ -1941,7 +1943,7 @@ class workspaceTools $envFile = PATH_CONFIG . 'env.ini'; $skin ='neoclassic'; - if (file_exists($envFile) ) { + if (file_exists($envFile)) { $sysConf = PmSystem::getSystemConfiguration($envFile); $lang = $sysConf['default_lang']; $skin = $sysConf['default_skin']; @@ -1969,9 +1971,9 @@ class workspaceTools } } - public function changeHashPassword ($workspace, $response) + public function changeHashPassword($workspace, $response) { - $this->initPropel( true ); + $this->initPropel(true); $licensedFeatures = & PMLicensedFeatures::getSingleton(); /*----------------------------------********---------------------------------*/ if ($licensedFeatures->verifyfeature('95OY24wcXpEMzIyRmlNSnF0STNFSHJzMG9wYTJKekpLNmY2ZmRCeGtuZk5oUDloaUNhUGVjTDJBPT0=')) { @@ -1983,9 +1985,9 @@ class workspaceTools return true; } - public function verifyFilesOldEnterprise ($workspace) + public function verifyFilesOldEnterprise($workspace) { - $this->initPropel( true ); + $this->initPropel(true); $pathBackup = PATH_DATA . 'backups'; if (!file_exists($pathBackup)) { G::mk_dir($pathBackup, 0777); @@ -2030,7 +2032,7 @@ class workspaceTools CLI::logging(CLI::error("Could not get shared folder permissions, workspace permissions couldn't be changed") . "\n"); } CLI::logging(" Removing $pathFileEnterprise...\n"); - copy($pathFileEnterprise , $pathNewFile. PATH_SEP . 'enterprise.php'); + copy($pathFileEnterprise, $pathNewFile. PATH_SEP . 'enterprise.php'); G::rm_dir($pathFileEnterprise); if (file_exists($pathFileEnterprise)) { CLI::logging(CLI::info(" Remove manually $pathFileEnterprise...\n")); @@ -2223,7 +2225,8 @@ class workspaceTools CLI::logging("> Completed table LIST_CANCELED\n"); } - public function regenerateListCompleted($lang = 'en'){ + public function regenerateListCompleted($lang = 'en') + { $this->initPropel(true); $query = 'INSERT INTO '.$this->dbName.'.LIST_COMPLETED (APP_UID, @@ -2285,7 +2288,8 @@ class workspaceTools CLI::logging("> Completed table LIST_COMPLETED\n"); } - public function regenerateListMyInbox(){ + public function regenerateListMyInbox() + { $this->initPropel(true); $query = 'INSERT INTO '.$this->dbName.'.LIST_MY_INBOX (APP_UID, @@ -2354,7 +2358,8 @@ class workspaceTools CLI::logging("> Completed table LIST_MY_INBOX\n"); } - public function regenerateListInbox(){ + public function regenerateListInbox() + { $this->initPropel(true); $query = 'INSERT INTO '.$this->dbName.'.LIST_INBOX (APP_UID, @@ -2411,7 +2416,8 @@ class workspaceTools CLI::logging("> Completed table LIST_INBOX\n"); } - public function regenerateListParticipatedHistory(){ + public function regenerateListParticipatedHistory() + { $this->initPropel(true); $query = 'INSERT INTO '.$this->dbName.'.LIST_PARTICIPATED_HISTORY (APP_UID, @@ -2585,7 +2591,8 @@ class workspaceTools * For the labels we use the tables user, process, task and application * @return void */ - public function regenerateListPaused(){ + public function regenerateListPaused() + { $this->initPropel(true); $query = 'INSERT INTO '.$this->dbName.'.LIST_PAUSED ( @@ -2668,7 +2675,8 @@ class workspaceTools } /*----------------------------------********---------------------------------*/ - public function regenerateListUnassigned(){ + public function regenerateListUnassigned() + { $this->initPropel(true); $truncate = 'TRUNCATE '.$this->dbName.'.LIST_UNASSIGNED'; //This executeQuery is very fast than Propel @@ -2727,12 +2735,13 @@ class workspaceTools * * return boolean value */ - public function listFirstExecution ($action, $list='all'){ + public function listFirstExecution($action, $list='all') + { $this->initPropel(true); switch ($action) { case 'insert': $conf = new Configuration(); - if($list==='all'){ + if ($list==='all') { if (!($conf->exists('MIGRATED_LIST', 'list', 'list', 'list', 'list'))) { $data["CFG_UID"] ='MIGRATED_LIST'; $data["OBJ_UID"] ='list'; @@ -2743,7 +2752,7 @@ class workspaceTools $conf->create($data); } } - if($list==='unassigned'){ + if ($list==='unassigned') { if (!($conf->exists('MIGRATED_LIST_UNASSIGNED', 'list', 'list', 'list', 'list'))) { $data["CFG_UID"] ='MIGRATED_LIST_UNASSIGNED'; $data["OBJ_UID"] ='list'; @@ -2759,19 +2768,19 @@ class workspaceTools case 'check': $criteria = new Criteria("workflow"); $criteria->addSelectColumn(ConfigurationPeer::CFG_UID); - if($list==='all'){ + if ($list==='all') { $criteria->add(ConfigurationPeer::CFG_UID, "MIGRATED_LIST", CRITERIA::EQUAL); } - if($list==='unassigned'){ + if ($list==='unassigned') { $criteria->add(ConfigurationPeer::CFG_UID, "MIGRATED_LIST_UNASSIGNED", CRITERIA::EQUAL); } $rsCriteria = AppCacheViewPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $aRows = array (); + $aRows = array(); while ($rsCriteria->next()) { $aRows[] = $rsCriteria->getRow(); } - if(empty($aRows)){ + if (empty($aRows)) { return false; //If is false continue with the migrated } else { return true; //Stop @@ -2836,7 +2845,8 @@ class workspaceTools * * return void */ - public static function registerSystemTables($aSquema){ + public static function registerSystemTables($aSquema) + { //Register all tables $sListTables = ''; foreach ($aSquema as $key => $value) { @@ -2844,16 +2854,17 @@ class workspaceTools } $sysTablesIniFile= PATH_CONFIG . 'system-tables.ini'; - $contents = file_put_contents( $sysTablesIniFile, sprintf( "%s '%s'\n", "tables = ", $sListTables ) ); + $contents = file_put_contents($sysTablesIniFile, sprintf("%s '%s'\n", "tables = ", $sListTables)); if ($contents === null) { - throw (new Exception( G::LoadTranslation('ID_FILE_NOT_WRITEABLE', SYS_LANG, array($sysTablesIniFile) ) )); + throw (new Exception(G::LoadTranslation('ID_FILE_NOT_WRITEABLE', SYS_LANG, array($sysTablesIniFile)))); } } /** *return void */ - public function checkRbacPermissions(){ + public function checkRbacPermissions() + { CLI::logging("-> Verifying roles permissions in RBAC \n"); //Update table RBAC permissions @@ -3126,7 +3137,6 @@ class workspaceTools PATH_DATA."/post-missing-inbox-".$this->name.".txt", "[".$item['APP_UID']."] has not been found" ); - } CLI::logging("> Number of missing inbox cases for workspace " . CLI::info($this->name) . ": " . CLI::info($counter) . "\n"); @@ -3273,7 +3283,7 @@ class workspaceTools public function verifyListData($type) { - switch($type) { + switch ($type) { case 'LIST_CANCELLED': $response = $this->verifyMissingCancelled(); break; @@ -3322,7 +3332,7 @@ class workspaceTools $this->initPropel(true); $conf = new Configuration(); $blackList = array(); - if($bExist = $conf->exists('MIGRATED_CONTENT', 'content')){ + if ($bExist = $conf->exists('MIGRATED_CONTENT', 'content')) { $oConfig = $conf->load('MIGRATED_CONTENT', 'content'); $blackList = $oConfig['CFG_VALUE'] == 'true' ? array('Groupwf', 'Process', 'Department', 'Task', 'InputDocument', 'Application') : unserialize($oConfig['CFG_VALUE']); } @@ -3371,14 +3381,14 @@ class workspaceTools $oTable = new $className(); $that = array($oTable, $methods['exists']); $params = array($row[$fieldUidName]); - if (isset($row['CON_PARENT']) && $row['CON_PARENT'] != ''){ + if (isset($row['CON_PARENT']) && $row['CON_PARENT'] != '') { array_push($params, $row['CON_PARENT']); $fieldName = isset($fields['alias']) && isset($fields['alias']['CON_PARENT']) ? $fields['alias']['CON_PARENT'] : 'CON_PARENT'; $row[$fieldName] = $row['CON_PARENT']; } unset($row['CON_PARENT']); - if (call_user_func_array($that, $params)){ - if (isset($methods['update'])){ + if (call_user_func_array($that, $params)) { + if (isset($methods['update'])) { $fn = $methods['update']; $fn($row); } else { @@ -3505,7 +3515,8 @@ class workspaceTools CLI::logging("|--> Clean data in table " . OauthRefreshTokensPeer::TABLE_NAME . " rows ".$refreshToken."\n"); } - public function migrateIteeToDummytask($workspaceName){ + public function migrateIteeToDummytask($workspaceName) + { $this->initPropel(true); $arraySystemConfiguration = PmSystem::getSystemConfiguration('', '', $workspaceName); $conf = new Configurations(); @@ -3528,8 +3539,8 @@ class workspaceTools //Search All process $oCriteria = new Criteria("workflow"); - $oCriteria->addSelectColumn( ProcessPeer::PRO_UID ); - $oCriteria->addSelectColumn( ProcessPeer::PRO_ITEE ); + $oCriteria->addSelectColumn(ProcessPeer::PRO_UID); + $oCriteria->addSelectColumn(ProcessPeer::PRO_ITEE); $oCriteria->add(ProcessPeer::PRO_ITEE, '0', Criteria::EQUAL); $rsCriteria = ProcessPeer::doSelectRS($oCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); @@ -3539,7 +3550,7 @@ class workspaceTools $row = $rsCriteria->getRow(); $prj_uid = $row['PRO_UID']; $bpmnProcess = new Process(); - if($bpmnProcess->isBpmnProcess($prj_uid)){ + if ($bpmnProcess->isBpmnProcess($prj_uid)) { $project = new \ProcessMaker\Project\Adapter\BpmnWorkflow(); $diagram = $project->getStruct($prj_uid); $res = $project->updateFromStruct($prj_uid, $diagram); @@ -3565,9 +3576,10 @@ class workspaceTools $conf->saveConfig('SKIN_CRON', ''); } - public function upgradeAuditLog($workspace){ + public function upgradeAuditLog($workspace) + { $conf = new Configurations(); - if (!$conf->exists('AUDIT_LOG','log')) { + if (!$conf->exists('AUDIT_LOG', 'log')) { CLI::logging("> Updating Auditlog Config \n"); $oServerConf = &serverConf::getSingleton(); $sAudit = $oServerConf->getAuditLogProperty('AL_OPTION', $workspace); @@ -3576,7 +3588,8 @@ class workspaceTools } } - public function migrateSelfServiceRecordsRun($workspace) { + public function migrateSelfServiceRecordsRun($workspace) + { // Initializing $this->initPropel(true); @@ -3594,7 +3607,7 @@ class workspaceTools $row = $rsCriteria->getRow(); $temp = @unserialize($row['GRP_UID']); if (is_array($temp)) { - foreach($temp as $groupUid) { + foreach ($temp as $groupUid) { if ($groupUid != '') { $appAssignSelfServiceValueGroup = new AppAssignSelfServiceValueGroup(); $appAssignSelfServiceValueGroup->setId($row['ID']); @@ -3622,7 +3635,8 @@ class workspaceTools CLI::logging(" Migrating Self-Service by Value Cases Done \n"); } - public function migratePopulateIndexingACV($workspace) { + public function migratePopulateIndexingACV($workspace) + { // Migrating and populating new indexes CLI::logging("-> Migrating an populating indexing for avoiding the use of table APP_CACHE_VIEW Start \n"); @@ -3749,7 +3763,7 @@ class workspaceTools CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* \n"); $con->begin(); $stmt = $con->createStatement(); - foreach(workspaceTools::$populateIdsQueries as $query) { + foreach (workspaceTools::$populateIdsQueries as $query) { $stmt->executeQuery($query); } $con->commit(); @@ -3758,14 +3772,14 @@ class workspaceTools } /** - * It populates the WEB_ENTRY table for the classic processes, this procedure - * is done to verify the execution of php files generated when the WebEntry + * It populates the WEB_ENTRY table for the classic processes, this procedure + * is done to verify the execution of php files generated when the WebEntry * is configured. * @param type $workSpace */ public function updatingWebEntryClassicModel($workSpace, $force = false) { - //We obtain from the configuration the list of proUids obtained so that + //We obtain from the configuration the list of proUids obtained so that //we do not go through again. $cfgUid = 'UPDATING_ROWS_WEB_ENTRY'; $objUid = 'blackList'; @@ -3777,7 +3791,7 @@ class workspaceTools $blackList = unserialize($oConfig['CFG_VALUE']); } - //The following query returns all the classic processes that do not have + //The following query returns all the classic processes that do not have //a record in the WEB_ENTRY table. $oCriteria = new Criteria("workflow"); $oCriteria->addSelectColumn(ProcessPeer::PRO_UID); @@ -3818,7 +3832,7 @@ class workspaceTools $row1 = $stepRs->getRow(); $content = file_get_contents($path . "/" . $fileName); if (strpos($content, $proUid . "/" . $row1["STEP_UID_OBJ"]) !== false) { - //The default user admin is set. This task is + //The default user admin is set. This task is //carried out by the system administrator. $userUid = "00000000000000000000000000000001"; //save data in table WEB_ENTRY @@ -3840,7 +3854,7 @@ class workspaceTools } } - //The list of proUids obtained is saved in the configuration so that it + //The list of proUids obtained is saved in the configuration so that it //does not go through again. $data = [ "CFG_UID" => $cfgUid, @@ -3867,4 +3881,24 @@ class workspaceTools $this->initPropel(true); $this->upgradeTriggersOfTables($flagRecreate, $lang); } + + /** + * This method finds all recursively PHP files that have the path PATH_DATA, + * poorly referenced, this is caused by the import of processes where the data + * directory of ProcessMaker has different routes. Modified files are backed + * up with the extension '.backup' in the same directory. + * + * @return void + */ + public function fixReferencePathFiles($pathClasses, $pathData) + { + try { + $this->initPropel(true); + $fixReferencePath = new FixReferencePath(); + $fixReferencePath->runProcess($pathClasses, $pathData); + CLI::logging($fixReferencePath->getResumeDebug()); + } catch (Exception $e) { + CLI::logging(CLI::error("Error:" . "Error updating generated class files for PM Tables, proceed to regenerate manually: " . $e)); + } + } } diff --git a/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php new file mode 100644 index 000000000..5182e3c47 --- /dev/null +++ b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php @@ -0,0 +1,172 @@ +modeDebug; + } + + /** + * Set property modeDebug. + * + * @param boolean $modeDebug + */ + public function setModeDebug($modeDebug) + { + $this->modeDebug = $modeDebug; + } + + /** + * Get property resumeDebug. + * + * @return string + */ + public function getResumeDebug() + { + return $this->resumeDebug; + } + + /** + * Set property resumeDebug. + * + * @param string $resumeDebug + */ + public function setResumeDebug($resumeDebug) + { + $this->resumeDebug = $resumeDebug; + } + + /** + * Find all PHP type files recursively. + * The '$pathData' argument is the path to be replaced with the path found + * as incorrect. + * + * @param string $directory + * @param string $pathData + * @return void + */ + public function runProcess($directory, $pathData) + { + try { + //This variable is not defined and does not involve its value in this + //task, it is removed at the end of the method. + $_SERVER["REQUEST_URI"] = ""; + if (!defined("SYS_SKIN")) { + $conf = new \Configurations(); + define("SYS_SKIN", $conf->getConfiguration('SKIN_CRON', '')); + } + + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\ReportTablePeer::REP_TAB_UID); + $criteria->addSelectColumn(\CaseConsolidatedCorePeer::TAS_UID); + $criteria->addSelectColumn(\ReportTablePeer::REP_TAB_NAME); + $criteria->addJoin(\ReportTablePeer::REP_TAB_UID, \CaseConsolidatedCorePeer::REP_TAB_UID, \Criteria::JOIN); + $criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE", \Criteria::EQUAL); + $doSelect = \ReportTablePeer::doSelectRS($criteria); + $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($doSelect->next()) { + $row = $doSelect->getRow(); + $fields = $this->getReportTableFields($row["REP_TAB_UID"]); + $this->regeneratePropelClasses($row["REP_TAB_NAME"], $fields, $row["TAS_UID"]); + $this->outVerboseln("* Regenerate classes for table: " . $row["REP_TAB_NAME"]); + } + + unset($_SERVER["REQUEST_URI"]); + } catch (Exception $e) { + CLI::logging(CLI::error("Error:" . "Error in updating consolidated files, proceed to regenerate manually: " . $e)); + } + } + + /** + * Gets the fields of the 'Report Table'. + * + * @param string $repTabUid + * @return array + */ + public function getReportTableFields($repTabUid) + { + $fields = array(); + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\ReportVarPeer::REP_VAR_NAME); + $criteria->addSelectColumn(\ReportVarPeer::REP_VAR_TYPE); + $criteria->add(\ReportVarPeer::REP_TAB_UID, $repTabUid, \Criteria::EQUAL); + $doSelect = \ReportVarPeer::doSelectRS($criteria); + $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($doSelect->next()) { + $row = $doSelect->getRow(); + $fields[] = $row['REP_VAR_NAME'] . '-' . $row['REP_VAR_TYPE']; + } + return $fields; + } + + /** + * Regenerate 'Propel' classes for 'Report Tables'. The name of the 'Report Table', + * the fields and the related task are required. + * + * @param string $repTabName + * @param array $fields + * @param string $guid + * @return void + */ + public function regeneratePropelClasses($repTabName, $fields, $guid) + { + $consolidatedCases = new \ConsolidatedCases(); + list($outFieldsClass, $outFields) = $consolidatedCases->buildReportVariables($fields); + + $className = $repTabName; + $sourcePath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; + + @unlink($sourcePath . $className . '.php'); + @unlink($sourcePath . $className . 'Peer.php'); + @unlink($sourcePath . PATH_SEP . 'map' . PATH_SEP . $className . 'MapBuilder.php'); + @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . '.php'); + @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . 'Peer.php'); + + $additionalTables = new \AdditionalTables(); + $additionalTables->createPropelClasses($repTabName, $className, $outFieldsClass, $guid); + } + + /** + * Display the output found, the message is not displayed if the value of the + * 'modeVerbose' property is false. + * + * @param string $message + * @return void + */ + private function outVerbose($message) + { + $this->resumeDebug = $this->resumeDebug . $message; + if ($this->modeDebug === true) { + echo $message; + } + } + + /** + * Shows on the screen the output found with line break. + * + * @param string $message + * @return void + */ + private function outVerboseln($message) + { + $this->outVerbose($message . "\n"); + } +} + diff --git a/workflow/engine/templates/cases/casesDocuments.js b/workflow/engine/templates/cases/casesDocuments.js index 6d846cbdb..4ddd2c5c2 100644 --- a/workflow/engine/templates/cases/casesDocuments.js +++ b/workflow/engine/templates/cases/casesDocuments.js @@ -2130,3 +2130,47 @@ Ext.onReady(function() { } }); + +var te = new Ext.tree.TreeEditor( + treepanelmain, + new Ext.form.TextField({ + allowBlank: false, + blankText: 'A text is required'//, +// validator: function (value) { +// console.log('validator'); +// }, +// listeners: { +// change: function (f, neval, olval) { +// console.log('change'); +// //f.setValue(Ext.util.Format.htmlEncode(neval)); +// }, +// valid: function (f, neval, olval) { +// console.log('valid'); +// } +// }, +// renderer:myrender + }), { +// editDelay: 100, +// revertInvalid: false, + listeners:{ + complete:function(){ + console.log("okokoko111"); + }, + destroy:function(){ + console.log("my removido124314234"); + } + }, + renderer:myrender +}); + +var myrender = function(value){ + return "
"+value+"5345345345
"; +}; + +Ext.override(Ext.form.field.Base, { + setValue: function(val) { + console.log("holal"); + val = Ext.util.Format.htmlDecode(val); + return this.callParent([val]); + } +}); \ No newline at end of file From 0708f640cd1af5d8699536506599db9e8c496223 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 9 Aug 2017 14:59:22 -0400 Subject: [PATCH 2/6] HOR-3509 add description in functions --- .../engine/classes/class.consolidatedCases.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/workflow/engine/classes/class.consolidatedCases.php b/workflow/engine/classes/class.consolidatedCases.php index 537501531..c0c261b4d 100644 --- a/workflow/engine/classes/class.consolidatedCases.php +++ b/workflow/engine/classes/class.consolidatedCases.php @@ -213,6 +213,15 @@ class ConsolidatedCases return $oReportTable->getRepTabUid(); } + /** + * Create a record to 'ReportVar', this function uses the fields generated by + * the function 'buildReportVariables'. + * + * @param string $repTabUid + * @param string $proUid + * @param array $formFields + * @return array + */ public function createReportVariables($repTabUid, $proUid, $formFields) { list($fieldsClass, $fields) = $this->buildReportVariables($formFields, function ($repVarName, $repVarType) use ($repTabUid, $proUid) { @@ -228,6 +237,14 @@ class ConsolidatedCases return array($fieldsClass, $fields); } + /** + * Generates the fields for 'Report Tables', the second parameter is a 'callback' + * that receives as arguments the name and type of the field. + * + * @param array $formFields + * @param function $callbackFunction + * @return array + */ public function buildReportVariables($formFields, $callbackFunction = null) { $fieldsClass = array(); From a10969c47b60b2590641e63724f8769e565c8c75 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 10 Aug 2017 11:21:01 -0400 Subject: [PATCH 3/6] HOR-3509 Unnecessary file change, reverted --- .../engine/templates/cases/casesDocuments.js | 44 ------------------- 1 file changed, 44 deletions(-) diff --git a/workflow/engine/templates/cases/casesDocuments.js b/workflow/engine/templates/cases/casesDocuments.js index 4ddd2c5c2..6d846cbdb 100644 --- a/workflow/engine/templates/cases/casesDocuments.js +++ b/workflow/engine/templates/cases/casesDocuments.js @@ -2130,47 +2130,3 @@ Ext.onReady(function() { } }); - -var te = new Ext.tree.TreeEditor( - treepanelmain, - new Ext.form.TextField({ - allowBlank: false, - blankText: 'A text is required'//, -// validator: function (value) { -// console.log('validator'); -// }, -// listeners: { -// change: function (f, neval, olval) { -// console.log('change'); -// //f.setValue(Ext.util.Format.htmlEncode(neval)); -// }, -// valid: function (f, neval, olval) { -// console.log('valid'); -// } -// }, -// renderer:myrender - }), { -// editDelay: 100, -// revertInvalid: false, - listeners:{ - complete:function(){ - console.log("okokoko111"); - }, - destroy:function(){ - console.log("my removido124314234"); - } - }, - renderer:myrender -}); - -var myrender = function(value){ - return "
"+value+"5345345345
"; -}; - -Ext.override(Ext.form.field.Base, { - setValue: function(val) { - console.log("holal"); - val = Ext.util.Format.htmlDecode(val); - return this.callParent([val]); - } -}); \ No newline at end of file From 304d989846f0c2a234dc2541e474535d9300329c Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 10 Aug 2017 15:25:44 -0400 Subject: [PATCH 4/6] HOR-3509 Regenerate classes for Additional Tables --- workflow/engine/classes/PmTable.php | 11 +++ .../ProcessMaker/Util/FixReferencePath.php | 74 ++++++++++++++++--- 2 files changed, 76 insertions(+), 9 deletions(-) diff --git a/workflow/engine/classes/PmTable.php b/workflow/engine/classes/PmTable.php index cfc5a9522..ac7d60d87 100644 --- a/workflow/engine/classes/PmTable.php +++ b/workflow/engine/classes/PmTable.php @@ -113,6 +113,17 @@ class PmTable } } + /** + * + * + * @param string $adapter + * @return void + */ + public function setDbConfigAdapter($adapter) + { + $this->dbConfig->adapter = $adapter; + } + /** * Backward compatibility function * Resolve a propel data source diff --git a/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php index 5182e3c47..5101cbfcc 100644 --- a/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php +++ b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php @@ -81,16 +81,47 @@ class FixReferencePath $doSelect = \ReportTablePeer::doSelectRS($criteria); $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $consolidatedCases = new \ConsolidatedCases(); while ($doSelect->next()) { $row = $doSelect->getRow(); $fields = $this->getReportTableFields($row["REP_TAB_UID"]); - $this->regeneratePropelClasses($row["REP_TAB_NAME"], $fields, $row["TAS_UID"]); - $this->outVerboseln("* Regenerate classes for table: " . $row["REP_TAB_NAME"]); + list($fields, $outFields) = $consolidatedCases->buildReportVariables($fields); + try { + $this->regeneratePropelClasses($row["REP_TAB_NAME"], $row["REP_TAB_NAME"], $fields, $row["TAS_UID"]); + $this->outVerboseln("* Regenerate classes for table: " . $row["REP_TAB_NAME"]); + } catch (Exception $e) { + CLI::logging(CLI::error("Error:" . "Error in regenerate classes for table: " . $row["REP_TAB_NAME"] . ". " . $e)); + } + } + + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_UID); + $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_NAME); + $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_CLASS_NAME); + $criteria->addSelectColumn(\AdditionalTablesPeer::DBS_UID); + $doSelect = \AdditionalTablesPeer::doSelectRS($criteria); + $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($doSelect->next()) { + $row = $doSelect->getRow(); + $fields = $this->getAdditionalTablesFields($row["ADD_TAB_UID"]); + try { + $pmTable = new \PmTable($row["ADD_TAB_NAME"]); + $pmTable->setDbConfigAdapter("mysql"); + $pmTable->setColumns($fields); + $pmTable->prepare(); + $pmTable->preparePropelIniFile(); + $pmTable->buildSchema(); + $pmTable->phingbuildModel(); + $this->outVerboseln("* Regenerate classes for table: " . $row["ADD_TAB_NAME"]); + } catch (Exception $e) { + CLI::logging(CLI::error("Error:" . "Error in regenerate classes for table: " . $row["ADD_TAB_NAME"] . ". " . $e)); + } } unset($_SERVER["REQUEST_URI"]); } catch (Exception $e) { - CLI::logging(CLI::error("Error:" . "Error in updating consolidated files, proceed to regenerate manually: " . $e)); + CLI::logging(CLI::error("Error:" . "Error in regenerate classes files, proceed to regenerate manually: " . $e)); } } @@ -116,6 +147,35 @@ class FixReferencePath return $fields; } + /** + * Gets the fields of the 'Additional Table'. + * + * @param string $addTabUid + * @return object + */ + public function getAdditionalTablesFields($addTabUid) + { + $fields = array(); + $criteria = new \Criteria("workflow"); + $criteria->add(\FieldsPeer::ADD_TAB_UID, $addTabUid); + $doSelect = \FieldsPeer::doSelectRS($criteria); + $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($doSelect->next()) { + $row = $doSelect->getRow(); + $object = new \stdClass(); + $object->field_index = $row["FLD_INDEX"]; + $object->field_name = $row["FLD_NAME"]; + $object->field_description = $row["FLD_DESCRIPTION"]; + $object->field_type = $row["FLD_TYPE"]; + $object->field_size = $row["FLD_SIZE"]; + $object->field_null = $row["FLD_NULL"]; + $object->field_autoincrement = $row["FLD_AUTO_INCREMENT"]; + $object->field_key = $row["FLD_KEY"]; + $fields[] = $object; + } + return $fields; + } + /** * Regenerate 'Propel' classes for 'Report Tables'. The name of the 'Report Table', * the fields and the related task are required. @@ -125,12 +185,8 @@ class FixReferencePath * @param string $guid * @return void */ - public function regeneratePropelClasses($repTabName, $fields, $guid) + public function regeneratePropelClasses($repTabName, $className, $fields, $guid) { - $consolidatedCases = new \ConsolidatedCases(); - list($outFieldsClass, $outFields) = $consolidatedCases->buildReportVariables($fields); - - $className = $repTabName; $sourcePath = PATH_DB . SYS_SYS . PATH_SEP . 'classes' . PATH_SEP; @unlink($sourcePath . $className . '.php'); @@ -140,7 +196,7 @@ class FixReferencePath @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . 'Peer.php'); $additionalTables = new \AdditionalTables(); - $additionalTables->createPropelClasses($repTabName, $className, $outFieldsClass, $guid); + $additionalTables->createPropelClasses($repTabName, $className, $fields, $guid); } /** From 0be55e8a39987fb5756d045eab8aa55caec62363 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 10 Aug 2017 18:04:47 -0400 Subject: [PATCH 5/6] HOR-3509 observations for use statement --- .../ProcessMaker/Util/FixReferencePath.php | 73 +++++++++++-------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php index 5101cbfcc..94a2f8d3a 100644 --- a/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php +++ b/workflow/engine/src/ProcessMaker/Util/FixReferencePath.php @@ -2,6 +2,19 @@ namespace ProcessMaker\Util; +use Configurations; +use Criteria; +use ResultSet; +use FieldsPeer; +use ReportTablePeer; +use CaseConsolidatedCorePeer; +use ConsolidatedCases; +use AdditionalTablesPeer; +use PmTable; +use ReportVarPeer; +use AdditionalTables; +use stdClass; + /** * This class regenerates the 'Propel' classes that are necessary for the * administration of a 'Report Table', this is caused by the import of processes @@ -68,20 +81,20 @@ class FixReferencePath //task, it is removed at the end of the method. $_SERVER["REQUEST_URI"] = ""; if (!defined("SYS_SKIN")) { - $conf = new \Configurations(); + $conf = new Configurations(); define("SYS_SKIN", $conf->getConfiguration('SKIN_CRON', '')); } - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\ReportTablePeer::REP_TAB_UID); - $criteria->addSelectColumn(\CaseConsolidatedCorePeer::TAS_UID); - $criteria->addSelectColumn(\ReportTablePeer::REP_TAB_NAME); - $criteria->addJoin(\ReportTablePeer::REP_TAB_UID, \CaseConsolidatedCorePeer::REP_TAB_UID, \Criteria::JOIN); - $criteria->add(\CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE", \Criteria::EQUAL); - $doSelect = \ReportTablePeer::doSelectRS($criteria); - $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(ReportTablePeer::REP_TAB_UID); + $criteria->addSelectColumn(CaseConsolidatedCorePeer::TAS_UID); + $criteria->addSelectColumn(ReportTablePeer::REP_TAB_NAME); + $criteria->addJoin(ReportTablePeer::REP_TAB_UID, CaseConsolidatedCorePeer::REP_TAB_UID, Criteria::JOIN); + $criteria->add(CaseConsolidatedCorePeer::CON_STATUS, "ACTIVE", Criteria::EQUAL); + $doSelect = ReportTablePeer::doSelectRS($criteria); + $doSelect->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $consolidatedCases = new \ConsolidatedCases(); + $consolidatedCases = new ConsolidatedCases(); while ($doSelect->next()) { $row = $doSelect->getRow(); $fields = $this->getReportTableFields($row["REP_TAB_UID"]); @@ -94,19 +107,19 @@ class FixReferencePath } } - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_UID); - $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_NAME); - $criteria->addSelectColumn(\AdditionalTablesPeer::ADD_TAB_CLASS_NAME); - $criteria->addSelectColumn(\AdditionalTablesPeer::DBS_UID); - $doSelect = \AdditionalTablesPeer::doSelectRS($criteria); - $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID); + $criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME); + $criteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_CLASS_NAME); + $criteria->addSelectColumn(AdditionalTablesPeer::DBS_UID); + $doSelect = AdditionalTablesPeer::doSelectRS($criteria); + $doSelect->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($doSelect->next()) { $row = $doSelect->getRow(); $fields = $this->getAdditionalTablesFields($row["ADD_TAB_UID"]); try { - $pmTable = new \PmTable($row["ADD_TAB_NAME"]); + $pmTable = new PmTable($row["ADD_TAB_NAME"]); $pmTable->setDbConfigAdapter("mysql"); $pmTable->setColumns($fields); $pmTable->prepare(); @@ -134,12 +147,12 @@ class FixReferencePath public function getReportTableFields($repTabUid) { $fields = array(); - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\ReportVarPeer::REP_VAR_NAME); - $criteria->addSelectColumn(\ReportVarPeer::REP_VAR_TYPE); - $criteria->add(\ReportVarPeer::REP_TAB_UID, $repTabUid, \Criteria::EQUAL); - $doSelect = \ReportVarPeer::doSelectRS($criteria); - $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(ReportVarPeer::REP_VAR_NAME); + $criteria->addSelectColumn(ReportVarPeer::REP_VAR_TYPE); + $criteria->add(ReportVarPeer::REP_TAB_UID, $repTabUid, Criteria::EQUAL); + $doSelect = ReportVarPeer::doSelectRS($criteria); + $doSelect->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($doSelect->next()) { $row = $doSelect->getRow(); $fields[] = $row['REP_VAR_NAME'] . '-' . $row['REP_VAR_TYPE']; @@ -156,13 +169,13 @@ class FixReferencePath public function getAdditionalTablesFields($addTabUid) { $fields = array(); - $criteria = new \Criteria("workflow"); - $criteria->add(\FieldsPeer::ADD_TAB_UID, $addTabUid); - $doSelect = \FieldsPeer::doSelectRS($criteria); - $doSelect->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria("workflow"); + $criteria->add(FieldsPeer::ADD_TAB_UID, $addTabUid); + $doSelect = FieldsPeer::doSelectRS($criteria); + $doSelect->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($doSelect->next()) { $row = $doSelect->getRow(); - $object = new \stdClass(); + $object = new stdClass(); $object->field_index = $row["FLD_INDEX"]; $object->field_name = $row["FLD_NAME"]; $object->field_description = $row["FLD_DESCRIPTION"]; @@ -195,7 +208,7 @@ class FixReferencePath @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . '.php'); @unlink($sourcePath . PATH_SEP . 'om' . PATH_SEP . 'Base' . $className . 'Peer.php'); - $additionalTables = new \AdditionalTables(); + $additionalTables = new AdditionalTables(); $additionalTables->createPropelClasses($repTabName, $className, $fields, $guid); } From 54a93071e08c2617b67e283cf467442a4935fbf4 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 10 Aug 2017 18:27:23 -0400 Subject: [PATCH 6/6] HOR-3509 observations for documentation --- workflow/engine/classes/class.wsTools.php | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index cdb770ad3..20ad3dde7 100644 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -8,7 +8,6 @@ use ProcessMaker\Util\FixReferencePath; * Utility functions to manage a workspace. * * @package workflow.engine.classes - * @author Alexandre Rosenfeld */ class workspaceTools {