From ef68436ac04da078ffdcacd7e1f785473a303d45 Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Sun, 02 Oct 2011 23:56:18 +0000 Subject: First version of the newly restructured repository --- (limited to 'frontend/beta/js/Clipperz/PM/Components/MessageBox.js') diff --git a/frontend/beta/js/Clipperz/PM/Components/MessageBox.js b/frontend/beta/js/Clipperz/PM/Components/MessageBox.js new file mode 100644 index 0000000..d2bc09a --- a/dev/null +++ b/frontend/beta/js/Clipperz/PM/Components/MessageBox.js @@ -0,0 +1,224 @@ +/* + +Copyright 2008-2011 Clipperz Srl + +This file is part of Clipperz's Javascript Crypto Library. +Javascript Crypto Library provides web developers with an extensive +and efficient set of cryptographic functions. The library aims to +obtain maximum execution speed while preserving modularity and +reusability. +For further information about its features and functionalities please +refer to http://www.clipperz.com + +* Javascript Crypto Library 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. + +* Javascript Crypto Library 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 Javascript Crypto Library. If not, see + . + +*/ + +if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } +if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } +if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; } + + + +Clipperz.PM.Components.MessageBoxImplementation = function() { + this._step = 0; + this._steps = 0; + + return this; +}; + +//YAHOO.extendX(Clipperz.PM.Components.MessageBoxImplementation, Clipperz.PM.Components.BaseComponent, { +Clipperz.PM.Components.MessageBoxImplementation.prototype = MochiKit.Base.update(null, { + + 'toString': function() { + return "Clipperz.PM.Components.MessageBox"; + }, + + //----------------------------------------------------- + + 'step': function() { + return this._step; + }, + + 'setStep': function(aValue) { + if (aValue == 'next') { + this._step = this._step + 1; + } else { + this._step = aValue; + } + + if (this._step > this.steps()) { +//MochiKit.Logging.logDebug("overstepping: " + this._step + " (" + this.steps() + ")"); + this._step = this.steps(); + } + }, + + //----------------------------------------------------- + + 'steps': function() { + return this._steps; + }, + + 'setSteps': function(aValue) { + if (aValue.constructor == String) { + if (aValue.charAt(0) == '+') { + this._steps += aValue.substring(1)*1; + } else if (aValue.charAt(0) == '-') { + this._steps -= aValue.substring(1)*1; + } else { + this._steps = aValue.substring(1)*1; + } + } else { + this._steps = aValue; + } + }, + + //----------------------------------------------------- + + 'deferredShow': function(aConfiguration, anAnimationTargetElement, aValue) { + this.show(aConfiguration, anAnimationTargetElement); + + return aValue; + }, + + 'show': function(aConfiguration, anAnimationTargetElement) { + var messageBoxConfiguration; + + messageBoxConfiguration = MochiKit.Base.clone(aConfiguration); + messageBoxConfiguration.msg = messageBoxConfiguration.text; + messageBoxConfiguration.animEl = anAnimationTargetElement; + messageBoxConfiguration.progress = messageBoxConfiguration.showProgressBar; + messageBoxConfiguration.closable = messageBoxConfiguration.showCloseButton; + this.setSteps(aConfiguration.steps || 0); + this.setStep(aConfiguration.step || 0); + delete messageBoxConfiguration.buttons; + + Clipperz.YUI.MessageBox.show(messageBoxConfiguration); + }, + + //----------------------------------------------------- + + 'update': function(someValues) { +//MochiKit.Logging.logDebug(">>> MessageBox.update"); + if (someValues.title) { + Clipperz.YUI.MessageBox.getDialog().setTitle(someValues.title); + }; + + if (someValues.text) { + Clipperz.YUI.MessageBox.updateText(someValues.text); + }; + + if (typeof(someValues.showProgressBar) != 'undefined') { + Clipperz.YUI.MessageBox.progressElement().setDisplayed(someValues.showProgressBar); + Clipperz.YUI.MessageBox.updateProgress(0); + }; + + if (typeof(someValues.steps) != 'undefined') { + this.setSteps(someValues.steps); + }; + + if (typeof(someValues.step) != 'undefined') { + this.setStep(someValues.step); + } else { + this.setStep('next'); + } + Clipperz.YUI.MessageBox.updateProgress(this.step() / this.steps()); + + + if (typeof(someValues.fn) != 'undefined') { + Clipperz.YUI.MessageBox.opt().fn = someValues.fn; + }; + + if (typeof(someValues.scope) != 'undefined') { + Clipperz.YUI.MessageBox.opt().scope = someValues.scope; + }; + + if (someValues.buttons) { + Clipperz.YUI.MessageBox.updateButtons(someValues.buttons); + }; + +// if (someValues.title) { +// Clipperz.YUI.MessageBox.getDialog().setTitle(someValues.title + " [" + this.step() + " / " + this.steps() + "]"); +// }; + +//MochiKit.Logging.logDebug("--- MessageBox.update - step: " + this.step() + " / " + this.steps() + " - " + someValues.text); +//MochiKit.Logging.logDebug("<<< MessageBox.update"); + }, + + //----------------------------------------------------- + + 'hide': function(anAnimationTargetElement) { + if (anAnimationTargetElement) { + Clipperz.YUI.MessageBox.getDialog().animateTarget = anAnimationTargetElement; + } + + Clipperz.YUI.MessageBox.hide(); + }, + + //----------------------------------------------------- + __syntaxFix__: '__syntaxFix__' +}); + + +//########################################################## + +_clipperz_pm_components_messageBox = null; + +Clipperz.PM.Components.MessageBox = function() { + if (_clipperz_pm_components_messageBox == null) { + _clipperz_pm_components_messageBox = new Clipperz.PM.Components.MessageBoxImplementation(); + } + + return _clipperz_pm_components_messageBox; +} + +//--------------------------------------------------------- + +Clipperz.PM.Components.MessageBox.showProgressPanel = function(aCallback, anErrback, anActivationItem) { + var deferredResult; + + deferredResult = new MochiKit.Async.Deferred(); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Clipperz.PM.Components.MessageBox.showProgressPanel - 0: " + res); return res;}); + deferredResult.addCallback(MochiKit.Base.method(Clipperz.PM.Components.MessageBox(), 'deferredShow'), + { + title: "", + text: "", + width:240, + showProgressBar:true, + showCloseButton:false, + fn:MochiKit.Base.method(deferredResult, 'cancel'), + scope:this, + buttons:{ + // 'ok':Clipperz.PM.Strings['loginMessagePanelInitialButtonLabel'] + } + }, + anActivationItem + ); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Clipperz.PM.Components.MessageBox.showProgressPanel - 1: " + res); return res;}); + deferredResult.addCallback(aCallback); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Clipperz.PM.Components.MessageBox.showProgressPanel - 2: " + res); return res;}); + deferredResult.addCallback(MochiKit.Async.wait, 0.5); + deferredResult.addCallback(function(res) { + Clipperz.PM.Components.MessageBox().hide(YAHOO.ext.Element.get(anActivationItem)); + return res; + }); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Clipperz.PM.Components.MessageBox.showProgressPanel - 3: " + res); return res;}); + deferredResult.addErrback(anErrback); +//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("Clipperz.PM.Components.MessageBox.showProgressPanel - 4: " + res); return res;}); + deferredResult.callback(); + + return deferredResult; +}; + -- cgit v0.9.0.2