2015-03-19 20:48:46 -04:00
function getTasks ( ) {
2015-06-16 22:10:22 -04:00
return [ 'status-change' , 'drop-columns' ] ;
2015-03-19 20:48:46 -04:00
}
function processUninstallation ( ) {
var tasks = getTasks ( ) ;
2015-03-17 22:02:19 -04:00
//-- Change status column to default HESK values
2015-09-12 00:46:46 -04:00
tasks . forEach ( function ( task ) {
2015-03-17 22:02:19 -04:00
startUninstallation ( task ) ;
executeUninstallation ( task ) ;
} ) ;
}
function startUninstallation ( task ) {
2015-09-12 00:46:46 -04:00
$ ( '#spinner-' + task )
2015-03-19 20:48:46 -04:00
. removeClass ( 'fa-exclamation-triangle' )
. addClass ( 'fa-spinner' )
. addClass ( 'fa-pulse' ) ;
changeRowTo ( 'row' , task , 'info' ) ;
changeTextTo ( 'span' , task , 'In Progress' ) ;
}
function changeTextTo ( prefix , task , text ) {
2015-09-12 00:46:46 -04:00
$ ( '#' + prefix + '-' + task ) . text ( text ) ;
2015-03-19 20:48:46 -04:00
}
function changeRowTo ( prefix , task , clazz ) {
//-- Remove all classes
2015-09-12 00:46:46 -04:00
$ ( '#' + prefix + '-' + task )
2015-03-19 20:48:46 -04:00
. removeClass ( 'info' )
. removeClass ( 'warning' )
. removeClass ( 'danger' )
. removeClass ( 'success' ) ;
//-- Re-add the requested class
2015-09-12 00:46:46 -04:00
$ ( '#' + prefix + '-' + task ) . addClass ( clazz ) ;
2015-03-19 20:48:46 -04:00
}
function executeUninstallation ( task ) {
2015-03-17 22:02:19 -04:00
appendToInstallConsole ( '<tr><td><span class="label label-info">INFO</span></td><td>Starting task code: ' + task + '</td></tr>' ) ;
$ . ajax ( {
type : 'POST' ,
2015-03-19 20:48:46 -04:00
url : 'ajax/uninstall-database-ajax.php' ,
2015-09-12 00:46:46 -04:00
data : { task : task } ,
success : function ( data ) {
2015-03-19 20:48:46 -04:00
markUninstallAsSuccess ( task ) ;
checkForCompletion ( ) ;
2015-03-17 22:02:19 -04:00
} ,
2015-09-12 00:46:46 -04:00
error : function ( data ) {
2015-03-19 20:48:46 -04:00
if ( data . status == 400 ) {
2015-09-12 00:46:46 -04:00
appendToInstallConsole ( '<tr><td><span class="label label-danger">ERROR</span></td><td>The task <code>' + task + '</code> was not recognized. Check the value submitted and try again.</td></tr>' ) ;
2015-03-19 20:48:46 -04:00
} else {
2015-09-12 00:46:46 -04:00
appendToInstallConsole ( '<tr><td><span class="label label-danger">ERROR</span></td><td>' + data . responseText + '</td></tr>' ) ;
2015-03-19 20:48:46 -04:00
}
markUninstallAsFailure ( task ) ;
2015-03-17 22:02:19 -04:00
}
} ) ;
}
2015-03-19 20:48:46 -04:00
function checkForCompletion ( ) {
// If all rows have a .success row, installation is finished
var numberOfTasks = getTasks ( ) . length ;
var numberOfCompletions = $ ( 'tr.success' ) . length ;
if ( numberOfTasks == numberOfCompletions ) {
uninstallationFinished ( ) ;
}
}
function uninstallationFinished ( ) {
appendToInstallConsole ( '<tr><td><span class="label label-success">SUCCESS</span></td><td>Uninstallation complete</td></tr>' ) ;
var output = '<div class="panel-body">' +
'<div class="col-md-12 text-center">' +
'<i class="fa fa-check-circle fa-4x" style="color: #008000"></i><br><br>' +
'<h4>Awesome! The automated portion of uninstalling Mods for HESK has completed. ' +
2015-09-12 00:46:46 -04:00
'Please follow <a href="http://mods-for-hesk.mkochcs.com/uninstall-instructions.php" target="_blank">these instructions</a> ' +
'on the Mods for HESK website to finish uninstallation.</h4>' +
2015-03-19 20:48:46 -04:00
'</div>' +
'</div>' ;
$ ( '#uninstall-information' ) . html ( output ) ;
}
function markUninstallAsSuccess ( task ) {
removeSpinner ( task ) ;
2015-09-12 00:46:46 -04:00
$ ( '#spinner-' + task ) . addClass ( 'fa-check-circle' ) ;
2015-03-19 20:48:46 -04:00
changeTextTo ( 'span' , task , 'Completed Successfully' ) ;
changeRowTo ( 'row' , task , 'success' ) ;
appendToInstallConsole ( '<tr><td><span class="label label-success">SUCCESS</span></td><td>Uninstall for task code: <code>' + task + '</code> complete</td></tr>' ) ;
}
function markUninstallAsFailure ( task ) {
removeSpinner ( task ) ;
2015-09-12 00:46:46 -04:00
$ ( '#spinner-' + task ) . addClass ( 'fa-times-circle' ) ;
2015-03-19 20:48:46 -04:00
changeRowTo ( 'row' , task , 'danger' ) ;
changeTextTo ( 'span' , task , 'Uninstall failed! Check the console for more information' ) ;
}
function removeSpinner ( task ) {
2015-09-12 00:46:46 -04:00
$ ( '#spinner-' + task )
2015-03-19 20:48:46 -04:00
. removeClass ( 'fa-pulse' )
. removeClass ( 'fa-spinner' ) ;
}
2015-03-17 22:02:19 -04:00
jQuery ( document ) . ready ( loadJquery ) ;