Still need to test this....

This commit is contained in:
Mike Koch 2017-10-04 22:03:39 -04:00
parent 62c059b384
commit 219bc18cc6
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED
2 changed files with 33 additions and 12 deletions

View File

@ -123,11 +123,9 @@ if (hesk_dbNumRows($tableSql) > 0) {
</div> </div>
<div data-step="install-or-update" class="text-center" style="display: none"> <div data-step="install-or-update" class="text-center" style="display: none">
<i class="fa fa-spin fa-spinner fa-4x"></i> <i class="fa fa-spin fa-spinner fa-4x"></i>
<div class="progress" style="display: none"> <div id="progress-bar" class="progress" style="display: none">
<div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="min-width: 2em; width: 100%"> style="width: 0">
<span class="sr-only">100% Complete</span>
100%
</div> </div>
</div> </div>
<input type="hidden" name="starting-migration-number" value="<?php echo $startingMigrationNumber; ?>"> <input type="hidden" name="starting-migration-number" value="<?php echo $startingMigrationNumber; ?>">

View File

@ -76,27 +76,50 @@ function installOrUpdate() {
console.log(data.lastMigrationNumber); console.log(data.lastMigrationNumber);
// Recursive call that will increment by 1 each time // Recursive call that will increment by 1 each time
//executeMigration(startingMigrationNumber, startingMigrationNumber, data.latestMigrationNumber); executeMigration(startingMigrationNumber, startingMigrationNumber, data.latestMigrationNumber, 'up');
} }
}) })
} }
function executeMigration(startingMigrationNumber, migrationNumber, latestMigrationNumber) { function executeMigration(startingMigrationNumber, migrationNumber, latestMigrationNumber, direction) {
var heskPath = $('p#hesk-path').text();
$.ajax({ $.ajax({
url: '', url: heskPath + 'install/ajax/process-migration.php',
method: 'POST', method: 'POST',
data: { data: {
migrationNumber: migrationNumber, migrationNumber: migrationNumber,
direction: 'up' direction: direction
}, },
success: function(data) { success: function(data) {
updateProgressBar(migrationNumber, latestMigrationNumber);
if (migrationNumber === latestMigrationNumber) { if (migrationNumber === latestMigrationNumber) {
// done updateProgressBar(migrationNumber, latestMigrationNumber, false, true);
console.log('DONE');
} else { } else {
executeMigration(startingMigrationNumber, migrationNumber + 1, latestMigrationNumber); updateProgressBar(migrationNumber, latestMigrationNumber, false, false);
var newMigrationNumber = direction === 'up' ? migrationNumber + 1 : migrationNumber - 1;
executeMigration(startingMigrationNumber, newMigrationNumber, latestMigrationNumber);
} }
},
error: function(data) {
updateProgressBar(migrationNumber, latestMigrationNumber, true, true);
console.error(data);
} }
}) })
} }
function updateProgressBar(migrationNumber, latestMigrationNumber, isError, isFinished) {
var $progressBar = $('#progress-bar');
if (isError === true) {
$progressBar.find('.progress-bar').removeClass('progress-bar-success')
.addClass('progress-bar-danger');
} else {
var percentage = Math.round(migrationNumber / latestMigrationNumber * 100);
$progressBar.find('.progress-bar').css('width', percentage + '%');
}
if (isFinished) {
$progressBar.find('.progress-bar').removeClass('active');
}
}