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/Components/RecordDetail/DirectLoginsComponent.js') diff --git a/frontend/beta/js/Clipperz/PM/Components/RecordDetail/DirectLoginsComponent.js b/frontend/beta/js/Clipperz/PM/Components/RecordDetail/DirectLoginsComponent.js new file mode 100644 index 0000000..3292a95 --- a/dev/null +++ b/frontend/beta/js/Clipperz/PM/Components/RecordDetail/DirectLoginsComponent.js @@ -0,0 +1,199 @@ +/* + +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 = {}; } +if (typeof(Clipperz.PM.Components.RecordDetail) == 'undefined') { Clipperz.PM.Components.RecordDetail = {}; } + +//############################################################################# + +Clipperz.PM.Components.RecordDetail.DirectLoginsComponent = function(anElement, args) { +//MochiKit.Logging.logDebug(">>> new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent"); + args = args || {}; + +//MochiKit.Logging.logDebug("--- new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent - 0"); + Clipperz.PM.Components.RecordDetail.DirectLoginsComponent.superclass.constructor.call(this, anElement, args); +//MochiKit.Logging.logDebug("--- new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent - 1"); + + this._addDirectLoginButton = null; + +//MochiKit.Logging.logDebug("--- new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent - 2"); + this.mainComponent().addEditComponent(this); +//MochiKit.Logging.logDebug("--- new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent - 3"); + this.render(); +//MochiKit.Logging.logDebug("<<< new Clipperz.PM.Components.RecordDetail.DirectLoginsComponent"); + + return this; +} + +//============================================================================= + +YAHOO.extendX(Clipperz.PM.Components.RecordDetail.DirectLoginsComponent, Clipperz.PM.Components.RecordDetail.AbstractComponent, { + + 'toString': function() { + return "Clipperz.PM.Components.RecordDetail.DirectLoginsComponent component"; + }, + + //------------------------------------------------------------------------- + + 'addDirectLoginButton': function() { + return this._addDirectLoginButton; + }, + + 'setAddDirectLoginButton': function(aValue) { + this._addDirectLoginButton = aValue; + }, + + //------------------------------------------------------------------------- + + 'render': function() { + this.element().update(""); + + Clipperz.YUI.DomHelper.append(this.element().dom, + {tag:'div', cls:'directLoginsRecordBox', children:[ + {tag:'h3', htmlString:Clipperz.PM.Strings['recordDetailDirectLoginBlockTitle']}, + {tag:'ul', id:this.getId('directLogins')}, + + {tag:'div', cls:'addDirectLoginBox', id:this.getId('addDirectLogin'), children:[ + {tag:'div', cls:'addDirectLoginBoxContent', children:[ + {tag:'div', cls:'bookmarkletConfiguration', children:[ +// {tag:'span', htmlString:Clipperz.PM.Strings['newRecordWizardBookmarkletConfigurationLabel']}, + {tag:'div', htmlString:Clipperz.PM.Strings['recordDetailNewDirectLoginDescription']}, + {tag:'textarea', id:this.getId('addDirectLoginTextarea')} + ]}, + {tag:'div', id:this.getId('addDirectLoginButton')} + ]} + ]} + ]} + ); + + if (MochiKit.Base.keys(this.record().directLogins()).length == 0) { +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 3"); + Clipperz.YUI.DomHelper.append(this.getElement('directLogins'), + {tag:'li', children:[ +// {tag:'span', htmlString:Clipperz.PM.Strings['recordDetailDirectLoginBlockNoDirectLoginConfiguredLabel']} + {tag:'div', cls:'recordDetailNoDirectLoginDescriptionBox', htmlString:Clipperz.PM.Strings['recordDetailDirectLoginBlockNoDirectLoginConfiguredDescription']} + ]} + ); +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 4"); + } else { +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 5"); + for (directLoginReference in this.record().directLogins()) { +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 6"); + this.addDirectLogin(this.record().directLogins()[directLoginReference]); +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 7"); + } +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 8"); + } +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 9"); + + this.setAddDirectLoginButton(new YAHOO.ext.Button(this.getDom('addDirectLoginButton'), { + text:Clipperz.PM.Strings['recordDetailAddNewDirectLoginButtonLabel'], + handler:this.addNewDirectLogin, + scope:this + })); + MochiKit.Signal.connect(this.getId('addDirectLoginTextarea'), 'onkeydown', this, 'onkeydown'); +//MochiKit.Logging.logDebug("--- DirectLoginsComponent.render - 11"); + + this.update(); +//MochiKit.Logging.logDebug("<<< DirectLoginsComponent.render"); + }, + + //------------------------------------------------------------------------- + + 'addDirectLogin': function(aDirectLogin) { +//MochiKit.Logging.logDebug(">>> DirectLoginsComponent.addDirectLogin"); + new Clipperz.PM.Components.RecordDetail.DirectLoginComponent( + Clipperz.YUI.DomHelper.append(this.getDom('directLogins'), {tag:'div'}, true), + { + mainComponent:this.mainComponent(), + directLogin:aDirectLogin + } + ); +//MochiKit.Logging.logDebug("<<< DirectLoginsComponent.addDirectLogin"); + }, + + //------------------------------------------------------------------------- + + 'addNewDirectLogin': function() { + var newDirectLogin; + var configuration; + +//MochiKit.Logging.logDebug(">>> DirectLoginsComponent.addNewDirectLogin"); + if (MochiKit.Base.keys(this.record().directLogins()).length == 0) { + this.getElement('directLogins').update(""); + } + + this.mainComponent().synchronizeComponentValues(); + + this.mainComponent().exitModalView(); + configuration = Clipperz.PM.BookmarkletProcessor.checkBookmarkletConfiguration( + this.getDom('addDirectLoginTextarea').value, + this.getDom('addDirectLoginButton'), + MochiKit.Base.method(this.mainComponent(), 'enterModalView') + ); + this.mainComponent().enterModalView(); + + newDirectLogin = new Clipperz.PM.DataModel.DirectLogin({record:this.record(), + label:configuration['page']['title'], + bookmarkletVersion:'0.2', +// bookmarkletVersion:configuration['version'], + formData:configuration['form']}); + this.record().addDirectLogin(newDirectLogin); + this.addDirectLogin(newDirectLogin); + this.getDom('addDirectLoginTextarea').value = ""; +//MochiKit.Logging.logDebug("<<< DirectLoginsComponent.addNewDirectLogin"); + }, + + //------------------------------------------------------------------------- + + 'updateViewMode': function() { + this.getElement('addDirectLogin').setVisibilityMode(YAHOO.ext.Element.DISPLAY); + this.getElement('addDirectLogin').hide(); + }, + + //------------------------------------------------------------------------- + + 'updateEditMode': function() { + this.getElement('addDirectLogin').show(); + }, + + //------------------------------------------------------------------------- + + 'onkeydown': function(anEvent) { +//MochiKit.Logging.logDebug(">>> onkeydown - " + anEvent.src().id + ": " + anEvent.key().code); + if (anEvent.key().code == 13) { + this.addNewDirectLogin(); + } + }, + + //------------------------------------------------------------------------- + __syntaxFix__: "syntax fix" +}); + -- cgit v0.9.0.2