author | Clipperz <info@clipperz.com> | 2013-01-31 13:42:04 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-31 13:42:04 (UTC) |
commit | 07d0357beef5d9328a2dd8d07ad7b39c87ac55e4 (patch) (side-by-side diff) | |
tree | f7a4aed8848302db153c2a211f8e58b944eb4c5b /frontend/gamma/js/Clipperz/PM/UI/Web/Components | |
parent | 767a3dcf48b6ac911c088af5dd7738a728eb6b99 (diff) | |
download | clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.zip clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.tar.gz clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.tar.bz2 |
Updated Copyright claims
- updated reference dates;
- removed reference to Community Edition;
- normalized logging using Clipperz.log[Warn|Error|Debug]
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI/Web/Components') (more/less context) (ignore whitespace changes)
34 files changed, 340 insertions, 439 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js index d6b0574..82c8dfd 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); // this._initiallySelectedTab = args.selected || 'ACCOUNT'; this._initiallySelectedTab = args.selected || 'PASSPHRASE'; this._tabPanelControllerConfiguration = { // 'ACCOUNT': { // tab: 'accountTab', // panel: 'accountPanel' // }, 'PASSPHRASE': { tab: 'passphraseTab', panel: 'passphrasePanel' }, 'OTP': { tab: 'OTPTab', panel: 'OTPPanel' }, 'PREFERENCES': { tab: 'preferencesTab', panel: 'preferencesPanel' }, 'LOGIN_HISTORY': { tab: 'loginHistoryTab', panel: 'loginHistoryPanel' } }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.AccountPanel component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { //Clipperz.log("AccountPanel.renderSelf element", this.element()); this.append(this.element(), [ {tag:'div', cls:'header', children:[ {tag:'div', cls:'subPanelTabs', children:[ {tag:'ul', children:[ // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, {tag:'li', id:this.getId('OTPTab'), children:[{tag:'a', href:'#', html:'One Time Passwords'}]}, {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, {tag:'li', id:this.getId('loginHistoryTab'), children:[{tag:'a', href:'#', html:'Login history'}]} ]} ]} ]}, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js index 3b3c8b4..da5fd76 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js @@ -1,75 +1,73 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.AppPage = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); this._element = args.element || null; this._slots = { 'cardGrid' : this.getId('cardGrid'), // 'directLoginGrid' : this.getId('directLoginGrid'), 'accountPanel': this.getId('accountPanel'), 'dataPanel': this.getId('dataPanel'), 'toolsPanel': this.getId('toolsPanel'), 'userInfoBox': this.getId('userInfoBox'), 'tabSidePanel': this.getId('tabSidePanel') }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AppPage, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.AppPage component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), {tag:'div', id:this.getId('userInfoBox'), cls:'userInfoBox'}); this.append(this.element(), {tag:'div', id:this.getId('sidePanels'), cls:'sidePanels'}); this.append(this.getId('sidePanels'), {tag:'div', id:this.getId('tabSidePanel'), cls:'tabSidePanel', children:[]}); this.append(this.element(), {tag:'div', id:this.getId('mainPanels'), cls:'mainPanels'}); this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('cardGrid'), cls:'gridComponent cardGrid'}); // this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('directLoginGrid'), cls:'gridComponent directLoginGrid'}); this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('accountPanel'), cls:'otherPanel'}); this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('dataPanel'), cls:'otherPanel'}); this.append(this.getId('mainPanels'), {tag:'div', id:this.getId('toolsPanel'), cls:'otherPanel'}); }, //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js index 1835ca9..4cfca32 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.BookmarkletComponent.superclass.constructor.apply(this, arguments); MochiKit.Signal.connect(Clipperz.PM.Strings.Languages, 'switchLanguage', this, 'updateBookmarkletURLs'); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.BookmarkletComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.BookmarkletComponent component"; }, //------------------------------------------------------------------------- 'renderSelf': function() { // var bookmarkletUrl; // // if (Clipperz_IEisBroken == true) { // bookmarkletUrl = bookmarklet_ie; // } else { /// bookmarkletUrl = bookmarklet; // bookmarkletUrl = Clipperz.PM.Strings['bookmarklet']; // } this.append(this.element(), {tag:'div', cls:'bookmarklet', children: [ {tag:'div', id:this.getId('linkBlock'), cls:'bookmarklet_link', children:[ // {tag:'a', id:this.getId('link'), href:bookmarkletUrl, children:[ {tag:'a', id:this.getId('link'), href:'#', children:[ {tag:'div', cls:'icon'}, {tag:'div', cls:'text', children:[ {tag:'span', html:"add to Clipperz"} ]} ]} ]} ]}); new Clipperz.PM.UI.Common.Components.Tooltip({ element: this.getElement('linkBlock'), text: "Drag and drop the \"add to Clipperz\" link above to the bookmark bar.", position: 'BELOW' }); MochiKit.Signal.connect(this.getId('link'), 'onclick', this, 'handleOnclick'); this.updateBookmarkletURLs(); }, //------------------------------------------------------------------------- 'handleOnclick': function (anEvent) { anEvent.preventDefault(); Clipperz.log("BOOKMARKLET CLICK"); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js index af33d85..8bb64f5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.CardDialogComponent.superclass.constructor.apply(this, arguments); this._tabPanelController = null; this._tabPanelControllerConfiguration = { 'DETAILS': { tab: 'detailTab', panel: 'detailTabpanel' }, 'DIRECT_LOGINS': { tab: 'directLoginTab', panel: 'directLoginTabpanel' }, 'SHARING': { tab: 'sharingTab', panel: 'sharingTabpanel' } }; this._tooltips = null; this._isSavingEnabled = false; this._hintMode = 'OFF'; // 'ON' this._fieldComponents = {}; this._directLoginComponents = {}; this._displayMode = 'fixed'; // 'scrollable'; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.CardDialogComponent component"; }, //------------------------------------------------------------------------- 'tabPanelController': function () { if (this._tabPanelController == null) { this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ component:this, configuration:this._tabPanelControllerConfiguration }); MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') } return this._tabPanelController; }, @@ -621,246 +619,242 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz MochiKit.Async.callLater(0.1, MochiKit.Base.method(this, 'fixRendering')); } }, //------------------------------------------------------------------------- 'fixRendering': function () { // var height; var y; var scrollHeight; var viewportHeight; var viewportY; var footerElement; var footerElementPosition; var footerElementDimensions; var footerComputedHeight; // height = MochiKit.Style.getElementDimensions(this.displayElement())['h']; y = MochiKit.Style.getElementPosition(this.displayElement())['y']; footerElement = MochiKit.Selector.findChildElements(this.displayElement(), ['div.footer'])[0]; footerElementPosition = MochiKit.Style.getElementPosition(footerElement); footerElementDimensions = MochiKit.Style.getElementDimensions(footerElement); footerComputedHeight = footerElementPosition['y'] + footerElementDimensions['h'] - y; // scrollHeight = this.displayElement().scrollHeight; scrollHeight = footerComputedHeight; viewportHeight = MochiKit.Style.getViewportDimensions()['h']; viewportY = MochiKit.Style.getViewportPosition()['y']; if ((y + scrollHeight) > (viewportY + viewportHeight)) { this.setDisplayMode('scrollable'); MochiKit.DOM.addElementClass(this.element(), 'scrollable'); MochiKit.DOM.removeElementClass(this.element(), 'fixed'); MochiKit.Style.setElementPosition(this.displayElement(), {y:Math.max(0, Math.min(y, (viewportY + viewportHeight) - scrollHeight))}, 'px'); MochiKit.Visual.ScrollTo(this.displayElement(), {duration:0.5}); } else { this.setDisplayMode('fixed'); MochiKit.DOM.removeElementClass(this.element(), 'scrollable'); MochiKit.DOM.addElementClass(this.element(), 'fixed'); } }, //========================================================================= 'unselectCurrentSelectedItems': function () { MochiKit.Iter.forEach(MochiKit.Selector.findChildElements(this.displayElement(), ['.selectedField']), function (anElement) { MochiKit.DOM.removeElementClass(anElement, 'selectedField'); }); }, //========================================================================= 'hideProgressMask': function () { MochiKit.DOM.removeElementClass(this.getId('panel'), 'loading'); }, 'showProgressMask': function () { this.getElement('progressDescription').innerHTML = "Saving"; MochiKit.DOM.addElementClass(this.getId('panel'), 'loading'); }, 'showError': function (anError) { -//console.log(">>> showError", anError); MochiKit.Style.hideElement(this.getId('progress')); this.getElement('errorMessage').innerHTML = Clipperz.PM.Strings.errorDescriptionForException(anError['message']); MochiKit.Style.showElement(this.getId('error')); }, //------------------------------------------------------------------------- 'cancel': function () { /* var deferredResult; deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.cancel", {trace:false}); deferredResult.addCallback(MochiKit.Base.method(this, 'isSavingEnabled')); deferredResult.addIf([ MochiKit.Base.method(this, 'askConfirmationForLoosingPendingChanges') ], []); deferredResult.addCallback(MochiKit.Base.partial(MochiKit.Signal.signal, this, 'cancel')); deferredResult.callback(); return deferredResult; */ MochiKit.Signal.signal(this, 'cancel'); }, 'handleCancelEvent': function (anEvent) { anEvent.preventDefault(); this.cancel(); }, //------------------------------------------------------------------------- 'handleSaveEvent': function (anEvent) { anEvent.preventDefault(); if (! MochiKit.DOM.hasElementClass(anEvent.src(), 'disabled')) { MochiKit.Signal.signal(this, 'save'); } }, //------------------------------------------------------------------------- 'handleAddDirectLogin': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'addDirectLogin'); }, //------------------------------------------------------------------------- 'handleOnFocusEvent': function (anElement, anEvent) { this.unselectCurrentSelectedItems(); MochiKit.DOM.addElementClass(anElement, 'selectedField'); }, 'handleLooseFocusEvent': function (anElement, anEvent) { this.unselectCurrentSelectedItems(); }, //------------------------------------------------------------------------- 'handleTabSelected': function (aSelectedTab) { this.unselectCurrentSelectedItems(); switch (aSelectedTab) { case 'DETAILS': // MochiKit.Style.hideElement(this.getElement('addDirectLoginButton')); break; case 'DIRECT_LOGINS': // MochiKit.Style.showElement(this.getElement('addDirectLoginButton')); break; case 'SHARING': // MochiKit.Style.hideElement(this.getElement('addDirectLoginButton')); break; } }, //------------------------------------------------------------------------- 'handleKeyEvent': function (anEvent) { -//console.log("####", anEvent.key().string); if (anEvent.key().string == 'KEY_ESCAPE') { MochiKit.Signal.signal(this, 'changedValue'); this.cancel(); } else if (anEvent.key().string == 'KEY_ENTER') { if (anEvent.target().nodeName == 'TEXTAREA') { } else { anEvent.preventDefault(); } } }, //========================================================================= 'askConfirmationForLoosingPendingChanges': function () { var deferredResult; var confirmationDialog; confirmationDialog = new Clipperz.PM.UI.Common.Components.SimpleMessagePanel({ title: "Alert", text: "Should lost pending changes?", type: 'ALERT', buttons: [ {text:"Cancel", result:'CANCEL', isDefault:true}, {text:"Ok", result:'OK'} ] }); deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); // deferredResult = confirmationDialog.deferredShow({openFromElement:anEvent.src(), onOkCloseToElement:MochiKit.DOM.currentDocument().body, onCancelCloseToElement:anEvent.src()}); deferredResult.addMethod(confirmationDialog, 'deferredShow', { 'openFromElement': this.getElement('cancelButton'), 'onOkCloseToElement': null, // this.getElement('cancelButton'), 'onCancelCloseToElement': this.getElement('cancelButton') }); -// deferredResult.addCallback(function () { console.log("DELETE: " + anObject.toString(), anObject); }); -// deferredResult.addErrbackPass(function () { console.log("skip deletion: " + anObject.toString(), anObject); }); deferredResult.callback(); return deferredResult; }, //========================================================================= 'showDirectLoginEditingComponent': function () { var width; var transition; var duration; width = MochiKit.Style.getElementDimensions(this.getElement('directLoginsComponentContainer'))['w']; transition = MochiKit.Visual.Transitions.sinoidal; duration = 1; return Clipperz.Async.callbacks("CardDialogComponent.showDirectLoginEditingComponent", [ MochiKit.Base.method(this, 'disableCardTitleEditing'), MochiKit.Base.method(this.tabPanelController(), 'disable'), MochiKit.Base.bind(function () { MochiKit.Style.setElementPosition (this.getElement('directLoginEditDetail'), {x:width, y:-MochiKit.Style.getElementDimensions(this.getElement('directLogins'))['h']}); MochiKit.Style.setElementDimensions(this.getElement('directLoginEditDetail'), {w:width}); MochiKit.Style.showElement(this.getElement('directLoginEditDetail')); MochiKit.Style.setOpacity(this.getElement('directLoginEditDetail'), 0); MochiKit.Style.setElementDimensions(this.getElement('directLoginsComponentContainer'), { h:Math.max( MochiKit.Style.getElementDimensions(this.getElement('directLogins'))['h'], MochiKit.Style.getElementDimensions(this.getElement('directLoginEditDetail'))['h'] ) }); // MochiKit.Style.setElementDimensions(this.getElement('directLoginsComponentContainer'), {h:MochiKit.Style.getElementDimensions(this.getElement('directLogins'))['h']}); }, this), MochiKit.Base.partial(Clipperz.Visual.deferredAnimations, MochiKit.Visual.Parallel, [ new MochiKit.Visual.Move(this.getElement('directLogins'), {x:-width, y:0, mode:'relative', transition:transition, sync:true}), new MochiKit.Visual.Opacity(this.getElement('directLogins'), {from:1.0, to:0.0, transition:transition, sync:true}), new MochiKit.Visual.Move(this.getElement('directLoginEditDetail'), {x:-width, y:0, mode:'relative', transition:transition, sync:true}), new MochiKit.Visual.Opacity(this.getElement('directLoginEditDetail'), {from:0.0, to:1.0, transition:transition, sync:true}) ], {duration:duration}), MochiKit.Base.noop ], {trace:false}); }, //------------------------------------------------------------------------- 'hideDirectLoginEditingComponent': function () { var width; var transition; var duration; width = MochiKit.Style.getElementDimensions(this.getElement('directLoginsComponentContainer'))['w']; transition = MochiKit.Visual.Transitions.sinoidal; duration = 1; return Clipperz.Async.callbacks("CardDialogComponent.hideDirectLoginEditingComponent", [ MochiKit.Base.partial(Clipperz.Visual.deferredAnimations, MochiKit.Visual.Parallel, [ new MochiKit.Visual.Move(this.getElement('directLogins'), {x:width, y:0, mode:'relative', transition:transition, sync:true}), new MochiKit.Visual.Opacity(this.getElement('directLogins'), {from:0.0, to:1.0, transition:transition, sync:true}), new MochiKit.Visual.Move(this.getElement('directLoginEditDetail'), {x:width, y:0, mode:'relative', transition:transition, sync:true}), new MochiKit.Visual.Opacity(this.getElement('directLoginEditDetail'), {from:1.0, to:0.0, transition:transition, sync:true}) ], {duration:duration}), // MochiKit.Base.partial(MochiKit.Visual.appear, this.getElement('addDirectLoginButton'), {duration:0.3}), Clipperz.Async.clearResult, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js index 2e61f5f..0cee650 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js @@ -1,179 +1,173 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent.superclass.constructor.apply(this, arguments); this._reference = args.reference || Clipperz.Base.exception.raise('MandatoryParameter'); this._faviconComponent = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent component"; }, //------------------------------------------------------------------------- 'reference': function () { return this._reference; }, //------------------------------------------------------------------------- 'renderSelf': function() { -//console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf"); this.append(this.element(), [ {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ {tag:'img', cls:'favicon', id:this.getId('favicon')} ]}, {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ {tag:'input', id:this.getId('label'), type:'text'} ]}, {tag:'div', cls:'open', children:[ {tag:'span', children:[ {tag:'a', href:'open', id:this.getId('open'), html:' '} ]} ]}, {tag:'div', cls:'edit', children:[ {tag:'span', children:[ {tag:'a', href:'edit', id:this.getId('edit'), html:"edit"} ]} ]}, {tag:'div', cls:'delete', children:[ {tag:'span', children:[ {tag:'a', href:'delete', id:this.getId('delete'), html:"delete"} ]} ]} /* {tag:'td', cls:'fieldState'}, {tag:'td', cls:'fieldLabel', children:[ {tag:'input', cls:'label', id:this.getId('label')} ]}, {tag:'td', cls:'fieldLock', children:[ {tag:'div', cls:'unlocked', id:this.getId('isHidden')} ]}, {tag:'td', cls:'fieldValue', children:[ {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ {tag:'input', type:'text', cls:'value', id:this.getId('value')} ]} ]}, {tag:'td', cls:'fieldAddDelete', children:[ {tag:'div', cls:'delete', children:[ {tag:'span', children:[ {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} ]} ]} ]} */ ]); MochiKit.Signal.connect(this.getId('label'), 'onkeyup', MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); MochiKit.Signal.connect(this.getId('open'), 'onclick', this, 'openDirectLogin'); MochiKit.Signal.connect(this.getId('edit'), 'onclick', this, 'editDirectLogin'); MochiKit.Signal.connect(this.getId('delete'), 'onclick', this, 'deleteDirectLogin'); }, //------------------------------------------------------------------------- 'shouldShowElementWhileRendering': function () { return false; }, //------------------------------------------------------------------------- 'faviconComponent': function () { if (this._faviconComponent == null) { -//console.log("created the FAVICON component"); this._faviconComponent = new Clipperz.PM.UI.Common.Components.FaviconComponent({element:this.getId('favicon')}); } return this._faviconComponent; }, //========================================================================= 'label': function () { return this.getElement('label').value; }, 'setLabel': function (aValue) { this.getElement('label').value = Clipperz.Base.sanitizeString(aValue); }, //------------------------------------------------------------------------- 'favicon': function () { // return this.getElement('favicon').src; return this.faviconComponent().src(); }, 'setFavicon': function (aValue) { // this.getElement('favicon').src = Clipperz.Base.sanitizeString(aValue); this.faviconComponent().setSrc(Clipperz.Base.sanitizeString(aValue)); }, //========================================================================= 'openDirectLogin': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'openDirectLogin', this.reference()); }, //------------------------------------------------------------------------- 'editDirectLogin': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'editDirectLogin', this.reference()); -//console.log("EDIT DIRECT LOGIN"); }, //------------------------------------------------------------------------- 'deleteDirectLogin': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'deleteDirectLogin', this.reference()); -//console.log("DELETE DIRECT LOGIN"); }, //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js index b58062c..689406a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent.superclass.constructor.apply(this, arguments); this._reference = args.reference || Clipperz.Base.exception.raise('MandatoryParameter'); this._actionType = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent component"; }, //------------------------------------------------------------------------- 'renderSelf': function() { this.append(this.element(), [ {tag:'td', cls:'fieldState'}, {tag:'td', cls:'fieldLabel', children:[ {tag:'input', cls:'label', id:this.getId('label')} ]}, {tag:'td', cls:'fieldLock', children:[ {tag:'div', cls:'unlocked', id:this.getId('isHidden')} ]}, {tag:'td', cls:'fieldValue', children:[ {tag:'div', cls:'unlocked', id:this.getId('valueWrapper'), children:[ {tag:'input', type:'text', cls:'value', id:this.getId('value')} ]} ]}, {tag:'td', cls:'fieldAction', children:[ {tag:'a', href:'#', id:this.getId('actionLink'), html:' '} ]}, {tag:'td', cls:'fieldAddDelete', children:[ {tag:'div', cls:'delete', children:[ {tag:'span', children:[ {tag:'a', href:'#', id:this.getId('delete'), html:"delete"} ]} ]} ]} ]); MochiKit.Signal.connect(this.getId('label'), 'onkeyup', MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); MochiKit.Signal.connect(this.getId('isHidden'), 'onclick', this, 'toggleIsHidden'); MochiKit.Signal.connect(this.getId('value'), 'onkeyup', MochiKit.Base.partial(MochiKit.Signal.signal, this, 'changedValue')); MochiKit.Signal.connect(this.getId('actionLink'), 'onclick', this, 'handleActionLink'); MochiKit.Signal.connect(this.getId('delete'), 'onclick', this, 'deleteField'); // MochiKit.Signal.connect(this.getId('delete'), 'onclick', MochiKit.Base.partial(MochiKit.Signal.signal, this, 'deleteField', this.reference())); }, //------------------------------------------------------------------------- @@ -108,80 +106,78 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponen //========================================================================= 'value': function () { return this.getElement('value').value; }, 'setValue': function (aValue) { // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); this.getElement('value').value = aValue; }, //------------------------------------------------------------------------- 'actionType': function () { return this._actionType; }, 'setActionType': function (anActionType) { this._actionType = anActionType; switch (this._actionType) { case 'NONE': MochiKit.Style.hideElement(this.getId('actionLink')); MochiKit.DOM.setElementClass(this.getId('actionLink'), ''); break; case 'URL': MochiKit.Style.showElement(this.getId('actionLink')); MochiKit.DOM.setElementClass(this.getId('actionLink'), 'url'); break; case 'EMAIL': MochiKit.Style.showElement(this.getId('actionLink')); MochiKit.DOM.setElementClass(this.getId('actionLink'), 'email'); break; case 'PASSWORD': MochiKit.Style.showElement(this.getId('actionLink')); MochiKit.DOM.setElementClass(this.getId('actionLink'), 'password'); break; } }, //========================================================================= 'isHidden': function () { // return this.getElement('value').value; return MochiKit.DOM.hasElementClass(this.getElement('isHidden'), 'locked'); }, 'setIsHidden': function (aValue) { // this.getElement('value').value = Clipperz.Base.sanitizeString(aValue); MochiKit.DOM.setElementClass(this.getElement('isHidden'), (aValue ? 'locked': 'unlocked')); MochiKit.DOM.setElementClass(this.getElement('valueWrapper'), (aValue ? 'locked': 'unlocked')); }, 'toggleIsHidden': function (anEvent) { anEvent.preventDefault(); this.setIsHidden(! this.isHidden()); MochiKit.Signal.signal(this, 'changedValue'); }, //========================================================================= 'handleActionLink': function (anEvent) { anEvent.preventDefault(); - -//console.log("ACTION LINK - " + this.actionType()); MochiKit.Signal.signal(this, 'performAction', this.reference(), anEvent.target()); }, //========================================================================= 'deleteField': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'deleteField', this.reference()); }, //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js index 391c379..41e32a0 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.ColumnManager.superclass.constructor.call(this, args); this._name = args.name || Clipperz.Base.exception.raise('MandatoryParameter'); this._selector = args.selector || Clipperz.Base.exception.raise('MandatoryParameter');; this._label = args.label || null; this._isSortable = args.sortable || false; this._comparator = args.comparator || null; this._sorted = args.sorted || 'UNSORTED'; // 'ASCENDING' | 'DESCENDING' | 'UNSORTED' this._cssClass = args.cssClass || ''; this._signalIdentifiers = []; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ColumnManager, Clipperz.PM.UI.Common.Components.BaseComponent, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.ColumnManager - " + this._name; }, 'name': function () { return this._name; }, 'label': function () { return this._label; }, 'selector': function () { return this._selector; }, 'comparator': function() { return this._comparator; }, 'cssClass': function() { return this._cssClass; }, //------------------------------------------------------------------------- 'isSortable': function () { return this._isSortable; }, //------------------------------------------------------------------------- 'sorted': function () { return this._sorted; }, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js index d3aa175..3d0ba76 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js @@ -1,68 +1,66 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent.superclass.constructor.apply(this, arguments); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent component"; }, //------------------------------------------------------------------------- 'renderSelf': function() { this.append(this.element(), [ {tag:'div', cls:'createNewCardSplash', id:this.getId('button'), children:[ {tag:'span', html:"Create New Card"} ]} ]); MochiKit.Signal.connect(this.getElement('button'), 'onclick', this, 'handleClick'); }, //------------------------------------------------------------------------- 'handleClick': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'addCard', this.element()); }, //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js index 462d864..23f6710 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.DataPanel = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DataPanel.superclass.constructor.apply(this, arguments); this._initiallySelectedTab = args.selected || 'OFFLINE_COPY'; this._tabPanelControllerConfiguration = { 'OFFLINE_COPY': { tab: 'offlineCopyTab', panel: 'offlineCopyPanel' }, 'SHARING': { tab: 'sharingTab', panel: 'sharingPanel' }, 'IMPORT': { tab: 'importTab', panel: 'importPanel' }, 'EXPORT': { tab: 'exportTab', panel: 'exportPanel' } }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.DataPanel component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', cls:'header', children:[ {tag:'div', cls:'subPanelTabs', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('offlineCopyTab'), children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} ]} ]} ]}, {tag:'div', cls:'body', children:[ {tag:'div', cls:'accountPanel', children:[ {tag:'div', cls:'subPanelContent', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('offlineCopyPanel'), children:[ // {tag:'h3', html:"Offline copy"}, {tag:'p', html:"With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."}, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js index ea55ba4..b305045 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js @@ -1,69 +1,67 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DateColumnManager.superclass.constructor.call(this, args); this._format = args.format || Clipperz.Base.exception.raise('MandatoryParameter'); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DateColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; }, //------------------------------------------------------------------------- 'format': function () { return this._format; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ { tag:'span', title:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], "D, d M Y H:i:s"), html:Clipperz.PM.Date.formatDateWithTemplate(anObject[this.name()], this.format()) } ]}); }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js index fe59494..6efe4c6 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js @@ -1,67 +1,65 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager.superclass.constructor.call(this, args); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager, Clipperz.PM.UI.Web.Components.LinkColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager component"; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { var tdElement; var linkElement; tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ {tag:'div', cls:'delete', children:[ {tag:'span', children:[ {tag:'a', href:'delete', html:"delete"} ]} ]} ]}); linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js index a1f0f9f..2dad703 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ /* Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.DirectLoginColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DirectLoginColumnManager.superclass.constructor.call(this, args); this._actionMethod = args.actionMethod || null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; }, //------------------------------------------------------------------------- 'actionMethod': function () { return this._actionMethod; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { var tdElement; var linkElement; tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ {tag:'div', cls:'directLogin_directLogin', children:[ {tag:'div', cls:'directLogin_directLogin_body', children:[ {tag:'a', href:'#', html:anObject[this.name()]} ]} ]} ]}); linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); }, //----------------------------------------------------- 'handleLinkClick': function (anObject, anEvent) { anEvent.preventDefault(); if (this.actionMethod() != null) { this.actionMethod()(anObject, anEvent); } }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js index 1a76b0c..f5f99d4 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent.superclass.constructor.apply(this, arguments); this._formFieldName = args.formFieldName || Clipperz.Base.exception.raise('MandatoryParameter'); this._fields = args.fields || Clipperz.Base.exception.raise('MandatoryParameter'); this._initiallySelectedFieldKey = args.selectedFieldKey || null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent component"; }, //------------------------------------------------------------------------- 'formFieldName': function () { return this._formFieldName; }, //------------------------------------------------------------------------- 'fields': function () { return this._fields; }, //------------------------------------------------------------------------- 'selectedValue': function () { var result; result = this.getElement('select').value; if (result == '---') { result = null; } return result; }, 'initiallySelectedFieldKey': function () { return this._initiallySelectedFieldKey; }, //========================================================================= 'renderSelf': function() { var initiallySelectedOptions; this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'binding', children:[ {tag:'span', cls:'formFieldName', html:this.formFieldName()}, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js index 5114b1d..55d2c01 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js @@ -1,172 +1,169 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent.superclass.constructor.apply(this, arguments); this._tabPanelController = null; this._initiallySelectedTab = args.selected || 'TYPE'; this._tabPanelControllerConfiguration = { 'LABEL': { tab: 'labelTab', panel: 'labelTabpanel' }, 'TYPE': { tab: 'typeTab', panel: 'typeTabpanel' }, 'CONFIGURATION': { tab: 'configurationTab', panel: 'configurationTabpanel' }, 'BINDINGS': { tab: 'bindingsTab', panel: 'bindingsTabpanel' }, 'FAVICON': { tab: 'faviconTab', panel: 'faviconTabpanel' }, 'DONE': { tab: 'doneTab', panel: 'doneTabpanel' } }; this._directLoginReference = null; this._directLoginFavicon = null; this._updateFaviconCounter = 0; this._faviconComponent = null; this._bindingComponents = []; this._formValueComponents = []; return this; } //============================================================================= //Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent component"; }, //========================================================================= 'directLoginReference': function () { return this._directLoginReference; }, //------------------------------------------------------------------------- 'setDirectLoginReference': function (aDirectLoginReference) { this._directLoginReference = aDirectLoginReference; return this._directLoginReference; }, //========================================================================= 'label': function () { return this.getElement('label').value }, 'setLabel': function (aValue) { -//console.log("##> LABEL: " + aValue); this.getElement('label').value = (aValue ? aValue : ''); }, //------------------------------------------------------------------------- 'favicon': function () { return this.getElement('faviconURL').value; }, 'setFavicon': function (aValue) { var regexp; var displayValue; regexp = new RegExp('^data\:\/\/.*', 'i'); if (regexp.test(aValue)) { displayValue = '' } else { displayValue = (aValue ? aValue : ''); } this.getElement('faviconURL').value = displayValue; this.faviconComponent().setSrc(aValue); }, // 'setFaviconData': function (aValue) { // this.getElement('faviconIcon').src = aValue; // }, 'directLoginFavicon': function () { return this._directLoginFavicon; }, 'setDirectLoginFavicon': function (aValue) { this._directLoginFavicon = aValue; this.setFavicon(aValue); }, //------------------------------------------------------------------------- 'bookmarkletConfiguration': function () { return this.getElement('bookmarkletConfiguration').value }, 'setBookmarkletConfiguration': function (aValue) { this.getElement('bookmarkletConfiguration').value = aValue; }, 'highlightConfigurationSyntaxError': function () { MochiKit.DOM.addElementClass(this.getElement('bookmarkletConfiguration'), 'error'); }, 'removeHighlightConfigurationSyntaxError': function () { MochiKit.DOM.removeElementClass(this.getElement('bookmarkletConfiguration'), 'error'); }, //========================================================================= 'disableAllPanels': function () { this.getElement('label').disabled = true; MochiKit.DOM.addElementClass(this.getElement('label').parentNode, 'disabled'); this.tabPanelController().selectTab(null); }, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js index fa57233..58b5b26 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js @@ -1,176 +1,169 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent.superclass.constructor.apply(this, arguments); this._formFieldName = args.formFieldName || Clipperz.Base.exception.raise('MandatoryParameter'); this._fieldOptions = args.fieldOptions || Clipperz.Base.exception.raise('MandatoryParameter'); this._initialValue = args.initialValue || null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent component"; }, //------------------------------------------------------------------------- 'formFieldName': function () { return this._formFieldName; }, //------------------------------------------------------------------------- 'fieldOptions': function () { return this._fieldOptions; }, 'fieldType': function () { return this.fieldOptions()['type']; }, 'optionValues': function () { return MochiKit.Base.map(function (anOptionValue) { return { 'label': anOptionValue['label'] || anOptionValue['value'], 'value': anOptionValue['value'] } }, this.fieldOptions()['options']); }, //------------------------------------------------------------------------- 'selectedValue': function () { var result; result = this.getElement('select').value; if (result == '---') { result = null; } return result; }, 'initialValue': function () { return this._initialValue; }, //========================================================================= 'renderSelf': function() { -//console.log(">>> DirectLoginEditingFormValueComponent.renderSelf"); -//console.log("FIELD OPTIONS", this.fieldOptions()); -//console.log("OPTION VALUES", this.optionValues()); this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ {tag:'span', cls:'formFieldName', html:this.formFieldName()}, {tag:'div', id:this.getId('values')} ]}); if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { this.append(this.getElement('values'), {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: MochiKit.Base.flattenArguments( // {tag:'option', value:'---', html:"---"}, MochiKit.Base.map( MochiKit.Base.bind(function (aValue) { return {tag:'option', value:aValue['value'], html:aValue['label']}; }, this), this.optionValues() ) ) } ); MochiKit.Signal.connect(this.getElement('select'), 'onchange', this, 'handleSelectChange'); if (! MochiKit.Base.isUndefinedOrNull(this.initialValue())) { var initiallySelectedOptions; initiallySelectedOptions = MochiKit.Selector.findChildElements(this.element(), ['option[value=' + this.initialValue() + ']']); if (initiallySelectedOptions.length == 1) { MochiKit.DOM.updateNodeAttributes(initiallySelectedOptions[0], {selected:true}); this.handleSelectChange(); } else { Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); } } else { Clipperz.DOM.Helper.insertBefore(this.getElement('select').childNodes[0], {tag:'option', value:'---', html:"", selected:true}); } } else if (this.fieldType() == 'checkbox') { this.append(this.getElement('values'), {tag:'input', type:'checkbox', name:this.formFieldName(), id:this.getId('checkbox'), cls:'formFieldMatchinCardField'} ); MochiKit.Signal.connect(this.getElement('checkbox'), 'onchange', this, 'handleSelectChange'); if (this.initialValue()) { MochiKit.DOM.updateNodeAttributes(this.getElement('checkbox'), {checked:true}); } } else { WTF = TODO; } -//console.log("<<< DirectLoginEditingFormValueComponent.renderSelf"); }, //========================================================================= 'handleSelectChange': function (anEvent) { -//console.log("handleSelectChange", anEvent, anEvent.src(), anEvent.src().value); var options; options = {}; options['fieldName'] = this.formFieldName(); if (this.fieldType() == 'checkbox') { options['selectedValue'] = (this.getElement('checkbox').checked ? 1 : null); } else { options['selectedValue'] = this.selectedValue(); } MochiKit.Signal.signal(this, 'formValueChange', options); }, //========================================================================= __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js index d8dc941..b4fc24e 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.constructor.call(this, args); this._enterLeaveCounter = 0; this._selectedRowObject = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager component"; }, //------------------------------------------------------------------------- 'renderHeader': function(aTRElement) { Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager.superclass.renderHeader.call(this, aTRElement); Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', cls:'DirectLoginListPopup', id:this.getId('DirectLoginListPopup'), children:[ {tag:'div', cls:'DirectLoginListPopup_body', children:[ {tag:'ul', id:this.getId('DirectLoginListPopup_list'), children:[ // {tag:'li', children:[ // {tag:'img', cls:'favicon', src:'http://www.microsoft.com/favicon.ico'}, // {tag:'a', href:'#', html:"Google Mail"} // ]}, // ... ]} ]}, {tag:'div', cls:'DirectLoginListPopup_footer'} ]}); MochiKit.Style.hideElement(this.getId('DirectLoginListPopup')); // BEWARE: use MochiKit.Signal.connect instead of this.connectEvent, as the HEADER is NOT redrawn after each refresh MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseenter', this, 'handleDirectLoginListPopupEnter'); MochiKit.Signal.connect(this.getId('DirectLoginListPopup'), 'onmouseleave', this, 'handleDirectLoginListPopupLeave'); }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { var i,c; var directLoginsInfo; directLoginsInfo = anObject[this.name()]; TDElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:'card_directLogins'}); c = Math.min(2, directLoginsInfo.length); for (i=0; i<c; i++) { var elementID; diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js index 6297002..bdb044a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.FaviconColumnManager.superclass.constructor.call(this, args); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.FaviconColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.FaviconColumnManager component"; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { var faviconImageElement; var faviconUrl; faviconImageElement = this.getId('favicon'); faviconUrl = anObject[this.name()]; if (faviconUrl == null) { faviconUrl = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); } Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ {tag:'img', id:faviconImageElement, src:faviconUrl} ]}); MochiKit.Signal.connect(faviconImageElement, 'onload', this, 'handleLoadedFaviconImage'); MochiKit.Signal.connect(faviconImageElement, 'onerror', this, 'handleMissingFaviconImage'); MochiKit.Signal.connect(faviconImageElement, 'onabort', this, 'handleMissingFaviconImage'); }, //----------------------------------------------------- 'handleLoadedFaviconImage': function(anEvent) { MochiKit.Signal.disconnectAllTo(anEvent.src()); if (anEvent.src().complete == false) { anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); } }, //----------------------------------------------------- 'handleMissingFaviconImage': function(anEvent) { MochiKit.Signal.disconnectAllTo(anEvent.src()); anEvent.src().src = Clipperz.PM.Strings.getValue('defaultFaviconUrl'); }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js index 51d55f4..21dddc9 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js @@ -1,198 +1,194 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.GridComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.GridComponent.superclass.constructor.apply(this, arguments); this._columnsManagers = args.columnsManagers; this._rowsObjects = []; this._noRowsGridComponent = null; this._slots = { 'headerSlot': this.getId('headerSlot') }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.GridComponent component"; }, //------------------------------------------------------------------------- 'rows': function () { throw Clipperz.Base.exception.AbstractMethod; // return this._rows; }, //------------------------------------------------------------------------- 'columnsManagers': function () { return this._columnsManagers; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', cls:'header', children:[ {tag:'form', id:this.getId('searchForm'), cls:'search', children:[ {tag:'div', cls:'search', children:[ {tag:'input', type:'text', id:this.getId('search'), cls:'search', placeholder:"search", name:'textToSearch'/*, value:"clipperz"*/} ]}, {tag:'div', cls:'clearSearchButton', id:this.getId('clearSearch')}, // {tag:'input', type:'button', cls:'searchButton', name:'searchButton', value:"search"}, {tag:'div', cls:'headerSlot', id:this.getId('headerSlot')} ]} ]}, {tag:'div', cls:'body', children:[ {tag:'div', cls:'rows', id:this.getId('rows'), children:[ {tag:'table', cellpadding:'0', cellspacing:'0', cls:'rows', children:[ {tag:'thead', children:[ {tag:'tr', id:this.getId('thead_tr'), children:[]} ]}, {tag:'tbody', id:this.getId('gridRows'), children:[]} ]} ]}, {tag:'div', cls:'noRowsBlock', id:this.getId('noRowsBlock'), children:[]} ]}, {tag:'div', cls:'footer'} ]); this.renderHeader(); MochiKit.Signal.connect(this.getId('clearSearch'), 'onclick', this, 'clearSearchHandler'); }, //------------------------------------------------------------------------- 'renderHeader': function () { var headerElement; headerElement = this.getElement('thead_tr'); headerElement.innerHTML = ""; MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { aColumnManager.renderHeader(headerElement); }); }, //------------------------------------------------------------------------- 'update': function (someObjects) { this._rowsObjects = someObjects this.refresh(); this.focus(); }, 'focus': function () { this.getElement('search').focus(); }, //------------------------------------------------------------------------- 'startSearch': function () { -//console.log("--> startSearch"); MochiKit.DOM.addElementClass(this.getElement('search'), 'running'); }, 'endSearch': function () { MochiKit.DOM.removeElementClass(this.getElement('search'), 'running'); -//console.log("<-- startSearch"); }, //------------------------------------------------------------------------- 'disconnectColumnManagersRowsSignals': function () { MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { aColumnManager.disconnectRowsSignals(); }); }, //------------------------------------------------------------------------- 'refresh': function () { var gridRowsElement; var rowClass; this.disconnectColumnManagersRowsSignals(); { MochiKit.DOM.removeElementClass(this.getElement('search'), 'disabled'); // MochiKit.DOM.setNodeAttribute(this.getElement('search'), 'disabled', null); MochiKit.DOM.removeElementClass(this.element(), 'empty'); MochiKit.DOM.removeElementClass(this.element(), 'noRows'); } gridRowsElement = this.getElement('gridRows'); gridRowsElement.innerHTML = ""; MochiKit.DOM.removeElementClass(this.element(), 'empty'); rowClass = 'odd'; MochiKit.Iter.forEach(this._rowsObjects, MochiKit.Base.bind(function (aRowObject) { var cardRowElement; cardRowElement = this.append(gridRowsElement, {tag:'tr', id:this.getId(aRowObject['_reference']), cls:rowClass}); MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { aColumnManager.renderCell(cardRowElement, aRowObject); }); rowClass = (rowClass == 'odd') ? 'even' : 'odd'; }, this)); }, //----------------------------------------------------------------------------- 'filterElement': function () { return this.getElement('search'); }, //------------------------------------------------------------------------- 'shouldShowElementWhileRendering': function () { return false; }, //------------------------------------------------------------------------- 'selectRow': function (aRowObject) { MochiKit.DOM.addElementClass(this.getId(aRowObject['_reference']), 'selected'); }, 'unselectRow': function (aRowObject) { MochiKit.DOM.removeElementClass(this.getId(aRowObject['_reference']), 'selected'); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js index 3e03fcf..d1d9d7f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js @@ -1,65 +1,63 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.ImageColumnManager.superclass.constructor.call(this, args); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ImageColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.ImageColumnManager component"; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ {tag:'img', src:anObject[this.name()]} ]}); // return Clipperz.Async.callbacks("ImageColumnManager.renderCell", [ // this.selector(), // MochiKit.Base.bind(function (aValue) { // Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ // {tag:'img', src:aValue} // ]}); // }, this) // ], {trace:false}, anObject); }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js index f3f9cd5..69f735b 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.LinkColumnManager.superclass.constructor.call(this, args); this._actionMethod = args.actionMethod || null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LinkColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.DateColumnManager component"; }, //------------------------------------------------------------------------- 'actionMethod': function () { return this._actionMethod; }, //------------------------------------------------------------------------- 'renderCell': function(aRowElement, anObject) { var tdElement; var linkElement; tdElement = Clipperz.DOM.Helper.append(aRowElement, {tag:'td', cls:this.cssClass(), children:[ {tag:'span', children:[ {tag:'a', href:'#', html:anObject[this.name()]} ]} ]}); linkElement = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, tdElement); // MochiKit.Signal.connect(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); this.connectEvent(linkElement, 'onclick', MochiKit.Base.method(this, 'handleLinkClick', anObject['_rowObject'])); }, //----------------------------------------------------- 'handleLinkClick': function (anObject, anEvent) { anEvent.preventDefault(); if (this.actionMethod() != null) { var deferredResult; deferredResult = new Clipperz.Async.Deferred("LinkColumnManager.handleLinkClick", {trace:false}); // deferredResult.addCallbackPass(MochiKit.Signal.signal, this, 'selectRow', anObject); deferredResult.addCallback(this.actionMethod(), anObject, anEvent); // deferredResult.addBothPass(MochiKit.Signal.signal, this, 'unselectRow', anObject); deferredResult.callback(); } }, //----------------------------------------------------- diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js index a10ba4f..38a9421 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.LoginForm = function(args) { args = args || {}; this._autocomplete = args.autocomplete || 'off'; Clipperz.PM.UI.Web.Components.LoginForm.superclass.constructor.apply(this, arguments); this._slots = { 'passphraseEntropy': this.getId('passphraseEntropy') }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginForm, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.LoginForm component"; }, 'autocomplete': function () { return this._autocomplete; }, //------------------------------------------------------------------------- 'renderSelf': function() { this.append(this.element(), {tag:'div', id:'loginBox', children:[ {tag:'div', cls:'header'}, {tag:'div', cls:'body', id:this.getId('body'), children:[ {tag:'div', id:this.getId('loginForm'), children:[ {tag:'div', children:[ {tag:'h4', html:'Login'}, // {tag:'form', cls:'loginForm', autocomplete:this.autocomplete(), children:[ {tag:'form', id:this.getId('form'), cls:'loginForm', children:[ {tag:'label', html:'username', 'for':this.getId('usernameField')}, {tag:'input', id:this.getId('usernameField'), type:'text', cls:'username'}, {tag:'label', html:'passphrase / OTP', 'for':this.getId('passphraseField')}, {tag:'input', id:this.getId('passphraseField'), type:'password', cls:'password'}, {tag:'div', cls:'translations', children:[ {tag:'h4', html:'choose your language'}, {tag:'ul', children:[ {tag:'li', cls:'selected', html:'english'}, {tag:'li', html:'italiano'}, {tag:'li', html:'dutch'}, {tag:'li', html:'french'}, {tag:'li', html:'spanish'}, {tag:'li', html:'chinese'}, {tag:'li', html:'japanese'}, {tag:'li', html:'portugal'}, {tag:'li', html:'arabic'} ]} ]}, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js index 2894af8..3498e3f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.LoginPage = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.LoginPage.superclass.constructor.apply(this, arguments); this._slots = { 'loginForm': this.getId('loginBoxSlot') }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginPage, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.LoginPage component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', id:this.getId('loginBoxSlot')}, {tag:'div', id:'main', children:[ {tag:'div', id:'featurePoints', children:[ {tag:'table', children:[ {tag:'tr', children:[ {tag:'td', children:[ {tag:'div', cls:'block', children:[ {tag:'h3', html:'Clipperz is:'}, {tag:'ul', children:[ {tag:'li', html:'a secure and simple password manager'}, {tag:'li', html:'an effective single sign-on solution'}, {tag:'li', html:'a digital vault for your personal data'} ]} ]}, {tag:'div', cls:'block', children:[ {tag:'h3', html:'Clipperz benefits:'}, {tag:'ul', children:[ {tag:'li', html:'free and completely anonymous'}, {tag:'li', html:'access it any time from any computer'}, {tag:'li', html:'no software to download and nothing to install'}, {tag:'li', html:'avoid keeping secrets on your PC or on paper'} ]} ]} ]}, {tag:'td', children:[ {tag:'div', cls:'block', children:[ {tag:'h3', html:'Clipperz security:'}, {tag:'ul', children:[ {tag:'li', html:'your secretes are locally encrypted by your browser before being uploaded to Clipperz'}, {tag:'li', html:'the encryption key is a passphrase known only to you'}, {tag:'li', html:'Clipperz hosts your sensitive data in an encrypted form and could never access the data in its plain form'}, {tag:'li', html:'Clipperz is built upon standard encryption schemes, nothing fancies of homemade'}, {tag:'li', html:'you can review the source code anytime you like, but you need to know nothing about cryptography to be an happy user!'} ]} diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js index 26506e7..3fef6c5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js @@ -1,133 +1,130 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.LoginProgress.superclass.constructor.apply(this, arguments); this._deferred = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.LoginProgress component"; }, //------------------------------------------------------------------------- 'deferred': function() { return this._deferred; }, 'setDeferred': function(aValue) { this._deferred = aValue; }, //------------------------------------------------------------------------- 'renderSelf': function() { // var loginProgressElement; // // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); // // if (loginProgressElement == null) { // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); // } -//console.log(">> LoginProgress.renderSelf", this.element()); this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ // this.append(loginProgressElement, [ {tag:'div', cls:'header', children:[ {tag:'h3', id:this.getId('title'), html:"login progress"} ]}, {tag:'div', cls:'body', children:[ {tag:'div', id:this.getId('progressBar')}, {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ // {tag:'div', cls:'img ALERT', children:[{tag:'div'}]}, {tag:'div', cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, {tag:'p', html:"Login failed"} ]} ]}, {tag:'div', cls:'footer', children:[ {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ // {tag:'div', cls:'button', id:this.getId('button'), children:[ // {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} // ]} {tag:'a', cls:'button', id:this.getId('button'), html:"cancel"} ]} ]} ]}); // ]); Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); MochiKit.Style.hideElement(this.getElement('errorBox')); // MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'cancelEventHandler'); }, //------------------------------------------------------------------------- 'displayElement': function() { return MochiKit.DOM.getElement('loginProgress'); }, //------------------------------------------------------------------------- 'cancelEventHandler': function(anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'cancelEvent'); }, //------------------------------------------------------------------------- 'disableCancel': function() { MochiKit.Style.hideElement(this.getElement('buttonArea')); }, //------------------------------------------------------------------------- 'showErrorMessage': function() { // this.getElement('buttonLink').innerHTML = "close"; this.getElement('button').innerHTML = "close"; MochiKit.DOM.addElementClass(this.getElement('button'), 'default'); MochiKit.Style.hideElement(this.getElement('progressBar')); this.getElement('title').innerHTML = "Error"; MochiKit.Style.showElement(this.getElement('errorBox')); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js index feb16ad..06746d1 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js @@ -1,191 +1,187 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.NewUserCreationComponent.superclass.constructor.apply(this, arguments); this._tabPanelController = null; this._initiallySelectedTab = args.selected || 'CREDENTIALS'; this._tabPanelControllerConfiguration = { 'CREDENTIALS': { tab: 'credentialsTab', panel: 'credentialsTabpanel' }, 'CHECK_CREDENTIALS': { tab: 'checkCredentialsTab', panel: 'checkCredentialsTabpanel' }, 'TERMS_OF_SERVICE': { tab: 'termsOfServiceTab', panel: 'termsOfServiceTabpanel' }, 'CREATE_USER': { tab: 'createUserTab', panel: 'createUserTabpanel' } //, /* 'LOGIN': { tab: 'loginTab', panel: 'loginTabpanel' } */ }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Clipperz.PM.UI.Common.Components.TabPanelComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.NewUserCreationComponent component"; }, //========================================================================= 'disableAllPanels': function () { this.tabPanelController().selectTab(null); }, //------------------------------------------------------------------------- 'enableCredentialsPanel': function () { this.tabPanelController().selectTab('CREDENTIALS'); }, 'enableCheckCredentialsPanel': function () { this.tabPanelController().selectTab('CHECK_CREDENTIALS'); }, 'enableTermsOfServicePanel': function () { this.tabPanelController().selectTab('TERMS_OF_SERVICE'); }, 'enableCreateUserPanel': function () { this.tabPanelController().selectTab('CREATE_USER'); }, // 'enableLoginPanel': function () { // this.tabPanelController().selectTab('LOGIN'); // }, //========================================================================= 'shouldShowElementWhileRendering': function() { return false; }, //========================================================================= 'tabPanelController': function () { if (this._tabPanelController == null) { this._tabPanelController = new Clipperz.PM.UI.Common.Controllers.TabPanelController({ component:this, configuration:this._tabPanelControllerConfiguration }); MochiKit.Signal.connect(this._tabPanelController, 'tabSelected', this, 'handleTabSelected') } return this._tabPanelController; }, //------------------------------------------------------------------------- 'renderSelf': function() { -//console.log('** Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition)); - this.append(this.element(), {tag:'div', cls:'NewUserCreation mainDialog', id:this.getId('panel'), children: [ {tag:'form', id:this.getId('form'), cls:'newUserCreationForm', children:[ {tag:'div', cls:'header', children:[ {tag:'div', cls:'title', children:[ {tag:'h3', id:this.getId('title'), html:"Create new user"} ]} ]}, {tag:'div', id:this.getId('body'), cls:'body', children:[ {tag:'div', cls:'tabContainer', children:[ {tag:'ul', cls:'tabs', children:[ {tag:'li', id:this.getId('credentialsTab'), children:[{tag:'span', html:"credentials"}]}, {tag:'li', id:this.getId('checkCredentialsTab'), children:[{tag:'span', html:"credentials check"}]}, {tag:'li', id:this.getId('termsOfServiceTab'), children:[{tag:'span', html:"terms of service"}]}, {tag:'li', id:this.getId('createUserTab'), children:[{tag:'span', html:"create user"}]} //, // {tag:'li', id:this.getId('loginTab'), children:[{tag:'span', html:"login"}]}, ]}, {tag:'ul', cls:'tabPanels', children:[ {tag:'li', id:this.getId('credentialsTabpanel'), cls:'tabPanel credentials', children:[ {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREDENTIALS.description')}]}, {tag:'ul', cls:'credentials', children:[ {tag:'li', children:[{tag:'span', cls:'label', html:"username"}, {tag:'input', type:'text', id:this.getId('username')/*, value:'test'*/}]}, {tag:'li', children:[{tag:'span', cls:'label', html:"passphrase"}, {tag:'input', type:'password', id:this.getId('passphrase')/*, value:'test'*/}]} ]} ]}, {tag:'li', id:this.getId('checkCredentialsTabpanel'), cls:'tabPanel checkCredentials', children:[ {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CHECK_CREDENTIALS.description')}]}, {tag:'ul', cls:'credentials', children:[ {tag:'li', children:[{tag:'span', cls:'label', html:"re-passphrase"}, {tag:'input', type:'password', id:this.getId('re-passphrase')/*, value:'test'*/}]} ]} ]}, {tag:'li', id:this.getId('termsOfServiceTabpanel'), cls:'tabPanel termsOfService', children:[ {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.TERMS_OF_SERVICE.description')}]}, {tag:'ul', cls:'termsOfService', children:[ {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('awareOfUnrecoverablePassphrase')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('awareOfUnrecoverablePassphrase'), html:"I understand that Clipperz will not be able to recover a lost passphrase."}]}, {tag:'li', children:[{tag:'input', type:'checkbox', id:this.getId('readTermsOfService')/*, checked:true*/}, {tag:'label', cls:'label', 'for':this.getId('readTermsOfService'), htmlString:"I have read and agreed to the <a href='http://www.clipperz.com/terms_of_service' target='_blank'>Terms of Service</a>."}]} ]} ]}, {tag:'li', id:this.getId('createUserTabpanel'), cls:'tabPanel createUser', children:[ {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.CREATE_USER.description')}]}, {tag:'ul', cls:'createUserStates', children:[ {tag:'li', cls:'creating', id:this.getId('creatingRegistering'), children:[{tag:'span', html:"registering user"}]}, {tag:'li', cls:'done', id:this.getId('creatingDone'), children:[{tag:'span', html:"done"}]}, {tag:'li', cls:'fail', id:this.getId('creatingFailed'), children:[{tag:'span', html:"fail"}]} ]} ]} //, // {tag:'li', id:this.getId('loginTabpanel'), cls:'tabPanel login', children:[ // {tag:'div', cls:'wizardStepDescription', children:[{tag:'span', html:Clipperz.PM.Strings.getValue('Wizards.NewUserWizard.LOGIN.description')}]}, // ]} ]} ]} ]}, {tag:'div', id:this.getId('footer'), cls:'footer', children:[ {tag:'div', cls:'buttonArea', children:[ // {tag:'div', cls:'cancel', id:this.getId('cancelButton'), html:"cancel"}, // {tag:'div', cls:'save disabled', id:this.getId('saveButton'), html:"save"} ]} ]} ]}, {tag:'div', cls:'clear'} ]}); this.tabPanelController().setup(); // MochiKit.Signal.connect(this.getId('panel'), 'onkeydown', this, 'handleKeyEvent'); MochiKit.Signal.connect(MochiKit.DOM.currentDocument().body, 'onkeydown', this, 'handleKeyEvent'); @@ -272,132 +268,128 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Cli } }, */ //========================================================================= /* 'bindingComponents': function () { return this._bindingComponents; }, 'clearAllBindingsComponents': function () { MochiKit.Iter.forEach(this.bindingComponents(), MochiKit.Base.methodcaller('remove')); this._bindingComponents = []; this.getElement('bindings').innerHTML = ''; }, 'addBindingComponent': function (aBindingComponent) { this.bindingComponents().push(aBindingComponent); aBindingComponent.renderInNode(this.append(this.getElement('bindings'), {tag:'div'})); }, */ //========================================================================= /* 'formValueComponents': function () { return this._formValueComponents; }, 'clearAllFormValueComponents': function () { MochiKit.Iter.forEach(this.formValueComponents(), MochiKit.Base.methodcaller('remove')); this._formValueComponents = []; this.getElement('formValues').innerHTML = ''; }, 'addFormValueComponent': function (aFormValueComponent) { this.formValueComponents().push(aFormValueComponent); aFormValueComponent.renderInNode(this.append(this.getElement('formValues'), {tag:'div'})); }, */ //========================================================================= 'changedValue': function (anEvent) { MochiKit.Signal.signal(this, 'changedValue', anEvent); this.incrementUpdateFaviconCounter(); MochiKit.Async.callLater(1, MochiKit.Base.method(this, 'updateFavicon')); }, //------------------------------------------------------------------------- 'handleBackClick': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'back'); }, //========================================================================= 'bottomMargin': function () { var result; // TODO: WTF!!! // result = MochiKit.Style.getElementPosition(this.element())['y'] + // MochiKit.Style.getElementDimensions(this.element())['h']; // result = MochiKit.Style.getElementPosition(this.getElement('footer'))['y']; -//console.log("### bottomMargin"); -//console.log('displayElement', this.displayElement()); -//console.log('-- Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition)); -//console.log('element', MochiKit.Style.getElementPosition('modalDialog') ['y'], MochiKit.Style.getElementDimensions('modalDialog')['h']); // result = 450; result = Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['position']['y'] + Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['dimensions']['h'] - 60; return result; }, //========================================================================= 'focusOnUsernameElement': function () { MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('username'), 'focus')); }, 'focusOnRePassphraseElement': function () { this.getElement('re-passphrase').focus(); }, /* 'focusOnBookmarkletConfigurationElement': function () { this.getElement('bookmarkletConfiguration').focus(); }, 'focusOnFaviconElement': function () { this.getElement('faviconURL').focus(); }, */ //========================================================================= 'hideAllProgeressStates': function () { MochiKit.Style.hideElement(this.getElement('creatingRegistering')); MochiKit.Style.hideElement(this.getElement('creatingDone')); MochiKit.Style.hideElement(this.getElement('creatingFailed')); }, 'showProgressOnUserCreation': function () { //Clipperz.log(">>> NewUserCreationComponent.showProgressOnUserCreation"); this.hideAllProgeressStates(); MochiKit.Style.showElement(this.getElement('creatingRegistering')); }, 'showUserCreationDone': function () { //Clipperz.log(">>> NewUserCreationComponent.showUserCreationDone"); this.hideAllProgeressStates(); MochiKit.Style.showElement(this.getElement('creatingDone')); //Clipperz.log("<<< NewUserCreationComponent.showUserCreationDone"); }, 'showUserCreationFailed': function () { //Clipperz.log(">>> NewUserCreationComponent.showUserCreationFailed"); this.hideAllProgeressStates(); MochiKit.Style.showElement(this.getElement('creatingFailed')); }, //========================================================================= 'handleKeyEvent': function (anEvent) { MochiKit.Signal.signal(this, 'keyPressed', anEvent); /* if (anEvent.key().string == 'KEY_ENTER') { if (anEvent.target().nodeName != 'TEXTAREA') { MochiKit.Signal.signal(this, 'moveForward'); anEvent.preventDefault(); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js index 3cc5a37..30cbeb2 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js @@ -1,68 +1,66 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.Page = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.Page.superclass.constructor.apply(this, arguments); this._slots = { 'header': 'pageHeader', 'body': 'pageBody', 'footer': 'pageFooter' }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.Page, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.Page component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', id:'pageHeaderAndBody', cls:'pageHeaderAndBody', children:[ {tag:'div', id:'pageHeader', cls:'pageHeader'}, {tag:'div', id:'pageBody', cls:'pageBody'} ]}, {tag:'div', id:'pageFooter', cls:'pageFooter'} ]); }, //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js index dcf506f..df3ca0c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js @@ -1,67 +1,65 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.PageFooter = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.PageFooter.superclass.constructor.apply(this, arguments); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageFooter, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.PageFooter component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', cls:'footerWrapper', children:[ {tag:'div', cls:'footerContent', children:[ {tag:'canvas', id:this.getId('footerStarIcon'), cls:'footerStarIcon'}, {tag:'span', cls:'copyright', html:'Copyright © 2009-2013 Clipperz Srl'}, {tag:'a', href:'http://www.clipperz.com/terms_of_service', target:'_blank', html:'terms of service'}, {tag:'a', href:'http://www.clipperz.com/privacy_policy', target:'_blank', html:'privacy policy'}, {tag:'div', cls:'applicationVersion', htmlString:'application version: <a href="https://github.com/clipperz/password-manager/tree/' + Clipperz_version + '" target="github">' + Clipperz_version + '</a>'} ]} ]} ]); Clipperz.PM.UI.Canvas.star.normal(this.getElement('footerStarIcon'), "#7e7e7e"); }, //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js index b8f3b05..5e49fb5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.PageHeader = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.PageHeader.superclass.constructor.apply(this, arguments); this._newsIsOpen = args.newsIsOpen || false; this._animationDuration = args.animationDuration || 0.5; this._offset = 82; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PageHeader, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.PageHeader component"; }, //------------------------------------------------------------------------- 'iframeURL': function () { // return './rss_view.html'; return 'http://www.clipperz.com/files/clipperz.com/appTips/index.html'; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', id:'miscLinks', children:[ {tag:'ul', children:[ {tag:'li', children:[{tag:'a', id:'donateHeaderLink', stringID:'pageHeader.donation', href:'http://www.clipperz.com/donations', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.donation')}]}, {tag:'li', children:[{tag:'a', id:'forumHeaderLink', stringID:'pageHeader.forum', href:'http://www.clipperz.com/forum', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.forum')}]}, {tag:'li', children:[{tag:'a', id:'creditsHeaderLink', stringID:'pageHeader.credits', href:'http://www.clipperz.com/credits', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.credits')}]}, {tag:'li', children:[{tag:'a', id:'feedbackHeaderLink', stringID:'pageHeader.feedback', href:'http://www.clipperz.com/contact', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.feedback')}]}, {tag:'li', children:[{tag:'a', id:'helpHeaderLink', stringID:'pageHeader.help', href:'http://www.clipperz.com/support/user_guide', target:'_blank', html:Clipperz.PM.Strings.getValue('pageHeader.help')}]} ]} ]}, {tag:'div', id:'logoFrame', children:[ {tag:'a', href:'http://www.clipperz.com', target:'_blank', children:[ // {tag:'h1', cls:'logo', html:"clipperz"}, {tag:'canvas', id:this.getId('logo'), cls:'logo'}, {tag:'h5', cls:'clipperzPayoff', html:"keep it to yourself!"} ]} ]}, {tag:'div', id:'news', cls:'hidden', children:[ // {tag:'div', cls:'close', children:[ // {tag:'a', href:'#', id:this.getId('closeTips'), html:'x'} // ]}, {tag:'div', id:'newsframe', children:[ {tag:'iframe', id:this.getId('iframe'), src:this.iframeURL()} ]}, {tag:'div', id:this.getId('newsGrip'), cls:'grip', children:[ {tag:'div', cls:'gripHandler', children:[]} ]} diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js index 987e51e..5eb0c1f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.PasswordTooltip.superclass.constructor.apply(this, arguments); this._referenceElement = args.referenceElement || Clipperz.Base.exception.raise('MandatoryParameter'); this._text = args.text || Clipperz.Base.exception.raise('MandatoryParameter'); this._boxDimensions = null; this._isVisible = false; this.renderSelf(); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.PasswordTooltip, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.PasswordTooltip component"; }, //------------------------------------------------------------------------- 'referenceElement': function () { return this._referenceElement; }, //------------------------------------------------------------------------- 'text': function () { return this._text; }, 'setText': function (aValue) { this._text = aValue; }, //------------------------------------------------------------------------- 'isVisible': function () { return this._isVisible; }, 'setIsVisible': function (aValue) { this._isVisible = aValue; }, //------------------------------------------------------------------------- 'renderSelf': function() { this.append(MochiKit.DOM.getElement('Clipperz_PM_UI_Common_Components_Tooltip_wrapperNode'), {tag:'div', id:this.getId('tooltip'), cls:'passwordTooltip', children:[ {tag:'div', id:this.getId('body'), cls:'passwordTooltip_body', children:[ {tag:'div', cls:'passwordTooltip_text', children:[ {tag:'span', html:this.text()} diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js index 69c1ede..ad8d677 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js @@ -1,179 +1,176 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); this._translationContext = args.translationContext || Clipperz.Base.exception.raise('MandatoryParameter'); // this._steps = args.steps || Clipperz.Base.exception.raise('MandatoryParameter'); this._steps = args.steps; this._currentStep = -1; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.RulerComponent component"; }, //------------------------------------------------------------------------- 'resetStatus': function (args) { args = args || {}; if (this.currentStep() != 0) { var shouldAnimateTransition; shouldAnimateTransition = args.animateTransition || false; if (shouldAnimateTransition) { this.moveToFirstStep(MochiKit.Base.method(this, 'cursorMoved')); } else { this._currentStep = 0; this.cursorMoved(); } } }, //------------------------------------------------------------------------- 'translationContext': function () { return this._translationContext; }, 'steps': function () { return this._steps; }, 'setSteps': function (aValue) { this._steps = aValue; this.renderStepsComponents(); this.resetStatus(); }, 'translatedStepDescription': function (aStep) { return Clipperz.PM.Strings.getValue(this.translationContext() + '.' + aStep + '.' + 'name'); }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.setElement(this.append(MochiKit.DOM.currentDocument().body, [ {tag:'div', id:this.getId('rulerWrapper'), cls:'rulerWrapper fixed', children:[ {tag:'div', cls:'ruler', children:[ {tag:'a', href:'#', id:this.getId('exit'), cls:'exit', html:' '}, {tag:'a', href:'#', id:this.getId('smallPreviousButton'), cls:'smallButton previous', html:' '}, {tag:'a', href:'#', id:this.getId('smallNextButton'), cls:'smallButton next', html:' '}, {tag:'div', cls:'marker', id:this.getId('marker'), children:[ {tag:'div', cls:'previous', id:this.getId('previousButton')}, {tag:'div', cls:'markerBody'}, {tag:'div', cls:'next', id:this.getId('nextButton')} ]}, {tag:'div', cls:'steps', id:this.getId('stepsFrame')}, // {tag:'div', cls:'steps' + ' ' + 'steps_' + this.steps().length, children:[ // {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map(MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} // ]}, {tag:'div', cls:'dots', id:this.getId('dotsFrame')} // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} // ]} ]} ]} ])); -//console.log("ELEMENT", this.element()); MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); MochiKit.Signal.connect(this.getElement('previousButton'), 'onclick', this, 'handlePrevious'); MochiKit.Signal.connect(this.getElement('smallPreviousButton'), 'onclick', this, 'handlePrevious'); MochiKit.Signal.connect(this.getElement('nextButton'), 'onclick', this, 'handleNext'); MochiKit.Signal.connect(this.getElement('smallNextButton'), 'onclick', this, 'handleNext'); this.enablePrevious(false); this.enableNext(false); // this.cursorMoved(); }, //......................................................................... 'renderStepsComponents': function () { var stepsFrame; var dotsFrame; stepsFrames = this.getElement('stepsFrame'); MochiKit.DOM.setElementClass(stepsFrames, 'steps'); MochiKit.DOM.addElementClass(stepsFrames, 'steps_' + this.steps().length); stepsFrames.innerHTML = ""; this.append(stepsFrames, {tag:'ul', id:this.getId('steps'), children:MochiKit.Base.map( MochiKit.Base.bind(function (aStep) { return {tag:'li', children:[{tag:'span', html:this.translatedStepDescription(aStep)}]}}, this), this.steps())} ); dotsFrames = this.getElement('dotsFrame'); MochiKit.DOM.setElementClass(dotsFrames, 'dots'); MochiKit.DOM.addElementClass(dotsFrames, 'steps_' + this.steps().length); dotsFrames.innerHTML = ""; this.append(dotsFrames, {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map( function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}; }, this.steps())} ); }, //------------------------------------------------------------------------- 'handleExit': function (anEvent) { anEvent.preventDefault(); MochiKit.Signal.signal(this, 'exit'); }, //------------------------------------------------------------------------- 'handlePrevious': function (anEvent) { anEvent.preventDefault(); // if (!MochiKit.DOM.hasElementClass(this.getElement('previousButton'), 'disabled')) { // this.moveBackward(); // } MochiKit.Signal.signal(this, 'moveBackward'); }, 'handleNext': function (anEvent) { anEvent.preventDefault(); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js index 666afe9..edcdb62 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); this._element = args.element || null; this._slots = { }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TabSidePanel, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.TabSidePanel component"; }, //------------------------------------------------------------------------- 'deselectAllTabs': function() { var tabListItems; tabListItems = [ 'cardsLI', // 'directLoginLI', 'accountLI', 'dataLI', 'toolsLI' ]; //Clipperz.log("=== TabSidePanel.tabSelected anEvent.src().id", anEvent.src().id); for (var i in tabListItems) { //Clipperz.log("=== TabSidePanel.tabSelected aTabListItem", tabListItems[i]); MochiKit.DOM.removeElementClass(this.getId(tabListItems[i]), 'selected'); } }, 'selectTab': function(aTabName) { this.deselectAllTabs(); MochiKit.DOM.addElementClass(this.getId(this.listItemIdForTabNamed(aTabName)), 'selected'); MochiKit.Signal.signal(this, 'tabSelected', aTabName); }, 'tabNameForAnchorId': function(anId) { var result; switch(anId) { case 'cards_tabSidePanel': result = 'cards'; break; // case 'directLogins_tabSidePanel': // result = 'directLogins'; // break; case 'account_tabSidePanel': diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js index 3dc9ce9..9b1796a 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js @@ -1,50 +1,48 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); //############################################################################# Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.TextColumnManager.superclass.constructor.call(this, args); return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.TextColumnManager, Clipperz.PM.UI.Web.Components.ColumnManager, { 'toString': function () { return "Clipperz.PM.UI.Web.Components.TextColumnManager component"; }, //----------------------------------------------------- '__syntax_fix__' : 'syntax fix' }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js index 0fa369f..034ed91 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.ToolsPanel.superclass.constructor.apply(this, arguments); this._initiallySelectedTab = args.selected || 'PASSWORD_GENERATOR'; this._tabPanelControllerConfiguration = { 'PASSWORD_GENERATOR': { tab: 'passwordGeneratorTab', panel: 'passwordGeneratorPanel' }, 'BOOKMARKLET': { tab: 'bookmarkletTab', panel: 'bookmarkletPanel' }, 'COMPACT_EDITION': { tab: 'compactEditionTab', panel: 'compactEditionPanel' }, 'HTTP_AUTH': { tab: 'httpAuthTab', panel: 'httpAuthPanel' } }; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; }, //------------------------------------------------------------------------- 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ {tag:'div', cls:'header', children:[ {tag:'div', cls:'subPanelTabs', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('passwordGeneratorTab'), children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} ]} ]} ]}, {tag:'div', cls:'body', children:[ {tag:'div', cls:'accountPanel', children:[ {tag:'div', cls:'subPanelContent', children:[ {tag:'ul', children:[ {tag:'li', id:this.getId('passwordGeneratorPanel'), children:[ // {tag:'h3', html:"Password generator"} ]}, diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js index 21ccf2a..fe46729 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js @@ -1,86 +1,84 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.constructor.apply(this, arguments); this._openFromElement = args.openFromElement || null; this._onOkCloseToElement = args.onOkCloseToElement || null; this._onCancelCloseToElement = args.onCancelCloseToElement || null; this._progressBarComponent = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clipperz.PM.UI.Common.Components.SimpleMessagePanel, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.UnlockPasswordComponent component"; }, //------------------------------------------------------------------------- 'getPassphrase': function () { /* var deferredResult; if (this.passphrase() == null) { this.deferredShowModal({'openFromElement': this.openFromElement()}); deferredResult = this.deferred(); } else { deferredResult = MochiKit.Async.succeed(this.passphrase()); } return deferredResult; */ this.deferredShowModal({'openFromElement': this.openFromElement()}); return this.deferred(); }, //------------------------------------------------------------------------- 'deferredShowModal': function (someParameters) { return Clipperz.Async.callbacks("UnlockPasswordComponent.deferredShowModal", [ MochiKit.Base.bind(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.deferredShowModal, this, someParameters), MochiKit.Base.method(this, 'getElement', 'passphrase'), MochiKit.Base.methodcaller('focus') ], {trace:false}) }, //------------------------------------------------------------------------- 'openFromElement': function () { return this._openFromElement; }, @@ -99,83 +97,82 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clip Clipperz.PM.UI.Web.Components.UnlockPasswordComponent.superclass.renderSelf.apply(this, arguments); this.append(this.getElement('container'), {tag:'div', cls:'passphrase', children: [ // {tag:'form', id:this.getId('passphraseForm'), children:[ {tag:'input', id:this.getId('passphrase'), type:'password', name:'passphrase', value:''} // ]} ]}); MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userSuccessfullyLoggedIn', this, 'userSuccessfullyLoggedInHandler'); MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'userLoginFailed', this, 'userLoginFailedHandler'); // MochiKit.Async.callLater(0.1, MochiKit.Base.method(this.getElement('passphrase'), 'focus')); // this.getElement('passphrase').select(); }, //------------------------------------------------------------------------- 'showProgressBar': function () { var progressBarElement; this.getElement('container').innerHTML = ''; progressBarElement = this.append(this.getElement('container'), {tag:'div', cls:'progressBarWrapper'}); this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':progressBarElement})); this.setButtons([{text:"Cancel", result:'CANCEL'}]); }, //------------------------------------------------------------------------- 'showFailure': function () { this.setType('ALERT'); this.setTitle("Login failed"); this.setText("Wrong passphrase; the unlock has failed."); this.getElement('container').innerHTML = ''; this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); }, //------------------------------------------------------------------------- 'closeOk': function () { var passphrase; passphrase = this.getElement('passphrase').value; this.showProgressBar(); // this.deferred().callback(passphrase); MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback', passphrase)); this._deferred = null; }, 'closeCancel': function () { this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); this.deferred().cancel(); this._deferred = null; }, //------------------------------------------------------------------------- 'userSuccessfullyLoggedInHandler': function (anEvent) { this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); }, 'userLoginFailedHandler': function (anEvent) { -//console.log("############### FAILED LOGIN ################"); this.showFailure(); }, //------------------------------------------------------------------------- /* 'deferredShow': function (someArgs, aResult) { this.deferredShowModal(someArgs); // this.deferred().addMethod(this, 'deferredHideModal', {closeToElement:someArgs.onOkCloseToElement }); // this.deferred().addErrback (MochiKit.Base.method(this, 'deferredHideModal', {closeToElement:someArgs.onCancelCloseToElement })); // this.deferred().addCallback(MochiKit.Async.succeed, aResult); return this.deferred(); }, */ //------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js index d699dc6..fbf58e0 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js @@ -1,213 +1,207 @@ /* -Copyright 2008-2011 Clipperz Srl +Copyright 2008-2013 Clipperz Srl -This file is part of Clipperz Community Edition. -Clipperz Community Edition is an online password manager. +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 Community Edition 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 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 Community Edition 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. +* 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 Community Edition. If not, see - <http://www.gnu.org/licenses/>. + License along with Clipperz. If not, see http://www.gnu.org/licenses/. */ Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { args = args || {}; Clipperz.PM.UI.Web.Components.UserInfoBox.superclass.constructor.apply(this, arguments); this._slots = { }; this._isLocked = false; this._lockTooltip = null; return this; } //============================================================================= Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.Common.Components.BaseComponent, { //------------------------------------------------------------------------- 'toString': function () { return "Clipperz.PM.UI.Web.Components.UserInfoBox component"; }, //------------------------------------------------------------------------- 'handleLogout': function(anEvent) { //Clipperz.log(">>> UserInfoBox.handleLogout"); anEvent.preventDefault(); MochiKit.Signal.signal(this, 'logout'); //Clipperz.log("<<< UserInfoBox.handleLogout"); }, //------------------------------------------------------------------------- 'lockTooltip': function () { return this._lockTooltip; }, //------------------------------------------------------------------------- 'isLocked': function () { return this._isLocked; }, 'setIsLocked': function (aValue) { this._isLocked = aValue; }, 'toggleLock': function(anEvent) { var deferredResult; var shouldLock; -//console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]"); anEvent.preventDefault(); this.lockTooltip().hide(); shouldLock = (this.isLocked() == false); if (shouldLock) { var maskElement; this.setIsLocked(true); maskElement = this.getId('modalDialogMask'); deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [lock]", [ MochiKit.Base.partial(MochiKit.DOM.addElementClass, this.element(), 'locked'), MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.appear, maskElement, {from:0.0, to:0.75, duration:0.5}), MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') ], {trace:false}); } else { deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') ], {trace:false}); } -//console.log("<<< UserInfoBox.toggleLock"); return deferredResult; }, //------------------------------------------------------------------------- 'unlock': function () { var deferredResult; var maskElement; this.setIsLocked(false); maskElement = this.getId('modalDialogMask'); deferredResult = Clipperz.Async.callbacks("UserInfoBox.unlock", [ MochiKit.Base.partial(Clipperz.Visual.deferredAnimation, MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), // Clipperz.Visual.deferredAnimation(MochiKit.Visual.fade, maskElement, {from:0.75, to:0.0, duration:0.5}), MochiKit.Base.partial(MochiKit.DOM.removeElementClass, this.element(), 'locked') ], {trace:false}); }, //------------------------------------------------------------------------- 'askForPassphrase': function () { var unlockPasswordComponent; /* var deferredResult; deferredResult = new Clipperz.Async.Deferred("UserInfoBox.askForPassphrase", {trace:false}); deferredResult.addCallback(MochiKit.Async.succeed, 'test'); deferredResult.callback(); return deferredResult; */ -//console.log(">>> UserInfoBox.askForPassphrase"); unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ 'title': "Unlock account", 'text': "Insert the passprase to unlock the account", 'type': 'INFO', 'buttons': [ {text:"Cancel", result:'CANCEL'}, {text:"Unlock", result:'OK', isDefault:true} ], 'openFromElement': this.getElement('lock'), 'onOkCloseToElement': null, 'onCancelCloseToElement': this.getId('lock') }); -//console.log("<<< UserInfoBox.askForPassphrase"); return unlockPasswordComponent.getPassphrase(); }, //========================================================================= 'renderSelf': function(/*aContainer, aPosition*/) { this.append(this.element(), [ // {tag:'canvas', id:this.getId('canvas'), cls:'canvas', width:'188', height:'154'}, {tag:'div', cls:'header', children:[ {tag:'h1', html:"Welcome"}, {tag:'a', cls:'lockButton', href:'#', id:this.getId('lock'), html:' '} ]}, {tag:'div', cls:'body', children:[ {tag:'h3', id:this.getId('username'), html:""}, {tag:'ul', children:[ {tag:'li', id:this.getId('cards'), children:[ {tag:'span', id:this.getId('cardsNumber'), cls:'number', html:"-"}, {tag:'span', id:this.getId('cardsLabel'), html:"cards"} ]}, {tag:'li', id:this.getId('directLogins'), children:[ {tag:'span', id:this.getId('directLoginsNumber'), cls:'number', html:"-"}, {tag:'span', id:this.getId('directLoginsLabel'), html:"direct logins"} ]} ]}, {tag:'a', href:'#', id:this.getId('logout'), html:"logout >"} ]}, {tag:'div', cls:'footer'} ]); MochiKit.Signal.connect(this.getElement('logout'), 'onclick', this, 'handleLogout'); MochiKit.Signal.connect(this.getElement('lock'), 'onclick', this, 'toggleLock'); this._lockTooltip = new Clipperz.PM.UI.Common.Components.Tooltip({ element: this.getElement('lock'), text: "Click here to lock/unlock your account.", position: 'RIGHT' }); Clipperz.DOM.Helper.append(MochiKit.DOM.currentDocument().body, {tag:'div', id:this.getId('modalDialogWrapper'), cls:'modalDialogWrapper', children:[ {tag:'div', id:this.getId('modalDialogMask'), cls:'modalDialogMask userInfoBoxMask'} ]} ); MochiKit.Style.hideElement(this.getId('modalDialogMask')); // this.drawUserInfoBackground(this.getElement('canvas')); }, //------------------------------------------------------------------------- /* 'drawUserInfoBackground': function (canvas) { var kMyDrawingFunctionWidth = 188.0; var kMyDrawingFunctionHeight = 154.0; var context = canvas.getContext("2d"); var color; var resolution; var alignStroke; var path; var pointX; var pointY; var controlPoint1X; var controlPoint1Y; |