#209 Write migration to populate the xref table

merge-requests/2/head
Mike Koch 9 years ago
parent 6be1d32a54
commit 98ee61ff6d

@ -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;

@ -120,6 +120,10 @@ function printRow($version) {
<td>Migrate IP / Email Bans</td>
<td><i id="spinner-banmigrate" class="fa fa-spinner"></i> <span id="span-banmigrate">Waiting...</span></td>
</tr>
<tr id="row-initialize-statuses">
<td>Initialize Statuses</td>
<td><i id="spinner-initialize-statuses" class="fa fa-spinner"></i> <span id="span-initialize-statuses">Waiting...</span></td>
</tr>
</tbody>
</table>
<?php } ?>

@ -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('<tr><td><span class="label label-warning">WARNING</span></td><td>Your response is needed. Please check above.</td></tr>');
markUpdateAsAttention(version);
@ -94,11 +95,33 @@ function migrateIpEmailBans(version, cssclass) {
},
error: function(data) {
appendToInstallConsole('<tr><td><span class="label label-danger">ERROR</span></td><td>' + data.responseText + '</td></tr>');
markUpdateAsFailure(cssclass);
markUpdateAsFailure(version);
}
});
}
function initializeStatuses(version, cssclass) {
startVersionUpgrade(version);
appendToInstallConsole('<tr><td><span class="label label-info">INFO</span></td><td>Initializing Statuses</td></tr>');
$.ajax({
type: 'POST',
url: 'ajax/task-ajax.php',
data: { task: 'initialize-statuses' },
success: function(data) {
markUpdateAsSuccess(cssclass, 'Initializing Statuses');
statusesInitialized();
},
error: function(data) {
appendToInstallConsole('<tr><td><span class="label label-danger">ERROR</span></td><td>' + data.responseText + '</td></tr>');
markUpdateAsFailure(version);
}
});
}
function statusesInitialized() {
processUpdates(240);
}
function runMigration() {
// Get user ID that is selected

@ -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() {

Loading…
Cancel
Save