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('WARNINGYour 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('INFOInitializing 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() {