mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-12-29 19:12:26 +08:00
4cc2207513
Original unminified source code (dev folder - js, css, less) (fixes #6) Grunt build system Multiple identities correction (fixes #9) Compose html editor (fixes #12) New general settings - Loading Description New warning about default admin password Split general and login screen settings
142 lines
3.2 KiB
JavaScript
142 lines
3.2 KiB
JavaScript
/*! RainLoop Simple Pace v1.0 (c) 2013 RainLoop Team; Licensed under MIT */
|
|
(function (window) {
|
|
|
|
/**
|
|
* @constructor
|
|
*/
|
|
function Bar() {
|
|
var self = this;
|
|
|
|
self.el = null;
|
|
self.done = false;
|
|
self.progress = 0;
|
|
self.addInterval = 0;
|
|
self.addSpeed = 3;
|
|
self.stopProgress = 100;
|
|
self.interval = window.setInterval(function () {
|
|
var oEl = self.build();
|
|
if (oEl)
|
|
{
|
|
window.clearInterval(self.interval);
|
|
}
|
|
}, 100);
|
|
}
|
|
|
|
Bar.prototype.startAddInterval = function () {
|
|
var self = this;
|
|
self.stopAddInterval();
|
|
self.addInterval = window.setInterval(function () {
|
|
if (0 < self.progress && self.stopProgress > self.progress)
|
|
{
|
|
self.add(self.addSpeed);
|
|
}
|
|
}, 500);
|
|
};
|
|
|
|
Bar.prototype.stopAddInterval = function () {
|
|
window.clearInterval(this.addInterval);
|
|
this.addInterval = 0;
|
|
};
|
|
|
|
Bar.prototype.build = function () {
|
|
if (null === this.el)
|
|
{
|
|
var oTargetElement = document.querySelector('body');
|
|
if (oTargetElement)
|
|
{
|
|
this.el = document.createElement('div');
|
|
this.el.className = 'simple-pace simple-pace-active';
|
|
this.el.innerHTML = '<div class="simple-pace-progress"><div class="simple-pace-progress-inner"></div></div><div class="simple-pace-activity"></div>';
|
|
|
|
if (oTargetElement.firstChild)
|
|
{
|
|
oTargetElement.insertBefore(this.el, oTargetElement.firstChild);
|
|
}
|
|
else
|
|
{
|
|
oTargetElement.appendChild(this.el);
|
|
}
|
|
}
|
|
}
|
|
|
|
return this.el;
|
|
};
|
|
|
|
Bar.prototype.reset = function () {
|
|
this.progress = 0;
|
|
return this.render();
|
|
};
|
|
|
|
Bar.prototype.update = function (iProg) {
|
|
var iP = window.parseInt(iProg, 10);
|
|
if (iP > this.progress)
|
|
{
|
|
this.progress = iP;
|
|
this.progress = 100 < this.progress ? 100 : this.progress;
|
|
this.progress = 0 > this.progress ? 0 : this.progress;
|
|
}
|
|
|
|
return this.render();
|
|
};
|
|
|
|
Bar.prototype.add = function (iProg) {
|
|
this.progress += window.parseInt(iProg, 10);
|
|
this.progress = 100 < this.progress ? 100 : this.progress;
|
|
this.progress = 0 > this.progress ? 0 : this.progress;
|
|
|
|
return this.render();
|
|
};
|
|
|
|
Bar.prototype.setSpeed = function (iSpeed, iStopProgress) {
|
|
this.addSpeed = iSpeed;
|
|
this.stopProgress = iStopProgress || 100;
|
|
};
|
|
|
|
Bar.prototype.render = function () {
|
|
var oEl = this.build();
|
|
if (oEl && oEl.children && oEl.children[0])
|
|
{
|
|
oEl.children[0].setAttribute('style', 'width:' + this.progress + '%');
|
|
}
|
|
|
|
if (100 === this.progress && !this.done)
|
|
{
|
|
this.done = true;
|
|
this.stopAddInterval();
|
|
|
|
window.setTimeout(function () {
|
|
oEl.className = oEl.className.replace('simple-pace-active', '');
|
|
oEl.className += ' simple-pace-inactive';
|
|
}, 500);
|
|
}
|
|
else if (100 > this.progress && this.done)
|
|
{
|
|
this.done = false;
|
|
this.startAddInterval();
|
|
|
|
oEl.className = oEl.className.replace('simple-pace-inactive', '');
|
|
oEl.className += ' simple-pace-inactive';
|
|
}
|
|
else if (100 > this.progress && !this.done && 0 === this.addInterval)
|
|
{
|
|
this.startAddInterval();
|
|
}
|
|
};
|
|
|
|
if (!window['SimplePace'])
|
|
{
|
|
var oBar = new Bar();
|
|
window['SimplePace'] = {
|
|
'sleep': function () {
|
|
oBar.setSpeed(2, 95);
|
|
},
|
|
'set': function (iValue) {
|
|
oBar.update(iValue);
|
|
},
|
|
'add': function (iValue) {
|
|
oBar.add(iValue);
|
|
}
|
|
};
|
|
}
|
|
}(window));
|
|
|