From 541bb378ddece2eab135a8066a16994e94436dea Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Mon, 03 Oct 2011 16:04:12 +0000 Subject: Merge pull request #1 from gcsolaroli/master First version of the restructured repository --- (limited to 'frontend/beta/js/Clipperz/PM/DataModel/DirectLoginInput.js') diff --git a/frontend/beta/js/Clipperz/PM/DataModel/DirectLoginInput.js b/frontend/beta/js/Clipperz/PM/DataModel/DirectLoginInput.js new file mode 100644 index 0000000..3302ed6 --- a/dev/null +++ b/frontend/beta/js/Clipperz/PM/DataModel/DirectLoginInput.js @@ -0,0 +1,229 @@ +/* + +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.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } + +//############################################################################# + +Clipperz.PM.DataModel.DirectLoginInput = function(aDirectLogin, args) { + args = args || {}; + +//console.log(">>> new DirectLoginInput - args: %o" + args); + this._directLogin = aDirectLogin; + this._args = args; + + return this; +} + +Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, { + + 'directLogin': function() { + return this._directLogin; + }, + + //------------------------------------------------------------------------- + + 'args': function() { + return this._args; + }, + + //------------------------------------------------------------------------- + + 'name': function() { + return this.args()['name']; + }, + + //------------------------------------------------------------------------- + + 'type': function() { + var result; + + result = this.args()['type']; + + if (result != null) { + result = result.toLowerCase(); + } + return result; + }, + + //------------------------------------------------------------------------- + + 'value': function() { + return this.args()['value']; + }, + + //------------------------------------------------------------------------- + + 'formConfiguration': function() { + var result; + +//MochiKit.Logging.logDebug(">>> DirectLoginInput.formConfiguration - " + this.name()); + if (this.shouldSetValue()) { +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 1"); + switch (this.type()) { + case 'select': + var currentValue; + var options; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2"); + currentValue = this.directLogin().formValues()[this.name()]; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.1"); + options = this.args()['options']; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.2"); + + result = MochiKit.DOM.SELECT({name:this.name()}, + MochiKit.Base.map(function(anOption) { + var options; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.3"); +// TODO: remove the value: field and replace it with element.dom.value = + options = {value:anOption['value']}; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.4"); + if (currentValue == anOption['value']) { +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.5"); + options.selected = true; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.6"); + } +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.7"); + + return MochiKit.DOM.OPTION(options, anOption['label']) + }, options) + ) +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 2.8"); + break; + case 'checkbox': + var options; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 3"); + options = {type:'checkbox', name: this.name()}; + if (this.directLogin().formValues()[this.name()] == true) { + options['checked'] = true; + }; + + result = MochiKit.DOM.INPUT(options, null); + break; + case 'radio': + var currentName; + var currentValue; + var options; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4"); + currentName = this.name(); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.1"); + currentValue = this.directLogin().formValues()[this.name()]; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.2"); + options = this.args()['options']; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.3"); + + result = MochiKit.DOM.DIV(null, + MochiKit.Base.map(function(anOption) { + var options; + var isChecked; + var inputNode; + var divNode; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.4"); +// TODO: remove the value: field and replace it with element.dom.value = + options = {type:'radio', name:currentName, value:anOption['value']} + isChecked = (currentValue == anOption['value']); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.5"); + if (isChecked) { +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.6"); + options.checked = true; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.7"); + } +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8 - options: " + Clipperz.Base.serializeJSON(options)); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8 - value: " + anOption['value']); + + if (Clipperz_IEisBroken == true) { + var checkedValue; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8.1"); + checkedValue = (isChecked ? " CHECKED" : ""); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8.2"); + inputNode = MochiKit.DOM.currentDocument().createElement(""); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8.3"); + } else { +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8.4"); + inputNode = MochiKit.DOM.INPUT(options, anOption['value']); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.8.5"); + } +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.9"); + divNode = MochiKit.DOM.DIV(null, inputNode); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.10"); + + return divNode; +// return MochiKit.DOM.DIV(null, MochiKit.DOM.INPUT(options, anOption['value'])); + }, options) + ); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 4.9"); + break; + } + } else { + var binding; +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 5"); + binding = this.directLogin().bindings()[this.name()]; + +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 6"); +// TODO: remove the value: field and replace it with element.dom.value = + result = MochiKit.DOM.INPUT({ + type:((this.type() != 'password') ? this.type() : 'text'), +// type:(((this.type() != 'password') && (this.type() != 'submit')) ? this.type() : 'text'), + name:this.name(), + value:((binding != null)? binding.field().value() : this.value()) + }, null); +//MochiKit.Logging.logDebug("--- DirectLoginInput.formConfiguration - 7"); + } + +//MochiKit.Logging.logDebug("<<< DirectLoginInput.formConfiguration: "); + return result; + }, + + //------------------------------------------------------------------------- + + 'shouldSetValue': function() { + var type; + var result; + +//MochiKit.Logging.logDebug(">>> DirectLoginInput.shouldSetValue"); + type = this.type(); + result = ((type == 'checkbox') || (type == 'radio') || (type == 'select')); +//if (result == true) { +// MochiKit.Logging.logDebug("DIRECT LOGIN INPUT need value: " + Clipperz.Base.serializeJSON(this.args())); +//} +//MochiKit.Logging.logDebug("<<< DirectLoginInput.shouldSetValue"); + return result; + }, + + //------------------------------------------------------------------------- + __syntaxFix__: "syntax fix" + +}); + -- cgit v0.9.0.2