BUG 9040 "The Task column doesn't update whith the last changes on..." SOLVED
- The APP_CACHE_VIEW table does not contain the changes made in the CONTENT table when you rename processes/tasks - The name change in processes/tasks is now reflected in the APP_CACHE_VIEW table - Note.- The APP_CACHE_VIEW table contains values ..for only one language
This commit is contained in:
@@ -427,6 +427,7 @@ class workspaceTools {
|
||||
$triggers[] = $appCache->triggerAppDelegationUpdate($lang, $checkOnly);
|
||||
$triggers[] = $appCache->triggerApplicationUpdate($lang, $checkOnly);
|
||||
$triggers[] = $appCache->triggerApplicationDelete($lang, $checkOnly);
|
||||
$triggers[] = $appCache->triggerContentUpdate($lang, $checkOnly);
|
||||
|
||||
if ($fill) {
|
||||
CLI::logging("-> Filling cache view\n");
|
||||
|
||||
@@ -1066,7 +1066,7 @@ class AppCacheView extends BaseAppCacheView {
|
||||
if ( ! $found ) {
|
||||
$filenameSql = $this->pathToAppCacheFiles . '/triggerApplicationUpdate.sql';
|
||||
if ( !file_exists ( $filenameSql ) )
|
||||
throw ( new Exception ( "file triggerAppDelegationUpdate.sql doesn't exist ") );
|
||||
throw ( new Exception ( "file triggerApplicationUpdate.sql doesn't exist ") );
|
||||
$sql = file_get_contents ( $filenameSql );
|
||||
$sql = str_replace('{lang}', $lang, $sql);
|
||||
$stmt->executeQuery($sql);
|
||||
@@ -1103,7 +1103,7 @@ class AppCacheView extends BaseAppCacheView {
|
||||
if ( ! $found ) {
|
||||
$filenameSql = $this->pathToAppCacheFiles . '/triggerApplicationDelete.sql';
|
||||
if ( !file_exists ( $filenameSql ) )
|
||||
throw ( new Exception ( "file triggerAppDelegationDelete.sql doesn't exist") );
|
||||
throw ( new Exception ( "file triggerApplicationDelete.sql doesn't exist") );
|
||||
$sql = file_get_contents ( $filenameSql );
|
||||
$sql = str_replace('{lang}', $lang, $sql);
|
||||
$stmt->executeQuery($sql);
|
||||
@@ -1111,6 +1111,45 @@ class AppCacheView extends BaseAppCacheView {
|
||||
}
|
||||
return 'exists';
|
||||
}
|
||||
|
||||
function triggerContentUpdate($lang, $recreate = false)
|
||||
{
|
||||
$cnn = Propel::getConnection("workflow");
|
||||
$stmt = $cnn->createStatement();
|
||||
|
||||
$rs = $stmt->executeQuery("Show TRIGGERS", ResultSet::FETCHMODE_ASSOC);
|
||||
$found = false;
|
||||
|
||||
while ($rs->next()) {
|
||||
$row = $rs->getRow();
|
||||
|
||||
if (strtolower($row["Trigger"] == "CONTENT_UPDATE") && strtoupper($row["Table"]) == "CONTENT") {
|
||||
$found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($recreate) {
|
||||
$rs = $stmt->executeQuery("DROP TRIGGER IF EXISTS CONTENT_UPDATE");
|
||||
$found = false;
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
$filenameSql = $this->pathToAppCacheFiles . PATH_SEP . "triggerContentUpdate.sql";
|
||||
|
||||
if (!file_exists($filenameSql)) {
|
||||
throw (new Exception("file triggerContentUpdate.sql doesn't exist"));
|
||||
}
|
||||
|
||||
$sql = file_get_contents($filenameSql);
|
||||
$sql = str_replace("{lang}", $lang, $sql);
|
||||
|
||||
$stmt->executeQuery($sql);
|
||||
|
||||
return "created";
|
||||
}
|
||||
|
||||
return "exists";
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the SQL code to create the APP_CACHE_VIEW triggers.
|
||||
@@ -1122,7 +1161,8 @@ class AppCacheView extends BaseAppCacheView {
|
||||
'triggerApplicationDelete.sql',
|
||||
'triggerApplicationUpdate.sql',
|
||||
'triggerAppDelegationUpdate.sql',
|
||||
'triggerAppDelegationInsert.sql');
|
||||
'triggerAppDelegationInsert.sql',
|
||||
'triggerContentUpdate.sql');
|
||||
$triggers = array();
|
||||
foreach ($triggerFiles as $triggerFile) {
|
||||
$trigger = file_get_contents("{$this->pathToAppCacheFiles}/$triggerFile");
|
||||
|
||||
@@ -718,11 +718,13 @@ class Installer extends Controller
|
||||
if (file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationUpdate.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql')) {
|
||||
file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerContentUpdate.sql')) {
|
||||
$this->mysqlQuery(@file_get_contents(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationInsert.sql'));
|
||||
$this->mysqlQuery(@file_get_contents(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerAppDelegationUpdate.sql'));
|
||||
$this->mysqlQuery(@file_get_contents(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationUpdate.sql'));
|
||||
$this->mysqlQuery(@file_get_contents(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerApplicationDelete.sql'));
|
||||
$this->mysqlQuery(@file_get_contents(PATH_HOME . 'engine/methods/setup/setupSchemas/triggerContentUpdate.sql'));
|
||||
$this->mysqlQuery("INSERT INTO `CONFIGURATION` (
|
||||
`CFG_UID`,
|
||||
`CFG_VALUE`
|
||||
@@ -792,6 +794,9 @@ class Installer extends Controller
|
||||
//APPLICATION DELETE
|
||||
$res = $appCache->triggerApplicationDelete($lang, true);
|
||||
|
||||
//CONTENT UPDATE
|
||||
$res = $appCache->triggerContentUpdate($lang, true);
|
||||
|
||||
//build using the method in AppCacheView Class
|
||||
$res = $appCache->fillAppCacheView($lang);
|
||||
|
||||
@@ -978,11 +983,13 @@ class Installer extends Controller
|
||||
if (file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerAppDelegationInsert.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerAppDelegationUpdate.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationUpdate.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationDelete.sql')) {
|
||||
file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationDelete.sql') &&
|
||||
file_exists(PATH_HOME . 'engine/plugins/enterprise/data/triggerContentUpdate.sql')) {
|
||||
$this->mssqlQuery(@file_get_contents(PATH_HOME . 'engine/plugins/enterprise/data/triggerAppDelegationInsert.sql'));
|
||||
$this->mssqlQuery(@file_get_contents(PATH_HOME . 'engine/plugins/enterprise/data/triggerAppDelegationUpdate.sql'));
|
||||
$this->mssqlQuery(@file_get_contents(PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationUpdate.sql'));
|
||||
$this->mssqlQuery(@file_get_contents(PATH_HOME . 'engine/plugins/enterprise/data/triggerApplicationDelete.sql'));
|
||||
$this->mssqlQuery(@file_get_contents(PATH_HOME . 'engine/plugins/enterprise/data/triggerContentUpdate.sql'));
|
||||
$this->mssqlQuery("INSERT INTO CONFIGURATION (
|
||||
CFG_UID,
|
||||
CFG_VALUE
|
||||
|
||||
@@ -102,6 +102,10 @@
|
||||
//APPLICATION DELETE
|
||||
$res = $appCache->triggerApplicationDelete($lang, false);
|
||||
$result->info[] = array ('name' => 'Trigger APPLICATION DELETE', 'value'=> $res);
|
||||
|
||||
//CONTENT UPDATE
|
||||
$res = $appCache->triggerContentUpdate($lang, false);
|
||||
$result->info[] = array("name" => "Trigger CONTENT UPDATE", "value" => $res);
|
||||
|
||||
//show language
|
||||
$result->info[] = array ('name' => 'Language', 'value'=> $lang );
|
||||
@@ -152,7 +156,10 @@
|
||||
//APPLICATION DELETE
|
||||
$res = $appCache->triggerApplicationDelete($lang, true);
|
||||
//$result->info[] = array ('name' => 'Trigger APPLICATION DELETE', 'value'=> $res);
|
||||
|
||||
|
||||
//CONTENT UPDATE
|
||||
$res = $appCache->triggerContentUpdate($lang, true);
|
||||
//$result->info[] = array("name" => "Trigger CONTENT UPDATE", "value" => $res);
|
||||
|
||||
//build using the method in AppCacheView Class
|
||||
$res = $appCache->fillAppCacheView($lang);
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
CREATE TRIGGER CONTENT_UPDATE BEFORE UPDATE ON CONTENT
|
||||
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
|
||||
DECLARE str TEXT;
|
||||
|
||||
IF (NEW.CON_VALUE IS NULL) THEN
|
||||
SET str = '';
|
||||
ELSE
|
||||
SET str = NEW.CON_VALUE;
|
||||
END IF;
|
||||
|
||||
CASE (NEW.CON_CATEGORY)
|
||||
WHEN 'APP_TITLE' THEN
|
||||
BEGIN
|
||||
UPDATE APP_CACHE_VIEW
|
||||
SET APP_TITLE = str
|
||||
WHERE APP_UID = NEW.CON_ID;
|
||||
END;
|
||||
|
||||
WHEN 'PRO_TITLE' THEN
|
||||
BEGIN
|
||||
UPDATE APP_CACHE_VIEW
|
||||
SET APP_PRO_TITLE = str
|
||||
WHERE PRO_UID = NEW.CON_ID;
|
||||
END;
|
||||
|
||||
WHEN 'TAS_TITLE' THEN
|
||||
BEGIN
|
||||
UPDATE APP_CACHE_VIEW
|
||||
SET APP_TAS_TITLE = str
|
||||
WHERE TAS_UID = NEW.CON_ID;
|
||||
END;
|
||||
|
||||
ELSE
|
||||
BEGIN
|
||||
END;
|
||||
END CASE;
|
||||
|
||||
END;
|
||||
Reference in New Issue
Block a user