diff --git a/install/mods-for-hesk/ajax/task-ajax.php b/install/mods-for-hesk/ajax/task-ajax.php
index b5e3d503..4d855688 100644
--- a/install/mods-for-hesk/ajax/task-ajax.php
+++ b/install/mods-for-hesk/ajax/task-ajax.php
@@ -23,6 +23,8 @@ if ($task == 'ip-email-bans') {
print json_encode($jsonToSend);
} elseif ($task == 'migrate-bans') {
migrateBans($_POST['user']);
+} elseif ($task == 'initialize-statuses') {
+ initializeXrefTable();
} else {
$response = 'The task "'.$task.'" was not recognized. Check your spelling and try again.';
print $response;
diff --git a/install/mods-for-hesk/installModsForHesk.php b/install/mods-for-hesk/installModsForHesk.php
index b41431db..5e576af3 100644
--- a/install/mods-for-hesk/installModsForHesk.php
+++ b/install/mods-for-hesk/installModsForHesk.php
@@ -120,6 +120,10 @@ function printRow($version) {
Migrate IP / Email Bans |
Waiting... |
+
+ Initialize Statuses |
+ Waiting... |
+
diff --git a/install/mods-for-hesk/js/version-scripts.js b/install/mods-for-hesk/js/version-scripts.js
index bee321ec..f55b3614 100644
--- a/install/mods-for-hesk/js/version-scripts.js
+++ b/install/mods-for-hesk/js/version-scripts.js
@@ -62,7 +62,9 @@ function executeUpdate(version, cssclass, formattedVersion) {
success: function(data) {
markUpdateAsSuccess(cssclass, formattedVersion);
if (version == 200) {
- migrateIpEmailBans('banmigrate', cssclass);
+ migrateIpEmailBans('banmigrate', 'banmigrate');
+ } else if (version == 240) {
+ initializeStatuses('initialize-statuses', 'initialize-statuses');
} else {
processUpdates(version);
}
@@ -83,7 +85,6 @@ function migrateIpEmailBans(version, cssclass) {
data: { task: 'ip-email-bans' },
success: function(data) {
var parsedData = $.parseJSON(data);
- console.info(parsedData);
if (parsedData.status == 'ATTENTION') {
appendToInstallConsole('WARNING | Your response is needed. Please check above. |
');
markUpdateAsAttention(version);
@@ -94,11 +95,33 @@ function migrateIpEmailBans(version, cssclass) {
},
error: function(data) {
appendToInstallConsole('ERROR | ' + data.responseText + ' |
');
- markUpdateAsFailure(cssclass);
+ markUpdateAsFailure(version);
}
});
}
+function initializeStatuses(version, cssclass) {
+ startVersionUpgrade(version);
+ appendToInstallConsole('INFO | Initializing Statuses |
');
+ $.ajax({
+ type: 'POST',
+ url: 'ajax/task-ajax.php',
+ data: { task: 'initialize-statuses' },
+ success: function(data) {
+ markUpdateAsSuccess(cssclass, 'Initializing Statuses');
+ statusesInitialized();
+ },
+ error: function(data) {
+ appendToInstallConsole('ERROR | ' + data.responseText + ' |
');
+ markUpdateAsFailure(version);
+ }
+ });
+}
+
+function statusesInitialized() {
+ processUpdates(240);
+}
+
function runMigration() {
// Get user ID that is selected
diff --git a/install/mods-for-hesk/sql/installSql.php b/install/mods-for-hesk/sql/installSql.php
index a9a0af49..9f249996 100644
--- a/install/mods-for-hesk/sql/installSql.php
+++ b/install/mods-for-hesk/sql/installSql.php
@@ -584,11 +584,19 @@ function execute240Scripts() {
function initializeXrefTable() {
global $hesk_settings, $hesklang;
- /*
- * TODO:
- * 1. Get each key from the DB
- * 2. For each language, insert a xref record for the key
- */
+ $languages = array();
+ foreach ($hesk_settings['languages'] as $key => $value) {
+ $languages[$key] = $hesk_settings['languages'][$key]['folder'];
+ }
+
+ $statusesRs = executeQuery("SELECT `ID`, `Key` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses`");
+ while ($row = hesk_dbFetchAssoc($statusesRs)) {
+ foreach ($languages as $language => $languageCode) {
+ $sql = "INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` (`language`, `text`, `status_id`)
+ VALUES ('".hesk_dbEscape($language)."', '".hesk_dbEscape($hesklang[$row['Key']])."', ".intval($row['ID']).")";
+ executeQuery($sql);
+ }
+ }
}
function execute240FileUpdate() {