Issue 122 - Remove App Cache View
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
* @see workflow/engine/bin/sendnotificationscron.php
|
||||
* @see workflow/engine/bin/webentriescron.php
|
||||
* @see workflow/engine/methods/setup/cron.php
|
||||
*
|
||||
*
|
||||
* @link https://wiki.processmaker.com/3.2/Executing_cron.php
|
||||
*/
|
||||
|
||||
@@ -291,7 +291,7 @@ try {
|
||||
|
||||
//Processing
|
||||
eprintln('Processing workspace: ' . $workspace, 'green');
|
||||
|
||||
|
||||
/**
|
||||
* JobsManager
|
||||
*/
|
||||
@@ -485,10 +485,6 @@ function executeUpdateAppTitle()
|
||||
$taskUid = $row["OBJ_UID"];
|
||||
$lang = $row["CFG_VALUE"];
|
||||
|
||||
//Update case labels
|
||||
$appcv = new AppCacheView();
|
||||
$appcv->appTitleByTaskCaseLabelUpdate($taskUid, $lang, 1);
|
||||
|
||||
//Delete record
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
use ProcessMaker\BusinessModel\WebEntry;
|
||||
use ProcessMaker\Core\JobsManager;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use ProcessMaker\Model\Process;
|
||||
use ProcessMaker\Validation\MySQL57;
|
||||
|
||||
@@ -58,24 +57,6 @@ CLI::taskOpt("lang", "Specify the language which will be used to rebuild the cas
|
||||
CLI::taskOpt("port", "Specify the port number used by MySQL. If not specified, then the port 3306 will be used by default.", "p:");
|
||||
CLI::taskRun("run_workspace_restore");
|
||||
|
||||
CLI::taskName('cacheview-repair');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Create and populate the APP_CACHE_VIEW table
|
||||
|
||||
Specify the workspaces whose cases cache should be repaired. If no workspace
|
||||
is specified, then the cases will be repaired on all available workspaces.
|
||||
|
||||
In order to improve the performance, ProcessMaker includes a cache of cases
|
||||
in the table APP_CACHE_VIEW. This table must be in sync with the database
|
||||
to present the correct information in the cases inbox. This command will
|
||||
create the table and populate it with the right information. This only needs
|
||||
to be used after upgrading ProcessMaker or if the cases inbox is out of sync.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskOpt("lang", "Specify the language to rebuild the case cache list. If not specified, then 'en' (English) will be used by default.\n Ex: -lfr (French) Ex: --lang=zh-CN (Mainland Chinese)", "l:", "lang=");
|
||||
CLI::taskRun("run_cacheview_upgrade");
|
||||
|
||||
CLI::taskName('database-upgrade');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Upgrade or repair the database schema to match the latest version
|
||||
@@ -137,61 +118,6 @@ EOT
|
||||
CLI::taskOpt("workspace", "Select the workspace whose case folders will be migrated, if multiple workspaces are present in the server.\n Ex: -wworkflow. Ex: --workspace=workflow", "w:", "workspace=");
|
||||
CLI::taskRun("runStructureDirectories");
|
||||
|
||||
CLI::taskName('database-verify-consistency');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Verify that the database data is consistent so any database-upgrade operation will be executed flawlessly.
|
||||
|
||||
Specify the workspaces whose database schema should be verified. If none are specified, then
|
||||
all available workspaces will be specified.
|
||||
|
||||
This command will read the system schema and data in an attempt to verify the database
|
||||
integrity. Use this command to check the database data consistency before any costly
|
||||
database-upgrade operation is planned to be executed.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_database_verify_consistency");
|
||||
|
||||
CLI::taskName('database-verify-migration-consistency');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Verify that the already migrated data is consistent there was not
|
||||
data loss of any kind
|
||||
|
||||
Specify the workspaces whose database schema should be verified.
|
||||
The workspace parameter is mandatory.
|
||||
|
||||
This command will read the Cancelled, Completed, Inbox, My Inbox, participated
|
||||
unassigned data in an attempt to verify the database integrity. It's recommended
|
||||
to run this script after the migrate cases job has been executed.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_database_verify_migration_consistency");
|
||||
|
||||
CLI::taskName('migrate-itee-to-dummytask');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Migrate the Intermediate throw Email Event to Dummy task
|
||||
|
||||
Specify the workspaces, the processes in this workspace will be updated.
|
||||
|
||||
If no workspace is specified, the command will be run in all workspaces.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_migrate_itee_to_dummytask");
|
||||
|
||||
CLI::taskName("check-workspace-disabled-code");
|
||||
CLI::taskDescription(<<<EOT
|
||||
Check disabled code for the specified workspace(s).
|
||||
|
||||
This command checks the disabled code in the specified workspace(s).
|
||||
|
||||
If no workspace is specified, the command will be run in all workspaces.
|
||||
More than one workspace can be specified.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg("workspace-name", true, true);
|
||||
CLI::taskRun("run_check_workspace_disabled_code");
|
||||
|
||||
CLI::taskName('migrate-new-cases-lists');
|
||||
CLI::taskDescription(<<<EOT
|
||||
@@ -206,31 +132,6 @@ EOT
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_migrate_new_cases_lists");
|
||||
|
||||
CLI::taskName('migrate-list-unassigned');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Migrating the AppCacheView table to match the latest version of List Unassigned
|
||||
|
||||
Specify the WORKSPACE to migrate from a existing workspace.
|
||||
|
||||
If no workspace is specified, then the tables schema will be upgraded or
|
||||
migrate on all available workspaces.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_migrate_list_unassigned");
|
||||
|
||||
CLI::taskName('migrate-indexing-acv');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Migrate and populate the indexes for the new relation fields to avoid the use of APP_CACHE_VIEW table
|
||||
|
||||
Specify the workspace, the self-service cases in this workspace will be updated.
|
||||
|
||||
If no workspace is specified, the command will be running in all workspaces.
|
||||
EOT
|
||||
);
|
||||
CLI::taskArg('workspace', true, true);
|
||||
CLI::taskRun("run_migrate_indexing_acv");
|
||||
|
||||
CLI::taskName('migrate-content');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Migrating the content schema to match the latest version
|
||||
@@ -302,9 +203,9 @@ CLI::taskName('regenerate-pmtable-classes');
|
||||
CLI::taskDescription(<<<EOT
|
||||
Regenerate the class with incorrect reference
|
||||
|
||||
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
|
||||
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.
|
||||
EOT
|
||||
);
|
||||
@@ -378,7 +279,7 @@ CLI::taskDescription(<<<EOT
|
||||
Example:
|
||||
./processmaker artisan queue:work --workspace=workflow
|
||||
|
||||
To see other command options please refer to the artisan help.
|
||||
To see other command options please refer to the artisan help.
|
||||
php artisan --help
|
||||
EOT
|
||||
);
|
||||
@@ -397,7 +298,7 @@ Can be "TrueType" or "TrueTypeUnicode", if the option is not specified the defau
|
||||
EOT
|
||||
,'t', 'type=');
|
||||
CLI::taskOpt('tinymce', <<<EOT
|
||||
Can be "true" or "false", if the option is not specified the default value is "true". If the value is "false" the optional arguments [FRIENDLYNAME] [FONTPROPERTIES] are omitted.
|
||||
Can be "true" or "false", if the option is not specified the default value is "true". If the value is "false" the optional arguments [FRIENDLYNAME] [FONTPROPERTIES] are omitted.
|
||||
EOT
|
||||
,'tm', 'tinymce=');
|
||||
CLI::taskArg('fontFileName', false);
|
||||
@@ -473,7 +374,7 @@ CLI::taskRun('convert_out_docs_from_html2pdf_to_tcpdf');
|
||||
|
||||
/**
|
||||
* Function run_info
|
||||
*
|
||||
*
|
||||
* @param array $args
|
||||
* @param array $opts
|
||||
*/
|
||||
@@ -603,23 +504,6 @@ function translation_upgrade($args, $opts)
|
||||
}
|
||||
}
|
||||
|
||||
function run_cacheview_upgrade($args, $opts)
|
||||
{
|
||||
$filter = new InputFilter();
|
||||
$opts = $filter->xssFilterHard($opts);
|
||||
$args = $filter->xssFilterHard($args);
|
||||
$workspaces = get_workspaces_from_args($args);
|
||||
$lang = array_key_exists("lang", $opts) ? $opts['lang'] : 'en';
|
||||
foreach ($workspaces as $workspace) {
|
||||
try {
|
||||
G::outRes("Upgrading cache view for " . pakeColor::colorize($workspace->name, "INFO") . "\n");
|
||||
$workspace->upgradeCacheView(true, false, $lang);
|
||||
} catch (Exception $e) {
|
||||
G::outRes("Errors upgrading cache view of workspace " . CLI::info($workspace->name) . ": " . CLI::error($e->getMessage()) . "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function run_plugins_database_upgrade($args, $opts)
|
||||
{
|
||||
$workspaces = get_workspaces_from_args($args);
|
||||
@@ -928,7 +812,7 @@ function run_workspace_restore($args, $opts)
|
||||
|
||||
/**
|
||||
* Migrating cases folders of the workspaces
|
||||
*
|
||||
*
|
||||
* @param array $command
|
||||
* @param array $args
|
||||
*/
|
||||
@@ -955,38 +839,11 @@ function runStructureDirectories($command, $args)
|
||||
}
|
||||
}
|
||||
|
||||
function run_database_verify_consistency($args, $opts)
|
||||
{
|
||||
verifyAppCacheConsistency($args);
|
||||
}
|
||||
|
||||
function run_database_verify_migration_consistency($args, $opts)
|
||||
{
|
||||
verifyMigratedDataConsistency($args);
|
||||
}
|
||||
|
||||
function verifyAppCacheConsistency($args)
|
||||
{
|
||||
$workspaces = get_workspaces_from_args($args);
|
||||
foreach ($workspaces as $workspace) {
|
||||
verifyWorkspaceConsistency($workspace);
|
||||
}
|
||||
}
|
||||
|
||||
function verifyWorkspaceConsistency($workspace)
|
||||
{
|
||||
$isConsistent = true;
|
||||
print_r("Verifying data in workspace " . pakeColor::colorize($workspace->name, "INFO") . "\n");
|
||||
$inconsistentUsers = $workspace->hasMissingUsers();
|
||||
$inconsistentTasks = $workspace->hasMissingTasks();
|
||||
$inconsistentProcesses = $workspace->hasMissingProcesses();
|
||||
$inconsistentDelegations = $workspace->hasMissingAppDelegations();
|
||||
|
||||
if ($inconsistentUsers || $inconsistentTasks || $inconsistentProcesses || $inconsistentDelegations) {
|
||||
$isConsistent = false;
|
||||
}
|
||||
return $isConsistent;
|
||||
}
|
||||
|
||||
function verifyMigratedDataConsistency($args)
|
||||
{
|
||||
@@ -1290,7 +1147,7 @@ function regenerate_pmtable_classes($args, $opts)
|
||||
|
||||
/**
|
||||
* This method migrates data from APP_HISTORY table to APP_DATA_CHANGE_LOG table.
|
||||
*
|
||||
*
|
||||
* @param array $args
|
||||
* @param string $opts
|
||||
*/
|
||||
@@ -1458,8 +1315,8 @@ function check_queries_incompatibilities($wsName)
|
||||
}
|
||||
|
||||
/**
|
||||
* This function obtains the connection parameters and passes them to the artisan.
|
||||
* All artisan options can be applied. For more information on artisan options use
|
||||
* This function obtains the connection parameters and passes them to the artisan.
|
||||
* All artisan options can be applied. For more information on artisan options use
|
||||
* php artisan --help
|
||||
* @param array $args
|
||||
*/
|
||||
@@ -1706,7 +1563,7 @@ function convert_old_web_entries($args)
|
||||
|
||||
/**
|
||||
* Populate the new column APPLICATION.APP_TITLE into the APP_DELEGATION table
|
||||
*
|
||||
*
|
||||
* @param array $args
|
||||
*/
|
||||
function migrate_case_title_to_threads($args)
|
||||
|
||||
@@ -239,623 +239,6 @@ class Applications
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for get all cases
|
||||
*
|
||||
* @deprecated Class deprecated in Release 3.6.x
|
||||
*/
|
||||
public function getAll(
|
||||
$userUid,
|
||||
$start = null,
|
||||
$limit = null,
|
||||
$action = null,
|
||||
$filter = null,
|
||||
$search = null,
|
||||
$process = null,
|
||||
$status = null,
|
||||
$type = null,
|
||||
$dateFrom = null,
|
||||
$dateTo = null,
|
||||
$callback = null,
|
||||
$dir = null,
|
||||
$sort = "APP_CACHE_VIEW.APP_NUMBER",
|
||||
$category = null,
|
||||
$configuration = true,
|
||||
$paged = true,
|
||||
$newerThan = '',
|
||||
$oldestThan = ''
|
||||
) {
|
||||
$callback = isset($callback)? $callback : "stcCallback1001";
|
||||
$dir = isset($dir)? $dir : "DESC";
|
||||
|
||||
if (isset($sort)) {
|
||||
$parser = new PHPSQLParser($sort);
|
||||
$sort = $parser->parsed;
|
||||
$sort = $sort[''][0];
|
||||
}
|
||||
|
||||
$sort = isset($sort)? $sort : "";
|
||||
$start = isset($start)? $start : "0";
|
||||
$limit = isset($limit)? $limit : "25";
|
||||
$filter = isset($filter)? $filter : "";
|
||||
$search = isset($search)? $search : "";
|
||||
$process = isset($process)? $process : "";
|
||||
$category = isset($category)? $category : "";
|
||||
$status = isset($status)? $status : "";
|
||||
$action = isset($action)? $action : "todo";
|
||||
$type = isset($type)? $type : "extjs";
|
||||
$dateFrom = isset($dateFrom)? $dateFrom : "";
|
||||
$dateTo = isset($dateTo)? $dateTo : "";
|
||||
|
||||
$oAppCache = new AppCacheView();
|
||||
|
||||
if ($configuration == true) {
|
||||
//get data configuration
|
||||
$conf = new Configurations();
|
||||
$confCasesList = $conf->getConfiguration("casesList", ($action == "search" || $action == "simple_search")? "search" : $action);
|
||||
$oAppCache->confCasesList = $confCasesList;
|
||||
}
|
||||
|
||||
$delimiter = DBAdapter::getStringDelimiter();
|
||||
|
||||
// get the action based list
|
||||
switch ($action) {
|
||||
case "draft":
|
||||
$Criteria = $oAppCache->getDraftListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getDraftCountCriteria($userUid);
|
||||
break;
|
||||
case "sent":
|
||||
$Criteria = $oAppCache->getSentListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getSentCountCriteria($userUid);
|
||||
|
||||
if (!empty($status)) {
|
||||
$Criteria->add(AppCacheViewPeer::APP_STATUS, $status);
|
||||
$CriteriaCount->add(AppCacheViewPeer::APP_STATUS, $status);
|
||||
}
|
||||
break;
|
||||
case "selfservice":
|
||||
case "unassigned":
|
||||
//$userUid can't be empty or null
|
||||
$Criteria = $oAppCache->getUnassignedListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getUnassignedCountCriteria($userUid);
|
||||
break;
|
||||
case "paused":
|
||||
$Criteria = $oAppCache->getPausedListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getPausedCountCriteria($userUid);
|
||||
break;
|
||||
case "completed":
|
||||
$Criteria = $oAppCache->getCompletedListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid);
|
||||
break;
|
||||
case "cancelled":
|
||||
$Criteria = $oAppCache->getCancelledListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid);
|
||||
break;
|
||||
case "search":
|
||||
//$Criteria = $oAppCache->getSearchListCriteria();
|
||||
//$CriteriaCount = $oAppCache->getSearchCountCriteria();
|
||||
|
||||
switch ($status) {
|
||||
case "TO_DO":
|
||||
$Criteria = $oAppCache->getToDoListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getToDoCountCriteria($userUid);
|
||||
break;
|
||||
case "DRAFT":
|
||||
$Criteria = $oAppCache->getDraftListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getDraftCountCriteria($userUid);
|
||||
break;
|
||||
case "PAUSED":
|
||||
$Criteria = $oAppCache->getPausedListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getPausedCountCriteria($userUid);
|
||||
break;
|
||||
case "CANCELLED":
|
||||
$Criteria = $oAppCache->getCancelledListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getCancelledCountCriteria($userUid);
|
||||
break;
|
||||
case "COMPLETED":
|
||||
$Criteria = $oAppCache->getCompletedListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getCompletedCountCriteria($userUid);
|
||||
|
||||
$Criteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1");
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_LAST_INDEX, "1");
|
||||
break;
|
||||
default:
|
||||
//All status
|
||||
$Criteria = $oAppCache->getAllCasesListCriteria2($userUid);
|
||||
$CriteriaCount = $oAppCache->getAllCasesCountCriteria2($userUid);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "simple_search":
|
||||
$Criteria = $oAppCache->getSimpleSearchListCriteria();
|
||||
$CriteriaCount = $oAppCache->getSimpleSearchCountCriteria();
|
||||
break;
|
||||
case "to_revise":
|
||||
$Criteria = $oAppCache->getToReviseListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getToReviseCountCriteria($userUid);
|
||||
break;
|
||||
case "to_reassign":
|
||||
global $RBAC;
|
||||
if ($RBAC->userCanAccess('PM_REASSIGNCASE') == 1) {
|
||||
$Criteria = $oAppCache->getToReassignListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getToReassignCountCriteria($userUid);
|
||||
} else {
|
||||
$Criteria = $oAppCache->getToReassignSupervisorListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getToReassignSupervisorCountCriteria($userUid);
|
||||
}
|
||||
break;
|
||||
case "all":
|
||||
$Criteria = $oAppCache->getAllCasesListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getAllCasesCountCriteria($userUid);
|
||||
break;
|
||||
case "gral":
|
||||
//General criteria probably will be deprecated
|
||||
$Criteria = $oAppCache->getGeneralListCriteria();
|
||||
$CriteriaCount = $oAppCache->getGeneralCountCriteria();
|
||||
break;
|
||||
case "todo":
|
||||
$Criteria = $oAppCache->getToDoListCriteria($userUid);
|
||||
$CriteriaCount = $oAppCache->getToDoCountCriteria($userUid);
|
||||
break;
|
||||
default:
|
||||
//All status
|
||||
$Criteria = $oAppCache->getAllCasesListCriteria2($userUid);
|
||||
$CriteriaCount = $oAppCache->getAllCasesCountCriteria2($userUid);
|
||||
break;
|
||||
}
|
||||
|
||||
$arrayTaskTypeToExclude = array("WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT");
|
||||
|
||||
$Criteria->addSelectColumn(AppCacheViewPeer::TAS_UID);
|
||||
$Criteria->addSelectColumn(AppCacheViewPeer::PRO_UID);
|
||||
|
||||
$Criteria->addJoin(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$Criteria->add(TaskPeer::TAS_TYPE, $arrayTaskTypeToExclude, Criteria::NOT_IN);
|
||||
|
||||
$CriteriaCount->addJoin(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->add(TaskPeer::TAS_TYPE, $arrayTaskTypeToExclude, Criteria::NOT_IN);
|
||||
|
||||
$Criteria->addAlias('CU', 'USERS');
|
||||
$Criteria->addJoin(AppCacheViewPeer::USR_UID, 'CU.USR_UID', Criteria::LEFT_JOIN);
|
||||
$Criteria->addAsColumn('USR_UID', 'CU.USR_UID');
|
||||
$Criteria->addAsColumn('USR_FIRSTNAME', 'CU.USR_FIRSTNAME');
|
||||
$Criteria->addAsColumn('USR_LASTNAME', 'CU.USR_LASTNAME');
|
||||
$Criteria->addAsColumn('USR_USERNAME', 'CU.USR_USERNAME');
|
||||
|
||||
$CriteriaCount->addAlias('CU', 'USERS');
|
||||
$CriteriaCount->addJoin(AppCacheViewPeer::USR_UID, 'CU.USR_UID', Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->addAsColumn('USR_UID', 'CU.USR_UID');
|
||||
$CriteriaCount->addAsColumn('USR_FIRSTNAME', 'CU.USR_FIRSTNAME');
|
||||
$CriteriaCount->addAsColumn('USR_LASTNAME', 'CU.USR_LASTNAME');
|
||||
$CriteriaCount->addAsColumn('USR_USERNAME', 'CU.USR_USERNAME');
|
||||
|
||||
//Current delegation
|
||||
$appdelcrTableName = AppCacheViewPeer::TABLE_NAME;
|
||||
$appdelcrAppTasTitle = "APPDELCR.APP_TAS_TITLE";
|
||||
$appdelcrAppTasTitleCount = $appdelcrAppTasTitle;
|
||||
|
||||
switch ($action) {
|
||||
case "sent":
|
||||
$appdelcrTableName = AppDelegationPeer::TABLE_NAME;
|
||||
$appdelcrAppTasTitle = "(SELECT CON_VALUE FROM CONTENT WHERE CON_ID = APPDELCR.TAS_UID AND CON_LANG = " . $delimiter . SYS_LANG . $delimiter . " AND CON_CATEGORY = " . $delimiter . "TAS_TITLE" . $delimiter . ")";
|
||||
$appdelcrAppTasTitleCount = "APPDELCR.TAS_UID";
|
||||
break;
|
||||
case "to_reassign":
|
||||
$appdelcrAppTasTitle = "APP_CACHE_VIEW.APP_TAS_TITLE";
|
||||
$appdelcrAppTasTitleCount = $appdelcrAppTasTitle;
|
||||
break;
|
||||
}
|
||||
|
||||
$Criteria->addAsColumn("APPDELCR_APP_TAS_TITLE", $appdelcrAppTasTitle);
|
||||
$CriteriaCount->addAsColumn("APPDELCR_APP_TAS_TITLE", $appdelcrAppTasTitleCount);
|
||||
|
||||
$Criteria->addAsColumn("USRCR_USR_UID", "USRCR.USR_UID");
|
||||
$Criteria->addAsColumn("USRCR_USR_FIRSTNAME", "USRCR.USR_FIRSTNAME");
|
||||
$Criteria->addAsColumn("USRCR_USR_LASTNAME", "USRCR.USR_LASTNAME");
|
||||
$Criteria->addAsColumn("USRCR_USR_USERNAME", "USRCR.USR_USERNAME");
|
||||
|
||||
$CriteriaCount->addAsColumn("USRCR_USR_UID", "USRCR.USR_UID");
|
||||
$CriteriaCount->addAsColumn("USRCR_USR_FIRSTNAME", "USRCR.USR_FIRSTNAME");
|
||||
$CriteriaCount->addAsColumn("USRCR_USR_LASTNAME", "USRCR.USR_LASTNAME");
|
||||
$CriteriaCount->addAsColumn("USRCR_USR_USERNAME", "USRCR.USR_USERNAME");
|
||||
|
||||
$Criteria->addAlias("APPDELCR", $appdelcrTableName);
|
||||
$Criteria->addAlias("USRCR", UsersPeer::TABLE_NAME);
|
||||
|
||||
$CriteriaCount->addAlias("APPDELCR", $appdelcrTableName);
|
||||
$CriteriaCount->addAlias("USRCR", UsersPeer::TABLE_NAME);
|
||||
|
||||
$arrayCondition = [];
|
||||
$arrayCondition[] = array(AppCacheViewPeer::APP_UID, "APPDELCR.APP_UID");
|
||||
$arrayCondition[] = array("APPDELCR.DEL_LAST_INDEX", 1);
|
||||
$Criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
$arrayCondition = [];
|
||||
$arrayCondition[] = array("APPDELCR.USR_UID", "USRCR.USR_UID");
|
||||
$Criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
|
||||
|
||||
//Previous user
|
||||
|
||||
if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "paused" || $action == "to_revise" || $action == "sent") || ($status == "TO_DO" || $status == "DRAFT" || $status == "PAUSED" || $status == "CANCELLED" || $status == "COMPLETED")) {
|
||||
$Criteria->addAlias('PU', 'USERS');
|
||||
$Criteria->addJoin(AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN);
|
||||
$Criteria->addAsColumn('PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME');
|
||||
$Criteria->addAsColumn('PREVIOUS_USR_LASTNAME', 'PU.USR_LASTNAME');
|
||||
$Criteria->addAsColumn('PREVIOUS_USR_USERNAME', 'PU.USR_USERNAME');
|
||||
|
||||
$CriteriaCount->addAlias('PU', 'USERS');
|
||||
$CriteriaCount->addJoin(AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->addAsColumn('PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME');
|
||||
$CriteriaCount->addAsColumn('PREVIOUS_USR_LASTNAME', 'PU.USR_LASTNAME');
|
||||
$CriteriaCount->addAsColumn('PREVIOUS_USR_USERNAME', 'PU.USR_USERNAME');
|
||||
}
|
||||
|
||||
/*
|
||||
if (! is_array( $confCasesList )) {
|
||||
$rows = $this->getDefaultFields( $action );
|
||||
$result = $this->genericJsonResponse( '', array (), $rows, 20, '' );
|
||||
//$conf->saveObject($result,'casesList',$action,'','','');
|
||||
}
|
||||
*/
|
||||
|
||||
//Add the process filter
|
||||
if (!empty($process)) {
|
||||
$Criteria->add(AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::PRO_UID, $process, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
//Add the category filter
|
||||
if (!empty($category)) {
|
||||
require_once 'classes/model/Process.php';
|
||||
$Criteria->addAlias("CP", "PROCESS");
|
||||
$Criteria->add("CP.PRO_CATEGORY", $category, Criteria::EQUAL);
|
||||
$Criteria->addJoin(AppCacheViewPeer::PRO_UID, "CP.PRO_UID", Criteria::LEFT_JOIN);
|
||||
$Criteria->addAsColumn("CATEGORY_UID", "CP.PRO_CATEGORY");
|
||||
|
||||
$CriteriaCount->addAlias("CP", "PROCESS");
|
||||
$CriteriaCount->add("CP.PRO_CATEGORY", $category, Criteria::EQUAL);
|
||||
$CriteriaCount->addJoin(AppCacheViewPeer::PRO_UID, "CP.PRO_UID", Criteria::LEFT_JOIN);
|
||||
$CriteriaCount->addAsColumn("CATEGORY_UID", "CP.PRO_CATEGORY");
|
||||
}
|
||||
|
||||
// add the user filter
|
||||
/*
|
||||
if ($user != '') {
|
||||
$Criteria->add( AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
|
||||
$CriteriaCount->add( AppCacheViewPeer::USR_UID, $user, Criteria::EQUAL );
|
||||
}
|
||||
if ($status != '') {
|
||||
$Criteria->add( AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
|
||||
$CriteriaCount->add( AppCacheViewPeer::APP_STATUS, $status, Criteria::EQUAL );
|
||||
}
|
||||
*/
|
||||
|
||||
if ($dateFrom != "") {
|
||||
if ($dateTo != "") {
|
||||
if ($dateFrom == $dateTo) {
|
||||
$dateSame = $dateFrom;
|
||||
$dateFrom = $dateSame . " 00:00:00";
|
||||
$dateTo = $dateSame . " 23:59:59";
|
||||
} else {
|
||||
$dateFrom = $dateFrom . " 00:00:00";
|
||||
$dateTo = $dateTo . " 23:59:59";
|
||||
}
|
||||
|
||||
$Criteria->add($Criteria->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL)->addAnd($Criteria->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL)));
|
||||
$CriteriaCount->add($CriteriaCount->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL)->addAnd($CriteriaCount->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL)));
|
||||
} else {
|
||||
$dateFrom = $dateFrom . " 00:00:00";
|
||||
|
||||
$Criteria->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateFrom, Criteria::GREATER_EQUAL);
|
||||
}
|
||||
} elseif ($dateTo != "") {
|
||||
$dateTo = $dateTo . " 23:59:59";
|
||||
|
||||
$Criteria->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $dateTo, Criteria::LESS_EQUAL);
|
||||
}
|
||||
|
||||
if ($newerThan != '') {
|
||||
if ($oldestThan != '') {
|
||||
$Criteria->add(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $newerThan, Criteria::GREATER_THAN)->addAnd(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $oldestThan, Criteria::LESS_THAN)
|
||||
)
|
||||
);
|
||||
$CriteriaCount->add(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $newerThan, Criteria::GREATER_THAN)->addAnd(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::DEL_DELEGATE_DATE, $oldestThan, Criteria::LESS_THAN)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$Criteria->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $newerThan, Criteria::GREATER_THAN);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $newerThan, Criteria::GREATER_THAN);
|
||||
}
|
||||
} else {
|
||||
if ($oldestThan != '') {
|
||||
$Criteria->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $oldestThan, Criteria::LESS_THAN);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_DELEGATE_DATE, $oldestThan, Criteria::LESS_THAN);
|
||||
}
|
||||
}
|
||||
|
||||
//add the filter
|
||||
if ($filter != '') {
|
||||
switch ($filter) {
|
||||
case 'read':
|
||||
$Criteria->add(AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNOTNULL);
|
||||
break;
|
||||
case 'unread':
|
||||
$Criteria->add(AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_INIT_DATE, null, Criteria::ISNULL);
|
||||
break;
|
||||
case 'started':
|
||||
$Criteria->add(AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::DEL_INDEX, 1, Criteria::EQUAL);
|
||||
break;
|
||||
case 'completed':
|
||||
$Criteria->add(AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
|
||||
$CriteriaCount->add(AppCacheViewPeer::APP_STATUS, 'COMPLETED', Criteria::EQUAL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Add the search filter
|
||||
if ($search != '') {
|
||||
$oTmpCriteria = '';
|
||||
|
||||
//If there is PMTable for this case list
|
||||
if (is_array($oAppCache->confCasesList) && count($oAppCache->confCasesList) > 0 && isset($oAppCache->confCasesList["PMTable"]) && trim($oAppCache->confCasesList["PMTable"]) != "") {
|
||||
//Default configuration fields array
|
||||
$defaultFields = $oAppCache->getDefaultFields();
|
||||
|
||||
//Getting the table name
|
||||
$additionalTableUid = $oAppCache->confCasesList["PMTable"];
|
||||
|
||||
$additionalTable = AdditionalTablesPeer::retrieveByPK($additionalTableUid);
|
||||
$tableName = $additionalTable->getAddTabName();
|
||||
|
||||
$additionalTable = new AdditionalTables();
|
||||
$tableData = $additionalTable->load($additionalTableUid, true);
|
||||
|
||||
$tableField = [];
|
||||
|
||||
foreach ($tableData["FIELDS"] as $arrayField) {
|
||||
$tableField[] = $arrayField["FLD_NAME"];
|
||||
}
|
||||
|
||||
$oNewCriteria = new Criteria("workflow");
|
||||
$sw = 0;
|
||||
|
||||
foreach ($oAppCache->confCasesList["second"]["data"] as $fieldData) {
|
||||
if (!in_array($fieldData["name"], $defaultFields)) {
|
||||
if (in_array($fieldData["name"], $tableField)) {
|
||||
$fieldName = $tableName . "." . $fieldData["name"];
|
||||
|
||||
if ($sw == 0) {
|
||||
$oTmpCriteria = $oNewCriteria->getNewCriterion($fieldName, "%" . $search . "%", Criteria::LIKE);
|
||||
} else {
|
||||
$oTmpCriteria = $oNewCriteria->getNewCriterion($fieldName, "%" . $search . "%", Criteria::LIKE)->addOr($oTmpCriteria);
|
||||
}
|
||||
|
||||
$sw = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//add the default and hidden DEL_INIT_DATE
|
||||
}
|
||||
|
||||
// the criteria adds new fields if there are defined PM Table Fields in the cases list
|
||||
if ($oTmpCriteria != '') {
|
||||
$Criteria->add(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $search, Criteria::EQUAL)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_NUMBER, $search, Criteria::EQUAL)->addOr(
|
||||
$oTmpCriteria
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$Criteria->add(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_UID, $search, Criteria::EQUAL)->addOr(
|
||||
$Criteria->getNewCriterion(AppCacheViewPeer::APP_NUMBER, $search, Criteria::EQUAL)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// the count query needs to be the normal criteria query if there are defined PM Table Fields in the cases list
|
||||
if ($oTmpCriteria != '') {
|
||||
$CriteriaCount = $Criteria;
|
||||
} else {
|
||||
$CriteriaCount->add(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::APP_UID, $search, Criteria::EQUAL)->addOr(
|
||||
$CriteriaCount->getNewCriterion(AppCacheViewPeer::APP_NUMBER, $search, Criteria::EQUAL)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// this is the optimal way or query to render the cases search list
|
||||
// fixing the bug related to the wrong data displayed in the list
|
||||
|
||||
//here we count how many records exists for this criteria.
|
||||
//BUT there are some special cases, and if we dont optimize them the server will crash.
|
||||
$doCountAlreadyExecuted = $paged;
|
||||
//case 1. when the SEARCH action is selected and none filter, search criteria is defined,
|
||||
//we need to count using the table APPLICATION, because APP_CACHE_VIEW takes 3 seconds
|
||||
|
||||
$tableNameAux = '';
|
||||
$totalCount = 0;
|
||||
if ($doCountAlreadyExecuted == true) {
|
||||
// in the case of reassign the distinct attribute shows a diferent count result comparing to the
|
||||
// original list
|
||||
//Check also $distinct in the method getListCounters(), this in AppCacheView.php
|
||||
$distinct = true;
|
||||
|
||||
if ($action != "sent" && (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "to_reassign" || $action == "to_revise") || ($status == "TO_DO"))) {
|
||||
$distinct = false;
|
||||
}
|
||||
|
||||
// first check if there is a PMTable defined within the list,
|
||||
// the issue that brokes the normal criteria query seems to be fixed
|
||||
if (isset($oAppCache->confCasesList['PMTable']) && ! empty($oAppCache->confCasesList['PMTable'])) {
|
||||
// then
|
||||
$oAdditionalTables = AdditionalTablesPeer::retrieveByPK($oAppCache->confCasesList['PMTable']);
|
||||
$tableName = $oAdditionalTables->getAddTabName();
|
||||
$tableNameAux = $tableName;
|
||||
$tableName = strtolower($tableName);
|
||||
$tableNameArray = explode('_', $tableName);
|
||||
foreach ($tableNameArray as $item) {
|
||||
$newTableName[] = ucfirst($item);
|
||||
}
|
||||
$tableName = implode('', $newTableName);
|
||||
// so the pm table class can be invoqued from the pm table model clases
|
||||
if (! class_exists( $tableName )) {
|
||||
require_once (PATH_DB . config("system.workspace") . PATH_SEP . "classes" . PATH_SEP . $tableName . ".php");
|
||||
}
|
||||
}
|
||||
$totalCount = AppCacheViewPeer::doCount($CriteriaCount, $distinct);
|
||||
}
|
||||
|
||||
//Add sortable options
|
||||
$sortBk = $sort;
|
||||
|
||||
if ($sortBk != "") {
|
||||
$sort = "";
|
||||
|
||||
//Current delegation (*)
|
||||
if ($action == 'sent' || $action == 'simple_search' || $action == 'to_reassign') {
|
||||
switch ($sortBk) {
|
||||
case "APP_CACHE_VIEW.APP_CURRENT_USER":
|
||||
$sort = "USRCR_" . $conf->userNameFormatGetFirstFieldByUsersTable();
|
||||
break;
|
||||
case "APP_CACHE_VIEW.APP_TAS_TITLE":
|
||||
$sort = "APPDELCR_APP_TAS_TITLE";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($oAppCache->confCasesList['PMTable']) && ! empty($oAppCache->confCasesList['PMTable']) && $tableNameAux != '') {
|
||||
$sortTable = explode(".", $sortBk);
|
||||
|
||||
$additionalTableUid = $oAppCache->confCasesList["PMTable"];
|
||||
|
||||
require_once 'classes/model/Fields.php';
|
||||
$oCriteria = new Criteria('workflow');
|
||||
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_UID);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_INDEX);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_NAME);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_DESCRIPTION);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_TYPE);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_SIZE);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_NULL);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_AUTO_INCREMENT);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_KEY);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY_TABLE);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_NAME);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_UID);
|
||||
$oCriteria->addSelectColumn(FieldsPeer::FLD_FILTER);
|
||||
$oCriteria->add(FieldsPeer::ADD_TAB_UID, $additionalTableUid);
|
||||
$oCriteria->add(FieldsPeer::FLD_NAME, $sortTable[1]);
|
||||
$oCriteria->addAscendingOrderByColumn(FieldsPeer::FLD_INDEX);
|
||||
|
||||
$oDataset = FieldsPeer::doSelectRS($oCriteria);
|
||||
|
||||
if ($oDataset->next()) {
|
||||
$sort = $tableNameAux . "." . $sortTable[1];
|
||||
}
|
||||
}
|
||||
|
||||
$arraySelectColumn = $Criteria->getSelectColumns();
|
||||
|
||||
if (!in_array($sort, $arraySelectColumn)) {
|
||||
$sort = $sortBk;
|
||||
|
||||
if (!in_array($sort, $arraySelectColumn)) {
|
||||
$sort = AppCacheViewPeer::APP_NUMBER; //DEFAULT VALUE
|
||||
}
|
||||
}
|
||||
|
||||
if ($dir == "DESC") {
|
||||
$Criteria->addDescendingOrderByColumn($sort);
|
||||
} else {
|
||||
$Criteria->addAscendingOrderByColumn($sort);
|
||||
}
|
||||
}
|
||||
|
||||
//limit the results according the interface
|
||||
$Criteria->setLimit($limit);
|
||||
$Criteria->setOffset($start);
|
||||
|
||||
//execute the query
|
||||
$oDataset = AppCacheViewPeer::doSelectRS($Criteria, Propel::getDbConnection('workflow_ro'));
|
||||
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = [];
|
||||
$result['totalCount'] = $totalCount;
|
||||
$rows = [];
|
||||
$aPriorities = array('1' => 'VL','2' => 'L','3' => 'N','4' => 'H','5' => 'VH');
|
||||
$index = $start;
|
||||
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
|
||||
//Current delegation (*)
|
||||
if ($action == 'sent' || $action == 'simple_search' || $action == 'to_reassign') {
|
||||
//Current task
|
||||
$aRow["APP_TAS_TITLE"] = $aRow["APPDELCR_APP_TAS_TITLE"];
|
||||
|
||||
//Current user
|
||||
//if ($action != "to_reassign" ) {
|
||||
if (($action != "to_reassign") && ($action != "search") && ($action != "to revise")) {
|
||||
$aRow["USR_UID"] = $aRow["USRCR_USR_UID"];
|
||||
$aRow["USR_FIRSTNAME"] = $aRow["USRCR_USR_FIRSTNAME"];
|
||||
$aRow["USR_LASTNAME"] = $aRow["USRCR_USR_LASTNAME"];
|
||||
$aRow["USR_USERNAME"] = $aRow["USRCR_USR_USERNAME"];
|
||||
}
|
||||
}
|
||||
|
||||
//Unassigned user
|
||||
if (! isset($aRow['APP_CURRENT_USER'])) {
|
||||
$aRow['APP_CURRENT_USER'] = "[" . strtoupper(G::LoadTranslation("ID_UNASSIGNED")) . "]";
|
||||
}
|
||||
|
||||
// replacing the status data with their respective translation
|
||||
if (isset($aRow['APP_STATUS'])) {
|
||||
$aRow['APP_STATUS_LABEL'] = G::LoadTranslation("ID_{$aRow['APP_STATUS']}");
|
||||
}
|
||||
|
||||
// replacing the priority data with their respective translation
|
||||
if (isset($aRow['DEL_PRIORITY'])) {
|
||||
$aRow['DEL_PRIORITY'] = G::LoadTranslation("ID_PRIORITY_{$aPriorities[$aRow['DEL_PRIORITY']]}");
|
||||
}
|
||||
|
||||
$rows[] = $aRow;
|
||||
}
|
||||
|
||||
$result['data'] = $rows;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
//TODO: Encapsulates these and another default generation functions inside a class
|
||||
/**
|
||||
* generate all the default fields
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,16 +0,0 @@
|
||||
<?php
|
||||
|
||||
// include base peer class
|
||||
require_once 'classes/model/om/BaseAppCacheViewPeer.php';
|
||||
|
||||
// include object class
|
||||
include_once 'classes/model/AppCacheView.php';
|
||||
|
||||
/**
|
||||
* AppCacheViewPeer.php
|
||||
* @deprecated Class deprecated in Release 3.6.x
|
||||
*/
|
||||
class AppCacheViewPeer extends BaseAppCacheViewPeer
|
||||
{
|
||||
}
|
||||
|
||||
@@ -522,7 +522,6 @@ class Task extends BaseTask
|
||||
|
||||
public function update($fields)
|
||||
{
|
||||
require_once ("classes/model/AppCacheView.php");
|
||||
require_once ("classes/model/Configuration.php");
|
||||
|
||||
$con = Propel::getConnection(TaskPeer::DATABASE_NAME);
|
||||
@@ -532,7 +531,7 @@ class Task extends BaseTask
|
||||
$oldValues = $this->load($fields["TAS_UID"]);
|
||||
$this->fromArray($fields, BasePeer::TYPE_FIELDNAME);
|
||||
$this->validateAssignType($fields,$oldValues);
|
||||
|
||||
|
||||
if ($this->validate()) {
|
||||
$taskDefTitlePrevious = $oldValues["TAS_DEF_TITLE"];
|
||||
|
||||
@@ -574,59 +573,6 @@ class Task extends BaseTask
|
||||
$result = ($result == 0)? (($contentResult > 0)? 1 : 0) : $result;
|
||||
$con->commit();
|
||||
|
||||
/* commented, because the AppCacheView was deprecated
|
||||
if ($result == 1 &&
|
||||
array_key_exists("TAS_DEF_TITLE", $fields) &&
|
||||
$fields["TAS_DEF_TITLE"] != $taskDefTitlePrevious
|
||||
) {
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addAsColumn("APPCV_NUM_ROWS", "COUNT(DISTINCT " . AppCacheViewPeer::APP_UID . ")");
|
||||
$criteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN");
|
||||
$criteria->add(AppCacheViewPeer::TAS_UID, $fields["TAS_UID"]);
|
||||
|
||||
$rsCriteria = AppCacheViewPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$rsCriteria->next();
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$appcvNumRows = intval($row["APPCV_NUM_ROWS"]);
|
||||
|
||||
if ($appcvNumRows <= 1000) {
|
||||
$appcv = new AppCacheView();
|
||||
$appcv->appTitleByTaskCaseLabelUpdate($fields["TAS_UID"], SYS_LANG);
|
||||
|
||||
$result = 2;
|
||||
} else {
|
||||
//Delete record
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->add(ConfigurationPeer::CFG_UID, "TAS_APP_TITLE_UPDATE");
|
||||
$criteria->add(ConfigurationPeer::OBJ_UID, $fields["TAS_UID"]);
|
||||
$criteria->add(ConfigurationPeer::CFG_VALUE, SYS_LANG);
|
||||
|
||||
$numRowDeleted = ConfigurationPeer::doDelete($criteria);
|
||||
|
||||
//Insert record
|
||||
$conf = new Configuration();
|
||||
|
||||
$conf->create(
|
||||
array(
|
||||
"CFG_UID" => "TAS_APP_TITLE_UPDATE",
|
||||
"OBJ_UID" => $fields["TAS_UID"],
|
||||
"CFG_VALUE" => SYS_LANG,
|
||||
"PRO_UID" => "",
|
||||
"USR_UID" => "",
|
||||
"APP_UID" => ""
|
||||
)
|
||||
);
|
||||
|
||||
$result = 3;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
return $result;
|
||||
} else {
|
||||
$con->rollback();
|
||||
@@ -807,7 +753,7 @@ class Task extends BaseTask
|
||||
|
||||
return $event_uid;
|
||||
}
|
||||
|
||||
|
||||
public function validateAssignType($newValues,$oldValues)
|
||||
{
|
||||
if(isset($newValues['TAS_ASSIGN_TYPE']) && isset($oldValues['TAS_ASSIGN_TYPE'])) {
|
||||
@@ -819,14 +765,14 @@ class Task extends BaseTask
|
||||
if($oldAssigType == 'SELF_SERVICE'){
|
||||
$oldAssigType = isset($oldValues['TAS_GROUP_VARIABLE'])?(empty($oldValues['TAS_GROUP_VARIABLE'])?'SELF_SERVICE':'SELF_SERVICE_VALUE_BASED'):'SELF_SERVICE';
|
||||
}
|
||||
if(($oldAssigType == 'SELF_SERVICE' && $newAssigType != 'SELF_SERVICE') || ($oldAssigType == 'SELF_SERVICE_VALUE_BASED' && $newAssigType != 'SELF_SERVICE_VALUE_BASED')) {
|
||||
if(($oldAssigType == 'SELF_SERVICE' && $newAssigType != 'SELF_SERVICE') || ($oldAssigType == 'SELF_SERVICE_VALUE_BASED' && $newAssigType != 'SELF_SERVICE_VALUE_BASED')) {
|
||||
$oCriteria = new Criteria();
|
||||
$oCriteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN");
|
||||
$oCriteria->add(AppDelegationPeer::TAS_UID, $newValues['TAS_UID']);
|
||||
$oCriteria->add(AppDelegationPeer::USR_UID, "");
|
||||
$oApplication = AppDelegationPeer::doSelectOne($oCriteria);
|
||||
if(!empty($oApplication)) {
|
||||
throw (new Exception(G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES')));
|
||||
throw (new Exception(G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES')));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -891,5 +837,3 @@ class Task extends BaseTask
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once 'propel/map/MapBuilder.php';
|
||||
include_once 'creole/CreoleTypes.php';
|
||||
|
||||
|
||||
/**
|
||||
* This class adds structure of 'APP_CACHE_VIEW' table to 'workflow' DatabaseMap object.
|
||||
*
|
||||
*
|
||||
*
|
||||
* These statically-built map classes are used by Propel to do runtime db structure discovery.
|
||||
* For example, the createSelectSql() method checks the type of a given column used in an
|
||||
* ORDER BY clause to know whether it needs to apply SQL to make the ORDER BY case-insensitive
|
||||
* (i.e. if it's a text column type).
|
||||
*
|
||||
* @package workflow.classes.model.map
|
||||
*/
|
||||
class AppCacheViewMapBuilder
|
||||
{
|
||||
|
||||
/**
|
||||
* The (dot-path) name of this class
|
||||
*/
|
||||
const CLASS_NAME = 'classes.model.map.AppCacheViewMapBuilder';
|
||||
|
||||
/**
|
||||
* The database map.
|
||||
*/
|
||||
private $dbMap;
|
||||
|
||||
/**
|
||||
* Tells us if this DatabaseMapBuilder is built so that we
|
||||
* don't have to re-build it every time.
|
||||
*
|
||||
* @return boolean true if this DatabaseMapBuilder is built, false otherwise.
|
||||
*/
|
||||
public function isBuilt()
|
||||
{
|
||||
return ($this->dbMap !== null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the databasemap this map builder built.
|
||||
*
|
||||
* @return the databasemap
|
||||
*/
|
||||
public function getDatabaseMap()
|
||||
{
|
||||
return $this->dbMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* The doBuild() method builds the DatabaseMap
|
||||
*
|
||||
* @return void
|
||||
* @throws PropelException
|
||||
*/
|
||||
public function doBuild()
|
||||
{
|
||||
$this->dbMap = Propel::getDatabaseMap('workflow');
|
||||
|
||||
$tMap = $this->dbMap->addTable('APP_CACHE_VIEW');
|
||||
$tMap->setPhpName('AppCacheView');
|
||||
|
||||
$tMap->setUseIdGenerator(false);
|
||||
|
||||
$tMap->addPrimaryKey('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addPrimaryKey('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
|
||||
|
||||
$tMap->addColumn('DEL_LAST_INDEX', 'DelLastIndex', 'int', CreoleTypes::INTEGER, true, null);
|
||||
|
||||
$tMap->addColumn('APP_NUMBER', 'AppNumber', 'int', CreoleTypes::INTEGER, true, null);
|
||||
|
||||
$tMap->addColumn('APP_STATUS', 'AppStatus', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('USR_UID', 'UsrUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('PREVIOUS_USR_UID', 'PreviousUsrUid', 'string', CreoleTypes::VARCHAR, false, 32);
|
||||
|
||||
$tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('PRO_UID', 'ProUid', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('DEL_DELEGATE_DATE', 'DelDelegateDate', 'int', CreoleTypes::TIMESTAMP, true, null);
|
||||
|
||||
$tMap->addColumn('DEL_INIT_DATE', 'DelInitDate', 'int', CreoleTypes::TIMESTAMP, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_FINISH_DATE', 'DelFinishDate', 'int', CreoleTypes::TIMESTAMP, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_TASK_DUE_DATE', 'DelTaskDueDate', 'int', CreoleTypes::TIMESTAMP, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_RISK_DATE', 'DelRiskDate', 'int', CreoleTypes::TIMESTAMP, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_THREAD_STATUS', 'DelThreadStatus', 'string', CreoleTypes::VARCHAR, false, 32);
|
||||
|
||||
$tMap->addColumn('APP_THREAD_STATUS', 'AppThreadStatus', 'string', CreoleTypes::VARCHAR, false, 32);
|
||||
|
||||
$tMap->addColumn('APP_TITLE', 'AppTitle', 'string', CreoleTypes::VARCHAR, true, 255);
|
||||
|
||||
$tMap->addColumn('APP_PRO_TITLE', 'AppProTitle', 'string', CreoleTypes::VARCHAR, true, 255);
|
||||
|
||||
$tMap->addColumn('APP_TAS_TITLE', 'AppTasTitle', 'string', CreoleTypes::VARCHAR, true, 255);
|
||||
|
||||
$tMap->addColumn('APP_CURRENT_USER', 'AppCurrentUser', 'string', CreoleTypes::VARCHAR, false, 128);
|
||||
|
||||
$tMap->addColumn('APP_DEL_PREVIOUS_USER', 'AppDelPreviousUser', 'string', CreoleTypes::VARCHAR, false, 128);
|
||||
|
||||
$tMap->addColumn('DEL_PRIORITY', 'DelPriority', 'string', CreoleTypes::VARCHAR, true, 32);
|
||||
|
||||
$tMap->addColumn('DEL_DURATION', 'DelDuration', 'double', CreoleTypes::DOUBLE, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_QUEUE_DURATION', 'DelQueueDuration', 'double', CreoleTypes::DOUBLE, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_DELAY_DURATION', 'DelDelayDuration', 'double', CreoleTypes::DOUBLE, false, null);
|
||||
|
||||
$tMap->addColumn('DEL_STARTED', 'DelStarted', 'int', CreoleTypes::TINYINT, true, null);
|
||||
|
||||
$tMap->addColumn('DEL_FINISHED', 'DelFinished', 'int', CreoleTypes::TINYINT, true, null);
|
||||
|
||||
$tMap->addColumn('DEL_DELAYED', 'DelDelayed', 'int', CreoleTypes::TINYINT, true, null);
|
||||
|
||||
$tMap->addColumn('APP_CREATE_DATE', 'AppCreateDate', 'int', CreoleTypes::TIMESTAMP, true, null);
|
||||
|
||||
$tMap->addColumn('APP_FINISH_DATE', 'AppFinishDate', 'int', CreoleTypes::TIMESTAMP, false, null);
|
||||
|
||||
$tMap->addColumn('APP_UPDATE_DATE', 'AppUpdateDate', 'int', CreoleTypes::TIMESTAMP, true, null);
|
||||
|
||||
$tMap->addColumn('APP_OVERDUE_PERCENTAGE', 'AppOverduePercentage', 'double', CreoleTypes::DOUBLE, true, null);
|
||||
|
||||
} // doBuild()
|
||||
|
||||
} // AppCacheViewMapBuilder
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,712 +0,0 @@
|
||||
<?php
|
||||
|
||||
require_once 'propel/util/BasePeer.php';
|
||||
// The object class -- needed for instanceof checks in this class.
|
||||
// actual class may be a subclass -- as returned by AppCacheViewPeer::getOMClass()
|
||||
include_once 'classes/model/AppCacheView.php';
|
||||
|
||||
/**
|
||||
* Base static class for performing query and update operations on the 'APP_CACHE_VIEW' table.
|
||||
*
|
||||
*
|
||||
*
|
||||
* @package workflow.classes.model.om
|
||||
*/
|
||||
abstract class BaseAppCacheViewPeer
|
||||
{
|
||||
|
||||
/** the default database name for this class */
|
||||
const DATABASE_NAME = 'workflow';
|
||||
|
||||
/** the table name for this class */
|
||||
const TABLE_NAME = 'APP_CACHE_VIEW';
|
||||
|
||||
/** A class that can be returned by this peer. */
|
||||
const CLASS_DEFAULT = 'classes.model.AppCacheView';
|
||||
|
||||
/** The total number of columns. */
|
||||
const NUM_COLUMNS = 32;
|
||||
|
||||
/** The number of lazy-loaded columns. */
|
||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||
|
||||
|
||||
/** the column name for the APP_UID field */
|
||||
const APP_UID = 'APP_CACHE_VIEW.APP_UID';
|
||||
|
||||
/** the column name for the DEL_INDEX field */
|
||||
const DEL_INDEX = 'APP_CACHE_VIEW.DEL_INDEX';
|
||||
|
||||
/** the column name for the DEL_LAST_INDEX field */
|
||||
const DEL_LAST_INDEX = 'APP_CACHE_VIEW.DEL_LAST_INDEX';
|
||||
|
||||
/** the column name for the APP_NUMBER field */
|
||||
const APP_NUMBER = 'APP_CACHE_VIEW.APP_NUMBER';
|
||||
|
||||
/** the column name for the APP_STATUS field */
|
||||
const APP_STATUS = 'APP_CACHE_VIEW.APP_STATUS';
|
||||
|
||||
/** the column name for the USR_UID field */
|
||||
const USR_UID = 'APP_CACHE_VIEW.USR_UID';
|
||||
|
||||
/** the column name for the PREVIOUS_USR_UID field */
|
||||
const PREVIOUS_USR_UID = 'APP_CACHE_VIEW.PREVIOUS_USR_UID';
|
||||
|
||||
/** the column name for the TAS_UID field */
|
||||
const TAS_UID = 'APP_CACHE_VIEW.TAS_UID';
|
||||
|
||||
/** the column name for the PRO_UID field */
|
||||
const PRO_UID = 'APP_CACHE_VIEW.PRO_UID';
|
||||
|
||||
/** the column name for the DEL_DELEGATE_DATE field */
|
||||
const DEL_DELEGATE_DATE = 'APP_CACHE_VIEW.DEL_DELEGATE_DATE';
|
||||
|
||||
/** the column name for the DEL_INIT_DATE field */
|
||||
const DEL_INIT_DATE = 'APP_CACHE_VIEW.DEL_INIT_DATE';
|
||||
|
||||
/** the column name for the DEL_FINISH_DATE field */
|
||||
const DEL_FINISH_DATE = 'APP_CACHE_VIEW.DEL_FINISH_DATE';
|
||||
|
||||
/** the column name for the DEL_TASK_DUE_DATE field */
|
||||
const DEL_TASK_DUE_DATE = 'APP_CACHE_VIEW.DEL_TASK_DUE_DATE';
|
||||
|
||||
/** the column name for the DEL_RISK_DATE field */
|
||||
const DEL_RISK_DATE = 'APP_CACHE_VIEW.DEL_RISK_DATE';
|
||||
|
||||
/** the column name for the DEL_THREAD_STATUS field */
|
||||
const DEL_THREAD_STATUS = 'APP_CACHE_VIEW.DEL_THREAD_STATUS';
|
||||
|
||||
/** the column name for the APP_THREAD_STATUS field */
|
||||
const APP_THREAD_STATUS = 'APP_CACHE_VIEW.APP_THREAD_STATUS';
|
||||
|
||||
/** the column name for the APP_TITLE field */
|
||||
const APP_TITLE = 'APP_CACHE_VIEW.APP_TITLE';
|
||||
|
||||
/** the column name for the APP_PRO_TITLE field */
|
||||
const APP_PRO_TITLE = 'APP_CACHE_VIEW.APP_PRO_TITLE';
|
||||
|
||||
/** the column name for the APP_TAS_TITLE field */
|
||||
const APP_TAS_TITLE = 'APP_CACHE_VIEW.APP_TAS_TITLE';
|
||||
|
||||
/** the column name for the APP_CURRENT_USER field */
|
||||
const APP_CURRENT_USER = 'APP_CACHE_VIEW.APP_CURRENT_USER';
|
||||
|
||||
/** the column name for the APP_DEL_PREVIOUS_USER field */
|
||||
const APP_DEL_PREVIOUS_USER = 'APP_CACHE_VIEW.APP_DEL_PREVIOUS_USER';
|
||||
|
||||
/** the column name for the DEL_PRIORITY field */
|
||||
const DEL_PRIORITY = 'APP_CACHE_VIEW.DEL_PRIORITY';
|
||||
|
||||
/** the column name for the DEL_DURATION field */
|
||||
const DEL_DURATION = 'APP_CACHE_VIEW.DEL_DURATION';
|
||||
|
||||
/** the column name for the DEL_QUEUE_DURATION field */
|
||||
const DEL_QUEUE_DURATION = 'APP_CACHE_VIEW.DEL_QUEUE_DURATION';
|
||||
|
||||
/** the column name for the DEL_DELAY_DURATION field */
|
||||
const DEL_DELAY_DURATION = 'APP_CACHE_VIEW.DEL_DELAY_DURATION';
|
||||
|
||||
/** the column name for the DEL_STARTED field */
|
||||
const DEL_STARTED = 'APP_CACHE_VIEW.DEL_STARTED';
|
||||
|
||||
/** the column name for the DEL_FINISHED field */
|
||||
const DEL_FINISHED = 'APP_CACHE_VIEW.DEL_FINISHED';
|
||||
|
||||
/** the column name for the DEL_DELAYED field */
|
||||
const DEL_DELAYED = 'APP_CACHE_VIEW.DEL_DELAYED';
|
||||
|
||||
/** the column name for the APP_CREATE_DATE field */
|
||||
const APP_CREATE_DATE = 'APP_CACHE_VIEW.APP_CREATE_DATE';
|
||||
|
||||
/** the column name for the APP_FINISH_DATE field */
|
||||
const APP_FINISH_DATE = 'APP_CACHE_VIEW.APP_FINISH_DATE';
|
||||
|
||||
/** the column name for the APP_UPDATE_DATE field */
|
||||
const APP_UPDATE_DATE = 'APP_CACHE_VIEW.APP_UPDATE_DATE';
|
||||
|
||||
/** the column name for the APP_OVERDUE_PERCENTAGE field */
|
||||
const APP_OVERDUE_PERCENTAGE = 'APP_CACHE_VIEW.APP_OVERDUE_PERCENTAGE';
|
||||
|
||||
/** The PHP to DB Name Mapping */
|
||||
private static $phpNameMap = null;
|
||||
|
||||
|
||||
/**
|
||||
* holds an array of fieldnames
|
||||
*
|
||||
* first dimension keys are the type constants
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
private static $fieldNames = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid', 'DelIndex', 'DelLastIndex', 'AppNumber', 'AppStatus', 'UsrUid', 'PreviousUsrUid', 'TasUid', 'ProUid', 'DelDelegateDate', 'DelInitDate', 'DelFinishDate', 'DelTaskDueDate', 'DelRiskDate', 'DelThreadStatus', 'AppThreadStatus', 'AppTitle', 'AppProTitle', 'AppTasTitle', 'AppCurrentUser', 'AppDelPreviousUser', 'DelPriority', 'DelDuration', 'DelQueueDuration', 'DelDelayDuration', 'DelStarted', 'DelFinished', 'DelDelayed', 'AppCreateDate', 'AppFinishDate', 'AppUpdateDate', 'AppOverduePercentage', ),
|
||||
BasePeer::TYPE_COLNAME => array (AppCacheViewPeer::APP_UID, AppCacheViewPeer::DEL_INDEX, AppCacheViewPeer::DEL_LAST_INDEX, AppCacheViewPeer::APP_NUMBER, AppCacheViewPeer::APP_STATUS, AppCacheViewPeer::USR_UID, AppCacheViewPeer::PREVIOUS_USR_UID, AppCacheViewPeer::TAS_UID, AppCacheViewPeer::PRO_UID, AppCacheViewPeer::DEL_DELEGATE_DATE, AppCacheViewPeer::DEL_INIT_DATE, AppCacheViewPeer::DEL_FINISH_DATE, AppCacheViewPeer::DEL_TASK_DUE_DATE, AppCacheViewPeer::DEL_RISK_DATE, AppCacheViewPeer::DEL_THREAD_STATUS, AppCacheViewPeer::APP_THREAD_STATUS, AppCacheViewPeer::APP_TITLE, AppCacheViewPeer::APP_PRO_TITLE, AppCacheViewPeer::APP_TAS_TITLE, AppCacheViewPeer::APP_CURRENT_USER, AppCacheViewPeer::APP_DEL_PREVIOUS_USER, AppCacheViewPeer::DEL_PRIORITY, AppCacheViewPeer::DEL_DURATION, AppCacheViewPeer::DEL_QUEUE_DURATION, AppCacheViewPeer::DEL_DELAY_DURATION, AppCacheViewPeer::DEL_STARTED, AppCacheViewPeer::DEL_FINISHED, AppCacheViewPeer::DEL_DELAYED, AppCacheViewPeer::APP_CREATE_DATE, AppCacheViewPeer::APP_FINISH_DATE, AppCacheViewPeer::APP_UPDATE_DATE, AppCacheViewPeer::APP_OVERDUE_PERCENTAGE, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID', 'DEL_INDEX', 'DEL_LAST_INDEX', 'APP_NUMBER', 'APP_STATUS', 'USR_UID', 'PREVIOUS_USR_UID', 'TAS_UID', 'PRO_UID', 'DEL_DELEGATE_DATE', 'DEL_INIT_DATE', 'DEL_FINISH_DATE', 'DEL_TASK_DUE_DATE', 'DEL_RISK_DATE', 'DEL_THREAD_STATUS', 'APP_THREAD_STATUS', 'APP_TITLE', 'APP_PRO_TITLE', 'APP_TAS_TITLE', 'APP_CURRENT_USER', 'APP_DEL_PREVIOUS_USER', 'DEL_PRIORITY', 'DEL_DURATION', 'DEL_QUEUE_DURATION', 'DEL_DELAY_DURATION', 'DEL_STARTED', 'DEL_FINISHED', 'DEL_DELAYED', 'APP_CREATE_DATE', 'APP_FINISH_DATE', 'APP_UPDATE_DATE', 'APP_OVERDUE_PERCENTAGE', ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, )
|
||||
);
|
||||
|
||||
/**
|
||||
* holds an array of keys for quick access to the fieldnames array
|
||||
*
|
||||
* first dimension keys are the type constants
|
||||
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
private static $fieldKeys = array (
|
||||
BasePeer::TYPE_PHPNAME => array ('AppUid' => 0, 'DelIndex' => 1, 'DelLastIndex' => 2, 'AppNumber' => 3, 'AppStatus' => 4, 'UsrUid' => 5, 'PreviousUsrUid' => 6, 'TasUid' => 7, 'ProUid' => 8, 'DelDelegateDate' => 9, 'DelInitDate' => 10, 'DelFinishDate' => 11, 'DelTaskDueDate' => 12, 'DelRiskDate' => 13, 'DelThreadStatus' => 14, 'AppThreadStatus' => 15, 'AppTitle' => 16, 'AppProTitle' => 17, 'AppTasTitle' => 18, 'AppCurrentUser' => 19, 'AppDelPreviousUser' => 20, 'DelPriority' => 21, 'DelDuration' => 22, 'DelQueueDuration' => 23, 'DelDelayDuration' => 24, 'DelStarted' => 25, 'DelFinished' => 26, 'DelDelayed' => 27, 'AppCreateDate' => 28, 'AppFinishDate' => 29, 'AppUpdateDate' => 30, 'AppOverduePercentage' => 31, ),
|
||||
BasePeer::TYPE_COLNAME => array (AppCacheViewPeer::APP_UID => 0, AppCacheViewPeer::DEL_INDEX => 1, AppCacheViewPeer::DEL_LAST_INDEX => 2, AppCacheViewPeer::APP_NUMBER => 3, AppCacheViewPeer::APP_STATUS => 4, AppCacheViewPeer::USR_UID => 5, AppCacheViewPeer::PREVIOUS_USR_UID => 6, AppCacheViewPeer::TAS_UID => 7, AppCacheViewPeer::PRO_UID => 8, AppCacheViewPeer::DEL_DELEGATE_DATE => 9, AppCacheViewPeer::DEL_INIT_DATE => 10, AppCacheViewPeer::DEL_FINISH_DATE => 11, AppCacheViewPeer::DEL_TASK_DUE_DATE => 12, AppCacheViewPeer::DEL_RISK_DATE => 13, AppCacheViewPeer::DEL_THREAD_STATUS => 14, AppCacheViewPeer::APP_THREAD_STATUS => 15, AppCacheViewPeer::APP_TITLE => 16, AppCacheViewPeer::APP_PRO_TITLE => 17, AppCacheViewPeer::APP_TAS_TITLE => 18, AppCacheViewPeer::APP_CURRENT_USER => 19, AppCacheViewPeer::APP_DEL_PREVIOUS_USER => 20, AppCacheViewPeer::DEL_PRIORITY => 21, AppCacheViewPeer::DEL_DURATION => 22, AppCacheViewPeer::DEL_QUEUE_DURATION => 23, AppCacheViewPeer::DEL_DELAY_DURATION => 24, AppCacheViewPeer::DEL_STARTED => 25, AppCacheViewPeer::DEL_FINISHED => 26, AppCacheViewPeer::DEL_DELAYED => 27, AppCacheViewPeer::APP_CREATE_DATE => 28, AppCacheViewPeer::APP_FINISH_DATE => 29, AppCacheViewPeer::APP_UPDATE_DATE => 30, AppCacheViewPeer::APP_OVERDUE_PERCENTAGE => 31, ),
|
||||
BasePeer::TYPE_FIELDNAME => array ('APP_UID' => 0, 'DEL_INDEX' => 1, 'DEL_LAST_INDEX' => 2, 'APP_NUMBER' => 3, 'APP_STATUS' => 4, 'USR_UID' => 5, 'PREVIOUS_USR_UID' => 6, 'TAS_UID' => 7, 'PRO_UID' => 8, 'DEL_DELEGATE_DATE' => 9, 'DEL_INIT_DATE' => 10, 'DEL_FINISH_DATE' => 11, 'DEL_TASK_DUE_DATE' => 12, 'DEL_RISK_DATE' => 13, 'DEL_THREAD_STATUS' => 14, 'APP_THREAD_STATUS' => 15, 'APP_TITLE' => 16, 'APP_PRO_TITLE' => 17, 'APP_TAS_TITLE' => 18, 'APP_CURRENT_USER' => 19, 'APP_DEL_PREVIOUS_USER' => 20, 'DEL_PRIORITY' => 21, 'DEL_DURATION' => 22, 'DEL_QUEUE_DURATION' => 23, 'DEL_DELAY_DURATION' => 24, 'DEL_STARTED' => 25, 'DEL_FINISHED' => 26, 'DEL_DELAYED' => 27, 'APP_CREATE_DATE' => 28, 'APP_FINISH_DATE' => 29, 'APP_UPDATE_DATE' => 30, 'APP_OVERDUE_PERCENTAGE' => 31, ),
|
||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, )
|
||||
);
|
||||
|
||||
/**
|
||||
* @return MapBuilder the map builder for this peer
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function getMapBuilder()
|
||||
{
|
||||
include_once 'classes/model/map/AppCacheViewMapBuilder.php';
|
||||
return BasePeer::getMapBuilder('classes.model.map.AppCacheViewMapBuilder');
|
||||
}
|
||||
/**
|
||||
* Gets a map (hash) of PHP names to DB column names.
|
||||
*
|
||||
* @return array The PHP to DB name map for this peer
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
* @deprecated Use the getFieldNames() and translateFieldName() methods instead of this.
|
||||
*/
|
||||
public static function getPhpNameMap()
|
||||
{
|
||||
if (self::$phpNameMap === null) {
|
||||
$map = AppCacheViewPeer::getTableMap();
|
||||
$columns = $map->getColumns();
|
||||
$nameMap = array();
|
||||
foreach ($columns as $column) {
|
||||
$nameMap[$column->getPhpName()] = $column->getColumnName();
|
||||
}
|
||||
self::$phpNameMap = $nameMap;
|
||||
}
|
||||
return self::$phpNameMap;
|
||||
}
|
||||
/**
|
||||
* Translates a fieldname to another type
|
||||
*
|
||||
* @param string $name field name
|
||||
* @param string $fromType One of the class type constants TYPE_PHPNAME,
|
||||
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
|
||||
* @param string $toType One of the class type constants
|
||||
* @return string translated name of the field.
|
||||
*/
|
||||
static public function translateFieldName($name, $fromType, $toType)
|
||||
{
|
||||
$toNames = self::getFieldNames($toType);
|
||||
$key = isset(self::$fieldKeys[$fromType][$name]) ? self::$fieldKeys[$fromType][$name] : null;
|
||||
if ($key === null) {
|
||||
throw new PropelException("'$name' could not be found in the field names of type '$fromType'. These are: " . print_r(self::$fieldKeys[$fromType], true));
|
||||
}
|
||||
return $toNames[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of of field names.
|
||||
*
|
||||
* @param string $type The type of fieldnames to return:
|
||||
* One of the class type constants TYPE_PHPNAME,
|
||||
* TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM
|
||||
* @return array A list of field names
|
||||
*/
|
||||
|
||||
static public function getFieldNames($type = BasePeer::TYPE_PHPNAME)
|
||||
{
|
||||
if (!array_key_exists($type, self::$fieldNames)) {
|
||||
throw new PropelException('Method getFieldNames() expects the parameter $type to be one of the class constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM. ' . $type . ' was given.');
|
||||
}
|
||||
return self::$fieldNames[$type];
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method which changes table.column to alias.column.
|
||||
*
|
||||
* Using this method you can maintain SQL abstraction while using column aliases.
|
||||
* <code>
|
||||
* $c->addAlias("alias1", TablePeer::TABLE_NAME);
|
||||
* $c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN);
|
||||
* </code>
|
||||
* @param string $alias The alias for the current table.
|
||||
* @param string $column The column name for current table. (i.e. AppCacheViewPeer::COLUMN_NAME).
|
||||
* @return string
|
||||
*/
|
||||
public static function alias($alias, $column)
|
||||
{
|
||||
return str_replace(AppCacheViewPeer::TABLE_NAME.'.', $alias.'.', $column);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add all the columns needed to create a new object.
|
||||
*
|
||||
* Note: any columns that were marked with lazyLoad="true" in the
|
||||
* XML schema will not be added to the select list and only loaded
|
||||
* on demand.
|
||||
*
|
||||
* @param criteria object containing the columns to add.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function addSelectColumns(Criteria $criteria)
|
||||
{
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_INDEX);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_LAST_INDEX);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_STATUS);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::USR_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::PREVIOUS_USR_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::TAS_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::PRO_UID);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELEGATE_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_INIT_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_FINISH_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_TASK_DUE_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_RISK_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_THREAD_STATUS);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_THREAD_STATUS);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_TITLE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_TAS_TITLE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_CURRENT_USER);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_DEL_PREVIOUS_USER);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_PRIORITY);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DURATION);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_QUEUE_DURATION);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELAY_DURATION);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_STARTED);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_FINISHED);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::DEL_DELAYED);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_CREATE_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_FINISH_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_UPDATE_DATE);
|
||||
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::APP_OVERDUE_PERCENTAGE);
|
||||
|
||||
}
|
||||
|
||||
const COUNT = 'COUNT(APP_CACHE_VIEW.APP_UID)';
|
||||
const COUNT_DISTINCT = 'COUNT(DISTINCT APP_CACHE_VIEW.APP_UID)';
|
||||
|
||||
/**
|
||||
* Returns the number of rows matching criteria.
|
||||
*
|
||||
* @param Criteria $criteria
|
||||
* @param boolean $distinct Whether to select only distinct columns (You can also set DISTINCT modifier in Criteria).
|
||||
* @param Connection $con
|
||||
* @return int Number of matching rows.
|
||||
*/
|
||||
public static function doCount(Criteria $criteria, $distinct = false, $con = null)
|
||||
{
|
||||
// we're going to modify criteria, so copy it first
|
||||
$criteria = clone $criteria;
|
||||
|
||||
// clear out anything that might confuse the ORDER BY clause
|
||||
$criteria->clearSelectColumns()->clearOrderByColumns();
|
||||
if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::COUNT_DISTINCT);
|
||||
} else {
|
||||
$criteria->addSelectColumn(AppCacheViewPeer::COUNT);
|
||||
}
|
||||
|
||||
// just in case we're grouping: add those columns to the select statement
|
||||
foreach ($criteria->getGroupByColumns() as $column) {
|
||||
$criteria->addSelectColumn($column);
|
||||
}
|
||||
|
||||
$rs = AppCacheViewPeer::doSelectRS($criteria, $con);
|
||||
if ($rs->next()) {
|
||||
return $rs->getInt(1);
|
||||
} else {
|
||||
// no rows returned; we infer that means 0 matches.
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Method to select one object from the DB.
|
||||
*
|
||||
* @param Criteria $criteria object used to create the SELECT statement.
|
||||
* @param Connection $con
|
||||
* @return AppCacheView
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doSelectOne(Criteria $criteria, $con = null)
|
||||
{
|
||||
$critcopy = clone $criteria;
|
||||
$critcopy->setLimit(1);
|
||||
$objects = AppCacheViewPeer::doSelect($critcopy, $con);
|
||||
if ($objects) {
|
||||
return $objects[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Method to do selects.
|
||||
*
|
||||
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
|
||||
* @param Connection $con
|
||||
* @return array Array of selected Objects
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doSelect(Criteria $criteria, $con = null)
|
||||
{
|
||||
return AppCacheViewPeer::populateObjects(AppCacheViewPeer::doSelectRS($criteria, $con));
|
||||
}
|
||||
/**
|
||||
* Prepares the Criteria object and uses the parent doSelect()
|
||||
* method to get a ResultSet.
|
||||
*
|
||||
* Use this method directly if you want to just get the resultset
|
||||
* (instead of an array of objects).
|
||||
*
|
||||
* @param Criteria $criteria The Criteria object used to build the SELECT statement.
|
||||
* @param Connection $con the connection to use
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
* @return ResultSet The resultset object with numerically-indexed fields.
|
||||
* @see BasePeer::doSelect()
|
||||
*/
|
||||
public static function doSelectRS(Criteria $criteria, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(self::DATABASE_NAME);
|
||||
}
|
||||
|
||||
if (!$criteria->getSelectColumns()) {
|
||||
$criteria = clone $criteria;
|
||||
AppCacheViewPeer::addSelectColumns($criteria);
|
||||
}
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(self::DATABASE_NAME);
|
||||
|
||||
// BasePeer returns a Creole ResultSet, set to return
|
||||
// rows indexed numerically.
|
||||
return BasePeer::doSelect($criteria, $con);
|
||||
}
|
||||
/**
|
||||
* The returned array will contain objects of the default type or
|
||||
* objects that inherit from the default.
|
||||
*
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function populateObjects(ResultSet $rs)
|
||||
{
|
||||
$results = array();
|
||||
|
||||
// set the class once to avoid overhead in the loop
|
||||
$cls = AppCacheViewPeer::getOMClass();
|
||||
$cls = Propel::import($cls);
|
||||
// populate the object(s)
|
||||
while ($rs->next()) {
|
||||
|
||||
$obj = new $cls();
|
||||
$obj->hydrate($rs);
|
||||
$results[] = $obj;
|
||||
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
/**
|
||||
* Returns the TableMap related to this peer.
|
||||
* This method is not needed for general use but a specific application could have a need.
|
||||
* @return TableMap
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function getTableMap()
|
||||
{
|
||||
return Propel::getDatabaseMap(self::DATABASE_NAME)->getTable(self::TABLE_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* The class that the Peer will make instances of.
|
||||
*
|
||||
* This uses a dot-path notation which is tranalted into a path
|
||||
* relative to a location on the PHP include_path.
|
||||
* (e.g. path.to.MyClass -> 'path/to/MyClass.php')
|
||||
*
|
||||
* @return string path.to.ClassName
|
||||
*/
|
||||
public static function getOMClass()
|
||||
{
|
||||
return AppCacheViewPeer::CLASS_DEFAULT;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method perform an INSERT on the database, given a AppCacheView or Criteria object.
|
||||
*
|
||||
* @param mixed $values Criteria or AppCacheView object containing data that is used to create the INSERT statement.
|
||||
* @param Connection $con the connection to use
|
||||
* @return mixed The new primary key.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doInsert($values, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(self::DATABASE_NAME);
|
||||
}
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
$criteria = clone $values; // rename for clarity
|
||||
} else {
|
||||
$criteria = $values->buildCriteria(); // build Criteria from AppCacheView object
|
||||
}
|
||||
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(self::DATABASE_NAME);
|
||||
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table (I guess, conceivably)
|
||||
$con->begin();
|
||||
$pk = BasePeer::doInsert($criteria, $con);
|
||||
$con->commit();
|
||||
} catch (PropelException $e) {
|
||||
$con->rollback();
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return $pk;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method perform an UPDATE on the database, given a AppCacheView or Criteria object.
|
||||
*
|
||||
* @param mixed $values Criteria or AppCacheView object containing data create the UPDATE statement.
|
||||
* @param Connection $con The connection to use (specify Connection exert more control over transactions).
|
||||
* @return int The number of affected rows (if supported by underlying database driver).
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doUpdate($values, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(self::DATABASE_NAME);
|
||||
}
|
||||
|
||||
$selectCriteria = new Criteria(self::DATABASE_NAME);
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
$criteria = clone $values; // rename for clarity
|
||||
|
||||
$comparison = $criteria->getComparison(AppCacheViewPeer::APP_UID);
|
||||
$selectCriteria->add(AppCacheViewPeer::APP_UID, $criteria->remove(AppCacheViewPeer::APP_UID), $comparison);
|
||||
|
||||
$comparison = $criteria->getComparison(AppCacheViewPeer::DEL_INDEX);
|
||||
$selectCriteria->add(AppCacheViewPeer::DEL_INDEX, $criteria->remove(AppCacheViewPeer::DEL_INDEX), $comparison);
|
||||
|
||||
} else {
|
||||
$criteria = $values->buildCriteria(); // gets full criteria
|
||||
$selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s)
|
||||
}
|
||||
|
||||
// set the correct dbName
|
||||
$criteria->setDbName(self::DATABASE_NAME);
|
||||
|
||||
return BasePeer::doUpdate($selectCriteria, $criteria, $con);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to DELETE all rows from the APP_CACHE_VIEW table.
|
||||
*
|
||||
* @return int The number of affected rows (if supported by underlying database driver).
|
||||
*/
|
||||
public static function doDeleteAll($con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(self::DATABASE_NAME);
|
||||
}
|
||||
$affectedRows = 0; // initialize var to track total num of affected rows
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table or we could emulating ON DELETE CASCADE, etc.
|
||||
$con->begin();
|
||||
$affectedRows += BasePeer::doDeleteAll(AppCacheViewPeer::TABLE_NAME, $con);
|
||||
$con->commit();
|
||||
return $affectedRows;
|
||||
} catch (PropelException $e) {
|
||||
$con->rollback();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method perform a DELETE on the database, given a AppCacheView or Criteria object OR a primary key value.
|
||||
*
|
||||
* @param mixed $values Criteria or AppCacheView object or primary key or array of primary keys
|
||||
* which is used to create the DELETE statement
|
||||
* @param Connection $con the connection to use
|
||||
* @return int The number of affected rows (if supported by underlying database driver).
|
||||
* This includes CASCADE-related rows
|
||||
* if supported by native driver or if emulated using Propel.
|
||||
* @throws PropelException Any exceptions caught during processing will be
|
||||
* rethrown wrapped into a PropelException.
|
||||
*/
|
||||
public static function doDelete($values, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(AppCacheViewPeer::DATABASE_NAME);
|
||||
}
|
||||
|
||||
if ($values instanceof Criteria) {
|
||||
$criteria = clone $values; // rename for clarity
|
||||
} elseif ($values instanceof AppCacheView) {
|
||||
|
||||
$criteria = $values->buildPkeyCriteria();
|
||||
} else {
|
||||
// it must be the primary key
|
||||
$criteria = new Criteria(self::DATABASE_NAME);
|
||||
// primary key is composite; we therefore, expect
|
||||
// the primary key passed to be an array of pkey
|
||||
// values
|
||||
if (count($values) == count($values, COUNT_RECURSIVE)) {
|
||||
// array is not multi-dimensional
|
||||
$values = array($values);
|
||||
}
|
||||
$vals = array();
|
||||
foreach ($values as $value) {
|
||||
|
||||
$vals[0][] = $value[0];
|
||||
$vals[1][] = $value[1];
|
||||
}
|
||||
|
||||
$criteria->add(AppCacheViewPeer::APP_UID, $vals[0], Criteria::IN);
|
||||
$criteria->add(AppCacheViewPeer::DEL_INDEX, $vals[1], Criteria::IN);
|
||||
}
|
||||
|
||||
// Set the correct dbName
|
||||
$criteria->setDbName(self::DATABASE_NAME);
|
||||
|
||||
$affectedRows = 0; // initialize var to track total num of affected rows
|
||||
|
||||
try {
|
||||
// use transaction because $criteria could contain info
|
||||
// for more than one table or we could emulating ON DELETE CASCADE, etc.
|
||||
$con->begin();
|
||||
|
||||
$affectedRows += BasePeer::doDelete($criteria, $con);
|
||||
$con->commit();
|
||||
return $affectedRows;
|
||||
} catch (PropelException $e) {
|
||||
$con->rollback();
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates all modified columns of given AppCacheView object.
|
||||
* If parameter $columns is either a single column name or an array of column names
|
||||
* than only those columns are validated.
|
||||
*
|
||||
* NOTICE: This does not apply to primary or foreign keys for now.
|
||||
*
|
||||
* @param AppCacheView $obj The object to validate.
|
||||
* @param mixed $cols Column name or array of column names.
|
||||
*
|
||||
* @return mixed TRUE if all columns are valid or the error message of the first invalid column.
|
||||
*/
|
||||
public static function doValidate(AppCacheView $obj, $cols = null)
|
||||
{
|
||||
$columns = array();
|
||||
|
||||
if ($cols) {
|
||||
$dbMap = Propel::getDatabaseMap(AppCacheViewPeer::DATABASE_NAME);
|
||||
$tableMap = $dbMap->getTable(AppCacheViewPeer::TABLE_NAME);
|
||||
|
||||
if (! is_array($cols)) {
|
||||
$cols = array($cols);
|
||||
}
|
||||
|
||||
foreach ($cols as $colName) {
|
||||
if ($tableMap->containsColumn($colName)) {
|
||||
$get = 'get' . $tableMap->getColumn($colName)->getPhpName();
|
||||
$columns[$colName] = $obj->$get();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
return BasePeer::doValidate(AppCacheViewPeer::DATABASE_NAME, AppCacheViewPeer::TABLE_NAME, $columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve object using using composite pkey values.
|
||||
* @param string $app_uid
|
||||
* @param int $del_index
|
||||
* @param Connection $con
|
||||
* @return AppCacheView
|
||||
*/
|
||||
public static function retrieveByPK($app_uid, $del_index, $con = null)
|
||||
{
|
||||
if ($con === null) {
|
||||
$con = Propel::getConnection(self::DATABASE_NAME);
|
||||
}
|
||||
$criteria = new Criteria();
|
||||
$criteria->add(AppCacheViewPeer::APP_UID, $app_uid);
|
||||
$criteria->add(AppCacheViewPeer::DEL_INDEX, $del_index);
|
||||
$v = AppCacheViewPeer::doSelect($criteria, $con);
|
||||
|
||||
return !empty($v) ? $v[0] : null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// static code to register the map builder for this Peer with the main Propel class
|
||||
if (Propel::isInit()) {
|
||||
// the MapBuilder classes register themselves with Propel during initialization
|
||||
// so we need to load them here.
|
||||
try {
|
||||
BaseAppCacheViewPeer::getMapBuilder();
|
||||
} catch (Exception $e) {
|
||||
Propel::log('Could not initialize Peer: ' . $e->getMessage(), Propel::LOG_ERR);
|
||||
}
|
||||
} else {
|
||||
// even if Propel is not yet initialized, the map builder class can be registered
|
||||
// now and then it will be loaded when Propel initializes.
|
||||
require_once 'classes/model/map/AppCacheViewMapBuilder.php';
|
||||
Propel::registerMapBuilder('classes.model.map.AppCacheViewMapBuilder');
|
||||
}
|
||||
|
||||
@@ -2311,12 +2311,6 @@ msgstr "Any"
|
||||
msgid "All Tasks"
|
||||
msgstr "All Tasks"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPCACHE_SETUP
|
||||
#: LABEL/ID_APPCACHE_SETUP
|
||||
msgid "Case List Cache Builder"
|
||||
msgstr "Case List Cache Builder"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPLICATIONS
|
||||
#: LABEL/ID_APPLICATIONS
|
||||
@@ -5887,13 +5881,13 @@ msgstr "The value '{0}' is not a valid date for the format '{1}'."
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_DATE_UPDATED
|
||||
#: LABEL/ID_DATE_UPDATED
|
||||
#: LABEL/ID_DATE_UPDATED
|
||||
msgid "Date Updated"
|
||||
msgstr "Date Updated"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_DATE_TO_DATE
|
||||
#: LABEL/ID_DATE_TO_DATE
|
||||
#: LABEL/ID_DATE_TO_DATE
|
||||
msgid "Date to Date"
|
||||
msgstr "Date to Date"
|
||||
|
||||
@@ -24292,7 +24286,7 @@ msgstr "Save Line Position"
|
||||
#: LABEL/ID_SAVE_NEW_STEP
|
||||
msgid "Save New Step"
|
||||
msgstr "Save New Step"
|
||||
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_SAVE_SEARCH
|
||||
#: LABEL/ID_SAVE_SEARCH
|
||||
@@ -52900,7 +52894,7 @@ msgid "Unpauses any case whose pause time has expired"
|
||||
msgstr "Unpauses any case whose pause time has expired"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_TASK_SCHEDULER_PM_EVENTS
|
||||
# LABEL/ID_TASK_SCHEDULER_PM_EVENTS
|
||||
#: LABEL/ID_TASK_SCHEDULER_PM_EVENTS
|
||||
msgid "ProcessMaker events"
|
||||
msgstr "ProcessMaker events"
|
||||
|
||||
@@ -2305,12 +2305,6 @@ msgstr "Any"
|
||||
msgid "All Tasks"
|
||||
msgstr "All Tasks"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPCACHE_SETUP
|
||||
#: LABEL/ID_APPCACHE_SETUP
|
||||
msgid "Case List Cache Builder"
|
||||
msgstr "Case List Cache Builder"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPLICATIONS
|
||||
#: LABEL/ID_APPLICATIONS
|
||||
@@ -53510,4 +53504,3 @@ msgstr "Cancel"
|
||||
#: button - PME_ACCEPT
|
||||
msgid "[dynaforms/fields/yesno.xml?PME_ACCEPT] Save"
|
||||
msgstr "Save"
|
||||
|
||||
|
||||
@@ -2305,12 +2305,6 @@ msgstr "Cualquiera"
|
||||
msgid "All Tasks"
|
||||
msgstr "Todas las tareas"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPCACHE_SETUP
|
||||
#: LABEL/ID_APPCACHE_SETUP
|
||||
msgid "Case List Cache Builder"
|
||||
msgstr "Constuctor de caché de lista de casos"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPLICATIONS
|
||||
#: LABEL/ID_APPLICATIONS
|
||||
@@ -53510,4 +53504,3 @@ msgstr "Cancel"
|
||||
#: button - PME_ACCEPT
|
||||
msgid "[dynaforms/fields/yesno.xml?PME_ACCEPT] Save"
|
||||
msgstr "Save"
|
||||
|
||||
|
||||
@@ -2305,12 +2305,6 @@ msgstr "Any"
|
||||
msgid "All Tasks"
|
||||
msgstr "All Tasks"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPCACHE_SETUP
|
||||
#: LABEL/ID_APPCACHE_SETUP
|
||||
msgid "Case List Cache Builder"
|
||||
msgstr "Case List Cache Builder"
|
||||
|
||||
# TRANSLATION
|
||||
# LABEL/ID_APPLICATIONS
|
||||
#: LABEL/ID_APPLICATIONS
|
||||
@@ -53510,4 +53504,3 @@ msgstr "Cancel"
|
||||
#: button - PME_ACCEPT
|
||||
msgid "[dynaforms/fields/yesno.xml?PME_ACCEPT] Save"
|
||||
msgstr "Save"
|
||||
|
||||
|
||||
@@ -688,7 +688,6 @@ class Home extends Controller
|
||||
/**
|
||||
* Get the list of active processes
|
||||
*
|
||||
* @global type $oAppCache
|
||||
* @param type $action
|
||||
* @param type $userUid
|
||||
* @return array
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -144,16 +144,6 @@ if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') === 1) {
|
||||
'settings'
|
||||
);
|
||||
}
|
||||
if ($RBAC->userCanAccess('PM_SETUP_CASES_LIST_CACHE_BUILDER') === 1) {
|
||||
$G_TMP_MENU->AddIdRawOption(
|
||||
'APPCACHEVIEW_SETUP',
|
||||
'../setup/appCacheViewConf',
|
||||
G::LoadTranslation('ID_APPCACHE_SETUP'),
|
||||
'',
|
||||
'',
|
||||
'settings'
|
||||
);
|
||||
}
|
||||
if (!$partnerFlag) {
|
||||
if ($RBAC->userCanAccess('PM_SETUP_PLUGINS') === 1) {
|
||||
$G_TMP_MENU->AddIdRawOption(
|
||||
|
||||
@@ -123,7 +123,7 @@ function getProcessArray($action, $userUid)
|
||||
case "simple_search":
|
||||
case "search":
|
||||
//In search action, the query to obtain all process is too slow, so we need to query directly to
|
||||
//process and content tables, and for that reason we need the current language in AppCacheView.
|
||||
//process and content tables, and for that reason we need the current language.
|
||||
$cProcess->clearSelectColumns();
|
||||
$cProcess->addSelectColumn(ProcessPeer::PRO_UID);
|
||||
$cProcess->addSelectColumn(ProcessPeer::PRO_TITLE);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @param string $action
|
||||
* @param int $translation
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -331,11 +331,11 @@ function casesListDefaultFieldsAndConfig($action, $translation = 1)
|
||||
|
||||
/**
|
||||
* Get default configuration and verify if casesListDefaultFieldsAndConfig method exist.
|
||||
*
|
||||
*
|
||||
* @param string $action
|
||||
* @param int $translation
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -354,11 +354,11 @@ function getDefaultConfig($action, $translation)
|
||||
|
||||
/**
|
||||
* Get default fields configuration.
|
||||
*
|
||||
*
|
||||
* @param string $action
|
||||
* @param int $translation
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -392,7 +392,7 @@ function getDefaultFields($action, $translation)
|
||||
|
||||
$arrayField = array();
|
||||
|
||||
//Required fields for AppCacheView.php - addPMFieldsToCriteria()
|
||||
//Required fields - addPMFieldsToCriteria()
|
||||
$arrayField[] = array("name" => "APP_UID", "fieldType" => "key", "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_APP_UID") : "**ID_CASESLIST_APP_UID**", "align" => "left", "width" => 80);
|
||||
$arrayField[] = array("name" => "DEL_INDEX", "fieldType" => "key" , "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_DEL_INDEX") : "**ID_CASESLIST_DEL_INDEX**", "align" => "left", "width" => 50);
|
||||
$arrayField[] = array("name" => "USR_UID", "fieldType" => "case field", "label" => ($translation == 1)? G::LoadTranslation("ID_CASESLIST_USR_UID") : "**ID_CASESLIST_USR_UID**", "align" => "left", "width" => 100);
|
||||
@@ -434,11 +434,11 @@ function getDefaultFields($action, $translation)
|
||||
|
||||
/**
|
||||
* Set available fields.
|
||||
*
|
||||
*
|
||||
* @param array $arrayAvailableField
|
||||
* @param array $arrayField
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -466,11 +466,11 @@ function setAvailableFields($arrayAvailableField, $arrayField)
|
||||
|
||||
/**
|
||||
* Set Cases List fields.
|
||||
*
|
||||
*
|
||||
* @param array $arrayCasesListField
|
||||
* @param array $arrayField
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -511,11 +511,11 @@ function setCasesListFields($arrayCasesListField, $arrayField)
|
||||
|
||||
/**
|
||||
* Get the Custom Case List configuration data.
|
||||
*
|
||||
*
|
||||
* @global string $action
|
||||
* @global array $confCasesList
|
||||
* @global string $tabUid
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -552,10 +552,10 @@ function fieldSet()
|
||||
|
||||
/**
|
||||
* Reset fields configuration.
|
||||
*
|
||||
*
|
||||
* @global string $action
|
||||
* @param int $translation
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -573,10 +573,10 @@ function fieldReset($translation)
|
||||
|
||||
/**
|
||||
* Complete a field.
|
||||
*
|
||||
*
|
||||
* @global string $action
|
||||
* @param int $translation
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -647,10 +647,10 @@ function fieldComplete($translation)
|
||||
|
||||
/**
|
||||
* Reset field label.
|
||||
*
|
||||
*
|
||||
* @global string $action
|
||||
* @param int $translation
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -695,10 +695,10 @@ function fieldLabelReset($translation)
|
||||
|
||||
/**
|
||||
* Save a field.
|
||||
*
|
||||
*
|
||||
* @global object $conf
|
||||
* @global string $action
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -724,7 +724,7 @@ function fieldSave()
|
||||
$dateformat = $filter->xssFilterHard($dateformat);
|
||||
|
||||
//Adding the key fields to second array
|
||||
//Required fields for AppCacheView.php - addPMFieldsToCriteria()
|
||||
//Required fields for addPMFieldsToCriteria()
|
||||
$appUid = new stdClass();
|
||||
$appUid->name = "APP_UID";
|
||||
|
||||
@@ -750,13 +750,13 @@ function fieldSave()
|
||||
$conf->saveObject($result, "casesList", $action, "", "", "");
|
||||
|
||||
$msgLog = '';
|
||||
|
||||
|
||||
if($action == 'todo') {
|
||||
$list = 'Inbox';
|
||||
} elseif ($action == 'sent') {
|
||||
$list = 'Participated';
|
||||
} else {
|
||||
$list = ucwords($action);
|
||||
$list = ucwords($action);
|
||||
}
|
||||
|
||||
for ($i=4; $i<count( $arrayNewSecond ); $i++) {
|
||||
@@ -766,7 +766,7 @@ function fieldSave()
|
||||
$msgLog .= $arrayNewSecond[$i]['label'].'-';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
G::auditLog("SetColumns", "Set ".$list." List Columns".$msgLog);
|
||||
|
||||
@@ -817,14 +817,14 @@ try {
|
||||
|
||||
/**
|
||||
* Set the generic Json Response, using two array for the grid stores and a string for the pmtable name.
|
||||
*
|
||||
*
|
||||
* @param string $pmtable
|
||||
* @param array $first
|
||||
* @param array $second
|
||||
* @param array $rowsPerPage
|
||||
* @param string $dateFormat
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -845,9 +845,9 @@ function genericJsonResponse($pmtable, $first, $second, $rowsPerPage, $dateForma
|
||||
|
||||
/**
|
||||
* Get row from PM Table.
|
||||
*
|
||||
*
|
||||
* @param string $tabUid
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -860,10 +860,10 @@ function xgetFieldsFromPMTable($tabUid)
|
||||
|
||||
/**
|
||||
* Get rows from Fields table.
|
||||
*
|
||||
*
|
||||
* @param string $tabUid
|
||||
* @return array
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/cases/proxyPMTablesFieldList.php
|
||||
* @link https://wiki.processmaker.com/3.2/Cases_List_Builder#Installation_and_Configuration
|
||||
*/
|
||||
@@ -911,4 +911,3 @@ function calculateGridIndex($fields)
|
||||
}
|
||||
return ($fields);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,227 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Processmaker\Core\System;
|
||||
use ProcessMaker\Exception\RBACException;
|
||||
|
||||
// Include global object RBAC
|
||||
global $RBAC;
|
||||
|
||||
// Check if the current user have the correct permissions to access to this resource, if not throws a RBAC Exception with code 403
|
||||
if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') !== 1 || $RBAC->userCanAccess('PM_SETUP_CASES_LIST_CACHE_BUILDER') !== 1) {
|
||||
throw new RBACException('ID_ACCESS_DENIED', 403);
|
||||
}
|
||||
|
||||
$filter = new InputFilter();
|
||||
$_POST = $filter->xssFilterHard($_POST);
|
||||
$_GET = $filter->xssFilterHard($_GET);
|
||||
$request = isset($_POST['request']) ? $_POST['request'] : (isset($_GET['request']) ? $_GET['request'] : null);
|
||||
|
||||
switch ($request) {
|
||||
//check if the APP_CACHE VIEW table and their triggers are installed
|
||||
case 'info':
|
||||
$result = new stdClass();
|
||||
$result->info = [];
|
||||
|
||||
//check the language, if no info in config about language, the default is 'en'
|
||||
$oConf = new Configurations();
|
||||
$oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '');
|
||||
$appCacheViewEngine = $oConf->aConfig;
|
||||
|
||||
if (isset($appCacheViewEngine['LANG'])) {
|
||||
$lang = (defined('SYS_LANG')) ? SYS_LANG : $appCacheViewEngine['LANG'];
|
||||
$status = strtoupper($appCacheViewEngine['STATUS']);
|
||||
} else {
|
||||
$confParams = array('LANG' => (defined('SYS_LANG')) ? SYS_LANG : 'en', 'STATUS' => '');
|
||||
$oConf->aConfig = $confParams;
|
||||
$oConf->saveConfig('APP_CACHE_VIEW_ENGINE', '', '', '');
|
||||
$lang = (defined('SYS_LANG')) ? SYS_LANG : 'en';
|
||||
$status = '';
|
||||
}
|
||||
|
||||
//get user Root from hash
|
||||
$result->info = [];
|
||||
$result->error = false;
|
||||
|
||||
//setup the appcacheview object, and the path for the sql files
|
||||
$appCache = new AppCacheView();
|
||||
$appCache->setPathToAppCacheFiles(PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP);
|
||||
|
||||
$res = $appCache->getMySQLVersion();
|
||||
//load translations G::LoadTranslation
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_MYSQL_VERSION'), 'value' => $res);
|
||||
|
||||
$res = $appCache->checkGrantsForUser(false);
|
||||
$currentUser = $res['user'];
|
||||
$currentUserIsSuper = $res['super'];
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_CURRENT_USER'), 'value' => $currentUser);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_USER_SUPER_PRIVILEGE'), 'value' => $currentUserIsSuper);
|
||||
|
||||
try {
|
||||
PROPEL::Init(PATH_METHODS . 'dbConnections/rootDbConnections.php');
|
||||
$con = Propel::getConnection("root");
|
||||
} catch (Exception $e) {
|
||||
$result->info[] = array('name' => 'Checking MySql Root user', 'value' => 'failed');
|
||||
$result->error = true;
|
||||
$result->errorMsg = $e->getMessage();
|
||||
}
|
||||
|
||||
//if user does not have the SUPER privilege we need to use the root user and grant the SUPER priv. to normal user.
|
||||
if (!$currentUserIsSuper && !$result->error) {
|
||||
$res = $appCache->checkGrantsForUser(true);
|
||||
if (!isset($res['error'])) {
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_ROOT_USER'), 'value' => $res['user']);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_ROOT_USER_SUPER'), 'value' => $res['super']);
|
||||
} else {
|
||||
$result->info[] = array('name' => 'Error', 'value' => $res['msg']);
|
||||
}
|
||||
}
|
||||
|
||||
//now check if table APPCACHEVIEW exists, and it have correct number of fields, etc.
|
||||
$res = $appCache->checkAppCacheView();
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_TABLE'), 'value' => $res['found']);
|
||||
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_ROWS'), 'value' => $res['count']);
|
||||
|
||||
//now check if we have the triggers installed
|
||||
//APP_DELEGATION INSERT
|
||||
$res = $appCache->triggerAppDelegationInsert($lang, false);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_TRIGGER_INSERT'), 'value' => $res);
|
||||
|
||||
//APP_DELEGATION Update
|
||||
$res = $appCache->triggerAppDelegationUpdate($lang, false);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_TRIGGER_UPDATE'), 'value' => $res);
|
||||
|
||||
//APPLICATION UPDATE
|
||||
$res = $appCache->triggerApplicationUpdate($lang, false);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_TRIGGER_APPLICATION_UPDATE'), 'value' => $res);
|
||||
|
||||
//APPLICATION DELETE
|
||||
$res = $appCache->triggerApplicationDelete($lang, false);
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_TRIGGER_APPLICATION_DELETE'), 'value' => $res);
|
||||
|
||||
//SUB_APPLICATION INSERT
|
||||
$res = $appCache->triggerSubApplicationInsert($lang, false);
|
||||
|
||||
//CONTENT UPDATE
|
||||
$res = $appCache->triggerContentUpdate($lang, false);
|
||||
$result->info[] = array("name" => G::LoadTranslation('ID_CACHE_BUILDER_TRIGGER_CONTENT_UPDATE'), "value" => $res);
|
||||
|
||||
//show language
|
||||
$result->info[] = array('name' => G::LoadTranslation('ID_CACHE_BUILDER_LANGUAGE'), 'value' => $lang);
|
||||
|
||||
echo G::json_encode($result);
|
||||
break;
|
||||
case 'getLangList':
|
||||
$Translations = G::getModel('Translation');
|
||||
$result = new stdClass();
|
||||
$result->rows = [];
|
||||
|
||||
$langs = $Translations->getTranslationEnvironments();
|
||||
foreach ($langs as $lang) {
|
||||
$result->rows[] = array('LAN_ID' => $lang['LOCALE'], 'LAN_NAME' => $lang['LANGUAGE']);
|
||||
}
|
||||
|
||||
print(G::json_encode($result));
|
||||
break;
|
||||
case 'build':
|
||||
$sqlToExe = [];
|
||||
$conf = new Configurations();
|
||||
|
||||
//DEPRECATED $lang = $_POST['lang'];
|
||||
//there is no more support for other languages that english
|
||||
$lang = (defined('SYS_LANG')) ? SYS_LANG : 'en';
|
||||
|
||||
try {
|
||||
//setup the appcacheview object, and the path for the sql files
|
||||
$appCache = new AppCacheView();
|
||||
$appCache->setPathToAppCacheFiles(PATH_METHODS . 'setup' . PATH_SEP . 'setupSchemas' . PATH_SEP);
|
||||
|
||||
//Update APP_DELEGATION.DEL_LAST_INDEX data
|
||||
$res = $appCache->updateAppDelegationDelLastIndex($lang, true);
|
||||
|
||||
//APP_DELEGATION INSERT
|
||||
$res = $appCache->triggerAppDelegationInsert($lang, true);
|
||||
|
||||
|
||||
//APP_DELEGATION Update
|
||||
$res = $appCache->triggerAppDelegationUpdate($lang, true);
|
||||
|
||||
|
||||
//APPLICATION UPDATE
|
||||
$res = $appCache->triggerApplicationUpdate($lang, true);
|
||||
|
||||
|
||||
//APPLICATION DELETE
|
||||
$res = $appCache->triggerApplicationDelete($lang, true);
|
||||
|
||||
//SUB_APPLICATION INSERT
|
||||
$res = $appCache->triggerSubApplicationInsert($lang, false);
|
||||
|
||||
//CONTENT UPDATE
|
||||
$res = $appCache->triggerContentUpdate($lang, true);
|
||||
|
||||
//build using the method in AppCacheView Class
|
||||
$res = $appCache->fillAppCacheView($lang);
|
||||
|
||||
//set status in config table
|
||||
$confParams = array('LANG' => $lang, 'STATUS' => 'active');
|
||||
$conf->aConfig = $confParams;
|
||||
$conf->saveConfig('APP_CACHE_VIEW_ENGINE', '', '', '');
|
||||
|
||||
$result = new StdClass();
|
||||
$result->success = true;
|
||||
$result->msg = G::LoadTranslation('ID_TITLE_COMPLETED');
|
||||
G::auditLog("BuildCache");
|
||||
echo G::json_encode($result);
|
||||
} catch (Exception $e) {
|
||||
$confParams = array('lang' => $lang, 'status' => 'failed');
|
||||
$appCacheViewEngine = $oServerConf->setProperty('APP_CACHE_VIEW_ENGINE', $confParams);
|
||||
|
||||
$token = strtotime("now");
|
||||
PMException::registerErrorLog($e, $token);
|
||||
$varRes = '{success: false, msg:"' . G::LoadTranslation("ID_EXCEPTION_LOG_INTERFAZ", array($token)) . '"}';
|
||||
G::outRes($varRes);
|
||||
}
|
||||
break;
|
||||
case 'recreate-root':
|
||||
// Get the post variables
|
||||
$user = !empty($_POST['user']) ? $_POST['user'] : '';
|
||||
$pass = !empty($_POST['password']) ? $_POST['password'] : '';
|
||||
$server = !empty($_POST['host']) ? $_POST['host'] : '';
|
||||
$code = !empty($_POST['codeCaptcha']) ? $_POST['codeCaptcha'] : '';
|
||||
|
||||
// Check if in the host was included the port
|
||||
$server = explode(':', $server);
|
||||
$serverName = $server[0];
|
||||
$port = (count($server) > 1) ? $server[1] : '';
|
||||
|
||||
// Review if the captcha is not empty
|
||||
if (empty($code)) {
|
||||
echo G::loadTranslation('ID_CAPTCHA_CODE_INCORRECT');
|
||||
break;
|
||||
}
|
||||
// Review if th captcha is incorrect
|
||||
if ($code !== $_SESSION['securimage_code_disp']['default']) {
|
||||
echo G::loadTranslation('ID_CAPTCHA_CODE_INCORRECT');
|
||||
break;
|
||||
}
|
||||
// Define a message of failure
|
||||
$message = G::loadTranslation('ID_MESSAGE_ROOT_CHANGE_FAILURE');
|
||||
if (!empty($user) && !empty($pass) && !empty($serverName)) {
|
||||
list($success, $message) = System::checkPermissionsDbUser(DB_ADAPTER, $serverName, $port, $user, $pass);
|
||||
if ($success) {
|
||||
$id = 'ID_MESSAGE_ROOT_CHANGE_FAILURE';
|
||||
if (System::regenerateCredentiaslPathInstalled($serverName, $user, $pass)) {
|
||||
$id = 'ID_MESSAGE_ROOT_CHANGE_SUCESS';
|
||||
}
|
||||
$message = G::loadTranslation($id);
|
||||
}
|
||||
}
|
||||
|
||||
echo $message;
|
||||
break;
|
||||
case 'captcha':
|
||||
$img = new Securimage();
|
||||
$img->show();
|
||||
break;
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Rebuilding the cases list cache and changing the MySQL credentials
|
||||
*
|
||||
* @see processWorkspace()
|
||||
*
|
||||
* @link https://wiki.processmaker.com/3.2/Clearing_the_Case_List_Cache
|
||||
*/
|
||||
|
||||
use ProcessMaker\Core\Installer;
|
||||
|
||||
global $RBAC;
|
||||
$RBAC->requirePermissions('PM_SETUP');
|
||||
// Define the content of the case list cache builder
|
||||
$headPublisher = headPublisher::getSingleton();
|
||||
$headPublisher->addExtJsScript('setup/appCacheViewConf', false); //adding a javascript file .js
|
||||
$headPublisher->addContent('setup/appCacheViewConf'); //adding a html file .html.
|
||||
|
||||
// Get some configurations
|
||||
$conf = new Configurations();
|
||||
$conf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '');
|
||||
$lang = isset($conf->aConfig['LANG']) ? $conf->aConfig['LANG'] : 'en';
|
||||
|
||||
// Assign the language configured
|
||||
$headPublisher->assign('currentLang', $lang);
|
||||
|
||||
// Get the mysql version
|
||||
$mysqlVersion = getMysqlVersion();
|
||||
$maxMysqlVersion = InstallerModule::MYSQL_VERSION_MAXIMUM_SUPPORTED;
|
||||
if (version_compare($mysqlVersion, $maxMysqlVersion, '<')) {
|
||||
$userNameMaxLength = 16;
|
||||
} else {
|
||||
$userNameMaxLength = 32;
|
||||
}
|
||||
$headPublisher->assign('userNameMaxLength', $userNameMaxLength);
|
||||
|
||||
G::RenderPage('publish', 'extJs');
|
||||
@@ -712,11 +712,6 @@ antes funcionaba.
|
||||
}
|
||||
|
||||
|
||||
.ICON_APPCACHEVIEW_SETUP{
|
||||
background-image: url(/images/icon-pmappcacheview-rebuild.png) !important;
|
||||
width:15px !important;
|
||||
height:15px !important;
|
||||
}
|
||||
.ICON_RETURN {
|
||||
background-image: url(/images/baseline_arrow_back_black_18dp.png) !important;
|
||||
}
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
@font-face{
|
||||
font-family:'DaxMediumCapsRegular';
|
||||
src:url('/fonts/ufonts.com_dax-mediumcaps.eot');
|
||||
src:url('/fonts/ufonts.com_dax-mediumcaps.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-mediumcaps.svg#dax-mediumcapsregular')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-mediumcaps.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-mediumcaps.ttf')
|
||||
src:url('/fonts/ufonts.com_dax-mediumcaps.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-mediumcaps.svg#dax-mediumcapsregular')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-mediumcaps.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-mediumcaps.ttf')
|
||||
format('truetype');
|
||||
font-weight:normal;
|
||||
font-style:normal
|
||||
@@ -53,10 +53,10 @@
|
||||
@font-face{
|
||||
font-family:'DaxRegular';
|
||||
src:url('/fonts/ufonts.com_dax-regular.eot');
|
||||
src:url('/fonts/ufonts.com_dax-regular.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-regular.svg#dax-regularregular')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-regular.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-regular.ttf')
|
||||
src:url('/fonts/ufonts.com_dax-regular.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-regular.svg#dax-regularregular')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-regular.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-regular.ttf')
|
||||
format('truetype');
|
||||
font-weight:normal;
|
||||
font-style:normal}
|
||||
@@ -64,10 +64,10 @@
|
||||
@font-face{
|
||||
font-family:'DaxBold';
|
||||
src:url('/fonts/ufonts.com_dax-bold.eot');
|
||||
src:url('/fonts/ufonts.com_dax-bold.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-bold.svg#daxbold')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-bold.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-bold.ttf')
|
||||
src:url('/fonts/ufonts.com_dax-bold.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-bold.svg#daxbold')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-bold.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-bold.ttf')
|
||||
format('truetype');
|
||||
font-weight:normal;
|
||||
font-style:normal}
|
||||
@@ -75,10 +75,10 @@
|
||||
@font-face{
|
||||
font-family:'DaxExtraBold';
|
||||
src:url('/fonts/ufonts.com_dax-extrabold.eot');
|
||||
src:url('/fonts/ufonts.com_dax-extrabold.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-extrabold.svg#daxextrabold')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-extrabold.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-extrabold.ttf')
|
||||
src:url('/fonts/ufonts.com_dax-extrabold.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-extrabold.svg#daxextrabold')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-extrabold.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-extrabold.ttf')
|
||||
format('truetype');
|
||||
font-weight:normal;
|
||||
font-style:normal}
|
||||
@@ -86,10 +86,10 @@
|
||||
@font-face{
|
||||
font-family:'DaxLight';
|
||||
src:url('/fonts/ufonts.com_dax-light.eot');
|
||||
src:url('/fonts/ufonts.com_dax-light.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-light.svg#daxlight')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-light.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-light.ttf')
|
||||
src:url('/fonts/ufonts.com_dax-light.eot?#iefix')
|
||||
format('embedded-opentype'),url('/fonts/ufonts.com_dax-light.svg#daxlight')
|
||||
format('svg'),url('/fonts/ufonts.com_dax-light.woff')
|
||||
format('woff'),url('/fonts/ufonts.com_dax-light.ttf')
|
||||
format('truetype');
|
||||
font-weight:normal;
|
||||
font-style:normal
|
||||
@@ -919,11 +919,6 @@ antes funcionaba.
|
||||
width: 15px !important;
|
||||
height: 15px !important;
|
||||
}
|
||||
.ICON_APPCACHEVIEW_SETUP {
|
||||
background-image: url(/images/icon-pmappcacheview-rebuild.png) !important;
|
||||
width: 15px !important;
|
||||
height: 15px !important;
|
||||
}
|
||||
.ICON_CASES_NOTES {
|
||||
/*ss_comment*/
|
||||
|
||||
|
||||
@@ -737,11 +737,6 @@ antes funcionaba.
|
||||
}
|
||||
|
||||
|
||||
.ICON_APPCACHEVIEW_SETUP{
|
||||
background-image: url(/images/icon-pmappcacheview-rebuild.png) !important;
|
||||
width:15px !important;
|
||||
height:15px !important;
|
||||
}
|
||||
.ICON_RETURN {
|
||||
background-image: url(/images/baseline_arrow_back_black_18dp.png) !important;
|
||||
}
|
||||
|
||||
@@ -709,11 +709,6 @@ antes funcionaba.
|
||||
}
|
||||
|
||||
|
||||
.ICON_APPCACHEVIEW_SETUP{
|
||||
background-image: url(/images/icon-pmappcacheview-rebuild.png) !important;
|
||||
width:15px !important;
|
||||
height:15px !important;
|
||||
}
|
||||
.ICON_RETURN {
|
||||
background-image: url(/images/baseline_arrow_back_black_18dp.png) !important;
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
namespace ProcessMaker\BusinessModel;
|
||||
|
||||
use AppCacheView;
|
||||
use AppCacheViewPeer;
|
||||
use AppDelay;
|
||||
use AppDelayPeer;
|
||||
use AppDelegation;
|
||||
@@ -263,23 +261,8 @@ class Cases
|
||||
*/
|
||||
public function getListCounters($userUid, array $arrayType)
|
||||
{
|
||||
try {
|
||||
$appCacheView = new AppCacheView();
|
||||
|
||||
if ($this->isSolrEnabled()) {
|
||||
$arrayListCounter = array_merge(
|
||||
$this->solr->getCasesCount($userUid),
|
||||
$appCacheView->getAllCounters(['completed', 'cancelled'], $userUid)
|
||||
);
|
||||
} else {
|
||||
$arrayListCounter = $appCacheView->getAllCounters($arrayType, $userUid);
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayListCounter;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
$arrayListCounter=[]; // this is a placeholder, Appcache view is deprecated.
|
||||
return $arrayListCounter;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -691,7 +674,7 @@ class Cases
|
||||
*
|
||||
* @param string $applicationUid Unique Case Id
|
||||
* @param string $userUid Unique User Id
|
||||
*
|
||||
*
|
||||
* @return array Return an array with information of Cases
|
||||
* @throws Exception
|
||||
*/
|
||||
@@ -2821,7 +2804,7 @@ class Cases
|
||||
$data = ClassesCases::unserializeData($fields->APP_DATA);
|
||||
|
||||
$row = [];
|
||||
|
||||
|
||||
if (!empty($data[$variable])) {
|
||||
foreach ($data[$variable] as $uid) {
|
||||
$group = Groupwf::where('GRP_UID', '=', $uid)->first();
|
||||
@@ -2835,7 +2818,7 @@ class Cases
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$users = [];
|
||||
foreach ($row as $data) {
|
||||
$obj = User::where('USR_UID', '=', $data)->Active()->first();
|
||||
@@ -3806,7 +3789,7 @@ class Cases
|
||||
* @param array $columnsList, the list of columns in the table
|
||||
* @param string $format, the user display format
|
||||
* @param string $prefix, the initial name of the columns related to the USR_FIRSTNAME USR_LASTNAME USR_USERNAME
|
||||
*
|
||||
*
|
||||
* @return array $columnSort, columns by apply the sql command ORDER BY
|
||||
*/
|
||||
public function buildOrderFieldFormatted($columnsList, $format, $prefix = 'DEL_PREVIOUS_', $validate = true)
|
||||
@@ -4109,7 +4092,7 @@ class Cases
|
||||
*/
|
||||
public function sendMail($appUid, $userUid, $note, $sendMail = false, $toUser = '')
|
||||
{
|
||||
|
||||
|
||||
$appNumber = ModelApplication::getCaseNumber($appUid);
|
||||
|
||||
// Register the note
|
||||
@@ -4124,12 +4107,12 @@ class Cases
|
||||
"NOTE_RECIPIENTS" => ""
|
||||
];
|
||||
$newNote = Notes::create($attributes);
|
||||
|
||||
|
||||
// Send the email
|
||||
if ($sendMail) {
|
||||
// Get the FK
|
||||
$noteId = $newNote->NOTE_ID;
|
||||
|
||||
|
||||
$note = G::LoadTranslation('ID_ASSIGN_NOTIFICATION', [$appNumber]) . '<br />' . G::LoadTranslation('ID_REASON') . ': ' . stripslashes($note);
|
||||
|
||||
// Send the notification
|
||||
@@ -4513,7 +4496,7 @@ class Cases
|
||||
// Return results
|
||||
return $dynaForms;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get objects that they have send it.
|
||||
* @param string $appUid
|
||||
|
||||
@@ -15,7 +15,7 @@ class Dashboard {
|
||||
* @param string $usr_uid Unique id of User
|
||||
*
|
||||
* return uid
|
||||
*
|
||||
*
|
||||
* @author Jenny Murillo <jennylee@colosa.com>
|
||||
*/
|
||||
public function getDashboardsUidByUser($usr_uid)
|
||||
@@ -82,7 +82,7 @@ class Dashboard {
|
||||
{
|
||||
require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "DashboardDasInd.php");
|
||||
$oDashboardDasInd = new \DashboardDasInd();
|
||||
|
||||
|
||||
$response = $oDashboardDasInd->loadByDashboards($das_uid);
|
||||
return $response;
|
||||
}
|
||||
@@ -116,12 +116,12 @@ class Dashboard {
|
||||
{
|
||||
require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "DashboardIndicator.php");
|
||||
$oDashboardIndicator = new \DashboardIndicator();
|
||||
|
||||
|
||||
$response = $oDashboardIndicator->load($dasInd_uid);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get dashboard indicators by das_uid
|
||||
*
|
||||
@@ -141,7 +141,7 @@ class Dashboard {
|
||||
$response = $oDashboardIndicator->loadbyDasUid($das_uid, $dateIni, $dateFin, $usrUid);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get list All dashboards
|
||||
*
|
||||
@@ -185,10 +185,6 @@ class Dashboard {
|
||||
|
||||
if ($sort != 'DASHBOARD.DAS_TITLE') {
|
||||
$sort = G::toUpper($sort);
|
||||
$columnsAppCacheView = DashboardPeer::getFieldNames(\BasePeer::TYPE_FIELDNAME);
|
||||
if (!(in_array($sort, $columnsAppCacheView))) {
|
||||
$sort = 'APP_CACHE_VIEW.APP_NUMBER';
|
||||
}
|
||||
}
|
||||
$dir = G::toUpper($dir);
|
||||
if (!($dir == 'DESC' || $dir == 'ASC')) {
|
||||
@@ -268,15 +264,15 @@ class Dashboard {
|
||||
$response['owner'] = $result['data'];
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create Dashboard
|
||||
* Create Dashboard
|
||||
*
|
||||
* @param array $arrayData Data
|
||||
*
|
||||
* return id new Dashboard created
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function createDashboard($arrayData)
|
||||
@@ -293,7 +289,7 @@ class Dashboard {
|
||||
* @param string $usr_uid
|
||||
*
|
||||
* return void
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function deletedashboard($das_uid, $usr_uid)
|
||||
@@ -309,7 +305,7 @@ class Dashboard {
|
||||
* @param array $arrayData Data
|
||||
*
|
||||
* return id new Owner created
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function createOwner($arrayData)
|
||||
@@ -322,12 +318,12 @@ class Dashboard {
|
||||
/**
|
||||
* Delete Dashboard owner
|
||||
*
|
||||
* @param string $das_uid
|
||||
* @param string $das_uid
|
||||
* @param string $owner_uid
|
||||
* * @param string $usr_uid
|
||||
*
|
||||
* return void
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function deleteDashboardOwner($das_uid, $owner_uid, $usr_uid)
|
||||
@@ -343,7 +339,7 @@ class Dashboard {
|
||||
* @param array $arrayData Data
|
||||
*
|
||||
* return id new Indicator created
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function createIndicator($arrayData)
|
||||
@@ -360,7 +356,7 @@ class Dashboard {
|
||||
* @param string $usr_uid
|
||||
*
|
||||
* return void
|
||||
*
|
||||
*
|
||||
* @author Marco Antonio Nina <marco.antonio.nina@colosa.com>
|
||||
*/
|
||||
public function delete($das_ind_uid, $usr_uid)
|
||||
@@ -369,7 +365,7 @@ class Dashboard {
|
||||
$response = $dashboard->remove($das_ind_uid, $usr_uid);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Post Dashboards User Configuration
|
||||
*
|
||||
@@ -383,7 +379,7 @@ class Dashboard {
|
||||
public function postConfigByUsr($arrayData, $usrUid)
|
||||
{
|
||||
$cnfgData[$arrayData['dashId']] = $arrayData;
|
||||
|
||||
|
||||
$data['CFG_UID'] = 'DASHBOARDS_SETTINGS';
|
||||
$data['OBJ_UID'] = '';
|
||||
$data['CFG_VALUE'] = serialize($cnfgData);
|
||||
@@ -392,11 +388,11 @@ class Dashboard {
|
||||
$data['APP_UID'] = "";
|
||||
|
||||
$oConfig = new \Configuration();
|
||||
|
||||
|
||||
$response = $oConfig->create($data);
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get Dashboard configuration by UserUid
|
||||
*
|
||||
@@ -409,16 +405,16 @@ class Dashboard {
|
||||
public function getConfig($usr_uid)
|
||||
{
|
||||
$oConfig = new \Configuration();
|
||||
|
||||
|
||||
$response = array();
|
||||
if($oConfig->exists('DASHBOARDS_SETTINGS', '', '', $usr_uid, '') == true){
|
||||
$data = $oConfig->load('DASHBOARDS_SETTINGS', '', '', $usr_uid, '');
|
||||
$response = unserialize($data['CFG_VALUE']);
|
||||
}
|
||||
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Put Dashboard configuration by UserUid
|
||||
*
|
||||
@@ -432,7 +428,7 @@ class Dashboard {
|
||||
public function putConfigByUsr($arrayData, $usrUid)
|
||||
{
|
||||
$oConfig = new \Configuration();
|
||||
|
||||
|
||||
$cnfgData = array();
|
||||
if($oConfig->exists('DASHBOARDS_SETTINGS', '', '', $usrUid, '') == true){
|
||||
$data = $oConfig->load('DASHBOARDS_SETTINGS', '', '', $usrUid, '');
|
||||
@@ -461,4 +457,3 @@ class Dashboard {
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace ProcessMaker\BusinessModel;
|
||||
|
||||
use AppCacheView;
|
||||
use AppDelegation;
|
||||
use AppDelayPeer;
|
||||
use AppDelegationPeer;
|
||||
@@ -197,7 +196,6 @@ class Light
|
||||
{
|
||||
try {
|
||||
$userUid = (isset($userId) && $userId != '') ? $userId : null;
|
||||
$oAppCache = new AppCacheView();
|
||||
|
||||
$aTypes = array();
|
||||
$aTypes['to_do'] = 'toDo';
|
||||
@@ -208,7 +206,7 @@ class Light
|
||||
$aTypes['completed'] = 'completed';
|
||||
$aTypes['selfservice'] = 'unassigned';
|
||||
|
||||
$aCount = $oAppCache->getAllCounters(array_keys($aTypes), $userUid);
|
||||
$aCount = []; // this is a placeholder because appcacheview is deprecated
|
||||
|
||||
$response = array();
|
||||
foreach ($aCount as $type => $count) {
|
||||
@@ -1383,7 +1381,7 @@ class Light
|
||||
public function getConfiguration($params)
|
||||
{
|
||||
$response = [];
|
||||
|
||||
|
||||
$sysConf = Bootstrap::getSystemConfiguration('', '', config("system.workspace"));
|
||||
$multiTimeZone = (int) ($sysConf['system_utc_time_zone']) == 1;
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace ProcessMaker\BusinessModel;
|
||||
|
||||
use AppCacheView;
|
||||
use ApplicationPeer;
|
||||
use BasePeer;
|
||||
use Bootstrap;
|
||||
@@ -1482,7 +1481,7 @@ class User
|
||||
//Query
|
||||
$criteria = $this->getUserCriteria();
|
||||
|
||||
//Remove the guest user
|
||||
//Remove the guest user
|
||||
$criteria->add(UsersPeer::USR_UID, RBAC::GUEST_USER_UID, Criteria::NOT_EQUAL);
|
||||
|
||||
if ($flagCondition && !empty($arrayWhere['condition'])) {
|
||||
@@ -1886,7 +1885,7 @@ class User
|
||||
}
|
||||
$oCriteria->add(UsersPeer::USR_STATUS, array('CLOSED'), Criteria::NOT_IN);
|
||||
|
||||
//Remove the guest user
|
||||
//Remove the guest user
|
||||
$oCriteria->add(UsersPeer::USR_UID, RBAC::GUEST_USER_UID, Criteria::NOT_EQUAL);
|
||||
|
||||
if ($authSource != '') {
|
||||
@@ -1974,7 +1973,6 @@ class User
|
||||
|
||||
//Get cases
|
||||
$oParticipated = new ListParticipatedLast();
|
||||
$oAppCache = new AppCacheView();
|
||||
|
||||
$rows = array();
|
||||
$uRole = array();
|
||||
@@ -1994,7 +1992,7 @@ class User
|
||||
$row['USR_ROLE'] = isset($uRole['ROL_NAME']) ? ($uRole['ROL_NAME'] != '' ? $uRole['ROL_NAME'] : $uRole['ROL_CODE']) : $uRole['ROL_CODE'];
|
||||
|
||||
$total = $oParticipated->getCountList($row['USR_UID']);
|
||||
|
||||
|
||||
$row['TOTAL_CASES'] = $total;
|
||||
|
||||
$row['DUE_DATE_OK'] = (date('Y-m-d') > date('Y-m-d', strtotime($row['USR_DUE_DATE']))) ? 0 : 1;
|
||||
@@ -2062,17 +2060,17 @@ class User
|
||||
}
|
||||
|
||||
/**
|
||||
* It changes the password of the user specified by its identifier, optionally
|
||||
* the value of $userLang can be sent, otherwise the system value is taken.
|
||||
* It changes the password of the user specified by its identifier, optionally
|
||||
* the value of $userLang can be sent, otherwise the system value is taken.
|
||||
* In case of success, the updated user returns.
|
||||
*
|
||||
*
|
||||
* @global object $RBAC
|
||||
* @param string $usrUid
|
||||
* @param string $usrPassword
|
||||
* @param string $userLang
|
||||
*
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
*
|
||||
* @see workflow/engine/methods/login/authentication.php
|
||||
* @see workflow/engine/methods/login/changePassword.php
|
||||
* @link https://wiki.processmaker.com/3.0/Managing_Users#Creating_New_Users
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
namespace ProcessMaker\Core;
|
||||
|
||||
use AppCacheView;
|
||||
use Archive_Tar;
|
||||
use Bootstrap;
|
||||
use Configuration;
|
||||
use Exception;
|
||||
use G;
|
||||
@@ -245,15 +243,6 @@ class Installer
|
||||
$this->log($qrv, isset($qrv['errors']));
|
||||
|
||||
require_once("propel/Propel.php");
|
||||
require_once('classes/model/AppCacheView.php');
|
||||
|
||||
$appCache = new AppCacheView();
|
||||
$appCache->setPathToAppCacheFiles(PATH_METHODS . 'setup/setupSchemas/');
|
||||
$triggers = $appCache->getTriggers('en');
|
||||
$this->log("Create 'cases list cache' triggers");
|
||||
foreach ($triggers as $triggerName => $trigger) {
|
||||
$this->runTrigger($trigger, "-> Trigger $triggerName");
|
||||
}
|
||||
|
||||
$path_site = $this->options['path_data'] . '/sites/' . $this->options['name'] . '/';
|
||||
|
||||
@@ -270,19 +259,19 @@ class Installer
|
||||
$password = $this->cc_status === 1 ? $this->options['password'] : $this->options['database']['password'];
|
||||
$db_file = $path_site . 'db.php';
|
||||
$db_text = "<?php\n"
|
||||
. "// Processmaker configuration\n"
|
||||
. " define ('DB_ADAPTER', 'mysql' );\n"
|
||||
. " define ('DB_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_NAME', '" . $wf . "' );\n"
|
||||
. " define ('DB_USER', '" . $username . "' );\n"
|
||||
. " define ('DB_PASS', '" . $password . "' );\n"
|
||||
. " define ('DB_RBAC_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_RBAC_NAME', '" . $rb . "' );\n"
|
||||
. " define ('DB_RBAC_USER', '" . $username . "' );\n"
|
||||
. " define ('DB_RBAC_PASS', '" . $password . "' );\n"
|
||||
. " define ('DB_REPORT_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_REPORT_NAME', '" . $rp . "' );\n"
|
||||
. " define ('DB_REPORT_USER', '" . $username . "' );\n"
|
||||
. "// Processmaker configuration\n"
|
||||
. " define ('DB_ADAPTER', 'mysql' );\n"
|
||||
. " define ('DB_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_NAME', '" . $wf . "' );\n"
|
||||
. " define ('DB_USER', '" . $username . "' );\n"
|
||||
. " define ('DB_PASS', '" . $password . "' );\n"
|
||||
. " define ('DB_RBAC_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_RBAC_NAME', '" . $rb . "' );\n"
|
||||
. " define ('DB_RBAC_USER', '" . $username . "' );\n"
|
||||
. " define ('DB_RBAC_PASS', '" . $password . "' );\n"
|
||||
. " define ('DB_REPORT_HOST', '" . $hostname . "' );\n"
|
||||
. " define ('DB_REPORT_NAME', '" . $rp . "' );\n"
|
||||
. " define ('DB_REPORT_USER', '" . $username . "' );\n"
|
||||
. " define ('DB_REPORT_PASS', '" . $password . "' );\n"
|
||||
. "";
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<div style="padding : 15px; width : 400px" >
|
||||
<div id="info-panel" ></div>
|
||||
<div id="errorMsg" ></div>
|
||||
<div id="main-panel" ></div>
|
||||
</div>
|
||||
@@ -1,235 +0,0 @@
|
||||
Ext.onReady(function() {
|
||||
|
||||
Ext.QuickTips.init();
|
||||
// turn on validation errors beside the field globally
|
||||
Ext.form.Field.prototype.msgTarget = 'side';
|
||||
|
||||
// Store
|
||||
var store = new Ext.data.Store( {
|
||||
proxy: new Ext.data.HttpProxy({
|
||||
url: 'appCacheViewAjax',
|
||||
method: 'POST'
|
||||
}),
|
||||
baseParams : { request : 'info'},
|
||||
reader : new Ext.data.JsonReader( {
|
||||
root : 'info',
|
||||
fields : [ {name : 'name'}, {name : 'value'} ]
|
||||
})
|
||||
});
|
||||
|
||||
// create the Grid
|
||||
var infoGrid = new Ext.grid.GridPanel( {
|
||||
store : store,
|
||||
columns : [{
|
||||
id : 'name',
|
||||
header : '',
|
||||
width : 210,
|
||||
sortable : false,
|
||||
dataIndex : 'name'
|
||||
},
|
||||
{
|
||||
header : '',
|
||||
width : 190,
|
||||
sortable : false,
|
||||
dataIndex : 'value'
|
||||
}
|
||||
],
|
||||
stripeRows : true,
|
||||
autoHeight : true,
|
||||
width : 400,
|
||||
title : _('ID_CACHE_TITLE_INFO'), // 'Workflow Applications Cache Info',
|
||||
// config options for stateful behavior
|
||||
stateful : true,
|
||||
stateId : 'gridAppCacheView',
|
||||
enableColumnHide: false,
|
||||
enableColumnResize: false,
|
||||
enableHdMenu: false
|
||||
});
|
||||
|
||||
// render the grid to the specified div in the page
|
||||
infoGrid.render('info-panel');
|
||||
|
||||
|
||||
var fsf = new Ext.FormPanel( {
|
||||
labelWidth : 105, // label settings here cascade unless overridden
|
||||
url : '',
|
||||
frame : true,
|
||||
title : ' ',
|
||||
width : 400,
|
||||
items : [ ],
|
||||
buttons : [{
|
||||
text : _('ID_CACHE_BTN_BUILD'), // 'Build Cache',
|
||||
handler : function() {
|
||||
Ext.Msg.show ({ msg : _('ID_PROCESSING'), wait:true,waitConfig: {interval:400} });
|
||||
Ext.Ajax.request({
|
||||
url: 'appCacheViewAjax',
|
||||
success: function(response) {
|
||||
store.reload();
|
||||
Ext.MessageBox.hide();
|
||||
res = Ext.decode ( response.responseText );
|
||||
Ext.Msg.alert ( '', res.msg );
|
||||
|
||||
},
|
||||
failure : function(response) {
|
||||
Ext.Msg.hide();
|
||||
Ext.Msg.alert ( _('ID_ERROR'), response.responseText );
|
||||
},
|
||||
params: {request: 'build', lang: 'en' },
|
||||
waitMsg : _('ID_CACHE_BUILDING'), // 'Building Workflow Application Cache...',
|
||||
timeout : 1000*60*30 //30 mins
|
||||
});
|
||||
}
|
||||
}]
|
||||
});
|
||||
|
||||
var txtUser = {
|
||||
id : 'txtUser',
|
||||
xtype: 'textfield',
|
||||
fieldLabel: _('ID_CACHE_USER'), // 'User',
|
||||
disabled: false,
|
||||
name: 'user',
|
||||
autoCreate: {tag: 'input', type: 'text', size: userNameMaxLength, autocomplete: 'off', maxlength: userNameMaxLength},
|
||||
allowBlank: false
|
||||
};
|
||||
|
||||
var txtHost = {
|
||||
id : 'txtHost',
|
||||
xtype: 'textfield',
|
||||
fieldLabel: _('ID_CACHE_HOST'), // 'Host',
|
||||
disabled: false,
|
||||
name: 'host',
|
||||
allowBlank: false
|
||||
};
|
||||
|
||||
var txtPasswd = {
|
||||
id : 'txtPasswd',
|
||||
inputType: 'password',
|
||||
xtype:'textfield',
|
||||
fieldLabel: _('ID_CACHE_PASSWORD'), // 'Password',
|
||||
disabled: false,
|
||||
hidden: false,
|
||||
value: ''
|
||||
};
|
||||
|
||||
var txtCode = {
|
||||
allowBlank: false,
|
||||
disabled: false,
|
||||
fieldLabel: _('ID_CAPTCHA_INPUT_CODE'),// Security Code
|
||||
id : 'txtCode',
|
||||
name: 'code',
|
||||
xtype : 'textfield'
|
||||
};
|
||||
|
||||
var onCaptchaChange = function () {
|
||||
Ext.get('cacheViewAjax').dom.src = 'appCacheViewAjax?request=captcha&t=' + Math.random();
|
||||
};
|
||||
|
||||
var refreshBtn = new Ext.Button({
|
||||
columnWidth: 0.1,
|
||||
iconCls:'x-tbar-loading',
|
||||
scale:'small',
|
||||
handler : function() {
|
||||
Ext.get('cacheViewAjax').dom.src = 'appCacheViewAjax?request=captcha&t=' + Math.random();
|
||||
}
|
||||
});
|
||||
|
||||
var boxCaptcha = new Ext.BoxComponent({
|
||||
columnWidth: 0.9,
|
||||
autoEl: {
|
||||
tag:'img',
|
||||
id: 'cacheViewAjax',
|
||||
title : _('ID_CAPTCHA_REFRESH_CODE'), //Click to refresh code
|
||||
src:'appCacheViewAjax?request=captcha&t=' + Math.random()
|
||||
}
|
||||
});
|
||||
|
||||
boxCaptcha.on('render',function (){
|
||||
var curr = Ext.get('cacheViewAjax');
|
||||
curr.on('click',onCaptchaChange,this);
|
||||
},this);
|
||||
|
||||
var captcha = {
|
||||
xtype:'fieldset',
|
||||
hideLabels: true,
|
||||
labelWidth: 0,
|
||||
width: 350,
|
||||
layout:'column',
|
||||
border:false,
|
||||
items:[
|
||||
boxCaptcha,
|
||||
refreshBtn
|
||||
]
|
||||
};
|
||||
|
||||
var fieldsetRoot = {
|
||||
xtype : 'fieldset',
|
||||
title : _('ID_CACHE_SUBTITLE_SETUP_DB'), // 'Setup MySql Root Password',
|
||||
collapsible : true,
|
||||
collapsed: true,
|
||||
autoHeight : true,
|
||||
defaults : { width : 200 },
|
||||
defaultType : 'textfield',
|
||||
items : [
|
||||
txtHost,
|
||||
txtUser,
|
||||
txtPasswd,
|
||||
captcha,
|
||||
txtCode
|
||||
],
|
||||
buttons : [{
|
||||
text : _('ID_CACHE_BTN_SETUP_PASSWRD'), // 'Setup Password',
|
||||
handler : function() {
|
||||
if (!fsf.getForm().isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Ext.Msg.show ({ msg : _('ID_PROCESSING'), wait:true,waitConfig: {interval:400} });
|
||||
Ext.Ajax.request({
|
||||
url: 'appCacheViewAjax',
|
||||
success: function(response) {
|
||||
store.reload();
|
||||
Ext.MessageBox.hide();
|
||||
Ext.Msg.alert ( '', response.responseText );
|
||||
},
|
||||
failure : function(response) {
|
||||
Ext.Msg.hide();
|
||||
Ext.Msg.alert ( _('ID_ERROR'), response.responseText );
|
||||
},
|
||||
params: { request: 'recreate-root', lang: 'en', host: Ext.getCmp('txtHost').getValue(), user: Ext.getCmp('txtUser').getValue(), password: Ext.getCmp('txtPasswd').getValue(), codeCaptcha: Ext.getCmp('txtCode').getValue() },
|
||||
// timeout : 1000
|
||||
// 30 mins
|
||||
timeout : 1000*60*30 //30 mins
|
||||
});
|
||||
}
|
||||
}]
|
||||
};
|
||||
|
||||
fsf.add(fieldsetRoot);
|
||||
fsf.render(document.getElementById('main-panel'));
|
||||
|
||||
//store.load(); instead call standard proxy we are calling ajax request, because we need to catch any error
|
||||
Ext.Ajax.request({
|
||||
url: 'appCacheViewAjax',
|
||||
success: function(response) {
|
||||
var myData = Ext.decode ( response.responseText );
|
||||
store.loadData(myData);
|
||||
if ( myData.error ) {
|
||||
Warning( _('ID_ERROR'), myData.errorMsg );
|
||||
}
|
||||
},
|
||||
failure : function(response) {
|
||||
Ext.Msg.alert ( _('ID_ERROR'), response.responseText );
|
||||
},
|
||||
params: {request: 'info' }
|
||||
});
|
||||
|
||||
}); //ExtReady
|
||||
|
||||
var Warning = function( msgTitle, msgError ) {
|
||||
var tplEl = Ext.get ('errorMsg');
|
||||
|
||||
var tplText = '<div style="font-size:12px; border: 1px solid #FF0000; background-color:#FFAAAA; display:block;' +
|
||||
' padding:10px; color:#404000;"><b>' + msgTitle + ': </b>' + msgError + '</div>';
|
||||
tplEl.update ( tplText );
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user