2013-08-30 17:56:53 +02:00
|
|
|
/*
|
|
|
|
|
2015-03-09 15:45:35 +01:00
|
|
|
Copyright 2008-2015 Clipperz Srl
|
2013-08-30 17:56:53 +02:00
|
|
|
|
|
|
|
This file is part of Clipperz, the online password manager.
|
|
|
|
For further information about its features and functionalities please
|
|
|
|
refer to http://www.clipperz.com.
|
|
|
|
|
|
|
|
* Clipperz is free software: you can redistribute it and/or modify it
|
|
|
|
under the terms of the GNU Affero General Public License as published
|
|
|
|
by the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
* Clipperz is distributed in the hope that it will be useful, but
|
|
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
* You should have received a copy of the GNU Affero General Public
|
|
|
|
License along with Clipperz. If not, see http://www.gnu.org/licenses/.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
Clipperz.Base.module('Clipperz.PM.UI.Components');
|
|
|
|
|
|
|
|
Clipperz.PM.UI.Components.Overlay = function(args) {
|
|
|
|
args = args || {};
|
|
|
|
|
|
|
|
this._defaultDelay = 2;
|
|
|
|
this._element = MochiKit.DOM.getElement('overlay');
|
|
|
|
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
Clipperz.Base.extend(Clipperz.PM.UI.Components.Overlay, Object, {
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
|
|
|
'toString': function () {
|
|
|
|
return "Clipperz.PM.UI.Components.Overlay component";
|
|
|
|
},
|
|
|
|
|
|
|
|
'element': function () {
|
|
|
|
// return MochiKit.DOM.getElement('overlay');
|
|
|
|
return this._element;
|
|
|
|
},
|
|
|
|
|
|
|
|
'getElement': function (aClass) {
|
|
|
|
return MochiKit.Selector.findChildElements(this.element(), ['.'+aClass])[0];
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2015-11-30 11:47:06 +01:00
|
|
|
'show': function (aMessage, showMask, showProgress, showOnCardDetail) {
|
2014-09-05 18:17:41 +02:00
|
|
|
if (showMask === true) {
|
2015-11-30 11:47:06 +01:00
|
|
|
this.showMask(showOnCardDetail);
|
2015-11-30 14:12:27 +01:00
|
|
|
} else {
|
|
|
|
this.hideMask();
|
2014-09-05 18:17:41 +02:00
|
|
|
}
|
|
|
|
|
2015-05-21 14:32:51 +02:00
|
|
|
if (showProgress === true) {
|
|
|
|
this.showProgressBar();
|
|
|
|
}
|
|
|
|
|
2015-11-27 16:16:58 +01:00
|
|
|
if (! aMessage && ! showProgress) {
|
|
|
|
MochiKit.DOM.addElementClass(this.element(), 'spinnerOnly');
|
|
|
|
} else {
|
|
|
|
MochiKit.DOM.removeElementClass(this.element(), 'spinnerOnly');
|
|
|
|
}
|
|
|
|
|
2015-11-30 11:47:06 +01:00
|
|
|
if (showOnCardDetail) {
|
|
|
|
MochiKit.DOM.addElementClass(this.element(), 'card');
|
|
|
|
} else {
|
|
|
|
MochiKit.DOM.removeElementClass(this.element(), 'card');
|
|
|
|
}
|
|
|
|
|
2013-08-30 17:56:53 +02:00
|
|
|
this.resetStatus();
|
|
|
|
this.setMessage(aMessage);
|
|
|
|
MochiKit.DOM.removeElementClass(this.element(), 'ios-overlay-hide');
|
|
|
|
MochiKit.DOM.addElementClass(this.element(), 'ios-overlay-show');
|
|
|
|
},
|
|
|
|
|
|
|
|
'done': function (aMessage, aDelayBeforeHiding) {
|
2014-09-05 18:17:41 +02:00
|
|
|
this.hideMask();
|
2015-05-21 14:32:51 +02:00
|
|
|
this.hideProgressBar();
|
2013-08-30 17:56:53 +02:00
|
|
|
this.completed(this.showDoneIcon, aMessage, aDelayBeforeHiding);
|
|
|
|
},
|
|
|
|
|
|
|
|
'failed': function (aMessage, aDelayBeforeHiding) {
|
|
|
|
this.completed(this.showFailIcon, aMessage, aDelayBeforeHiding);
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2014-09-05 18:17:41 +02:00
|
|
|
'maskElement': function () {
|
|
|
|
return this.getElement('mask');
|
|
|
|
},
|
|
|
|
|
2015-11-30 11:47:06 +01:00
|
|
|
'showMask': function (showOnCardDetail) {
|
|
|
|
MochiKit.DOM.removeElementClass(this.maskElement(), 'card');
|
|
|
|
|
|
|
|
if (showOnCardDetail) {
|
|
|
|
MochiKit.DOM.addElementClass(this.maskElement(), 'card');
|
|
|
|
}
|
2014-09-05 18:17:41 +02:00
|
|
|
MochiKit.DOM.removeElementClass(this.maskElement(), 'hidden');
|
|
|
|
},
|
|
|
|
|
|
|
|
'hideMask': function () {
|
|
|
|
MochiKit.DOM.addElementClass(this.maskElement(), 'hidden');
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2013-08-30 17:56:53 +02:00
|
|
|
'resetStatus': function () {
|
|
|
|
MochiKit.Style.showElement(this.element());
|
|
|
|
MochiKit.Style.showElement(this.getElement('spinner'));
|
|
|
|
MochiKit.Style.hideElement(this.getElement('done'));
|
|
|
|
MochiKit.Style.hideElement(this.getElement('failed'));
|
|
|
|
},
|
|
|
|
|
|
|
|
'setMessage': function (aMessage) {
|
|
|
|
if (typeof(aMessage) != 'undefined') {
|
|
|
|
this.getElement('title').innerHTML = aMessage;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
'completed': function (aFunctionToShowResult, aMessage, aDelayBeforeHiding) {
|
|
|
|
var delay = aDelayBeforeHiding || this.defaultDelay();
|
|
|
|
|
|
|
|
this.hideSpinner();
|
|
|
|
MochiKit.Base.bind(aFunctionToShowResult, this)();
|
|
|
|
this.setMessage(aMessage);
|
|
|
|
|
2015-05-21 14:32:51 +02:00
|
|
|
return MochiKit.Async.callLater(delay, MochiKit.Base.bind(this.hide, this))
|
2013-08-30 17:56:53 +02:00
|
|
|
},
|
|
|
|
|
2015-11-30 11:47:06 +01:00
|
|
|
'hide': function (withoutAnimationTime) {
|
|
|
|
var secondsBeforeHiding = withoutAnimationTime ? 0 : 1;
|
2013-10-02 09:59:30 +02:00
|
|
|
var element = this.element();
|
2015-05-21 14:32:51 +02:00
|
|
|
this.hideProgressBar();
|
2013-10-02 09:59:30 +02:00
|
|
|
MochiKit.DOM.removeElementClass(element, 'ios-overlay-show');
|
|
|
|
MochiKit.DOM.addElementClass(element, 'ios-overlay-hide');
|
2015-11-30 11:47:06 +01:00
|
|
|
return MochiKit.Async.callLater(secondsBeforeHiding, MochiKit.Style.hideElement, element);
|
2013-08-30 17:56:53 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
'hideSpinner': function () {
|
|
|
|
MochiKit.Style.hideElement(this.getElement('spinner'));
|
|
|
|
},
|
|
|
|
|
|
|
|
'showDoneIcon': function () {
|
|
|
|
MochiKit.Style.showElement(this.getElement('done'));
|
|
|
|
},
|
|
|
|
|
|
|
|
'showFailIcon': function () {
|
|
|
|
MochiKit.Style.showElement(this.getElement('failed'));
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2015-05-21 14:32:51 +02:00
|
|
|
'showProgressBar': function () {
|
|
|
|
MochiKit.Style.showElement(this.getElement('progressBar'));
|
|
|
|
},
|
|
|
|
|
|
|
|
'hideProgressBar': function () {
|
|
|
|
MochiKit.Style.hideElement(this.getElement('progressBar'));
|
|
|
|
},
|
|
|
|
|
|
|
|
'updateProgress': function (aProgressPercentage) {
|
|
|
|
MochiKit.Style.setElementDimensions(this.getElement('progress'), {'w': aProgressPercentage}, '%');
|
|
|
|
//console.log("OVERLAY - updating progress: " + aProgressPercentage + "%");
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
2013-08-30 17:56:53 +02:00
|
|
|
'defaultDelay': function () {
|
|
|
|
return this._defaultDelay;
|
|
|
|
},
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
__syntaxFix__: "syntax fix"
|
|
|
|
});
|
2015-03-23 18:10:09 +01:00
|
|
|
|