67 lines
2.9 KiB
JavaScript
67 lines
2.9 KiB
JavaScript
// Copyright 1999-2017. Plesk International GmbH. All Rights Reserved.
|
|
|
|
function updateSessionStatus(session_id, sessionStatusInfo)
|
|
{
|
|
var blockNotStarted = sessionElement(session_id, 'block-not-started');
|
|
var blockInProgress = sessionElement(session_id, 'block-in-progress');
|
|
var blockAllMigrated = sessionElement(session_id, 'block-all-migrated');
|
|
var blockMigrated = sessionElement(session_id, 'block-migrated');
|
|
var allBlocks = [blockNotStarted, blockInProgress, blockAllMigrated, blockMigrated];
|
|
|
|
if (!sessionStatusInfo.started) {
|
|
showOnly(allBlocks, blockNotStarted);
|
|
} else if (sessionStatusInfo.queueSubscriptions > 0) {
|
|
showOnly(allBlocks, blockInProgress);
|
|
var progressPercentage = Math.round(
|
|
100 * sessionStatusInfo.queueFinishedSubscriptions / sessionStatusInfo.queueSubscriptions
|
|
);
|
|
sessionElement(session_id, 'progress-bar').setStyle(
|
|
{'width': progressPercentage + "%"}
|
|
);
|
|
sessionElement(session_id, 'text-in-progress').update(
|
|
formatMessage(
|
|
MESSAGE_SUBSCRIPTIONS_IN_PROGRESS,
|
|
sessionStatusInfo.queueFinishedSubscriptions,
|
|
sessionStatusInfo.queueSubscriptions
|
|
)
|
|
);
|
|
} else if (sessionStatusInfo.totalSourceSubscriptions == sessionStatusInfo.totalMigratedSubscriptions) {
|
|
showOnly(allBlocks, blockAllMigrated);
|
|
sessionElement(session_id, 'text-all-migrated').update(
|
|
formatMessage(MESSAGE_ALL_SUBSCRIPTIONS_MIGRATED, sessionStatusInfo.totalSourceSubscriptions)
|
|
);
|
|
} else {
|
|
showOnly(allBlocks, blockMigrated);
|
|
sessionElement(session_id, 'text-migrated').update(
|
|
formatMessage(MESSAGE_SUBSCRIPTIONS_MIGRATED, sessionStatusInfo.totalMigratedSubscriptions)
|
|
);
|
|
}
|
|
}
|
|
|
|
function periodicUpdateSessionStatus(session_id)
|
|
{
|
|
new Ajax.Request(URL_GET_SESSION_STATUS + '/session/' + session_id, {
|
|
onSuccess: function(response) {
|
|
var sessionStatusInfo = response.responseText.evalJSON();
|
|
updateSessionStatus(session_id, sessionStatusInfo);
|
|
if (sessionStatusInfo.queueSubscriptions > 0) {
|
|
// continue polling status for session in progress, don't poll status for all the others as
|
|
// it is unlikely that they will be started, and it could take much time to poll status
|
|
// of all sessions
|
|
setTimeout(function () {
|
|
periodicUpdateSessionStatus(session_id)
|
|
}, SESSION_PROGRESS_UPDATE_INTERVAL);
|
|
}
|
|
},
|
|
onFailure: function() {
|
|
setTimeout(function () {
|
|
periodicUpdateSessionStatus(session_id)
|
|
}, SESSION_PROGRESS_UPDATE_INTERVAL);
|
|
}
|
|
});
|
|
}
|
|
|
|
function sessionElement(session_id, element_id)
|
|
{
|
|
return $(element_id + "-" + session_id);
|
|
} |