You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.2 KiB
69 lines
2.2 KiB
YUI.add('moodle-core-maintenancemodetimer', function (Y, NAME) {
|
|
|
|
/**
|
|
* Maintenance mode timer display.
|
|
*
|
|
* @module moodle-core-maintenancemodetimer
|
|
*/
|
|
var MAINTENANCEMODETIMER = function() {
|
|
MAINTENANCEMODETIMER.superclass.constructor.apply(this, arguments);
|
|
};
|
|
|
|
Y.extend(MAINTENANCEMODETIMER, Y.Base, {
|
|
timeleftinsec: 0,
|
|
maintenancenode: Y.one('.box.maintenancewarning'),
|
|
|
|
/**
|
|
* Initialise timer if maintenancemode set.
|
|
*
|
|
* @method initializer
|
|
* @param config {Array} array with timeleftinsec set.
|
|
*/
|
|
initializer: function(config) {
|
|
if (this.maintenancenode) {
|
|
this.timeleftinsec = config.timeleftinsec;
|
|
this.maintenancenode.setAttribute('aria-live', 'polite');
|
|
Y.later(1000, this, 'updatetimer', null, true);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Decrement time left and update display text.
|
|
*
|
|
* @method updatetimer
|
|
*/
|
|
updatetimer: function() {
|
|
this.timeleftinsec -= 1;
|
|
if (this.timeleftinsec <= 0) {
|
|
this.maintenancenode.set('text', M.util.get_string('sitemaintenance', 'admin'));
|
|
} else {
|
|
var a = {};
|
|
a.sec = this.timeleftinsec % 60;
|
|
a.min = Math.floor(this.timeleftinsec / 60) % 60;
|
|
a.hour = Math.floor(this.timeleftinsec / 3600);
|
|
if (a.hour > 0) {
|
|
this.maintenancenode.set('text', M.util.get_string('maintenancemodeisscheduledlong', 'admin', a));
|
|
} else {
|
|
this.maintenancenode.set('text', M.util.get_string('maintenancemodeisscheduled', 'admin', a));
|
|
}
|
|
}
|
|
// Set error class to highlight the importance.
|
|
if (this.timeleftinsec < 30) {
|
|
this.maintenancenode.addClass('alert-error')
|
|
.addClass('alert-danger')
|
|
.removeClass('alert-warning');
|
|
} else {
|
|
this.maintenancenode.addClass('alert-warning')
|
|
.removeClass('alert-error')
|
|
.removeClass('alert-danger');
|
|
}
|
|
}
|
|
});
|
|
|
|
M.core = M.core || {};
|
|
M.core.maintenancemodetimer = M.core.maintenancemodetimer || function(config) {
|
|
return new MAINTENANCEMODETIMER(config);
|
|
};
|
|
|
|
|
|
}, '@VERSION@', {"requires": ["base", "node"]});
|
|
|