summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/Clipperz
Unidiff
Diffstat (limited to 'frontend/gamma/js/Clipperz') (more/less context) (show whitespace changes)
-rw-r--r--frontend/gamma/js/Clipperz/Async.js50
-rw-r--r--frontend/gamma/js/Clipperz/Base.js41
-rw-r--r--frontend/gamma/js/Clipperz/ByteArray.js71
-rw-r--r--frontend/gamma/js/Clipperz/CSVProcessor.js78
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/AES.js29
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/Base.js22
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/BigInt.js23
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js22
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js83
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js24
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js22
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js24
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js31
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/PRNG.js33
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/RSA.js22
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/SHA.js22
-rw-r--r--frontend/gamma/js/Clipperz/Crypto/SRP.js36
-rw-r--r--frontend/gamma/js/Clipperz/DOM.js24
-rw-r--r--frontend/gamma/js/Clipperz/Date.js25
-rw-r--r--frontend/gamma/js/Clipperz/KeePassExportProcessor.js22
-rw-r--r--frontend/gamma/js/Clipperz/KeyValueObjectStore.js27
-rw-r--r--frontend/gamma/js/Clipperz/Logging.js37
-rw-r--r--frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Connection.js31
-rw-r--r--frontend/gamma/js/Clipperz/PM/Crypto.js48
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js34
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js30
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js66
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js25
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/Record.js44
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js39
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.js24
-rw-r--r--frontend/gamma/js/Clipperz/PM/Date.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/PIN.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy.js30
-rwxr-xr-xfrontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js48
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/Strings.js27
-rw-r--r--frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/Toll.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js24
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js35
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js30
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js29
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js24
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js29
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js54
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/AppPage.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/BookmarkletComponent.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogComponent.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordDirectLoginComponent.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/CardDialogRecordFieldComponent.js24
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/ColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/CreateNewCardSplashComponent.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DateColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DeleteObjectColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingBindingComponent.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingComponent.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginEditingFormValueComponent.js27
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/DirectLoginsColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/FaviconColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/GridComponent.js24
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/ImageColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/LinkColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginForm.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginPage.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/NewUserCreationComponent.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/Page.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageFooter.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/PageHeader.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/PasswordTooltip.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/RulerComponent.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/TabSidePanel.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/TextColumnManager.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/UnlockPasswordComponent.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Components/UserInfoBox.js26
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js23
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js25
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js22
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js28
-rw-r--r--frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js28
-rw-r--r--frontend/gamma/js/Clipperz/Set.js22
-rw-r--r--frontend/gamma/js/Clipperz/Signal.js22
-rw-r--r--frontend/gamma/js/Clipperz/Style.js22
-rw-r--r--frontend/gamma/js/Clipperz/Visual.js22
-rw-r--r--frontend/gamma/js/Clipperz/YUI/DomHelper.js29
-rw-r--r--frontend/gamma/js/Clipperz/YUI/DomQuery.js22
-rw-r--r--frontend/gamma/js/Clipperz/YUI/Utils.js22
138 files changed, 1508 insertions, 2165 deletions
diff --git a/frontend/gamma/js/Clipperz/Async.js b/frontend/gamma/js/Clipperz/Async.js
index f7a9517..d525453 100644
--- a/frontend/gamma/js/Clipperz/Async.js
+++ b/frontend/gamma/js/Clipperz/Async.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//Clipperz.Async = MochiKit.Async; 24//Clipperz.Async = MochiKit.Async;
27 25
28 26
29if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 27if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
30if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; } 28if (typeof(Clipperz.Async) == 'undefined') { Clipperz.Async = {}; }
@@ -57,18 +55,17 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
57 'args': function () { 55 'args': function () {
58 return this._args; 56 return this._args;
59 }, 57 },
60 58
61 //----------------------------------------------------------------------------- 59 //-----------------------------------------------------------------------------
62 60
63 'callback': function (aValue) { 61 'callback': function (aValue) {
64 if (this._shouldTrace) { 62 if (this._shouldTrace) {
65 //Clipperz.log("CALLBACK " + this._name, aValue); 63 Clipperz.log("CALLBACK " + this._name, aValue);
66 console.log("CALLBACK " + this._name, aValue);
67 } 64 }
68 65
69 if (this.chained == false) { 66 if (this.chained == false) {
70 var message; 67 var message;
71 68
72 message = "ERROR [" + this._name + "]"; 69 message = "ERROR [" + this._name + "]";
73 this.addErrback(function(aResult) { 70 this.addErrback(function(aResult) {
74 if (! (aResult instanceof MochiKit.Async.CancelledError)) { 71 if (! (aResult instanceof MochiKit.Async.CancelledError)) {
@@ -78,19 +75,17 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
78 }); 75 });
79 76
80 if (this._shouldTrace) { 77 if (this._shouldTrace) {
81 var resultMessage; 78 var resultMessage;
82 79
83 resultMessage = "RESULT " + this._name + " <=="; 80 resultMessage = "RESULT " + this._name + " <==";
84 // this.addCallback(function(aResult) { 81 // this.addCallback(function(aResult) {
85 Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) { 82 Clipperz.Async.Deferred.superclass.addCallback.call(this, function(aResult) {
86 //Clipperz.log(resultMessage, aResult); 83 Clipperz.log(resultMessage, aResult);
87 console.log(resultMessage, aResult);
88
89 return aResult; 84 return aResult;
90 }); 85 });
91 } 86 }
92 } 87 }
93 88
94 if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) { 89 if (CLIPPERZ_DEFERRED_CALL_LOGGING_ENABLED === true) {
95 Clipperz.log("callback " + this._name, this); 90 Clipperz.log("callback " + this._name, this);
96 } 91 }
@@ -103,32 +98,28 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
103 'addCallback': function () { 98 'addCallback': function () {
104 var message; 99 var message;
105 100
106 if (this._shouldTrace) { 101 if (this._shouldTrace) {
107 this._count ++; 102 this._count ++;
108 message = "[" + this._count + "] " + this._name + " "; 103 message = "[" + this._count + "] " + this._name + " ";
109 // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;}); 104 // this.addBoth(function(aResult) {Clipperz.log(message + "-->", aResult); return aResult;});
110 this.addCallbacks( 105 this.addCallbacks(
111 //function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, 106 function(aResult) {Clipperz.log("-OK- " + message + "-->"/*, aResult*/); return aResult;},
112 function(aResult) {console.log("-OK- " + message + "-->"/*, aResult*/); return aResult;}, 107 function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;}
113 //function(aResult) {Clipperz.log("FAIL " + message + "-->"/*, aResult*/); return aResult;}
114 function(aResult) {console.log("FAIL " + message + "-->"/*, aResult*/); return aResult;}
115 ); 108 );
116 } 109 }
117 110
118 Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments); 111 Clipperz.Async.Deferred.superclass.addCallback.apply(this, arguments);
119 112
120 if (this._shouldTrace) { 113 if (this._shouldTrace) {
121 // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;}); 114 // this.addBoth(function(aResult) {Clipperz.log(message + "<--", aResult); return aResult;});
122 this.addCallbacks( 115 this.addCallbacks(
123 //function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;}, 116 function(aResult) {Clipperz.log("-OK- " + message + "<--", aResult); return aResult;},
124 function(aResult) {console.log("-OK- " + message + "<--", aResult); return aResult;}, 117 function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;}
125 //function(aResult) {Clipperz.log("FAIL " + message + "<--", aResult); return aResult;}
126 function(aResult) {console.log("FAIL " + message + "<--", aResult); return aResult;}
127 ); 118 );
128 } 119 }
129 }, 120 },
130 121
131 //============================================================================= 122 //=============================================================================
132 123
133 'addCallbackPass': function() { 124 'addCallbackPass': function() {
134 var passFunction; 125 var passFunction;
@@ -207,17 +198,16 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
207 this.addCallback(MochiKit.Base.methodcaller.apply(this, arguments)); 198 this.addCallback(MochiKit.Base.methodcaller.apply(this, arguments));
208 }, 199 },
209 200
210 //============================================================================= 201 //=============================================================================
211 202
212 'addLog': function (aLog) { 203 'addLog': function (aLog) {
213 if (CLIPPERZ_DEFERRED_LOGGING_ENABLED) { 204 if (CLIPPERZ_DEFERRED_LOGGING_ENABLED) {
214 this.addBothPass(function(res) {Clipperz.log(aLog + " ", res);}); 205 this.addBothPass(function(res) {Clipperz.log(aLog + " ", res);});
215 // this.addBothPass(function(res) {console.log(aLog + " ", res);});
216 } 206 }
217 }, 207 },
218 208
219 //============================================================================= 209 //=============================================================================
220 210
221 'acquireLock': function (aLock) { 211 'acquireLock': function (aLock) {
222 // this.addCallback(function (aResult) { 212 // this.addCallback(function (aResult) {
223 // return Clipperz.Async.callbacks("Clipperz.Async.acquireLock", [ 213 // return Clipperz.Async.callbacks("Clipperz.Async.acquireLock", [
@@ -232,17 +222,17 @@ Clipperz.Base.extend(Clipperz.Async.Deferred, MochiKit.Async.Deferred, {
232 'releaseLock': function (aLock) { 222 'releaseLock': function (aLock) {
233 // this.addCallback(function (aResult) { 223 // this.addCallback(function (aResult) {
234 // return Clipperz.Async.callbacks("Clipperz.Async.release <ok>", [ 224 // return Clipperz.Async.callbacks("Clipperz.Async.release <ok>", [
235 // MochiKit.Base.method(aLock, 'release'), 225 // MochiKit.Base.method(aLock, 'release'),
236 // MochiKit.Base.partial(MochiKit.Async.succeed, aResult) 226 // MochiKit.Base.partial(MochiKit.Async.succeed, aResult)
237 // ], {trace:false}); 227 // ], {trace:false});
238 // }); 228 // });
239 // this.addErrback(function (aResult) { 229 // this.addErrback(function (aResult) {
240///console.log("releaseLock.addErrback:", aResult); 230///Clipperz.log("releaseLock.addErrback:", aResult);
241 // return Clipperz.Async.callbacks("Clipperz.Async.release <fail>", [ 231 // return Clipperz.Async.callbacks("Clipperz.Async.release <fail>", [
242 // MochiKit.Base.method(aLock, 'release'), 232 // MochiKit.Base.method(aLock, 'release'),
243 // MochiKit.Base.partial(MochiKit.Async.fail, aResult) 233 // MochiKit.Base.partial(MochiKit.Async.fail, aResult)
244 // ], {trace:false}); 234 // ], {trace:false});
245 // }); 235 // });
246 236
247 // this.addBothPass(MochiKit.Base.method(aLock, 'release')); 237 // this.addBothPass(MochiKit.Base.method(aLock, 'release'));
248 this.addCallbackPass(MochiKit.Base.method(aLock, 'release')); 238 this.addCallbackPass(MochiKit.Base.method(aLock, 'release'));
@@ -372,17 +362,17 @@ MochiKit.Base.update(Clipperz.Async.DeferredSynchronizer.prototype, {
372 args = args || {}; 362 args = args || {};
373 363
374 c = this.methods().length; 364 c = this.methods().length;
375 for (i=0; i<c; i++) { 365 for (i=0; i<c; i++) {
376 var deferredResult; 366 var deferredResult;
377 varmethodCalls; 367 varmethodCalls;
378 var ii, cc; 368 var ii, cc;
379 369
380//console.log("TYPEOF", typeof(this.methods()[i])); 370//Clipperz.log("TYPEOF", typeof(this.methods()[i]));
381 if (typeof(this.methods()[i]) == 'function') { 371 if (typeof(this.methods()[i]) == 'function') {
382 methodCalls = [ this.methods()[i] ]; 372 methodCalls = [ this.methods()[i] ];
383 } else { 373 } else {
384 methodCalls = this.methods()[i]; 374 methodCalls = this.methods()[i];
385 } 375 }
386 376
387 cc = methodCalls.length; 377 cc = methodCalls.length;
388 deferredResult = new Clipperz.Async.Deferred("Clipperz.Async.DeferredSynchronizer.run => " + this.name() + "[" + i + "]", args); 378 deferredResult = new Clipperz.Async.Deferred("Clipperz.Async.DeferredSynchronizer.run => " + this.name() + "[" + i + "]", args);
@@ -632,17 +622,17 @@ MochiKit.Base.update(Clipperz.Async, {
632 var deferredResult; 622 var deferredResult;
633 var i, c; 623 var i, c;
634 624
635 deferredResult = new Clipperz.Async.Deferred("Clipperz.Async.deferredSort", {trace:false}); 625 deferredResult = new Clipperz.Async.Deferred("Clipperz.Async.deferredSort", {trace:false});
636 c = someObjects.length; 626 c = someObjects.length;
637 for (i=0; i<c; i++) { 627 for (i=0; i<c; i++) {
638 deferredResult.addCallback(Clipperz.Async.insertIntoSortedArray, someObjects[i], aDeferredComparator); 628 deferredResult.addCallback(Clipperz.Async.insertIntoSortedArray, someObjects[i], aDeferredComparator);
639 if ((i % 50) == 0) { 629 if ((i % 50) == 0) {
640 //console.log("######### sort wait ##########"); 630 //Clipperz.log("######### sort wait ##########");
641 deferredResult.addCallback(MochiKit.Async.wait, 0.5); 631 deferredResult.addCallback(MochiKit.Async.wait, 0.5);
642 } 632 }
643 } 633 }
644 deferredResult.callback([]); 634 deferredResult.callback([]);
645 635
646 return deferredResult; 636 return deferredResult;
647 }, 637 },
648 638
@@ -683,17 +673,17 @@ MochiKit.Base.update(Clipperz.Async, {
683 }, 673 },
684 674
685 //========================================================================= 675 //=========================================================================
686 676
687 'or': function (someValues) { 677 'or': function (someValues) {
688 return Clipperz.Async.callbacks("Clipperz.Async.or", [ 678 return Clipperz.Async.callbacks("Clipperz.Async.or", [
689 MochiKit.Base.values, 679 MochiKit.Base.values,
690 MochiKit.Base.flattenArguments, 680 MochiKit.Base.flattenArguments,
691//function (aValue) { console.log("Record.hasAnyCleanTextData - flatten", aValue); return aValue; }, 681//function (aValue) { Clipperz.log("Record.hasAnyCleanTextData - flatten", aValue); return aValue; },
692 function(someInnerValues) { 682 function(someInnerValues) {
693 return MochiKit.Iter.some(someInnerValues, MochiKit.Base.operator.identity); 683 return MochiKit.Iter.some(someInnerValues, MochiKit.Base.operator.identity);
694 } 684 }
695 ], {trace:false}, someValues); 685 ], {trace:false}, someValues);
696 }, 686 },
697 687
698 //========================================================================= 688 //=========================================================================
699 689
diff --git a/frontend/gamma/js/Clipperz/Base.js b/frontend/gamma/js/Clipperz/Base.js
index 9d399d9..84b2172 100644
--- a/frontend/gamma/js/Clipperz/Base.js
+++ b/frontend/gamma/js/Clipperz/Base.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Base) == 'undefined') { Clipperz.Base = {}; } 25if (typeof(Clipperz.Base) == 'undefined') { Clipperz.Base = {}; }
28 26
29Clipperz.Base.VERSION = "0.2"; 27Clipperz.Base.VERSION = "0.2";
30Clipperz.Base.NAME = "Clipperz.Base"; 28Clipperz.Base.NAME = "Clipperz.Base";
@@ -436,27 +434,24 @@ MochiKit.Base.update(Clipperz.Base, {
436 434
437 'module': function(aValue) { 435 'module': function(aValue) {
438 // aValue = 'Clipperz.PM.Compact' 436 // aValue = 'Clipperz.PM.Compact'
439// 437//
440 // if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 438 // if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
441 // if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 439 // if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
442 // if (typeof(Clipperz.PM.UI.Common.Components) == 'undefined') { Clipperz.PM.UI.Common.Components = {}; } 440 // if (typeof(Clipperz.PM.UI.Common.Components) == 'undefined') { Clipperz.PM.UI.Common.Components = {}; }
443 441
444//console.log(">>> module: " + aValue);
445 var currentScope; 442 var currentScope;
446 var pathElements; 443 var pathElements;
447 var i,c; 444 var i,c;
448 445
449 currentScope = window; 446 currentScope = window;
450 pathElements = aValue.split('.'); 447 pathElements = aValue.split('.');
451 c = pathElements.length; 448 c = pathElements.length;
452 for (i=0; i<c; i++) { 449 for (i=0; i<c; i++) {
453//console.log("--- current path element: " + pathElements[i]);
454//console.log("--- current scope", currentScope);
455 if (typeof(currentScope[pathElements[i]]) == 'undefined') { 450 if (typeof(currentScope[pathElements[i]]) == 'undefined') {
456 currentScope[pathElements[i]] = {}; 451 currentScope[pathElements[i]] = {};
457 } 452 }
458 453
459 currentScope = currentScope[pathElements[i]]; 454 currentScope = currentScope[pathElements[i]];
460 } 455 }
461 }, 456 },
462 457
@@ -495,39 +490,25 @@ MochiKit.Base.registerComparator('Object dummy comparator',
495 function(a, b) { 490 function(a, b) {
496 return ((a.constructor == Object) && (b.constructor == Object)); 491 return ((a.constructor == Object) && (b.constructor == Object));
497 }, 492 },
498 function(a, b) { 493 function(a, b) {
499 var result; 494 var result;
500 var aKeys; 495 var aKeys;
501 var bKeys; 496 var bKeys;
502 497
503//MochiKit.Logging.logDebug(">>> comparator");
504//MochiKit.Logging.logDebug("- a: " + Clipperz.Base.serializeJSON(a));
505//MochiKit.Logging.logDebug("- b: " + Clipperz.Base.serializeJSON(a));
506 aKeys = MochiKit.Base.keys(a).sort(); 498 aKeys = MochiKit.Base.keys(a).sort();
507 bKeys = MochiKit.Base.keys(b).sort(); 499 bKeys = MochiKit.Base.keys(b).sort();
508
509 result = MochiKit.Base.compare(aKeys, bKeys); 500 result = MochiKit.Base.compare(aKeys, bKeys);
510//if (result != 0) { 501
511 //MochiKit.Logging.logDebug("- comparator 'keys':");
512 //MochiKit.Logging.logDebug("- comparator aKeys: " + Clipperz.Base.serializeJSON(aKeys));
513 //MochiKit.Logging.logDebug("- comparator bKeys: " + Clipperz.Base.serializeJSON(bKeys));
514//}
515 if (result == 0) { 502 if (result == 0) {
516 vari, c; 503 vari, c;
517 504
518 c = aKeys.length; 505 c = aKeys.length;
519 for (i=0; (i<c) && (result == 0); i++) { 506 for (i=0; (i<c) && (result == 0); i++) {
520 result = MochiKit.Base.compare(a[aKeys[i]], b[bKeys[i]]); 507 result = MochiKit.Base.compare(a[aKeys[i]], b[bKeys[i]]);
521//if (result != 0) {
522 //MochiKit.Logging.logDebug("- comparator 'values':");
523 //MochiKit.Logging.logDebug("- comparator a[aKeys[i]]: " + Clipperz.Base.serializeJSON(a[aKeys[i]]));
524 //MochiKit.Logging.logDebug("- comparator b[bKeys[i]]: " + Clipperz.Base.serializeJSON(b[bKeys[i]]));
525//}
526 } 508 }
527 } 509 }
528 510
529//MochiKit.Logging.logDebug("<<< comparator - result: " + result);
530 return result; 511 return result;
531 }, 512 },
532 true 513 true
533); 514);
diff --git a/frontend/gamma/js/Clipperz/ByteArray.js b/frontend/gamma/js/Clipperz/ByteArray.js
index ae586e7..22c7c6e 100644
--- a/frontend/gamma/js/Clipperz/ByteArray.js
+++ b/frontend/gamma/js/Clipperz/ByteArray.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27 25
28//============================================================================= 26//=============================================================================
29 27
30Clipperz.ByteArray_abstract = function(args) { 28Clipperz.ByteArray_abstract = function(args) {
@@ -84,21 +82,18 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
84 82
85 'length': function() { 83 'length': function() {
86 throw Clipperz.Base.exception.AbstractMethod; 84 throw Clipperz.Base.exception.AbstractMethod;
87 }, 85 },
88 86
89 //------------------------------------------------------------------------- 87 //-------------------------------------------------------------------------
90 88
91 'checkByteValue': function(aValue) { 89 'checkByteValue': function(aValue) {
92//Clipperz.log("aValue", aValue.toString(16));
93//Clipperz.log("(aValue & 0xff)", (aValue & 0xff).toString(16));
94
95 if ((aValue & 0xff) != aValue) { 90 if ((aValue & 0xff) != aValue) {
96 MochiKit.Logging.logError("Clipperz.ByteArray.appendByte: the provided value (0x" + aValue.toString(16) + ") is not a byte value."); 91 Clipperz.logError("Clipperz.ByteArray.appendByte: the provided value (0x" + aValue.toString(16) + ") is not a byte value.");
97 throw Clipperz.ByteArray.exception.InvalidValue; 92 throw Clipperz.ByteArray.exception.InvalidValue;
98 } 93 }
99 }, 94 },
100 95
101 //------------------------------------------------------------------------- 96 //-------------------------------------------------------------------------
102 97
103 'xorMergeWithBlock': function(aBlock, anAllignment, paddingMode) { 98 'xorMergeWithBlock': function(aBlock, anAllignment, paddingMode) {
104 var result; 99 var result;
@@ -139,38 +134,26 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
139 if (anAllignment == 'left') { 134 if (anAllignment == 'left') {
140 b = b.appendBlock(padding); 135 b = b.appendBlock(padding);
141 } else { 136 } else {
142 b = padding.appendBlock(b); 137 b = padding.appendBlock(b);
143 } 138 }
144 } 139 }
145 } 140 }
146 141
147
148 // result = new Clipperz.ByteArray();
149 result = this.newInstance(); 142 result = this.newInstance();
150 c = a.length(); 143 c = a.length();
151 for (i=0; i<c; i++) { 144 for (i=0; i<c; i++) {
152 result.appendByte(a.byteAtIndex(i) ^ b.byteAtIndex(i)); 145 result.appendByte(a.byteAtIndex(i) ^ b.byteAtIndex(i));
153 } 146 }
154 147
155 return result; 148 return result;
156 }, 149 },
157 150
158 //------------------------------------------------------------------------- 151 //-------------------------------------------------------------------------
159/*
160 'shiftLeft': function(aNumberOfBitsToShift) {
161 var result;
162
163 result = this.clone(); //???????????
164
165 return result;
166 },
167 */
168 //-------------------------------------------------------------------------
169 152
170 'appendBlock': function(aBlock) { 153 'appendBlock': function(aBlock) {
171 throw Clipperz.Base.exception.AbstractMethod; 154 throw Clipperz.Base.exception.AbstractMethod;
172 }, 155 },
173 156
174 //------------------------------------------------------------------------- 157 //-------------------------------------------------------------------------
175 158
176 'appendByte': function(aValue) { 159 'appendByte': function(aValue) {
@@ -287,17 +270,16 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
287 selectedByte = this.byteAtIndex(bytePosition); 270 selectedByte = this.byteAtIndex(bytePosition);
288 271
289 if (bitPositionInSelectedByte > 0) { 272 if (bitPositionInSelectedByte > 0) {
290 selectedByteMask = (1 << bitPositionInSelectedByte); 273 selectedByteMask = (1 << bitPositionInSelectedByte);
291 } else { 274 } else {
292 selectedByteMask = 1; 275 selectedByteMask = 1;
293 } 276 }
294 result = selectedByte & selectedByteMask ? 1 : 0; 277 result = selectedByte & selectedByteMask ? 1 : 0;
295//console.log("aBitPosition: " + aBitPosition + ", length: " + this.length() + ", bytePosition: " + bytePosition + ", bitPositionInSelectedByte: " + bitPositionInSelectedByte + ", selectedByteMask: " + selectedByteMask);
296 278
297 return result; 279 return result;
298 }, 280 },
299 281
300 //------------------------------------------------------------------------- 282 //-------------------------------------------------------------------------
301 283
302 'bitBlockAtIndexWithSize': function(aBitPosition, aSize) { 284 'bitBlockAtIndexWithSize': function(aBitPosition, aSize) {
303 var result; 285 var result;
@@ -316,19 +298,16 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
316 298
317 //------------------------------------------------------------------------- 299 //-------------------------------------------------------------------------
318 300
319 'asString': function() { 301 'asString': function() {
320 varresult; 302 varresult;
321 varlength; 303 varlength;
322 vari; 304 vari;
323 305
324//var startTime = new Date();
325
326 //# result = "";
327 result = []; 306 result = [];
328 307
329 i = 0; 308 i = 0;
330 length = this.length(); 309 length = this.length();
331 310
332 while (i < length) { 311 while (i < length) {
333 varcurrentCharacter; 312 varcurrentCharacter;
334 varcurrentByte; 313 varcurrentByte;
@@ -360,75 +339,57 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
360 i++; currentByte = this.byteAtIndex(i); 339 i++; currentByte = this.byteAtIndex(i);
361 unicode = unicode | ((currentByte & 0x3f) << 6); 340 unicode = unicode | ((currentByte & 0x3f) << 6);
362 i++; currentByte = this.byteAtIndex(i); 341 i++; currentByte = this.byteAtIndex(i);
363 unicode = unicode | (currentByte & 0x3f); 342 unicode = unicode | (currentByte & 0x3f);
364 343
365 currentCharacter = String.fromCharCode(unicode); 344 currentCharacter = String.fromCharCode(unicode);
366 } 345 }
367 346
368 // result += currentCharacter;
369 result.push(currentCharacter); 347 result.push(currentCharacter);
370 i++; 348 i++;
371 } 349 }
372 350
373//MochiKit.Logging.logDebug("[" + (new Date() - startTime) + "] ByteArray.asString");
374
375 // return result;
376 return result.join(""); 351 return result.join("");
377 }, 352 },
378 353
379 //------------------------------------------------------------------------- 354 //-------------------------------------------------------------------------
380 355
381 'toHexString': function() { 356 'toHexString': function() {
382 throw Clipperz.Base.exception.AbstractMethod; 357 throw Clipperz.Base.exception.AbstractMethod;
383 }, 358 },
384 359
385 //------------------------------------------------------------------------- 360 //-------------------------------------------------------------------------
386 361
387 'base64map': "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", 362 'base64map': "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
388 'base64mapIndex': "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(''), 363 'base64mapIndex': "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(''),
389 //'base64mapInvertedIndex': {
390 // 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9,
391 // 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19,
392 // 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24, 'Z': 25, 'a': 26, 'b': 27, 'c': 28, 'd': 29,
393 // 'e': 30, 'f': 31, 'g': 32, 'h': 33, 'i': 34, 'j': 35, 'k': 36, 'l': 37, 'm': 38, 'n': 39,
394 // 'o': 40, 'p': 41, 'q': 42, 'r': 43, 's': 44, 't': 45, 'u': 46, 'v': 47, 'w': 48, 'x': 49,
395 // 'y': 50, 'z': 51, '0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59,
396 // '8': 60, '9': 61, '+': 62, '/': 63,
397 // "=": -1},
398 364
399 //------------------------------------------------------------------------- 365 //-------------------------------------------------------------------------
400 366
401 'appendBase64String': function(aValue) { 367 'appendBase64String': function(aValue) {
402 var i; 368 var i;
403 var length; 369 var length;
404 370
405 length = aValue.length; 371 length = aValue.length;
406 372
407 if ((length % 4) != 0) { 373 if ((length % 4) != 0) {
408 MochiKit.Logging.logError("the value passed to the 'ByteArray.setBase64Value' is not correct"); 374 Clipperz.logError("the value passed to the 'ByteArray.setBase64Value' is not correct");
409 throw Clipperz.ByteArray.exception.InvalidValue; 375 throw Clipperz.ByteArray.exception.InvalidValue;
410 } 376 }
411 377
412 i = 0; 378 i = 0;
413 while (i<length) { 379 while (i<length) {
414 var value1, value2, value3, value4; 380 var value1, value2, value3, value4;
415 var byte1, byte2, byte3; 381 var byte1, byte2, byte3;
416 382
417 value1 = this.base64map.indexOf(aValue.charAt(i)); 383 value1 = this.base64map.indexOf(aValue.charAt(i));
418 value2 = this.base64map.indexOf(aValue.charAt(i+1)); 384 value2 = this.base64map.indexOf(aValue.charAt(i+1));
419 value3 = this.base64map.indexOf(aValue.charAt(i+2)); 385 value3 = this.base64map.indexOf(aValue.charAt(i+2));
420 value4 = this.base64map.indexOf(aValue.charAt(i+3)); 386 value4 = this.base64map.indexOf(aValue.charAt(i+3));
421 387
422 // value1 = this.base64mapInvertedIndex[aValue.charAt(i)];
423 // value2 = this.base64mapInvertedIndex[aValue.charAt(i+1)];
424 // value3 = this.base64mapInvertedIndex[aValue.charAt(i+2)];
425 // value4 = this.base64mapInvertedIndex[aValue.charAt(i+3)];
426
427 byte1 = (value1 << 2) | ((value2 & 0x30) >> 4); 388 byte1 = (value1 << 2) | ((value2 & 0x30) >> 4);
428 if (value3 != -1) { 389 if (value3 != -1) {
429 byte2 = ((value2 & 0x0f) << 4) | ((value3 & 0x3c) >> 2); 390 byte2 = ((value2 & 0x0f) << 4) | ((value3 & 0x3c) >> 2);
430 391
431 if (value4 != -1) { 392 if (value4 != -1) {
432 byte3 = ((value3 & 0x03) << 6) | (value4); 393 byte3 = ((value3 & 0x03) << 6) | (value4);
433 } else { 394 } else {
434 byte3 = null; 395 byte3 = null;
@@ -515,17 +476,17 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
515 value = aValue.toLowerCase(); 476 value = aValue.toLowerCase();
516 value = value.replace(/[\s\-]/g, ''); 477 value = value.replace(/[\s\-]/g, '');
517 value = value.replace(/[0o]/g, '0'); 478 value = value.replace(/[0o]/g, '0');
518 value = value.replace(/[1il]/g, '1'); 479 value = value.replace(/[1il]/g, '1');
519 480
520 length = value.length; 481 length = value.length;
521 482
522 if ((length % 8) != 0) { 483 if ((length % 8) != 0) {
523 MochiKit.Logging.logError("the value passed to the 'ByteArray.setBase32Value' is not correct"); 484 Clipperz.logError("the value passed to the 'ByteArray.setBase32Value' is not correct");
524 throw Clipperz.ByteArray.exception.InvalidValue; 485 throw Clipperz.ByteArray.exception.InvalidValue;
525 } 486 }
526 487
527 i = 0; 488 i = 0;
528 while (i<length) { 489 while (i<length) {
529 value1 = this.base32map.indexOf(value.charAt(i)); 490 value1 = this.base32map.indexOf(value.charAt(i));
530 value2 = this.base32map.indexOf(value.charAt(i+1)); 491 value2 = this.base32map.indexOf(value.charAt(i+1));
531 value3 = this.base32map.indexOf(value.charAt(i+2)); 492 value3 = this.base32map.indexOf(value.charAt(i+2));
@@ -723,17 +684,17 @@ Clipperz.ByteArray_hex = function (args) {
723 value = args.substring(2).toLowerCase(); 684 value = args.substring(2).toLowerCase();
724 if (/[0123456789abcdef]* /.test(value)) { the space in the regexp shoud be removed if the code is activate 685 if (/[0123456789abcdef]* /.test(value)) { the space in the regexp shoud be removed if the code is activate
725 if ((value.length % 2) == 0) { 686 if ((value.length % 2) == 0) {
726 this._value = value; 687 this._value = value;
727 } else { 688 } else {
728 this._value = "0" + value; 689 this._value = "0" + value;
729 } 690 }
730 } else { 691 } else {
731MochiKit.Logging.logError("Clipperz.ByteArray should be inizialized with an hex string."); 692Clipperz.logError("Clipperz.ByteArray should be inizialized with an hex string.");
732 throw Clipperz.ByteArray.exception.InvalidValue; 693 throw Clipperz.ByteArray.exception.InvalidValue;
733 } 694 }
734 } else { 695 } else {
735 varvalue; 696 varvalue;
736 vari,c; 697 vari,c;
737 698
738 c = args.length; 699 c = args.length;
739 value = new Array(c); 700 value = new Array(c);
@@ -909,17 +870,17 @@ Clipperz.ByteArray_array = function (args) {
909 if (args.indexOf("0x") == 0) { 870 if (args.indexOf("0x") == 0) {
910 871
911 value = args.substring(2).toLowerCase(); 872 value = args.substring(2).toLowerCase();
912 if (/[0123456789abcdef]*/.test(value)) { 873 if (/[0123456789abcdef]*/.test(value)) {
913 if ((value.length % 2) != 0) { 874 if ((value.length % 2) != 0) {
914 value = "0" + value; 875 value = "0" + value;
915 } 876 }
916 } else { 877 } else {
917MochiKit.Logging.logError("Clipperz.ByteArray should be inizialized with an hex string."); 878 Clipperz.logError("Clipperz.ByteArray should be inizialized with an hex string.");
918 throw Clipperz.ByteArray.exception.InvalidValue; 879 throw Clipperz.ByteArray.exception.InvalidValue;
919 } 880 }
920 881
921 c = value.length / 2 882 c = value.length / 2
922 result = new Array(c); 883 result = new Array(c);
923 for (i=0; i<c; i++) { 884 for (i=0; i<c; i++) {
924 result[i] = parseInt(value.substr(i*2, 2), 16); 885 result[i] = parseInt(value.substr(i*2, 2), 16);
925 } 886 }
@@ -1110,17 +1071,17 @@ Clipperz.ByteArray_string = function (args) {
1110 if (args.indexOf("0x") == 0) { 1071 if (args.indexOf("0x") == 0) {
1111 1072
1112 value = args.substring(2).toLowerCase(); 1073 value = args.substring(2).toLowerCase();
1113 if (/[0123456789abcdef]* /.test(value)) { the space in the regexp shoud be removed if the code is activated 1074 if (/[0123456789abcdef]* /.test(value)) { the space in the regexp shoud be removed if the code is activated
1114 if ((value.length % 2) != 0) { 1075 if ((value.length % 2) != 0) {
1115 value = "0" + value; 1076 value = "0" + value;
1116 } 1077 }
1117 } else { 1078 } else {
1118MochiKit.Logging.logError("Clipperz.ByteArray should be inizialized with an hex string."); 1079Clipperz.logError("Clipperz.ByteArray should be inizialized with an hex string.");
1119 throw Clipperz.ByteArray.exception.InvalidValue; 1080 throw Clipperz.ByteArray.exception.InvalidValue;
1120 } 1081 }
1121 } else { 1082 } else {
1122 value = ""; 1083 value = "";
1123 c = args.length; 1084 c = args.length;
1124 for (i=0; i<c; i++) { 1085 for (i=0; i<c; i++) {
1125 value += Clipperz.ByteArray.unicodeToUtf8HexString(args.charCodeAt(i)); 1086 value += Clipperz.ByteArray.unicodeToUtf8HexString(args.charCodeAt(i));
1126 } 1087 }
diff --git a/frontend/gamma/js/Clipperz/CSVProcessor.js b/frontend/gamma/js/Clipperz/CSVProcessor.js
index 0b18731..1288ed7 100644
--- a/frontend/gamma/js/Clipperz/CSVProcessor.js
+++ b/frontend/gamma/js/Clipperz/CSVProcessor.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27 25
28 26
29Clipperz.CSVProcessor = function(args) { 27Clipperz.CSVProcessor = function(args) {
30 args = args || {}; 28 args = args || {};
@@ -90,17 +88,17 @@ Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, {
90 88
91 //------------------------------------------------------------------------- 89 //-------------------------------------------------------------------------
92/* 90/*
93 'parse': function(aValue) { 91 'parse': function(aValue) {
94 var result; 92 var result;
95 var lines; 93 var lines;
96 var parameter; 94 var parameter;
97 95
98//MochiKit.Logging.logDebug(">>> CSVProcessor.parse"); 96//Clipperz.logDebug(">>> CSVProcessor.parse");
99 result = []; 97 result = [];
100 98
101 lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n* /g, "").replace(/\n$/g, "");; 99 lines = aValue.replace(/\r?\n/g, "\n").replace(/^\n* /g, "").replace(/\n$/g, "");;
102 parameter = { 100 parameter = {
103 line: lines 101 line: lines
104 } 102 }
105 103
106 do { 104 do {
@@ -109,20 +107,20 @@ Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, {
109 fields = this.parseLine(parameter); 107 fields = this.parseLine(parameter);
110 108
111 if (fields != null) { 109 if (fields != null) {
112 result.push(fields); 110 result.push(fields);
113 } 111 }
114 112
115 parameter.line = parameter.line.replace(/^\n* /g, "").replace(/\n$/g, ""); 113 parameter.line = parameter.line.replace(/^\n* /g, "").replace(/\n$/g, "");
116 114
117//MochiKit.Logging.logDebug("line: '" + parameter.line + "'"); 115//Clipperz.logDebug("line: '" + parameter.line + "'");
118 } while (parameter.line != ""); 116 } while (parameter.line != "");
119//MochiKit.Logging.logDebug("--- CSVProcessor.parse - result: " + Clipperz.Base.serializeJSON(result)); 117//Clipperz.logDebug("--- CSVProcessor.parse - result: " + Clipperz.Base.serializeJSON(result));
120//MochiKit.Logging.logDebug("<<< CSVProcessor.parse"); 118//Clipperz.logDebug("<<< CSVProcessor.parse");
121 119
122 return result; 120 return result;
123 }, 121 },
124*/ 122*/
125 //------------------------------------------------------------------------- 123 //-------------------------------------------------------------------------
126 124
127 'deferredParse_core': function(aContext) { 125 'deferredParse_core': function(aContext) {
128 var deferredResult; 126 var deferredResult;
@@ -211,17 +209,17 @@ Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, {
211 escapedQuoteBeginRegexp = new RegExp("^" + '\\' + this.escapeChar() + '\\' + this.quoteChar()); 209 escapedQuoteBeginRegexp = new RegExp("^" + '\\' + this.escapeChar() + '\\' + this.quoteChar());
212 singleQuoteCommaEndRegexp= new RegExp("^" + '\\' + this.quoteChar() + '\\' + this.separatorChar()); 210 singleQuoteCommaEndRegexp= new RegExp("^" + '\\' + this.quoteChar() + '\\' + this.separatorChar());
213 singleQuoteNewLineEndRegexp= new RegExp("^" + '\\' + this.quoteChar() + "\n"); 211 singleQuoteNewLineEndRegexp= new RegExp("^" + '\\' + this.quoteChar() + "\n");
214 commaBeginRegexp = new RegExp("^" + '\\' + this.separatorChar()); 212 commaBeginRegexp = new RegExp("^" + '\\' + this.separatorChar());
215 newlineRegexp = new RegExp("^\n"); 213 newlineRegexp = new RegExp("^\n");
216 214
217 inQuotes = false; 215 inQuotes = false;
218 216
219//MochiKit.Logging.logDebug("#################################### '" + aParameter.line + "'"); 217//Clipperz.logDebug("#################################### '" + aParameter.line + "'");
220 if (aParameter.line == "") { 218 if (aParameter.line == "") {
221 if (aParameter.isThereAnEmptyFinalField == true) { 219 if (aParameter.isThereAnEmptyFinalField == true) {
222 aParameter.isThereAnEmptyFinalField = false; 220 aParameter.isThereAnEmptyFinalField = false;
223 result = ""; 221 result = "";
224 } else { 222 } else {
225 result = null; 223 result = null;
226 } 224 }
227 } else { 225 } else {
@@ -235,80 +233,80 @@ Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, {
235 try { 233 try {
236 var done; 234 var done;
237 235
238 done = false; 236 done = false;
239 result = ""; 237 result = "";
240 238
241 while (!done) { 239 while (!done) {
242 if (aParameter.line.length < 1) { 240 if (aParameter.line.length < 1) {
243//MochiKit.Logging.logDebug("---> 1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 241//Clipperz.logDebug("---> 1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
244 if (inQuotes == true) { 242 if (inQuotes == true) {
245//MochiKit.Logging.logDebug("---> 1.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 243//Clipperz.logDebug("---> 1.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
246 throw new Error("CSV Parsing error; end of string, missing closing double-quote..."); 244 throw new Error("CSV Parsing error; end of string, missing closing double-quote...");
247 } else { 245 } else {
248//MochiKit.Logging.logDebug("---> 1.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 246//Clipperz.logDebug("---> 1.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
249 done = true; 247 done = true;
250 } 248 }
251 } else if (escapedQuoteBeginRegexp.test(aParameter.line)) { 249 } else if (escapedQuoteBeginRegexp.test(aParameter.line)) {
252//MochiKit.Logging.logDebug("---> 2.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 250//Clipperz.logDebug("---> 2.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
253 result += this.quoteChar(); 251 result += this.quoteChar();
254 aParameter.line = aParameter.line.substr(2, aParameter.line.length - 1); 252 aParameter.line = aParameter.line.substr(2, aParameter.line.length - 1);
255//MochiKit.Logging.logDebug("<--- 2.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 253//Clipperz.logDebug("<--- 2.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
256 } else if (singleQuoteBeginRegexp.test(aParameter.line)) { 254 } else if (singleQuoteBeginRegexp.test(aParameter.line)) {
257//MochiKit.Logging.logDebug("---> 3: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 255//Clipperz.logDebug("---> 3: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
258 if (inQuotes == true) { 256 if (inQuotes == true) {
259 if (aParameter.line.length == 1) { 257 if (aParameter.line.length == 1) {
260//MochiKit.Logging.logDebug("---> 3.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 258//Clipperz.logDebug("---> 3.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
261 aParameter.line = ''; 259 aParameter.line = '';
262 done = true; 260 done = true;
263 } else if (singleQuoteCommaEndRegexp.test(aParameter.line)) { 261 } else if (singleQuoteCommaEndRegexp.test(aParameter.line)) {
264//MochiKit.Logging.logDebug("---> 3.3: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 262//Clipperz.logDebug("---> 3.3: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
265 aParameter.line = aParameter.line.substr(2, aParameter.line.length - 1); 263 aParameter.line = aParameter.line.substr(2, aParameter.line.length - 1);
266 done = true; 264 done = true;
267//MochiKit.Logging.logDebug("<--- 3.3: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 265//Clipperz.logDebug("<--- 3.3: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
268 } else if (singleQuoteNewLineEndRegexp.test(aParameter.line)) { 266 } else if (singleQuoteNewLineEndRegexp.test(aParameter.line)) {
269 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 267 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
270 done = true; 268 done = true;
271 } else { 269 } else {
272 throw new Error("CSV Parsing error; double-quote, followed by undesirable character (bad character sequence)... " + aParameter.line); 270 throw new Error("CSV Parsing error; double-quote, followed by undesirable character (bad character sequence)... " + aParameter.line);
273 } 271 }
274 } else { 272 } else {
275//MochiKit.Logging.logDebug("---> 4: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 273//Clipperz.logDebug("---> 4: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
276 if (result == "") { 274 if (result == "") {
277//MochiKit.Logging.logDebug("---> 4.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 275//Clipperz.logDebug("---> 4.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
278 inQuotes = true; 276 inQuotes = true;
279 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 277 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
280//MochiKit.Logging.logDebug("<--- 4.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 278//Clipperz.logDebug("<--- 4.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
281 } else { 279 } else {
282 throw new Error("CSV Parsing error; double-quote, outside of double-quotes (bad character sequence)..."); 280 throw new Error("CSV Parsing error; double-quote, outside of double-quotes (bad character sequence)...");
283 } 281 }
284 } 282 }
285 } else if (commaBeginRegexp.test(aParameter.line)) { 283 } else if (commaBeginRegexp.test(aParameter.line)) {
286//MochiKit.Logging.logDebug("---> 5: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 284//Clipperz.logDebug("---> 5: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
287 if (inQuotes) { 285 if (inQuotes) {
288//MochiKit.Logging.logDebug("---> 5.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 286//Clipperz.logDebug("---> 5.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
289 result += aParameter.line.substr(0 ,1); 287 result += aParameter.line.substr(0 ,1);
290 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 288 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
291//MochiKit.Logging.logDebug("<--- 5.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 289//Clipperz.logDebug("<--- 5.1: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
292 } else { 290 } else {
293//MochiKit.Logging.logDebug("---> 5.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 291//Clipperz.logDebug("---> 5.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
294 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 292 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
295 if (newlineRegexp.test(aParameter.line) || aParameter.line == "") { 293 if (newlineRegexp.test(aParameter.line) || aParameter.line == "") {
296//MochiKit.Logging.logDebug("######"); 294//Clipperz.logDebug("######");
297 aParameter.isThereAnEmptyFinalField = true; 295 aParameter.isThereAnEmptyFinalField = true;
298 }; 296 };
299 done = true; 297 done = true;
300//MochiKit.Logging.logDebug("<--- 5.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 298//Clipperz.logDebug("<--- 5.2: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
301 } 299 }
302 } else if (validRegexp.test(aParameter.line)) { 300 } else if (validRegexp.test(aParameter.line)) {
303//MochiKit.Logging.logDebug("---> 6: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 301//Clipperz.logDebug("---> 6: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
304 result += aParameter.line.substr(0, 1); 302 result += aParameter.line.substr(0, 1);
305 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 303 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
306//MochiKit.Logging.logDebug("<--- 6: '" + aParameter.line.replace(/\n/g, "\\n") + "'"); 304//Clipperz.logDebug("<--- 6: '" + aParameter.line.replace(/\n/g, "\\n") + "'");
307 } else if (newlineRegexp.test(aParameter.line)) { 305 } else if (newlineRegexp.test(aParameter.line)) {
308 if (inQuotes == true) { 306 if (inQuotes == true) {
309 result += aParameter.line.substr(0 ,1); 307 result += aParameter.line.substr(0 ,1);
310 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1); 308 aParameter.line = aParameter.line.substr(1, aParameter.line.length - 1);
311 } else { 309 } else {
312 if (result == "") { 310 if (result == "") {
313 if (aParameter.isThereAnEmptyFinalField == true) { 311 if (aParameter.isThereAnEmptyFinalField == true) {
314 aParameter.isThereAnEmptyFinalField = false; 312 aParameter.isThereAnEmptyFinalField = false;
@@ -319,26 +317,26 @@ Clipperz.CSVProcessor.prototype = MochiKit.Base.update(null, {
319 317
320 done = true; 318 done = true;
321 } 319 }
322 } else { 320 } else {
323 throw new Error("CSV Parsing error; an undesirable character... '" + aParameter.line.substr(0,1) + "'"); 321 throw new Error("CSV Parsing error; an undesirable character... '" + aParameter.line.substr(0,1) + "'");
324 } 322 }
325 } 323 }
326 } catch(exception) { 324 } catch(exception) {
327 MochiKit.Logging.logError(exception.message); 325 Clipperz.logError(exception.message);
328 // result = null; 326 // result = null;
329 throw exception; 327 throw exception;
330 } 328 }
331 } 329 }
332 330
333//if (result != null) { 331//if (result != null) {
334 //MochiKit.Logging.logDebug("<=== result: '" + result.replace(/\n/g, "\\n") + "'"); 332 //Clipperz.logDebug("<=== result: '" + result.replace(/\n/g, "\\n") + "'");
335//} else { 333//} else {
336 //MochiKit.Logging.logDebug("<=== result: NULL"); 334 //Clipperz.logDebug("<=== result: NULL");
337//} 335//}
338 336
339 return result; 337 return result;
340 }, 338 },
341 339
342 //------------------------------------------------------------------------- 340 //-------------------------------------------------------------------------
343 __syntaxFix__: "syntax fix" 341 __syntaxFix__: "syntax fix"
344}); 342});
diff --git a/frontend/gamma/js/Clipperz/Crypto/AES.js b/frontend/gamma/js/Clipperz/Crypto/AES.js
index c811f1c..cb56f11 100644
--- a/frontend/gamma/js/Clipperz/Crypto/AES.js
+++ b/frontend/gamma/js/Clipperz/Crypto/AES.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.AES depends on Clipperz.ByteArray!"; 25 throw "Clipperz.Crypto.AES depends on Clipperz.ByteArray!";
28} 26}
29 27
30 //Dependency commented to avoid a circular reference 28 //Dependency commented to avoid a circular reference
@@ -115,17 +113,16 @@ Clipperz.Crypto.AES.DeferredExecutionContext.prototype = MochiKit.Base.update(nu
115 }, 113 },
116 114
117 'pause': function(aValue) { 115 'pause': function(aValue) {
118 // return MochiKit.Async.wait(Clipperz.Crypto.AES.DeferredExecution.pauseTime, aValue); 116 // return MochiKit.Async.wait(Clipperz.Crypto.AES.DeferredExecution.pauseTime, aValue);
119 return MochiKit.Async.wait(this._pauseTime, aValue); 117 return MochiKit.Async.wait(this._pauseTime, aValue);
120 }, 118 },
121 119
122 'isDone': function () { 120 'isDone': function () {
123//console.log("isDone", this.executionStep(), this.messageLength());
124 return (this._executionStep >= this._messageLength); 121 return (this._executionStep >= this._messageLength);
125 }, 122 },
126 123
127 //----------------------------------------------------------------------------- 124 //-----------------------------------------------------------------------------
128 __syntaxFix__: "syntax fix" 125 __syntaxFix__: "syntax fix"
129 126
130}); 127});
131 128
@@ -139,17 +136,17 @@ Clipperz.Crypto.AES.Key = function(args) {
139 136
140 if (this.keySize() == 128/8) { 137 if (this.keySize() == 128/8) {
141 this._b = 176; 138 this._b = 176;
142 this._numberOfRounds = 10; 139 this._numberOfRounds = 10;
143 } else if (this.keySize() == 256/8) { 140 } else if (this.keySize() == 256/8) {
144 this._b = 240; 141 this._b = 240;
145 this._numberOfRounds = 14; 142 this._numberOfRounds = 14;
146 } else { 143 } else {
147 MochiKit.Logging.logError("AES unsupported key size: " + (this.keySize() * 8) + " bits"); 144 Clipperz.logError("AES unsupported key size: " + (this.keySize() * 8) + " bits");
148 throw Clipperz.Crypto.AES.exception.UnsupportedKeySize; 145 throw Clipperz.Crypto.AES.exception.UnsupportedKeySize;
149 } 146 }
150 147
151 this._stretchedKey = null; 148 this._stretchedKey = null;
152 149
153 return this; 150 return this;
154} 151}
155 152
@@ -803,27 +800,25 @@ MochiKit.Base.update(Clipperz.Crypto.AES, {
803 var key; 800 var key;
804 801
805 key = new Clipperz.Crypto.AES.Key({key:aKey}); 802 key = new Clipperz.Crypto.AES.Key({key:aKey});
806 nonce = aNonce ? aNonce.clone() : Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(128/8); 803 nonce = aNonce ? aNonce.clone() : Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(128/8);
807 804
808 executionContext = new Clipperz.Crypto.AES.DeferredExecutionContext({key:key, message:someData, nonce:nonce}); 805 executionContext = new Clipperz.Crypto.AES.DeferredExecutionContext({key:key, message:someData, nonce:nonce});
809 806
810 deferredResult = new Clipperz.Async.Deferred("AES.deferredEncrypt"); 807 deferredResult = new Clipperz.Async.Deferred("AES.deferredEncrypt");
811//deferredResult.addCallback(function (aValue) { console.log(">>> deferredEncrypt"); return aValue; });
812 deferredResult.addCallback(Clipperz.Crypto.AES.deferredEncryptBlocks); 808 deferredResult.addCallback(Clipperz.Crypto.AES.deferredEncryptBlocks);
813 deferredResult.addCallback(function(anExecutionContext) { 809 deferredResult.addCallback(function(anExecutionContext) {
814 var result; 810 var result;
815 811
816 result = anExecutionContext.nonce().clone(); 812 result = anExecutionContext.nonce().clone();
817 result.appendBytes(anExecutionContext.resultArray()); 813 result.appendBytes(anExecutionContext.resultArray());
818 814
819 return result; 815 return result;
820 }); 816 });
821//deferredResult.addCallback(function (aValue) { console.log("<<< deferredEncrypt"); return aValue; });
822 deferredResult.callback(executionContext) 817 deferredResult.callback(executionContext)
823 818
824 return deferredResult; 819 return deferredResult;
825 }, 820 },
826 821
827 //----------------------------------------------------------------------------- 822 //-----------------------------------------------------------------------------
828 823
829 'deferredDecrypt': function(aKey, someData) { 824 'deferredDecrypt': function(aKey, someData) {
@@ -833,22 +828,20 @@ MochiKit.Base.update(Clipperz.Crypto.AES, {
833 var key; 828 var key;
834 829
835 key = new Clipperz.Crypto.AES.Key({key:aKey}); 830 key = new Clipperz.Crypto.AES.Key({key:aKey});
836 nonce = someData.split(0, (128/8)); 831 nonce = someData.split(0, (128/8));
837 message = someData.split(128/8); 832 message = someData.split(128/8);
838 executionContext = new Clipperz.Crypto.AES.DeferredExecutionContext({key:key, message:message, nonce:nonce}); 833 executionContext = new Clipperz.Crypto.AES.DeferredExecutionContext({key:key, message:message, nonce:nonce});
839 834
840 deferredResult = new Clipperz.Async.Deferred("AES.deferredDecrypt"); 835 deferredResult = new Clipperz.Async.Deferred("AES.deferredDecrypt");
841//deferredResult.addCallback(function (aValue) { console.log(">>> deferredDecrypt"); return aValue; });
842 deferredResult.addCallback(Clipperz.Crypto.AES.deferredEncryptBlocks); 836 deferredResult.addCallback(Clipperz.Crypto.AES.deferredEncryptBlocks);
843 deferredResult.addCallback(function(anExecutionContext) { 837 deferredResult.addCallback(function(anExecutionContext) {
844 return anExecutionContext.result(); 838 return anExecutionContext.result();
845 }); 839 });
846//deferredResult.addCallback(function (aValue) { console.log("<<< deferredDecrypt"); return aValue; });
847 deferredResult.callback(executionContext); 840 deferredResult.callback(executionContext);
848 841
849 return deferredResult; 842 return deferredResult;
850 }, 843 },
851 844
852 //----------------------------------------------------------------------------- 845 //-----------------------------------------------------------------------------
853 __syntaxFix__: "syntax fix" 846 __syntaxFix__: "syntax fix"
854 847
diff --git a/frontend/gamma/js/Clipperz/Crypto/Base.js b/frontend/gamma/js/Clipperz/Crypto/Base.js
index d3a8e36..9acfc49 100644
--- a/frontend/gamma/js/Clipperz/Crypto/Base.js
+++ b/frontend/gamma/js/Clipperz/Crypto/Base.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.Base) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.Base) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.Base depends on Clipperz.Base!"; 25 throw "Clipperz.Crypto.Base depends on Clipperz.Base!";
28} 26}
29 27
30if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } 28if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; }
diff --git a/frontend/gamma/js/Clipperz/Crypto/BigInt.js b/frontend/gamma/js/Clipperz/Crypto/BigInt.js
index 41483a3..031ed30 100644
--- a/frontend/gamma/js/Clipperz/Crypto/BigInt.js
+++ b/frontend/gamma/js/Clipperz/Crypto/BigInt.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } 25if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; }
28 26
29//############################################################################# 27//#############################################################################
30 //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js 28 //Downloaded on March 05, 2007 from http://www.leemon.com/crypto/BigInt.js
@@ -1472,17 +1470,16 @@ MochiKit.Base.update(Clipperz.Crypto.BigInt.prototype, {
1472 } else { 1470 } else {
1473 base = aBase; 1471 base = aBase;
1474 } 1472 }
1475 1473
1476 result = bigInt2str(this.internalValue(), base).toLowerCase(); 1474 result = bigInt2str(this.internalValue(), base).toLowerCase();
1477 1475
1478 if ((typeof(minimumLength) != 'undefined') && (result.length < minimumLength)) { 1476 if ((typeof(minimumLength) != 'undefined') && (result.length < minimumLength)) {
1479 var i, c; 1477 var i, c;
1480 //MochiKit.Logging.logDebug(">>> FIXING BigInt.asString length issue")
1481 c = (minimumLength - result.length); 1478 c = (minimumLength - result.length);
1482 for (i=0; i<c; i++) { 1479 for (i=0; i<c; i++) {
1483 result = '0' + result; 1480 result = '0' + result;
1484 } 1481 }
1485 } 1482 }
1486 1483
1487 return result; 1484 return result;
1488 }, 1485 },
diff --git a/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js b/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js
index f91c7e9..bc60330 100644
--- a/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js
+++ b/frontend/gamma/js/Clipperz/Crypto/BigInt_scoped.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } 25if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; }
28 26
29if (typeof(Leemon) == 'undefined') { Leemon = {}; } 27if (typeof(Leemon) == 'undefined') { Leemon = {}; }
30if (typeof(Baird.Crypto) == 'undefined') { Baird.Crypto = {}; } 28if (typeof(Baird.Crypto) == 'undefined') { Baird.Crypto = {}; }
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js
index 19f19c2..0d76b9c 100644
--- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js
+++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Curve.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; 25 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!";
28//} 26//}
29if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } 27if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; }
30if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } 28if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; }
@@ -97,74 +95,56 @@ Clipperz.Crypto.ECC.BinaryField.Curve.prototype = MochiKit.Base.update(null, {
97 return result; 95 return result;
98 }, 96 },
99 97
100 //----------------------------------------------------------------------------- 98 //-----------------------------------------------------------------------------
101 99
102 'add': function(aPointA, aPointB) { 100 'add': function(aPointA, aPointB) {
103 var result; 101 var result;
104 102
105//console.log(">>> ECC.BinaryField.Curve.add");
106 if (aPointA.isZero()) { 103 if (aPointA.isZero()) {
107//console.log("--- pointA == zero");
108 result = aPointB; 104 result = aPointB;
109 } else if (aPointB.isZero()) { 105 } else if (aPointB.isZero()) {
110//console.log("--- pointB == zero");
111 result = aPointA; 106 result = aPointA;
112 } else if ((aPointA.x().compare(aPointB.x()) == 0) && ((aPointA.y().compare(aPointB.y()) != 0) || aPointB.x().isZero())) { 107 } else if ((aPointA.x().compare(aPointB.x()) == 0) && ((aPointA.y().compare(aPointB.y()) != 0) || aPointB.x().isZero())) {
113//console.log("compare A.x - B.x: ", aPointA.x().compare(aPointB.x()));
114//console.log("compare A.y - B.y: ", (aPointA.y().compare(aPointB.y()) != 0));
115//console.log("compare B.x.isZero(): ", aPointB.x().isZero());
116
117//console.log("--- result = zero");
118 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:Clipperz.Crypto.ECC.BinaryField.Value.O, y:Clipperz.Crypto.ECC.BinaryField.Value.O}); 108 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:Clipperz.Crypto.ECC.BinaryField.Value.O, y:Clipperz.Crypto.ECC.BinaryField.Value.O});
119 } else { 109 } else {
120//console.log("--- result = ELSE");
121 varf2m; 110 varf2m;
122 var x, y; 111 var x, y;
123 var lambda; 112 var lambda;
124 var aX, aY, bX, bY; 113 var aX, aY, bX, bY;
125 114
126 aX = aPointA.x()._value; 115 aX = aPointA.x()._value;
127 aY = aPointA.y()._value; 116 aY = aPointA.y()._value;
128 bX = aPointB.x()._value; 117 bX = aPointB.x()._value;
129 bY = aPointB.y()._value; 118 bY = aPointB.y()._value;
130 119
131 f2m = this.finiteField(); 120 f2m = this.finiteField();
132 121
133 if (aPointA.x().compare(aPointB.x()) != 0) { 122 if (aPointA.x().compare(aPointB.x()) != 0) {
134//console.log(" a.x != b.x");
135 lambda =f2m._fastMultiply( 123 lambda =f2m._fastMultiply(
136 f2m._add(aY, bY), 124 f2m._add(aY, bY),
137 f2m._inverse(f2m._add(aX, bX)) 125 f2m._inverse(f2m._add(aX, bX))
138 ); 126 );
139 x = f2m._add(this.a()._value, f2m._square(lambda)); 127 x = f2m._add(this.a()._value, f2m._square(lambda));
140 f2m._overwriteAdd(x, lambda); 128 f2m._overwriteAdd(x, lambda);
141 f2m._overwriteAdd(x, aX); 129 f2m._overwriteAdd(x, aX);
142 f2m._overwriteAdd(x, bX); 130 f2m._overwriteAdd(x, bX);
143 } else { 131 } else {
144//console.log(" a.x == b.x");
145 lambda = f2m._add(bX, f2m._fastMultiply(bY, f2m._inverse(bX))); 132 lambda = f2m._add(bX, f2m._fastMultiply(bY, f2m._inverse(bX)));
146//console.log(" lambda: " + lambda.asString(16));
147 x = f2m._add(this.a()._value, f2m._square(lambda)); 133 x = f2m._add(this.a()._value, f2m._square(lambda));
148//console.log(" x (step 1): " + x.asString(16));
149 f2m._overwriteAdd(x, lambda); 134 f2m._overwriteAdd(x, lambda);
150//console.log(" x (step 2): " + x.asString(16));
151 } 135 }
152 136
153 y = f2m._fastMultiply(f2m._add(bX, x), lambda); 137 y = f2m._fastMultiply(f2m._add(bX, x), lambda);
154//console.log(" y (step 1): " + y.asString(16));
155 f2m._overwriteAdd(y, x); 138 f2m._overwriteAdd(y, x);
156//console.log(" y (step 2): " + y.asString(16));
157 f2m._overwriteAdd(y, bY); 139 f2m._overwriteAdd(y, bY);
158//console.log(" y (step 3): " + y.asString(16));
159 140
160 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:new Clipperz.Crypto.ECC.BinaryField.Value(x), y:new Clipperz.Crypto.ECC.BinaryField.Value(y)}) 141 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:new Clipperz.Crypto.ECC.BinaryField.Value(x), y:new Clipperz.Crypto.ECC.BinaryField.Value(y)})
161 } 142 }
162//console.log("<<< ECC.BinaryField.Curve.add");
163 143
164 return result; 144 return result;
165 }, 145 },
166 146
167 //----------------------------------------------------------------------------- 147 //-----------------------------------------------------------------------------
168 148
169 'addTwice': function(aPointA) { 149 'addTwice': function(aPointA) {
170 return this.add(aPointA, aPointA); 150 return this.add(aPointA, aPointA);
@@ -192,48 +172,39 @@ Clipperz.Crypto.ECC.BinaryField.Curve.prototype = MochiKit.Base.update(null, {
192 aX = aPointA.x()._value; 172 aX = aPointA.x()._value;
193 aY = aPointA.y()._value; 173 aY = aPointA.y()._value;
194 bX = aPointB.x()._value; 174 bX = aPointB.x()._value;
195 bY = aPointB.y()._value; 175 bY = aPointB.y()._value;
196 176
197 f2m = this.finiteField(); 177 f2m = this.finiteField();
198 178
199 if (aPointA.x().compare(aPointB.x()) != 0) { 179 if (aPointA.x().compare(aPointB.x()) != 0) {
200//console.log(" a.x != b.x");
201 lambda =f2m._fastMultiply( 180 lambda =f2m._fastMultiply(
202 f2m._add(aY, bY), 181 f2m._add(aY, bY),
203 f2m._inverse(f2m._add(aX, bX)) 182 f2m._inverse(f2m._add(aX, bX))
204 ); 183 );
205 x = f2m._add(this.a()._value, f2m._square(lambda)); 184 x = f2m._add(this.a()._value, f2m._square(lambda));
206 f2m._overwriteAdd(x, lambda); 185 f2m._overwriteAdd(x, lambda);
207 f2m._overwriteAdd(x, aX); 186 f2m._overwriteAdd(x, aX);
208 f2m._overwriteAdd(x, bX); 187 f2m._overwriteAdd(x, bX);
209 } else { 188 } else {
210//console.log(" a.x == b.x");
211 lambda = f2m._add(bX, f2m._fastMultiply(bY, f2m._inverse(bX))); 189 lambda = f2m._add(bX, f2m._fastMultiply(bY, f2m._inverse(bX)));
212//console.log(" lambda: " + lambda.asString(16));
213 x = f2m._add(this.a()._value, f2m._square(lambda)); 190 x = f2m._add(this.a()._value, f2m._square(lambda));
214//console.log(" x (step 1): " + x.asString(16));
215 f2m._overwriteAdd(x, lambda); 191 f2m._overwriteAdd(x, lambda);
216//console.log(" x (step 2): " + x.asString(16));
217 } 192 }
218 193
219 y = f2m._fastMultiply(f2m._add(bX, x), lambda); 194 y = f2m._fastMultiply(f2m._add(bX, x), lambda);
220//console.log(" y (step 1): " + y.asString(16));
221 f2m._overwriteAdd(y, x); 195 f2m._overwriteAdd(y, x);
222//console.log(" y (step 2): " + y.asString(16));
223 f2m._overwriteAdd(y, bY); 196 f2m._overwriteAdd(y, bY);
224//console.log(" y (step 3): " + y.asString(16));
225 197
226 // result = new Clipperz.Crypto.ECC.BinaryField.Point({x:new Clipperz.Crypto.ECC.BinaryField.Value(x), y:new Clipperz.Crypto.ECC.BinaryField.Value(y)}) 198 // result = new Clipperz.Crypto.ECC.BinaryField.Point({x:new Clipperz.Crypto.ECC.BinaryField.Value(x), y:new Clipperz.Crypto.ECC.BinaryField.Value(y)})
227 aPointA._x._value = x; 199 aPointA._x._value = x;
228 aPointA._y._value = y; 200 aPointA._y._value = y;
229 201
230 } 202 }
231//console.log("<<< ECC.BinaryField.Curve.add");
232 203
233 return result; 204 return result;
234 }, 205 },
235 206
236 //----------------------------------------------------------------------------- 207 //-----------------------------------------------------------------------------
237 208
238 'multiply': function(aValue, aPoint) { 209 'multiply': function(aValue, aPoint) {
239 var result; 210 var result;
@@ -245,94 +216,81 @@ Clipperz.Crypto.ECC.BinaryField.Curve.prototype = MochiKit.Base.update(null, {
245 var k, Q; 216 var k, Q;
246 var i; 217 var i;
247 var countIndex; countIndex = 0; 218 var countIndex; countIndex = 0;
248 219
249 if (aValue.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) > 0) { 220 if (aValue.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) > 0) {
250 k = aValue; 221 k = aValue;
251 Q = aPoint; 222 Q = aPoint;
252 } else { 223 } else {
253MochiKit.Logging.logError("The Clipperz.Crypto.ECC.BinaryFields.Value does not work with negative values!!!!"); 224 Clipperz.logError("The Clipperz.Crypto.ECC.BinaryFields.Value does not work with negative values!!!!");
254 k = aValue.negate(); 225 k = aValue.negate();
255 Q = this.negate(aPoint); 226 Q = this.negate(aPoint);
256 } 227 }
257 228
258//console.log("k: " + k.toString(16));
259//console.log("k.bitSize: " + k.bitSize());
260 for (i=k.bitSize()-1; i>=0; i--) { 229 for (i=k.bitSize()-1; i>=0; i--) {
261 result = this.add(result, result); 230 result = this.add(result, result);
262 // this.overwriteAdd(result, result); 231 // this.overwriteAdd(result, result);
263 if (k.isBitSet(i)) { 232 if (k.isBitSet(i)) {
264 result = this.add(result, Q); 233 result = this.add(result, Q);
265 // this.overwriteAdd(result, Q); 234 // this.overwriteAdd(result, Q);
266 } 235 }
267 236
268 // if (countIndex==100) {console.log("multiply.break"); break;} else countIndex++; 237 // if (countIndex==100) {Clipperz.log("multiply.break"); break;} else countIndex++;
269 } 238 }
270 } 239 }
271//console.profileEnd(); 240//console.profileEnd();
272 241
273 return result; 242 return result;
274 }, 243 },
275 244
276 //----------------------------------------------------------------------------- 245 //-----------------------------------------------------------------------------
277 246
278 'deferredMultiply': function(aValue, aPoint) { 247 'deferredMultiply': function(aValue, aPoint) {
279 var deferredResult; 248 var deferredResult;
280 var result; 249 var result;
281 250
282MochiKit.Logging.logDebug(">>> deferredMultiply - value: " + aValue + ", point: " + aPoint); 251Clipperz.log(">>> deferredMultiply - value: " + aValue + ", point: " + aPoint);
283//console.profile("ECC.Curve.multiply"); 252//console.profile("ECC.Curve.multiply");
284 deferredResult = new MochiKit.Async.Deferred(); 253 deferredResult = new MochiKit.Async.Deferred();
285//deferredResult.addCallback(function(res) {console.profile("ECC.Curve.deferredMultiply"); return res;} ); 254//deferredResult.addCallback(function(res) {console.profile("ECC.Curve.deferredMultiply"); return res;} );
286//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 1: " + res); return res;}); 255//deferredResult.addBoth(function(res) {Clipperz.logDebug("# 1: " + res); return res;});
287 256
288 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:Clipperz.Crypto.ECC.BinaryField.Value.O, y:Clipperz.Crypto.ECC.BinaryField.Value.O}); 257 result = new Clipperz.Crypto.ECC.BinaryField.Point({x:Clipperz.Crypto.ECC.BinaryField.Value.O, y:Clipperz.Crypto.ECC.BinaryField.Value.O});
289//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 2: " + res); return res;}); 258//deferredResult.addBoth(function(res) {Clipperz.logDebug("# 2: " + res); return res;});
290 259
291 if (aValue.isZero() == false) { 260 if (aValue.isZero() == false) {
292 var k, Q; 261 var k, Q;
293 var i; 262 var i;
294 var countIndex; countIndex = 0; 263 var countIndex; countIndex = 0;
295 264
296 if (aValue.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) > 0) { 265 if (aValue.compare(Clipperz.Crypto.ECC.BinaryField.Value.O) > 0) {
297 k = aValue; 266 k = aValue;
298 Q = aPoint; 267 Q = aPoint;
299 } else { 268 } else {
300MochiKit.Logging.logError("The Clipperz.Crypto.ECC.BinaryFields.Value does not work with negative values!!!!"); 269 Clipperz.logError("The Clipperz.Crypto.ECC.BinaryFields.Value does not work with negative values!!!!");
301 k = aValue.negate(); 270 k = aValue.negate();
302 Q = this.negate(aPoint); 271 Q = this.negate(aPoint);
303 } 272 }
304 273
305//console.log("k: " + k.toString(16));
306//console.log("k.bitSize: " + k.bitSize());
307 274
308//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 3: " + res); return res;});
309 for (i=k.bitSize()-1; i>=0; i--) { 275 for (i=k.bitSize()-1; i>=0; i--) {
310//MochiKit.Logging.logDebug("====> " + i);
311//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 4 > i = " + i + ": " + res); return res;});
312 deferredResult.addMethod(this, "addTwice"); 276 deferredResult.addMethod(this, "addTwice");
313 //# result = this.add(result, result); 277 //# result = this.add(result, result);
314 // this.overwriteAdd(result, result); 278 // this.overwriteAdd(result, result);
315 if (k.isBitSet(i)) { 279 if (k.isBitSet(i)) {
316 deferredResult.addMethod(this, "add", Q); 280 deferredResult.addMethod(this, "add", Q);
317 //# result = this.add(result, Q); 281 //# result = this.add(result, Q);
318 // this.overwriteAdd(result, Q); 282 // this.overwriteAdd(result, Q);
319 } 283 }
320 if (i%20 == 0) {deferredResult.addCallback(MochiKit.Async.wait, 0.1);} 284 if (i%20 == 0) {deferredResult.addCallback(MochiKit.Async.wait, 0.1);}
321
322 // if (countIndex==100) {console.log("multiply.break"); break;} else countIndex++;
323//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 4 < i = " + i + ": " + res); return res;});
324 } 285 }
325//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 4: " + res); return res;});
326 } 286 }
327//#console.profileEnd(); 287//#console.profileEnd();
328//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 5: " + res); return res;});
329//deferredResult.addBoth(function(res) {console.profileEnd(); return res;}); 288//deferredResult.addBoth(function(res) {console.profileEnd(); return res;});
330//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("# 6: " + res); return res;});
331 deferredResult.callback(result); 289 deferredResult.callback(result);
332 290
333 //# return result; 291 //# return result;
334 return deferredResult; 292 return deferredResult;
335 }, 293 },
336 294
337 //----------------------------------------------------------------------------- 295 //-----------------------------------------------------------------------------
338 __syntaxFix__: "syntax fix" 296 __syntaxFix__: "syntax fix"
@@ -436,40 +394,37 @@ MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, {
436 // 394 //
437 // ------------------------------------------------------------------------- 395 // -------------------------------------------------------------------------
438 // 396 //
439 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module; 397 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module;
440 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module = function(aValue) { 398 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module = function(aValue) {
441 varresult; 399 varresult;
442 400
443 if (aValue.bitSize() > 1140) { 401 if (aValue.bitSize() > 1140) {
444 MochiKit.Logging.logWarning("ECC.StandarCurves.B571.finiteField().module: falling back to default implementation"); 402 Clipperz.logWarning("ECC.StandarCurves.B571.finiteField().module: falling back to default implementation");
445 result = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule(aValue); 403 result = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule(aValue);
446 } else { 404 } else {
447 varC, T; 405 varC, T;
448 var i; 406 var i;
449 407
450//console.log(">>> binaryField.finiteField.(improved)module");
451 // C = aValue.value().slice(0);
452 C = aValue._value.slice(0); 408 C = aValue._value.slice(0);
453 for (i=35; i>=18; i--) { 409 for (i=35; i>=18; i--) {
454 T = C[i]; 410 T = C[i];
455 C[i-18] = (((C[i-18] ^ (T<<5) ^ (T<<7) ^ (T<<10) ^ (T<<15)) & 0xffffffff) >>> 0); 411 C[i-18] = (((C[i-18] ^ (T<<5) ^ (T<<7) ^ (T<<10) ^ (T<<15)) & 0xffffffff) >>> 0);
456 C[i-17] = ((C[i-17] ^ (T>>>27) ^ (T>>>25) ^ (T>>>22) ^ (T>>>17)) >>> 0); 412 C[i-17] = ((C[i-17] ^ (T>>>27) ^ (T>>>25) ^ (T>>>22) ^ (T>>>17)) >>> 0);
457 } 413 }
458 T = (C[17] >>> 27); 414 T = (C[17] >>> 27);
459 C[0] = ((C[0] ^ T ^ ((T<<2) ^ (T<<5) ^ (T<<10)) & 0xffffffff) >>> 0); 415 C[0] = ((C[0] ^ T ^ ((T<<2) ^ (T<<5) ^ (T<<10)) & 0xffffffff) >>> 0);
460 C[17] = (C[17] & 0x07ffffff); 416 C[17] = (C[17] & 0x07ffffff);
461 417
462 for(i=18; i<=35; i++) { 418 for(i=18; i<=35; i++) {
463 C[i] = 0; 419 C[i] = 0;
464 } 420 }
465 421
466 result = new Clipperz.Crypto.ECC.BinaryField.Value(C); 422 result = new Clipperz.Crypto.ECC.BinaryField.Value(C);
467//console.log("<<< binaryField.finiteField.(improved)module");
468 } 423 }
469 424
470 return result; 425 return result;
471 }; 426 };
472 } 427 }
473 428
474 return Clipperz.Crypto.ECC.StandardCurves._B571; 429 return Clipperz.Crypto.ECC.StandardCurves._B571;
475 }, 430 },
@@ -502,39 +457,37 @@ MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, {
502 //- Pag: 56, Alorithm 2.43 457 //- Pag: 56, Alorithm 2.43
503 // 458 //
504 //----------------------------------------------------------------------------- 459 //-----------------------------------------------------------------------------
505 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module; 460 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module;
506 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module = function(aValue) { 461 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module = function(aValue) {
507 varresult; 462 varresult;
508 463
509 if (aValue.bitSize() > 564) { 464 if (aValue.bitSize() > 564) {
510 MochiKit.Logging.logWarning("ECC.StandarCurves.B283.finiteField().module: falling back to default implementation"); 465 Clipperz.logWarning("ECC.StandarCurves.B283.finiteField().module: falling back to default implementation");
511 result = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule(aValue); 466 result = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule(aValue);
512 } else { 467 } else {
513 varC, T; 468 varC, T;
514 var i; 469 var i;
515 470
516//console.log(">>> binaryField.finiteField.(improved)module");
517 C = aValue._value.slice(0); 471 C = aValue._value.slice(0);
518 for (i=17; i>=9; i--) { 472 for (i=17; i>=9; i--) {
519 T = C[i]; 473 T = C[i];
520 C[i-9] = (((C[i-9] ^ (T<<5) ^ (T<<10) ^ (T<<12) ^ (T<<17)) & 0xffffffff) >>> 0); 474 C[i-9] = (((C[i-9] ^ (T<<5) ^ (T<<10) ^ (T<<12) ^ (T<<17)) & 0xffffffff) >>> 0);
521 C[i-8] = ((C[i-8] ^ (T>>>27) ^ (T>>>22) ^ (T>>>20) ^ (T>>>15)) >>> 0); 475 C[i-8] = ((C[i-8] ^ (T>>>27) ^ (T>>>22) ^ (T>>>20) ^ (T>>>15)) >>> 0);
522 } 476 }
523 T = (C[8] >>> 27); 477 T = (C[8] >>> 27);
524 C[0] = ((C[0] ^ T ^ ((T<<5) ^ (T<<7) ^ (T<<12)) & 0xffffffff) >>> 0); 478 C[0] = ((C[0] ^ T ^ ((T<<5) ^ (T<<7) ^ (T<<12)) & 0xffffffff) >>> 0);
525 C[8] = (C[8] & 0x07ffffff); 479 C[8] = (C[8] & 0x07ffffff);
526 480
527 for(i=9; i<=17; i++) { 481 for(i=9; i<=17; i++) {
528 C[i] = 0; 482 C[i] = 0;
529 } 483 }
530 484
531 result = new Clipperz.Crypto.ECC.BinaryField.Value(C); 485 result = new Clipperz.Crypto.ECC.BinaryField.Value(C);
532//console.log("<<< binaryField.finiteField.(improved)module");
533 } 486 }
534 487
535 return result; 488 return result;
536 }; 489 };
537 } 490 }
538 491
539 return Clipperz.Crypto.ECC.StandardCurves._B283; 492 return Clipperz.Crypto.ECC.StandardCurves._B283;
540 }, 493 },
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js
index 56f257a..7b7c2c6 100644
--- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js
+++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/FiniteField.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; 25 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!";
28//} 26//}
29if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } 27if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; }
30if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } 28if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; }
@@ -48,17 +46,16 @@ Clipperz.Crypto.ECC.BinaryField.FiniteField.prototype = MochiKit.Base.update(nul
48 return this._modulus; 46 return this._modulus;
49 }, 47 },
50 48
51 //----------------------------------------------------------------------------- 49 //-----------------------------------------------------------------------------
52 50
53 '_module': function(aValue) { 51 '_module': function(aValue) {
54 varresult; 52 varresult;
55 var modulusComparison; 53 var modulusComparison;
56//console.log(">>> binaryField.finiteField.(standard)module");
57 54
58 modulusComparison = Clipperz.Crypto.ECC.BinaryField.Value._compare(aValue, this.modulus()._value); 55 modulusComparison = Clipperz.Crypto.ECC.BinaryField.Value._compare(aValue, this.modulus()._value);
59 56
60 if (modulusComparison < 0) { 57 if (modulusComparison < 0) {
61 result = aValue; 58 result = aValue;
62 } else if (modulusComparison == 0) { 59 } else if (modulusComparison == 0) {
63 result = [0]; 60 result = [0];
64 } else { 61 } else {
@@ -69,17 +66,16 @@ Clipperz.Crypto.ECC.BinaryField.FiniteField.prototype = MochiKit.Base.update(nul
69 66
70 modulusBitSize = this.modulus().bitSize(); 67 modulusBitSize = this.modulus().bitSize();
71 resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); 68 resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result);
72 while (resultBitSize >= modulusBitSize) { 69 while (resultBitSize >= modulusBitSize) {
73 Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(result, Clipperz.Crypto.ECC.BinaryField.Value._shiftLeft(this.modulus()._value, resultBitSize - modulusBitSize)); 70 Clipperz.Crypto.ECC.BinaryField.Value._overwriteXor(result, Clipperz.Crypto.ECC.BinaryField.Value._shiftLeft(this.modulus()._value, resultBitSize - modulusBitSize));
74 resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result); 71 resultBitSize = Clipperz.Crypto.ECC.BinaryField.Value._bitSize(result);
75 } 72 }
76 } 73 }
77//console.log("<<< binaryField.finiteField.(standard)module");
78 74
79 return result; 75 return result;
80 }, 76 },
81 77
82 'module': function(aValue) { 78 'module': function(aValue) {
83 return new Clipperz.Crypto.ECC.BinaryField.Value(this._module(aValue._value.slice(0))); 79 return new Clipperz.Crypto.ECC.BinaryField.Value(this._module(aValue._value.slice(0)));
84 }, 80 },
85 81
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js
index ffe287b..fef3220 100644
--- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js
+++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Point.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; 25 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!";
28//} 26//}
29if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } 27if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; }
30if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; } 28if (typeof(Clipperz.Crypto.ECC.BinaryField) == 'undefined') { Clipperz.Crypto.ECC.BinaryField = {}; }
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js
index b705a20..634772a 100644
--- a/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js
+++ b/frontend/gamma/js/Clipperz/Crypto/ECC/BinaryField/Value.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24//try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; 25 //throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!";
28//} 26//}
29if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 27if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
30if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } 28if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; }
@@ -363,18 +361,16 @@ Clipperz.Crypto.ECC.BinaryField.Value._isBitSet = function(aWordArray, aBitPosit
363Clipperz.Crypto.ECC.BinaryField.Value._compare = function(a,b) { 361Clipperz.Crypto.ECC.BinaryField.Value._compare = function(a,b) {
364 varresult; 362 varresult;
365 var i,c; 363 var i,c;
366 364
367 result = MochiKit.Base.compare(a.length, b.length); 365 result = MochiKit.Base.compare(a.length, b.length);
368 366
369 c = a.length; 367 c = a.length;
370 for (i=0; (i<c) && (result==0); i++) { 368 for (i=0; (i<c) && (result==0); i++) {
371//console.log("compare[" + c + " - " + i + " - 1] " + this.value()[c-i-1] + ", " + aValue.value()[c-i-1]);
372 // result = MochiKit.Base.compare(this.value()[c-i-1], aValue.value()[c-i-1]);
373 result = MochiKit.Base.compare(a[c-i-1], b[c-i-1]); 369 result = MochiKit.Base.compare(a[c-i-1], b[c-i-1]);
374 } 370 }
375 371
376 return result; 372 return result;
377}; 373};
378 374
379 375
380Clipperz.Crypto.ECC.BinaryField.Value['exception']= { 376Clipperz.Crypto.ECC.BinaryField.Value['exception']= {
diff --git a/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js b/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js
index be197e3..239e264 100644
--- a/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js
+++ b/frontend/gamma/js/Clipperz/Crypto/ECC/StandardCurves.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//try { if (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) == 'undefined') { throw ""; }} catch (e) { 24//try { if (typeof(Clipperz.Crypto.ECC.BinaryField.Curve) == 'undefined') { throw ""; }} catch (e) {
27 //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.BinaryField.Curve!"; 25 //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.BinaryField.Curve!";
28//} 26//}
29//try { if (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) == 'undefined') { throw ""; }} catch (e) { 27//try { if (typeof(Clipperz.Crypto.ECC.Koblitz.Curve) == 'undefined') { throw ""; }} catch (e) {
30 //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.Koblitz.Curve!"; 28 //throw "Clipperz.Crypto.ECC depends on Clipperz.Crypto.ECC.Koblitz.Curve!";
@@ -129,40 +127,37 @@ MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, {
129 // 127 //
130 // ------------------------------------------------------------------------- 128 // -------------------------------------------------------------------------
131 // 129 //
132 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module; 130 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module;
133 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module = function(aValue) { 131 Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().module = function(aValue) {
134 varresult; 132 varresult;
135 133
136 if (aValue.bitSize() > 1140) { 134 if (aValue.bitSize() > 1140) {
137 MochiKit.Logging.logWarning("ECC.StandarCurves.B571.finiteField().module: falling back to default implementation"); 135 Clipperz.logWarning("ECC.StandarCurves.B571.finiteField().module: falling back to default implementation");
138 result = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule(aValue); 136 result = Clipperz.Crypto.ECC.StandardCurves._B571.finiteField().slowModule(aValue);
139 } else { 137 } else {
140 varC, T; 138 varC, T;
141 var i; 139 var i;
142 140
143//console.log(">>> binaryField.finiteField.(improved)module");
144 // C = aValue.value().slice(0);
145 C = aValue._value.slice(0); 141 C = aValue._value.slice(0);
146 for (i=35; i>=18; i--) { 142 for (i=35; i>=18; i--) {
147 T = C[i]; 143 T = C[i];
148 C[i-18] = (((C[i-18] ^ (T<<5) ^ (T<<7) ^ (T<<10) ^ (T<<15)) & 0xffffffff) >>> 0); 144 C[i-18] = (((C[i-18] ^ (T<<5) ^ (T<<7) ^ (T<<10) ^ (T<<15)) & 0xffffffff) >>> 0);
149 C[i-17] = ((C[i-17] ^ (T>>>27) ^ (T>>>25) ^ (T>>>22) ^ (T>>>17)) >>> 0); 145 C[i-17] = ((C[i-17] ^ (T>>>27) ^ (T>>>25) ^ (T>>>22) ^ (T>>>17)) >>> 0);
150 } 146 }
151 T = (C[17] >>> 27); 147 T = (C[17] >>> 27);
152 C[0] = ((C[0] ^ T ^ ((T<<2) ^ (T<<5) ^ (T<<10)) & 0xffffffff) >>> 0); 148 C[0] = ((C[0] ^ T ^ ((T<<2) ^ (T<<5) ^ (T<<10)) & 0xffffffff) >>> 0);
153 C[17] = (C[17] & 0x07ffffff); 149 C[17] = (C[17] & 0x07ffffff);
154 150
155 for(i=18; i<=35; i++) { 151 for(i=18; i<=35; i++) {
156 C[i] = 0; 152 C[i] = 0;
157 } 153 }
158 154
159 result = new Clipperz.Crypto.ECC.BinaryField.Value(C); 155 result = new Clipperz.Crypto.ECC.BinaryField.Value(C);
160//console.log("<<< binaryField.finiteField.(improved)module");
161 } 156 }
162 157
163 return result; 158 return result;
164 }; 159 };
165 } 160 }
166 161
167 return Clipperz.Crypto.ECC.StandardCurves._B571; 162 return Clipperz.Crypto.ECC.StandardCurves._B571;
168 }, 163 },
@@ -191,39 +186,37 @@ MochiKit.Base.update(Clipperz.Crypto.ECC.StandardCurves, {
191 //- Pag: 56, Alorithm 2.43 186 //- Pag: 56, Alorithm 2.43
192 // 187 //
193 //----------------------------------------------------------------------------- 188 //-----------------------------------------------------------------------------
194 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module; 189 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module;
195 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module = function(aValue) { 190 Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().module = function(aValue) {
196 varresult; 191 varresult;
197 192
198 if (aValue.bitSize() > 564) { 193 if (aValue.bitSize() > 564) {
199 MochiKit.Logging.logWarning("ECC.StandarCurves.B283.finiteField().module: falling back to default implementation"); 194 Clipperz.logWarning("ECC.StandarCurves.B283.finiteField().module: falling back to default implementation");
200 result = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule(aValue); 195 result = Clipperz.Crypto.ECC.StandardCurves._B283.finiteField().slowModule(aValue);
201 } else { 196 } else {
202 varC, T; 197 varC, T;
203 var i; 198 var i;
204 199
205//console.log(">>> binaryField.finiteField.(improved)module");
206 C = aValue._value.slice(0); 200 C = aValue._value.slice(0);
207 for (i=17; i>=9; i--) { 201 for (i=17; i>=9; i--) {
208 T = C[i]; 202 T = C[i];
209 C[i-9] = (((C[i-9] ^ (T<<5) ^ (T<<10) ^ (T<<12) ^ (T<<17)) & 0xffffffff) >>> 0); 203 C[i-9] = (((C[i-9] ^ (T<<5) ^ (T<<10) ^ (T<<12) ^ (T<<17)) & 0xffffffff) >>> 0);
210 C[i-8] = ((C[i-8] ^ (T>>>27) ^ (T>>>22) ^ (T>>>20) ^ (T>>>15)) >>> 0); 204 C[i-8] = ((C[i-8] ^ (T>>>27) ^ (T>>>22) ^ (T>>>20) ^ (T>>>15)) >>> 0);
211 } 205 }
212 T = (C[8] >>> 27); 206 T = (C[8] >>> 27);
213 C[0] = ((C[0] ^ T ^ ((T<<5) ^ (T<<7) ^ (T<<12)) & 0xffffffff) >>> 0); 207 C[0] = ((C[0] ^ T ^ ((T<<5) ^ (T<<7) ^ (T<<12)) & 0xffffffff) >>> 0);
214 C[8] = (C[8] & 0x07ffffff); 208 C[8] = (C[8] & 0x07ffffff);
215 209
216 for(i=9; i<=17; i++) { 210 for(i=9; i<=17; i++) {
217 C[i] = 0; 211 C[i] = 0;
218 } 212 }
219 213
220 result = new Clipperz.Crypto.ECC.BinaryField.Value(C); 214 result = new Clipperz.Crypto.ECC.BinaryField.Value(C);
221//console.log("<<< binaryField.finiteField.(improved)module");
222 } 215 }
223 216
224 return result; 217 return result;
225 }; 218 };
226 } 219 }
227 220
228 return Clipperz.Crypto.ECC.StandardCurves._B283; 221 return Clipperz.Crypto.ECC.StandardCurves._B283;
229 }, 222 },
diff --git a/frontend/gamma/js/Clipperz/Crypto/PRNG.js b/frontend/gamma/js/Clipperz/Crypto/PRNG.js
index adfdb16..c539f06 100644
--- a/frontend/gamma/js/Clipperz/Crypto/PRNG.js
+++ b/frontend/gamma/js/Clipperz/Crypto/PRNG.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; 25 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!";
28} 26}
29 27
30try { if (typeof(Clipperz.Crypto.SHA) == 'undefined') { throw ""; }} catch (e) { 28try { if (typeof(Clipperz.Crypto.SHA) == 'undefined') { throw ""; }} catch (e) {
@@ -484,17 +482,16 @@ Clipperz.Crypto.PRNG.Fortuna.prototype = MochiKit.Base.update(null, {
484 c = this.randomnessSources().length; 482 c = this.randomnessSources().length;
485 for (i=0; i<c; i++) { 483 for (i=0; i<c; i++) {
486 this.randomnessSources()[i].setBoostMode(false); 484 this.randomnessSources()[i].setBoostMode(false);
487 } 485 }
488 } 486 }
489 487
490 this.setKey(Clipperz.Crypto.SHA.sha_d256(newKeySeed)); 488 this.setKey(Clipperz.Crypto.SHA.sha_d256(newKeySeed));
491 if (reseedCounter == 1) { 489 if (reseedCounter == 1) {
492//MochiKit.Logging.logDebug("### PRNG.readyToGenerateRandomBytes");
493Clipperz.log("### PRNG.readyToGenerateRandomBytes"); 490Clipperz.log("### PRNG.readyToGenerateRandomBytes");
494 MochiKit.Signal.signal(this, 'readyToGenerateRandomBytes'); 491 MochiKit.Signal.signal(this, 'readyToGenerateRandomBytes');
495 } 492 }
496 MochiKit.Signal.signal(this, 'reseeded'); 493 MochiKit.Signal.signal(this, 'reseeded');
497 }, 494 },
498 495
499 //------------------------------------------------------------------------- 496 //-------------------------------------------------------------------------
500 497
@@ -555,17 +552,17 @@ Clipperz.log("### PRNG.readyToGenerateRandomBytes");
555 552
556 if (result.length() != aSize) { 553 if (result.length() != aSize) {
557 result = result.split(0, aSize); 554 result = result.split(0, aSize);
558 } 555 }
559 556
560 newKey = this.getRandomBlock().appendBlock(this.getRandomBlock()); 557 newKey = this.getRandomBlock().appendBlock(this.getRandomBlock());
561 this.setKey(newKey); 558 this.setKey(newKey);
562 } else { 559 } else {
563MochiKit.Logging.logWarning("Fortuna generator has not enough entropy, yet!"); 560Clipperz.logWarning("Fortuna generator has not enough entropy, yet!");
564 throw Clipperz.Crypto.PRNG.exception.NotEnoughEntropy; 561 throw Clipperz.Crypto.PRNG.exception.NotEnoughEntropy;
565 } 562 }
566 563
567 return result; 564 return result;
568 }, 565 },
569 566
570 //------------------------------------------------------------------------- 567 //-------------------------------------------------------------------------
571 568
@@ -605,39 +602,31 @@ MochiKit.Logging.logWarning("Fortuna generator has not enough entropy, yet!");
605 } 602 }
606 }, 603 },
607 604
608 //------------------------------------------------------------------------- 605 //-------------------------------------------------------------------------
609 606
610 'deferredEntropyCollection': function(aValue) { 607 'deferredEntropyCollection': function(aValue) {
611 var result; 608 var result;
612 609
613//MochiKit.Logging.logDebug(">>> PRNG.deferredEntropyCollection");
614 610
615 if (this.isReadyToGenerateRandomValues()) { 611 if (this.isReadyToGenerateRandomValues()) {
616//MochiKit.Logging.logDebug("--- PRNG.deferredEntropyCollection - 1");
617 result = aValue; 612 result = aValue;
618 } else { 613 } else {
619//MochiKit.Logging.logDebug("--- PRNG.deferredEntropyCollection - 2");
620 var deferredResult; 614 var deferredResult;
621 615
622 // Clipperz.NotificationCenter.notify(this, 'updatedProgressState', 'collectingEntropy', true);
623
624 deferredResult = new Clipperz.Async.Deferred("PRNG.deferredEntropyCollection"); 616 deferredResult = new Clipperz.Async.Deferred("PRNG.deferredEntropyCollection");
625 // deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.1 - PRNG.deferredEntropyCollection - 1: " + res); return res;});
626 deferredResult.addCallback(MochiKit.Base.partial(MochiKit.Async.succeed, aValue)); 617 deferredResult.addCallback(MochiKit.Base.partial(MochiKit.Async.succeed, aValue));
627 // deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.2 - PRNG.deferredEntropyCollection - 2: " + res); return res;});
628 MochiKit.Signal.connect(this, 618 MochiKit.Signal.connect(this,
629 'readyToGenerateRandomBytes', 619 'readyToGenerateRandomBytes',
630 deferredResult, 620 deferredResult,
631 'callback'); 621 'callback');
632 622
633 result = deferredResult; 623 result = deferredResult;
634 } 624 }
635//MochiKit.Logging.logDebug("<<< PRNG.deferredEntropyCollection - result: " + result);
636 625
637 return result; 626 return result;
638 }, 627 },
639 628
640 //------------------------------------------------------------------------- 629 //-------------------------------------------------------------------------
641 630
642 'fastEntropyAccumulationForTestingPurpose': function() { 631 'fastEntropyAccumulationForTestingPurpose': function() {
643 while (! this.isReadyToGenerateRandomValues()) { 632 while (! this.isReadyToGenerateRandomValues()) {
diff --git a/frontend/gamma/js/Clipperz/Crypto/RSA.js b/frontend/gamma/js/Clipperz/Crypto/RSA.js
index 6844dba..5a480f1 100644
--- a/frontend/gamma/js/Clipperz/Crypto/RSA.js
+++ b/frontend/gamma/js/Clipperz/Crypto/RSA.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.RSA depends on Clipperz.Crypto.BigInt!"; 25 throw "Clipperz.Crypto.RSA depends on Clipperz.Crypto.BigInt!";
28} 26}
29 27
30if (typeof(Clipperz.Crypto.RSA) == 'undefined') { Clipperz.Crypto.RSA = {}; } 28if (typeof(Clipperz.Crypto.RSA) == 'undefined') { Clipperz.Crypto.RSA = {}; }
diff --git a/frontend/gamma/js/Clipperz/Crypto/SHA.js b/frontend/gamma/js/Clipperz/Crypto/SHA.js
index b07fa85..f8bfe6e 100644
--- a/frontend/gamma/js/Clipperz/Crypto/SHA.js
+++ b/frontend/gamma/js/Clipperz/Crypto/SHA.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; 25 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!";
28} 26}
29 27
30if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; } 28if (typeof(Clipperz.Crypto) == 'undefined') { Clipperz.Crypto = {}; }
diff --git a/frontend/gamma/js/Clipperz/Crypto/SRP.js b/frontend/gamma/js/Clipperz/Crypto/SRP.js
index 3b25275..597e72d 100644
--- a/frontend/gamma/js/Clipperz/Crypto/SRP.js
+++ b/frontend/gamma/js/Clipperz/Crypto/SRP.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!"; 25 throw "Clipperz.Crypto.PRNG depends on Clipperz.ByteArray!";
28} 26}
29 27
30try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) { 28try { if (typeof(Clipperz.Crypto.BigInt) == 'undefined') { throw ""; }} catch (e) {
@@ -126,84 +124,78 @@ Clipperz.Crypto.SRP.Connection.prototype = MochiKit.Base.update(null, {
126 }, 124 },
127 125
128 //------------------------------------------------------------------------- 126 //-------------------------------------------------------------------------
129 127
130 'a': function () { 128 'a': function () {
131 if (this._a == null) { 129 if (this._a == null) {
132 this._a = new Clipperz.Crypto.BigInt(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2), 16); 130 this._a = new Clipperz.Crypto.BigInt(Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2), 16);
133 // this._a = new Clipperz.Crypto.BigInt("37532428169486597638072888476611365392249575518156687476805936694442691012367", 10); 131 // this._a = new Clipperz.Crypto.BigInt("37532428169486597638072888476611365392249575518156687476805936694442691012367", 10);
134//MochiKit.Logging.logDebug("SRP a: " + this._a);
135 } 132 }
136 133
137 return this._a; 134 return this._a;
138 }, 135 },
139 136
140 //------------------------------------------------------------------------- 137 //-------------------------------------------------------------------------
141 138
142 'A': function () { 139 'A': function () {
143 if (this._A == null) { 140 if (this._A == null) {
144 //Warning: this value should be strictly greater than zero: how should we perform this check? 141 //Warning: this value should be strictly greater than zero: how should we perform this check?
145 this._A = Clipperz.Crypto.SRP.g().powerModule(this.a(), Clipperz.Crypto.SRP.n()); 142 this._A = Clipperz.Crypto.SRP.g().powerModule(this.a(), Clipperz.Crypto.SRP.n());
146 143
147 if (this._A.equals(0)) { 144 if (this._A.equals(0)) {
148MochiKit.Logging.logError("Clipperz.Crypto.SRP.Connection: trying to set 'A' to 0."); 145 Clipperz.logError("Clipperz.Crypto.SRP.Connection: trying to set 'A' to 0.");
149 throw Clipperz.Crypto.SRP.exception.InvalidValue; 146 throw Clipperz.Crypto.SRP.exception.InvalidValue;
150 } 147 }
151//MochiKit.Logging.logDebug("SRP A: " + this._A);
152 } 148 }
153 149
154 return this._A; 150 return this._A;
155 }, 151 },
156 152
157 //------------------------------------------------------------------------- 153 //-------------------------------------------------------------------------
158 154
159 's': function () { 155 's': function () {
160 return this._s; 156 return this._s;
161//MochiKit.Logging.logDebug("SRP s: " + this._S);
162 }, 157 },
163 158
164 'set_s': function(aValue) { 159 'set_s': function(aValue) {
165 this._s = aValue; 160 this._s = aValue;
166 }, 161 },
167 162
168 //------------------------------------------------------------------------- 163 //-------------------------------------------------------------------------
169 164
170 'B': function () { 165 'B': function () {
171 return this._B; 166 return this._B;
172 }, 167 },
173 168
174 'set_B': function(aValue) { 169 'set_B': function(aValue) {
175 //Warning: this value should be strictly greater than zero: how should we perform this check? 170 //Warning: this value should be strictly greater than zero: how should we perform this check?
176 if (! aValue.equals(0)) { 171 if (! aValue.equals(0)) {
177 this._B = aValue; 172 this._B = aValue;
178//MochiKit.Logging.logDebug("SRP B: " + this._B);
179 } else { 173 } else {
180MochiKit.Logging.logError("Clipperz.Crypto.SRP.Connection: trying to set 'B' to 0."); 174 Clipperz.logError("Clipperz.Crypto.SRP.Connection: trying to set 'B' to 0.");
181 throw Clipperz.Crypto.SRP.exception.InvalidValue; 175 throw Clipperz.Crypto.SRP.exception.InvalidValue;
182 } 176 }
183 }, 177 },
184 178
185 //------------------------------------------------------------------------- 179 //-------------------------------------------------------------------------
186 180
187 'x': function () { 181 'x': function () {
188 if (this._x == null) { 182 if (this._x == null) {
189 this._x = new Clipperz.Crypto.BigInt(this.stringHash(this.s().asString(16, 64) + this.P()), 16); 183 this._x = new Clipperz.Crypto.BigInt(this.stringHash(this.s().asString(16, 64) + this.P()), 16);
190//MochiKit.Logging.logDebug("SRP x: " + this._x);
191 } 184 }
192 185
193 return this._x; 186 return this._x;
194 }, 187 },
195 188
196 //------------------------------------------------------------------------- 189 //-------------------------------------------------------------------------
197 190
198 'u': function () { 191 'u': function () {
199 if (this._u == null) { 192 if (this._u == null) {
200 this._u = new Clipperz.Crypto.BigInt(this.stringHash(this.B().asString()), 16); 193 this._u = new Clipperz.Crypto.BigInt(this.stringHash(this.B().asString()), 16);
201//MochiKit.Logging.logDebug("SRP u: " + this._u);
202 } 194 }
203 195
204 return this._u; 196 return this._u;
205 }, 197 },
206 198
207 //------------------------------------------------------------------------- 199 //-------------------------------------------------------------------------
208 200
209 'S': function () { 201 'S': function () {
@@ -214,50 +206,46 @@ MochiKit.Logging.logError("Clipperz.Crypto.SRP.Connection: trying to set 'B' to
214 bigint = Clipperz.Crypto.BigInt; 206 bigint = Clipperz.Crypto.BigInt;
215 srp = Clipperz.Crypto.SRP; 207 srp = Clipperz.Crypto.SRP;
216 208
217 this._S =bigint.powerModule( 209 this._S =bigint.powerModule(
218 bigint.subtract(this.B(), bigint.powerModule(srp.g(), this.x(), srp.n())), 210 bigint.subtract(this.B(), bigint.powerModule(srp.g(), this.x(), srp.n())),
219 bigint.add(this.a(), bigint.multiply(this.u(), this.x())), 211 bigint.add(this.a(), bigint.multiply(this.u(), this.x())),
220 srp.n() 212 srp.n()
221 ) 213 )
222//MochiKit.Logging.logDebug("SRP S: " + this._S);
223 } 214 }
224 215
225 return this._S; 216 return this._S;
226 }, 217 },
227 218
228 //------------------------------------------------------------------------- 219 //-------------------------------------------------------------------------
229 220
230 'K': function () { 221 'K': function () {
231 if (this._K == null) { 222 if (this._K == null) {
232 this._K = this.stringHash(this.S().asString()); 223 this._K = this.stringHash(this.S().asString());
233//MochiKit.Logging.logDebug("SRP K: " + this._K);
234 } 224 }
235 225
236 return this._K; 226 return this._K;
237 }, 227 },
238 228
239 //------------------------------------------------------------------------- 229 //-------------------------------------------------------------------------
240 230
241 'M1': function () { 231 'M1': function () {
242 if (this._M1 == null) { 232 if (this._M1 == null) {
243 this._M1 = this.stringHash(this.A().asString(10) + this.B().asString(10) + this.K()); 233 this._M1 = this.stringHash(this.A().asString(10) + this.B().asString(10) + this.K());
244//MochiKit.Logging.logDebug("SRP M1: " + this._M1);
245 } 234 }
246 235
247 return this._M1; 236 return this._M1;
248 }, 237 },
249 238
250 //------------------------------------------------------------------------- 239 //-------------------------------------------------------------------------
251 240
252 'M2': function () { 241 'M2': function () {
253 if (this._M2 == null) { 242 if (this._M2 == null) {
254 this._M2 = this.stringHash(this.A().asString(10) + this.M1() + this.K()); 243 this._M2 = this.stringHash(this.A().asString(10) + this.M1() + this.K());
255//MochiKit.Logging.logDebug("SRP M2: " + this._M2);
256 } 244 }
257 245
258 return this._M2; 246 return this._M2;
259 }, 247 },
260 248
261 //========================================================================= 249 //=========================================================================
262 250
263 'serverSideCredentialsWithSalt': function(aSalt) { 251 'serverSideCredentialsWithSalt': function(aSalt) {
diff --git a/frontend/gamma/js/Clipperz/DOM.js b/frontend/gamma/js/Clipperz/DOM.js
index 8f24653..1d52a4b 100644
--- a/frontend/gamma/js/Clipperz/DOM.js
+++ b/frontend/gamma/js/Clipperz/DOM.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.DOM) == 'undefined') { Clipperz.DOM = {}; } 25if (typeof(Clipperz.DOM) == 'undefined') { Clipperz.DOM = {}; }
28 26
29Clipperz.DOM.VERSION = "0.1"; 27Clipperz.DOM.VERSION = "0.1";
30Clipperz.DOM.NAME = "Clipperz.DOM"; 28Clipperz.DOM.NAME = "Clipperz.DOM";
@@ -101,17 +99,17 @@ MochiKit.Base.update(Clipperz.DOM, {
101 99
102 tagName = aNode.tagName.toUpperCase(); 100 tagName = aNode.tagName.toUpperCase();
103 if (tagName === "INPUT" && (aNode.type == "radio" || aNode.type == "checkbox")) { 101 if (tagName === "INPUT" && (aNode.type == "radio" || aNode.type == "checkbox")) {
104 aNode.checked = values[name]; 102 aNode.checked = values[name];
105 } else if (tagName === "SELECT") { 103 } else if (tagName === "SELECT") {
106 if (aNode.type == "select-one") { 104 if (aNode.type == "select-one") {
107 Clipperz.DOM.selectOptionMatchingValue(aNode, values[name]); 105 Clipperz.DOM.selectOptionMatchingValue(aNode, values[name]);
108 } else { //aNode.type == "select-multiple" 106 } else { //aNode.type == "select-multiple"
109MochiKit.Logging.logWarning("### unhandled Select.type = 'select-multiple' condition"); 107 Clipperz.logWarning("### unhandled Select.type = 'select-multiple' condition");
110 } 108 }
111 } else if (tagName === "FORM" || tagName === "P" || tagName === "SPAN" || tagName === "DIV") { 109 } else if (tagName === "FORM" || tagName === "P" || tagName === "SPAN" || tagName === "DIV") {
112 result = aNode.childNodes; 110 result = aNode.childNodes;
113 } else { 111 } else {
114 aNode.value = values[name] 112 aNode.value = values[name]
115 } 113 }
116 } else { 114 } else {
117 result = aNode.childNodes; 115 result = aNode.childNodes;
diff --git a/frontend/gamma/js/Clipperz/Date.js b/frontend/gamma/js/Clipperz/Date.js
index 020d77b..163790e 100644
--- a/frontend/gamma/js/Clipperz/Date.js
+++ b/frontend/gamma/js/Clipperz/Date.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Date) == 'undefined') { Clipperz.Date = {}; } 25if (typeof(Clipperz.Date) == 'undefined') { Clipperz.Date = {}; }
28 26
29Clipperz.Date.VERSION = "0.1"; 27Clipperz.Date.VERSION = "0.1";
30Clipperz.Date.NAME = "Clipperz.Date"; 28Clipperz.Date.NAME = "Clipperz.Date";
@@ -234,17 +232,16 @@ MochiKit.Base.update(Clipperz.Date, {
234 //========================================================================= 232 //=========================================================================
235 233
236 'formatDateWithPHPLikeTemplateAndLocale': function(aDate, aFormat, aLocale) { 234 'formatDateWithPHPLikeTemplateAndLocale': function(aDate, aFormat, aLocale) {
237 var result; 235 var result;
238 var formatterCode; 236 var formatterCode;
239 var formatter; 237 var formatter;
240 var i,c; 238 var i,c;
241 239
242//MochiKit.Logging.logDebug(">>> Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale");
243 formatterCode = "Clipperz.Date.__scratchFormatter = function(aDate, aLocale){return ''"; 240 formatterCode = "Clipperz.Date.__scratchFormatter = function(aDate, aLocale){return ''";
244 241
245 c = aFormat.length; 242 c = aFormat.length;
246 i = 0; 243 i = 0;
247 244
248 while (i<c) { 245 while (i<c) {
249 var character; 246 var character;
250 247
@@ -256,22 +253,20 @@ MochiKit.Base.update(Clipperz.Date, {
256 } else { 253 } else {
257 formatterCode += Clipperz.Date.getPHPLikeFormatCode(character); 254 formatterCode += Clipperz.Date.getPHPLikeFormatCode(character);
258 } 255 }
259 256
260 i++; 257 i++;
261 } 258 }
262 259
263 formatterCode += ";}"; 260 formatterCode += ";}";
264//MochiKit.Logging.logDebug("--- Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale - formatterCode: " + formatterCode);
265 eval(formatterCode); 261 eval(formatterCode);
266 262
267 result = Clipperz.Date.__scratchFormatter.call(this, aDate, aLocale); 263 result = Clipperz.Date.__scratchFormatter.call(this, aDate, aLocale);
268 delete Clipperz.Date.__scratchFormatter; 264 delete Clipperz.Date.__scratchFormatter;
269//MochiKit.Logging.logDebug("<<< Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale");
270 265
271 return result; 266 return result;
272 }, 267 },
273 268
274 //------------------------------------------------------------------------- 269 //-------------------------------------------------------------------------
275 270
276 'parseDateWithPHPLikeTemplateAndLocale': function(aString, aFormat, aLocale) { 271 'parseDateWithPHPLikeTemplateAndLocale': function(aString, aFormat, aLocale) {
277 return new Date(); 272 return new Date();
diff --git a/frontend/gamma/js/Clipperz/KeePassExportProcessor.js b/frontend/gamma/js/Clipperz/KeePassExportProcessor.js
index a3c10c8..e35d729 100644
--- a/frontend/gamma/js/Clipperz/KeePassExportProcessor.js
+++ b/frontend/gamma/js/Clipperz/KeePassExportProcessor.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27 25
28 26
29Clipperz.KeePassExportProcessor = function(args) { 27Clipperz.KeePassExportProcessor = function(args) {
30 args = args || {}; 28 args = args || {};
diff --git a/frontend/gamma/js/Clipperz/KeyValueObjectStore.js b/frontend/gamma/js/Clipperz/KeyValueObjectStore.js
index 36cda88..8bc125b 100644
--- a/frontend/gamma/js/Clipperz/KeyValueObjectStore.js
+++ b/frontend/gamma/js/Clipperz/KeyValueObjectStore.js
@@ -1,61 +1,57 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.KeyValueObjectStore = function(args) { 28Clipperz.KeyValueObjectStore = function(args) {
31 args = args || {}; 29 args = args || {};
32 30
33 //this._name = args['name'] || "unnamed KeyValueObjectStore"; 31 //this._name = args['name'] || "unnamed KeyValueObjectStore";
34 this._values = args['values'] || {}; 32 this._values = args['values'] || {};
35 //this._referenceObjectStore = null; 33 //this._referenceObjectStore = null;
36//console.log("new KeyValueObjectStore", args, this._values);
37 34
38 return this; 35 return this;
39} 36}
40 37
41Clipperz.KeyValueObjectStore.prototype = MochiKit.Base.update(null, { 38Clipperz.KeyValueObjectStore.prototype = MochiKit.Base.update(null, {
42 39
43 'values': function() { 40 'values': function() {
44 return this._values; 41 return this._values;
45 }, 42 },
46 43
47 'initWithValues': function (someValues) { 44 'initWithValues': function (someValues) {
48 this._values = Clipperz.Base.deepClone(someValues) || {}; 45 this._values = Clipperz.Base.deepClone(someValues) || {};
49 return this; 46 return this;
50 }, 47 },
51 48
52 'setValues': function (someValues) { 49 'setValues': function (someValues) {
53//console.log("KeyValueObjectStore.setValues", someValues);
54 this._values = someValues; 50 this._values = someValues;
55 return this; 51 return this;
56 }, 52 },
57 53
58 //'initWithObjectStore': function (anObjectStore) { 54 //'initWithObjectStore': function (anObjectStore) {
59 // this._referenceObjectStore = anObjectStore; 55 // this._referenceObjectStore = anObjectStore;
60 //}, 56 //},
61 57
@@ -91,31 +87,28 @@ Clipperz.KeyValueObjectStore.prototype = MochiKit.Base.update(null, {
91 87
92 //------------------------------------------------------------------------- 88 //-------------------------------------------------------------------------
93 89
94 'setValue': function(aKeyPath, aValue) { 90 'setValue': function(aKeyPath, aValue) {
95 var targetObject; 91 var targetObject;
96 var keys; 92 var keys;
97 var i,c; 93 var i,c;
98 94
99//console.log(">>> KeyValueObjectStore.setValue", this, this.values(), aKeyPath, aValue);
100 targetObject = this.values(); 95 targetObject = this.values();
101 keys = (aKeyPath + '').split('.'); 96 keys = (aKeyPath + '').split('.');
102 c = keys.length - 1; 97 c = keys.length - 1;
103 for (i=0; i<c; i++) { 98 for (i=0; i<c; i++) {
104//console.log("--- KeyValueObjectStore.setValue", i, targetObject, keys[i]);
105 if (typeof targetObject[keys[i]] == 'undefined') { 99 if (typeof targetObject[keys[i]] == 'undefined') {
106 targetObject[keys[i]] = {} 100 targetObject[keys[i]] = {}
107 } 101 }
108 102
109 targetObject = targetObject[keys[i]]; 103 targetObject = targetObject[keys[i]];
110 } 104 }
111 105
112 targetObject[keys[c]] = aValue; 106 targetObject[keys[c]] = aValue;
113//console.log("<<< KeyValueObjectStore.setValue");
114 107
115 return aValue; 108 return aValue;
116 }, 109 },
117 110
118 //------------------------------------------------------------------------- 111 //-------------------------------------------------------------------------
119 112
120 'removeValue': function (aKeyPath) { 113 'removeValue': function (aKeyPath) {
121 // this.setValue(aKeyPath, null); 114 // this.setValue(aKeyPath, null);
diff --git a/frontend/gamma/js/Clipperz/Logging.js b/frontend/gamma/js/Clipperz/Logging.js
index 77a0896..b6b806a 100644
--- a/frontend/gamma/js/Clipperz/Logging.js
+++ b/frontend/gamma/js/Clipperz/Logging.js
@@ -1,39 +1,32 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz'); 24Clipperz.Base.module('Clipperz');
27 25
28if (typeof console == 'undefined') {
29 Clipperz.log = MochiKit.Logging.logDebug;
30// Safari/WebKit 4
31} else if (navigator.userAgent.match(/WebKit/)) {
32 //Clipperz.log = console.log;
33 Clipperz.log = MochiKit.Logging.logDebug;
34} else if (navigator.userAgent.match(/Gecko/)) {
35 Clipperz.log = function () { 26 Clipperz.log = function () {
36 // firebug 1.3 bug see http://code.google.com/p/fbug/issues/detail?id=1347 27 console.log.apply(console, arguments);
37 console.log.apply(window._firebug, arguments);
38 };
39} \ No newline at end of file 28} \ No newline at end of file
29
30 Clipperz.logError= Clipperz.log;
31 Clipperz.logWarning= Clipperz.log;
32 Clipperz.logDebug= Clipperz.log; \ No newline at end of file
diff --git a/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js b/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js
index 897beed..4818b76 100644
--- a/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js
+++ b/frontend/gamma/js/Clipperz/PM/BookmarkletProcessor.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26/* 24/*
27if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 25if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
28if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 26if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
29 27
30Clipperz.PM.BookmarkletProcessor = function(aConfiguration) { 28Clipperz.PM.BookmarkletProcessor = function(aConfiguration) {
diff --git a/frontend/gamma/js/Clipperz/PM/Connection.js b/frontend/gamma/js/Clipperz/PM/Connection.js
index a05a310..6a8f15e 100644
--- a/frontend/gamma/js/Clipperz/PM/Connection.js
+++ b/frontend/gamma/js/Clipperz/PM/Connection.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//----------------------------------------------------------------------------- 27//-----------------------------------------------------------------------------
30// 28//
@@ -81,17 +79,18 @@ Clipperz.PM.Connection.prototype = MochiKit.Base.update(null, {
81 } 79 }
82 80
83 return this._clipperz_pm_crypto_version; 81 return this._clipperz_pm_crypto_version;
84 }, 82 },
85 83
86 //------------------------------------------------------------------------- 84 //-------------------------------------------------------------------------
87 85
88 'defaultErrorHandler': function(anErrorString, anException) { 86 'defaultErrorHandler': function(anErrorString, anException) {
89MochiKit.Logging.logError("### Connection.defaultErrorHandler: " + anErrorString + " (" + anException + ")"); 87 // Clipperz.logError("### Connection.defaultErrorHandler: " + anErrorString, anException);
88 Clipperz.logError("### Connection.defaultErrorHandler: " + anErrorString + " (" + anException + ")");
90 }, 89 },
91 90
92 //------------------------------------------------------------------------- 91 //-------------------------------------------------------------------------
93 92
94 'getCredentialsFunction': function () { 93 'getCredentialsFunction': function () {
95 return this._getCredentialsFunction; 94 return this._getCredentialsFunction;
96 }, 95 },
97 96
@@ -268,17 +267,16 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
268 267
269 return deferredResult; 268 return deferredResult;
270 269
271 }, 270 },
272 271
273 //========================================================================= 272 //=========================================================================
274 273
275 'redeemOneTimePassword': function (someParameters) { 274 'redeemOneTimePassword': function (someParameters) {
276//console.log("Connections.redeemOneTimePassword", someParameters['username'], someParameters['password']);
277/* 275/*
278 //========================================================================= 276 //=========================================================================
279 //LOGIN WITH PASSPHRASE, extracted from the TRUNK version (LoginPanel.js) 277 //LOGIN WITH PASSPHRASE, extracted from the TRUNK version (LoginPanel.js)
280 deferredResult.addCallback(function(anUsername, aOneTimePassword) { 278 deferredResult.addCallback(function(anUsername, aOneTimePassword) {
281 var args; 279 var args;
282 280
283 args = { 281 args = {
284 'message': 'oneTimePassword', 282 'message': 'oneTimePassword',
@@ -448,17 +446,16 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
448 var args; 446 var args;
449 var parameters; 447 var parameters;
450 448
451 parameters = someParameters || {}; 449 parameters = someParameters || {};
452 if (typeof(parameters['user']) != 'undefined') { 450 if (typeof(parameters['user']) != 'undefined') {
453 parameters['user']['lock'] = this.serverLockValue(); 451 parameters['user']['lock'] = this.serverLockValue();
454 } 452 }
455 453
456//console.log(">>> Connection.message", aMessageName, someParameters);
457 args = { 454 args = {
458 message: aMessageName, 455 message: aMessageName,
459 srpSharedSecret: this.sharedSecret(), 456 srpSharedSecret: this.sharedSecret(),
460 // parameters: (someParameters || {}) 457 // parameters: (someParameters || {})
461 parameters: parameters 458 parameters: parameters
462 } 459 }
463 460
464 return this.sendMessage(args); 461 return this.sendMessage(args);
@@ -484,31 +481,31 @@ Clipperz.PM.Connection.SRP['1.0'].prototype = MochiKit.Base.update(new Clipperz.
484 return deferredResult 481 return deferredResult
485 }, 482 },
486 483
487 //------------------------------------------------------------------------- 484 //-------------------------------------------------------------------------
488 485
489 'messageExceptionHandler': function(anOriginalMessageArguments, anError) { 486 'messageExceptionHandler': function(anOriginalMessageArguments, anError) {
490 var result; 487 var result;
491 488
492console.log(">>> Connection.messageExceptionHandler", anError, anError.message); 489Clipperz.log(">>> Connection.messageExceptionHandler: " + anError.message, anError);
493 if (anError instanceof MochiKit.Async.CancelledError) { 490 if (anError instanceof MochiKit.Async.CancelledError) {
494 result = anError; 491 result = anError;
495 } else { 492 } else {
496 if ((anError.message == 'Trying to communicate without an active connection')|| 493 if ((anError.message == 'Trying to communicate without an active connection')||
497 (anError.message == 'No tollManager available for current session') 494 (anError.message == 'No tollManager available for current session')
498 ) { 495 ) {
499 result = this.reestablishConnection(anOriginalMessageArguments); 496 result = this.reestablishConnection(anOriginalMessageArguments);
500 } else if (anError.message == 'Session with stale data') { 497 } else if (anError.message == 'Session with stale data') {
501 MochiKit.Signal.signal(this, 'EXCEPTION'); 498 MochiKit.Signal.signal(this, 'EXCEPTION');
502 } else { 499 } else {
503 result = anError; 500 result = anError;
504 } 501 }
505 } 502 }
506console.log("<<< Connection.messageExceptionHandler", anError) 503Clipperz.log("<<< Connection.messageExceptionHandler")
507 504
508 return result;; 505 return result;;
509 }, 506 },
510 507
511 //========================================================================= 508 //=========================================================================
512 509
513 'reestablishConnection': function(anOriginalMessageArguments) { 510 'reestablishConnection': function(anOriginalMessageArguments) {
514 var deferredResult; 511 var deferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/Crypto.js b/frontend/gamma/js/Clipperz/PM/Crypto.js
index 31fe349..cd10e33 100644
--- a/frontend/gamma/js/Clipperz/PM/Crypto.js
+++ b/frontend/gamma/js/Clipperz/PM/Crypto.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Crypto) == 'undefined') { Clipperz.PM.Crypto = {}; } 26if (typeof(Clipperz.PM.Crypto) == 'undefined') { Clipperz.PM.Crypto = {}; }
29 27
30Clipperz.PM.Crypto.VERSION = "0.2"; 28Clipperz.PM.Crypto.VERSION = "0.2";
@@ -169,17 +167,17 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
169 value = new Clipperz.ByteArray().appendBase64String(aValue); 167 value = new Clipperz.ByteArray().appendBase64String(aValue);
170 168
171 decryptedData = Clipperz.Crypto.AES.decrypt(key, value); 169 decryptedData = Clipperz.Crypto.AES.decrypt(key, value);
172 decryptedValue = decryptedData.split((256/8)); 170 decryptedValue = decryptedData.split((256/8));
173 171
174 try { 172 try {
175 result = Clipperz.Base.evalJSON(decryptedValue.asString()); 173 result = Clipperz.Base.evalJSON(decryptedValue.asString());
176 } catch (exception) { 174 } catch (exception) {
177 MochiKit.Logging.logError("Error while decrypting data [1]"); 175 Clipperz.logError("Error while decrypting data [1]");
178 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 176 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
179 } 177 }
180 } else { 178 } else {
181 result = null; 179 result = null;
182 } 180 }
183 181
184 return result; 182 return result;
185 }, 183 },
@@ -201,17 +199,17 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
201 var result; 199 var result;
202 var decryptedData; 200 var decryptedData;
203 201
204 decryptedData = aResult.split((256/8)); 202 decryptedData = aResult.split((256/8));
205 203
206 try { 204 try {
207 result = Clipperz.Base.evalJSON(decryptedData.asString()); 205 result = Clipperz.Base.evalJSON(decryptedData.asString());
208 } catch (exception) { 206 } catch (exception) {
209 MochiKit.Logging.logError("Error while decrypting data [2]"); 207 Clipperz.logError("Error while decrypting data [2]");
210 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 208 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
211 } 209 }
212 210
213 return result; 211 return result;
214 }) 212 })
215 deferredResult.callback(); 213 deferredResult.callback();
216 214
217 result = deferredResult; 215 result = deferredResult;
@@ -286,17 +284,17 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
286 value = new Clipperz.ByteArray().appendBase64String(aValue); 284 value = new Clipperz.ByteArray().appendBase64String(aValue);
287 285
288 decryptedData = Clipperz.Crypto.AES.decrypt(key, value); 286 decryptedData = Clipperz.Crypto.AES.decrypt(key, value);
289 287
290 value = decryptedData.asString(); 288 value = decryptedData.asString();
291 try { 289 try {
292 result = Clipperz.Base.evalJSON(value); 290 result = Clipperz.Base.evalJSON(value);
293 } catch (exception) { 291 } catch (exception) {
294 MochiKit.Logging.logError("Error while decrypting data [3]"); 292 Clipperz.logError("Error while decrypting data [3]");
295 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 293 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
296 } 294 }
297 } else { 295 } else {
298 result = null; 296 result = null;
299 } 297 }
300 298
301 return result; 299 return result;
302 }, 300 },
@@ -317,17 +315,17 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
317 deferredResult.addCallback(Clipperz.Crypto.AES.deferredDecrypt, key, value); 315 deferredResult.addCallback(Clipperz.Crypto.AES.deferredDecrypt, key, value);
318 deferredResult.addCallback(MochiKit.Async.wait, 0.1); 316 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
319 deferredResult.addCallback(function(aResult) { 317 deferredResult.addCallback(function(aResult) {
320 return aResult.asString(); 318 return aResult.asString();
321 }); 319 });
322 deferredResult.addCallback(MochiKit.Async.wait, 0.1); 320 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
323 deferredResult.addCallback(Clipperz.Base.evalJSON); 321 deferredResult.addCallback(Clipperz.Base.evalJSON);
324 deferredResult.addErrback(function(anError) { 322 deferredResult.addErrback(function(anError) {
325 MochiKit.Logging.logError("Error while decrypting data [4]"); 323 Clipperz.logError("Error while decrypting data [4]");
326 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 324 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
327 }) 325 })
328 } else { 326 } else {
329 deferredResult.addCallback(function() { 327 deferredResult.addCallback(function() {
330 return null; 328 return null;
331 }); 329 });
332 } 330 }
333 deferredResult.callback(); 331 deferredResult.callback();
@@ -354,37 +352,37 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
354 '0.4': { 352 '0.4': {
355 'encrypt': function(aKey, aValue, aNonce) { 353 'encrypt': function(aKey, aValue, aNonce) {
356 var result; 354 var result;
357 varkey, value; 355 varkey, value;
358 var data; 356 var data;
359 var dataToEncrypt; 357 var dataToEncrypt;
360 var encryptedData; 358 var encryptedData;
361 359
362//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt"); 360//Clipperz.logDebug(">>> [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt");
363 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey)); 361 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
364//MochiKit.Logging.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 1"); 362//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 1");
365 value = Clipperz.Base.serializeJSON(aValue); 363 value = Clipperz.Base.serializeJSON(aValue);
366//MochiKit.Logging.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 2"); 364//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 2");
367/ * 365/ *
368//MochiKit.Logging.logDebug("--> encrypt.fullSize: " + value.length); 366//Clipperz.logDebug("--> encrypt.fullSize: " + value.length);
369 value = value.replace(/":{"label":"/g, '":{l:"'); 367 value = value.replace(/":{"label":"/g, '":{l:"');
370 value = value.replace(/":{"key":"/g, '":{k:"'); 368 value = value.replace(/":{"key":"/g, '":{k:"');
371 value = value.replace(/":{"notes":"/g, '":{n:"'); 369 value = value.replace(/":{"notes":"/g, '":{n:"');
372 value = value.replace(/":{"record":"/g, '":{r:"'); 370 value = value.replace(/":{"record":"/g, '":{r:"');
373 value = value.replace(/", "label":"/g, '",l:"'); 371 value = value.replace(/", "label":"/g, '",l:"');
374 value = value.replace(/", "favicon":"/g,'",f:"'); 372 value = value.replace(/", "favicon":"/g,'",f:"');
375//MochiKit.Logging.logDebug("<-- encrypt.compressed: " + value.length); 373//Clipperz.logDebug("<-- encrypt.compressed: " + value.length);
376* / 374* /
377 data = new Clipperz.ByteArray(value); 375 data = new Clipperz.ByteArray(value);
378//MochiKit.Logging.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 3"); 376//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 3");
379 encryptedData = Clipperz.Crypto.AES.encrypt(key, data, aNonce); 377 encryptedData = Clipperz.Crypto.AES.encrypt(key, data, aNonce);
380//MochiKit.Logging.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 4"); 378//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 4");
381 result = encryptedData.toBase64String(); 379 result = encryptedData.toBase64String();
382//MochiKit.Logging.logDebug("<<< [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt"); 380//Clipperz.logDebug("<<< [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt");
383 381
384 return result; 382 return result;
385 }, 383 },
386 384
387 'decrypt': function(aKey, aValue) { 385 'decrypt': function(aKey, aValue) {
388 var result; 386 var result;
389 387
390 if (aValue != null) { 388 if (aValue != null) {
@@ -403,17 +401,17 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
403 value = value.replace(/":{n:"/g,'":{"notes":"'); 401 value = value.replace(/":{n:"/g,'":{"notes":"');
404 value = value.replace(/":{r:"/g,'":{"record":"'); 402 value = value.replace(/":{r:"/g,'":{"record":"');
405 value = value.replace(/",l:"/g, '", "label":"'); 403 value = value.replace(/",l:"/g, '", "label":"');
406 value = value.replace(/",f:"/g, '", "favicon":"'); 404 value = value.replace(/",f:"/g, '", "favicon":"');
407* / 405* /
408 try { 406 try {
409 result = Clipperz.Base.evalJSON(value); 407 result = Clipperz.Base.evalJSON(value);
410 } catch (exception) { 408 } catch (exception) {
411 MochiKit.Logging.logError("Error while decrypting data"); 409 Clipperz.logError("Error while decrypting data");
412 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 410 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
413 } 411 }
414 412
415 413
416 } else { 414 } else {
417 result = null; 415 result = null;
418 } 416 }
419 417
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js
index 8f8696d..507ee31 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.DataModel'); 24Clipperz.Base.module('Clipperz.PM.DataModel');
27 25
28Clipperz.PM.DataModel.DirectLogin = function(args) { 26Clipperz.PM.DataModel.DirectLogin = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -324,17 +322,17 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, {
324 '_fixConfiguration': function (aConfiguration) { 322 '_fixConfiguration': function (aConfiguration) {
325 var fixedConfiguration; 323 var fixedConfiguration;
326 // var inputs; 324 // var inputs;
327 // var bindings; 325 // var bindings;
328 // var i,c; 326 // var i,c;
329 327
330 fixedConfiguration = Clipperz.Base.deepClone(aConfiguration); 328 fixedConfiguration = Clipperz.Base.deepClone(aConfiguration);
331 329
332//console.log("PROCESS CONFIGURATION", aConfiguration); 330//Clipperz.log("PROCESS CONFIGURATION", aConfiguration);
333 switch (aConfiguration['bookmarkletVersion']) { 331 switch (aConfiguration['bookmarkletVersion']) {
334 case '0.1': 332 case '0.1':
335 fixedConfiguration['formData'] = this.fixFormDataFromBookmarkletVersion_0_1(aConfiguration['formData']); 333 fixedConfiguration['formData'] = this.fixFormDataFromBookmarkletVersion_0_1(aConfiguration['formData']);
336 break; 334 break;
337 case '0.2': 335 case '0.2':
338 fixedConfiguration['formData'] = aConfiguration['formData']; 336 fixedConfiguration['formData'] = aConfiguration['formData'];
339 break; 337 break;
340 } 338 }
@@ -476,20 +474,19 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, {
476 }, 474 },
477 475
478 //------------------------------------------------------------------------- 476 //-------------------------------------------------------------------------
479 477
480 'setBookmarkletConfiguration': function (aValue) { 478 'setBookmarkletConfiguration': function (aValue) {
481 var bookmarkletConfiguration; 479 var bookmarkletConfiguration;
482 480
483 bookmarkletConfiguration = Clipperz.PM.DataModel.DirectLogin.checkBookmarkletConfiguration(aValue); 481 bookmarkletConfiguration = Clipperz.PM.DataModel.DirectLogin.checkBookmarkletConfiguration(aValue);
484//console.log("BOOKMARKLET CONFIGURATION", bookmarkletConfiguration); 482
485 return Clipperz.Async.callbacks("DirectLogin.setBookmarkletConfiguration", [ 483 return Clipperz.Async.callbacks("DirectLogin.setBookmarkletConfiguration", [
486 MochiKit.Base.method(this, 'setValue', 'formData', bookmarkletConfiguration['form']), 484 MochiKit.Base.method(this, 'setValue', 'formData', bookmarkletConfiguration['form']),
487//function (aValue) { console.log("SET VALUE - formData", aValue); return aValue; },
488 MochiKit.Base.method(this, 'setValue', 'bookmarkletVersion', bookmarkletConfiguration['version']), 485 MochiKit.Base.method(this, 'setValue', 'bookmarkletVersion', bookmarkletConfiguration['version']),
489 486
490 MochiKit.Base.method(this, 'favicon'), 487 MochiKit.Base.method(this, 'favicon'),
491 Clipperz.Async.deferredIf("the favicon is not set", [ 488 Clipperz.Async.deferredIf("the favicon is not set", [
492 ], [ 489 ], [
493 MochiKit.Base.method(this, 'faviconUrlWithBookmarkletConfiguration', bookmarkletConfiguration), 490 MochiKit.Base.method(this, 'faviconUrlWithBookmarkletConfiguration', bookmarkletConfiguration),
494 MochiKit.Base.method(this, 'setFavicon') 491 MochiKit.Base.method(this, 'setFavicon')
495 ]), 492 ]),
@@ -531,31 +528,27 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, {
531 }, this)); 528 }, this));
532 } 529 }
533 530
534 return this._inputs; 531 return this._inputs;
535 }, 532 },
536 533
537 'updateInputsAfterChangingBookmarkletConfiguration': function () { 534 'updateInputsAfterChangingBookmarkletConfiguration': function () {
538 return Clipperz.Async.callbacks("DirectLogin.updateInputsAfterChangingBookmarkletConfiguration", [ 535 return Clipperz.Async.callbacks("DirectLogin.updateInputsAfterChangingBookmarkletConfiguration", [
539 // MochiKit.Base.method(this, 'getValue', ''),
540//function (aValue) { console.log("VALUE", aValue); return aValue },
541 MochiKit.Base.method(this, 'getValue', 'formData'), 536 MochiKit.Base.method(this, 'getValue', 'formData'),
542//function (aValue) { console.log("FORM DATA", aValue); return aValue },
543 MochiKit.Base.method(this, 'setInputWithFormDataConfiguration') 537 MochiKit.Base.method(this, 'setInputWithFormDataConfiguration')
544 ], {trace:false}); 538 ], {trace:false});
545 }, 539 },
546 540
547 //========================================================================= 541 //=========================================================================
548 542
549 'inputValues': function () { 543 'inputValues': function () {
550 return Clipperz.Async.callbacks("DirectLogin.inputValues", [ 544 return Clipperz.Async.callbacks("DirectLogin.inputValues", [
551 MochiKit.Base.method(this, 'inputs'), 545 MochiKit.Base.method(this, 'inputs'),
552 MochiKit.Base.values, 546 MochiKit.Base.values,
553 //function (aValue) { console.log("INPUTS", aValue); return aValue; },
554 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.partial(MochiKit.Base.method(this, 'inputValue'))), 547 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.partial(MochiKit.Base.method(this, 'inputValue'))),
555 Clipperz.Async.collectAll, 548 Clipperz.Async.collectAll,
556 Clipperz.Base.mergeItems 549 Clipperz.Base.mergeItems
557 ], {trace:false}); 550 ], {trace:false});
558 }, 551 },
559 552
560 'inputValue': function (anInput) { 553 'inputValue': function (anInput) {
561 vardeferredResult; 554 vardeferredResult;
@@ -669,29 +662,26 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, {
669 newBindingValues[anInput.name()] = availableBindingValues[anInput.name()]; 662 newBindingValues[anInput.name()] = availableBindingValues[anInput.name()];
670 newBinding = new Clipperz.PM.DataModel.DirectLoginBinding(this, { 663 newBinding = new Clipperz.PM.DataModel.DirectLoginBinding(this, {
671 'key': anInput.name(), 664 'key': anInput.name(),
672 'field':availableBindingValues[anInput.name()] 665 'field':availableBindingValues[anInput.name()]
673 }); 666 });
674 667
675 this._bindings[anInput.name()] = newBinding; 668 this._bindings[anInput.name()] = newBinding;
676 }, this)) 669 }, this))
677//console.log("THIS._BINDINGS", this._bindings);
678 670
679 return newBindingValues; 671 return newBindingValues;
680 672
681/* 673/*
682 this._bindings = {}; 674 this._bindings = {};
683//console.log("CONFIGURATION", aConfiguration);
684 675
685 if (someValues['currentValues'] != null) { 676 if (someValues['currentValues'] != null) {
686 if (someValues['currentValues']['bindingData'] != null) { 677 if (someValues['currentValues']['bindingData'] != null) {
687 var bindingKey; 678 var bindingKey;
688 679
689//console.log("BINDING DATA", someValues['currentValues']['bindingData']);
690 for (bindingKey in someValues['currentValues']['bindingData']) { 680 for (bindingKey in someValues['currentValues']['bindingData']) {
691 var newBinding; 681 var newBinding;
692 682
693 newBinding = new Clipperz.PM.DataModel.DirectLoginBinding(this, { 683 newBinding = new Clipperz.PM.DataModel.DirectLoginBinding(this, {
694 'key': bindingKey, 684 'key': bindingKey,
695 'field':someValues['currentValues']['bindingData'][bindingKey] 685 'field':someValues['currentValues']['bindingData'][bindingKey]
696 }); 686 });
697 this._bindings[newBinding.key()] = newBinding; 687 this._bindings[newBinding.key()] = newBinding;
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js
index 4377853..a8ebb97 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js
index a461197..2429f88 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30 28
@@ -82,17 +80,16 @@ Clipperz.PM.DataModel.DirectLoginFormValue.prototype = MochiKit.Base.update(null
82 // if ((result == null) && (this.type() == 'checkbox')) { 80 // if ((result == null) && (this.type() == 'checkbox')) {
83 // result = false; 81 // result = false;
84 // }; 82 // };
85 83
86 return result; 84 return result;
87 }, 85 },
88 86
89 'setValue': function (aValue) { 87 'setValue': function (aValue) {
90//console.log("DirectLoginFormValue.setValue", aValue);
91 this._value = aValue; 88 this._value = aValue;
92 return this.directLogin().setValue('formValues' + '.' + this.key(), aValue); 89 return this.directLogin().setValue('formValues' + '.' + this.key(), aValue);
93 }, 90 },
94 91
95 //------------------------------------------------------------------------- 92 //-------------------------------------------------------------------------
96/* 93/*
97 'serializedData': function() { 94 'serializedData': function() {
98 return this.value(); 95 return this.value();
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js
index 8188389..d9995fc 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30//############################################################################# 28//#############################################################################
@@ -71,17 +69,17 @@ Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, {
71 'value': function() { 69 'value': function() {
72 return this.args()['value']; 70 return this.args()['value'];
73 }, 71 },
74 72
75 //------------------------------------------------------------------------- 73 //-------------------------------------------------------------------------
76 /* 74 /*
77 'formConfiguration': function(someFormValues, someBindings, someFields) { 75 'formConfiguration': function(someFormValues, someBindings, someFields) {
78 var result; 76 var result;
79//console.log("### DirectLoginInput.formConfiguration", someFields); 77
80 if (this.shouldSetValue()) { 78 if (this.shouldSetValue()) {
81 switch (this.type()) { 79 switch (this.type()) {
82 case 'select': 80 case 'select':
83 var currentValue; 81 var currentValue;
84 var options; 82 var options;
85 83
86 // currentValue = this.directLogin()._configuration['formValues'][this.name()]; 84 // currentValue = this.directLogin()._configuration['formValues'][this.name()];
87 currentValue = someFormValues[this.name()]; 85 currentValue = someFormValues[this.name()];
@@ -149,22 +147,16 @@ Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, {
149 ); 147 );
150 break; 148 break;
151 } 149 }
152 } else { 150 } else {
153 var binding; 151 var binding;
154 // binding = this.directLogin().bindings()[this.name()]; 152 // binding = this.directLogin().bindings()[this.name()];
155 binding = someBindings[this.name()]; 153 binding = someBindings[this.name()];
156 154
157//console.log("### binding", binding);
158//if (binding != null) {
159 ///console.log(" binding.field()", binding.field());
160 ///console.log(" binding.field().value()", binding.field().value());
161 //console.log(" someFields[binding.fieldKey()].value()", someFields[binding.fieldKey()].value());
162//}
163 result = MochiKit.DOM.INPUT({ 155 result = MochiKit.DOM.INPUT({
164 type:((this.type() != 'password') ? this.type() : 'text'), 156 type:((this.type() != 'password') ? this.type() : 'text'),
165 name:this.name(), 157 name:this.name(),
166 // value:((binding != null)? binding.field().value() : this.value()) 158 // value:((binding != null)? binding.field().value() : this.value())
167 value:((binding != null)? someFields[binding.fieldKey()]['value'] : this.value()) 159 value:((binding != null)? someFields[binding.fieldKey()]['value'] : this.value())
168 // value:((binding != null)? someFields[binding.fieldKey()].value() : this.value()) 160 // value:((binding != null)? someFields[binding.fieldKey()].value() : this.value())
169 }, null); 161 }, null);
170 } 162 }
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js
index cdeec8b..1aa7a52 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!"; 25 throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!";
28} 26}
29 27
30if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 28if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
@@ -406,20 +404,16 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
406 ], 404 ],
407 'objectData': [ 405 'objectData': [
408 MochiKit.Base.method(this, '_getObjectDataStore'), 406 MochiKit.Base.method(this, '_getObjectDataStore'),
409 MochiKit.Base.methodcaller('values'), 407 MochiKit.Base.methodcaller('values'),
410 Clipperz.Base.serializeJSON 408 Clipperz.Base.serializeJSON
411 ] 409 ]
412 }); 410 });
413 deferredResult.addCallback(function (someValues) { 411 deferredResult.addCallback(function (someValues) {
414//if (someValues['decryptedData'] != someValues['objectData']) {
415 //console.log("ORIGINAL DATA", '[[[' + someValues['decryptedData'] + ']]]');
416 //console.log("CURRENT DATA", '>>>' + someValues['objectData'] + '<<<');
417//}
418 return (someValues['decryptedData'] != someValues['objectData']); 412 return (someValues['decryptedData'] != someValues['objectData']);
419 }); 413 });
420 deferredResult.callback(); 414 deferredResult.callback();
421 } else { 415 } else {
422 deferredResult = MochiKit.Async.succeed(false); 416 deferredResult = MochiKit.Async.succeed(false);
423 } 417 }
424 418
425 return deferredResult; 419 return deferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js
index 834e21b..fbca1ff 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30 28
@@ -138,85 +136,85 @@ Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, {
138 var encodedPassphrase; 136 var encodedPassphrase;
139 varprefixPadding; 137 varprefixPadding;
140 var suffixPadding; 138 var suffixPadding;
141 var getRandomBytes; 139 var getRandomBytes;
142 140
143 getRandomBytes = MochiKit.Base.method(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'getRandomBytes'); 141 getRandomBytes = MochiKit.Base.method(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'getRandomBytes');
144 142
145 encodedPassphrase = new Clipperz.ByteArray(this.user().passphrase()).toBase64String(); 143 encodedPassphrase = new Clipperz.ByteArray(this.user().passphrase()).toBase64String();
146//MochiKit.Logging.logDebug("--- encodedPassphrase.length: " + encodedPassphrase.length); 144//Clipperz.logDebug("--- encodedPassphrase.length: " + encodedPassphrase.length);
147 prefixPadding = getRandomBytes(getRandomBytes(1).byteAtIndex(0)).toBase64String(); 145 prefixPadding = getRandomBytes(getRandomBytes(1).byteAtIndex(0)).toBase64String();
148//MochiKit.Logging.logDebug("--- prefixPadding.length: " + prefixPadding.length); 146//Clipperz.logDebug("--- prefixPadding.length: " + prefixPadding.length);
149 suffixPadding = getRandomBytes((500 - prefixPadding.length - encodedPassphrase.length) * 6 / 8).toBase64String(); 147 suffixPadding = getRandomBytes((500 - prefixPadding.length - encodedPassphrase.length) * 6 / 8).toBase64String();
150//MochiKit.Logging.logDebug("--- suffixPadding.length: " + suffixPadding.length); 148//Clipperz.logDebug("--- suffixPadding.length: " + suffixPadding.length);
151//MochiKit.Logging.logDebug("--- total.length: " + (prefixPadding.length + encodedPassphrase.length + suffixPadding.length)); 149//Clipperz.logDebug("--- total.length: " + (prefixPadding.length + encodedPassphrase.length + suffixPadding.length));
152 150
153 packedPassphrase = { 151 packedPassphrase = {
154 'prefix': prefixPadding, 152 'prefix': prefixPadding,
155 'passphrase': encodedPassphrase, 153 'passphrase': encodedPassphrase,
156 'suffix': suffixPadding 154 'suffix': suffixPadding
157 }; 155 };
158 156
159 // result = Clipperz.Base.serializeJSON(packedPassphrase); 157 // result = Clipperz.Base.serializeJSON(packedPassphrase);
160 result = packedPassphrase; 158 result = packedPassphrase;
161//MochiKit.Logging.logDebug("===== OTP packedPassprase: [" + result.length + "]" + result); 159//Clipperz.logDebug("===== OTP packedPassprase: [" + result.length + "]" + result);
162//MochiKit.Logging.logDebug("<<< OneTimePassword.packedPassphrase"); 160//Clipperz.logDebug("<<< OneTimePassword.packedPassphrase");
163 161
164 return result; 162 return result;
165 }, 163 },
166 164
167 //------------------------------------------------------------------------- 165 //-------------------------------------------------------------------------
168 166
169 'encryptedPackedPassphrase': function() { 167 'encryptedPackedPassphrase': function() {
170 return Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion(this.passwordValue(), this.packedPassphrase()) 168 return Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion(this.passwordValue(), this.packedPassphrase())
171 }, 169 },
172 170
173 //------------------------------------------------------------------------- 171 //-------------------------------------------------------------------------
174 172
175 'encryptedData': function() { 173 'encryptedData': function() {
176 var deferredResult; 174 var deferredResult;
177 varresult; 175 varresult;
178 176
179//MochiKit.Logging.logDebug(">>> OneTimePassword.encryptedData"); 177//Clipperz.logDebug(">>> OneTimePassword.encryptedData");
180//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - id: " + this.reference()); 178//Clipperz.logDebug("--- OneTimePassword.encryptedData - id: " + this.reference());
181 result = { 179 result = {
182 'reference': this.reference(), 180 'reference': this.reference(),
183 'key': this.key(), 181 'key': this.key(),
184 'keyChecksum': this.keyChecksum(), 182 'keyChecksum': this.keyChecksum(),
185 'data': "", 183 'data': "",
186 'version': Clipperz.PM.Crypto.encryptingFunctions.currentVersion 184 'version': Clipperz.PM.Crypto.encryptingFunctions.currentVersion
187 } 185 }
188//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - 2: " + Clipperz.Base.serializeJSON(result)); 186//Clipperz.logDebug("--- OneTimePassword.encryptedData - 2: " + Clipperz.Base.serializeJSON(result));
189 deferredResult = new MochiKit.Async.Deferred(); 187 deferredResult = new MochiKit.Async.Deferred();
190//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - 3"); 188//Clipperz.logDebug("--- OneTimePassword.encryptedData - 3");
191//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.encryptedData - 1: " + res); return res;}); 189//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.encryptedData - 1: " + res); return res;});
192 //# deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion, this.passwordValue(), this.packedPassphrase()); 190 //# deferredResult.addCallback(Clipperz.PM.Crypto.deferredEncryptWithCurrentVersion, this.passwordValue(), this.packedPassphrase());
193 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedPackedPassphrase')); 191 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedPackedPassphrase'));
194//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - 4"); 192//Clipperz.logDebug("--- OneTimePassword.encryptedData - 4");
195//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.encryptedData - 2: [" + res.length + "]" + res); return res;}); 193//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.encryptedData - 2: [" + res.length + "]" + res); return res;});
196 deferredResult.addCallback(function(aResult, res) { 194 deferredResult.addCallback(function(aResult, res) {
197 aResult['data'] = res; 195 aResult['data'] = res;
198 return aResult; 196 return aResult;
199 }, result); 197 }, result);
200//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - 5"); 198//Clipperz.logDebug("--- OneTimePassword.encryptedData - 5");
201//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.encryptedData - 3: " + Clipperz.Base.serializeJSON(res)); return res;}); 199//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.encryptedData - 3: " + Clipperz.Base.serializeJSON(res)); return res;});
202 deferredResult.callback(); 200 deferredResult.callback();
203//MochiKit.Logging.logDebug("--- OneTimePassword.encryptedData - 6"); 201//Clipperz.logDebug("--- OneTimePassword.encryptedData - 6");
204 202
205 return deferredResult; 203 return deferredResult;
206 }, 204 },
207 205
208 //------------------------------------------------------------------------- 206 //-------------------------------------------------------------------------
209 207
210 'saveChanges': function() { 208 'saveChanges': function() {
211 var deferredResult; 209 var deferredResult;
212 varresult; 210 varresult;
213 211
214//MochiKit.Logging.logDebug(">>> OneTimePassword.saveChanges"); 212//Clipperz.logDebug(">>> OneTimePassword.saveChanges");
215 result = {}; 213 result = {};
216 deferredResult = new MochiKit.Async.Deferred(); 214 deferredResult = new MochiKit.Async.Deferred();
217 215
218 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_encryptUserData'); 216 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_encryptUserData');
219 deferredResult.addCallback(MochiKit.Base.method(this.user(), 'encryptedData')); 217 deferredResult.addCallback(MochiKit.Base.method(this.user(), 'encryptedData'));
220 deferredResult.addCallback(function(aResult, res) { 218 deferredResult.addCallback(function(aResult, res) {
221 aResult['user'] = res; 219 aResult['user'] = res;
222 return aResult; 220 return aResult;
@@ -225,26 +223,26 @@ Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, {
225 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_encryptOTPData'); 223 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_encryptOTPData');
226 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); 224 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData'));
227 deferredResult.addCallback(function(aResult, res) { 225 deferredResult.addCallback(function(aResult, res) {
228 aResult['oneTimePassword'] = res; 226 aResult['oneTimePassword'] = res;
229 return aResult; 227 return aResult;
230 }, result); 228 }, result);
231 229
232 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_sendingData'); 230 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_sendingData');
233//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.saveChanges - 1: " + Clipperz.Base.serializeJSON(res)); return res;}); 231//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.saveChanges - 1: " + Clipperz.Base.serializeJSON(res)); return res;});
234 deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewOneTimePassword'); 232 deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'addNewOneTimePassword');
235 233
236 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_updatingInterface'); 234 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveOTP_updatingInterface');
237//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.saveChanges - 2: " + res); return res;}); 235//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.saveChanges - 2: " + res); return res;});
238 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'OTPUpdated'); 236 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'OTPUpdated');
239 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'oneTimePassword_saveChanges_done', null); 237 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'oneTimePassword_saveChanges_done', null);
240//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("OneTimePassword.saveChanges - 2: " + res); return res;}); 238//deferredResult.addBoth(function(res) {Clipperz.logDebug("OneTimePassword.saveChanges - 2: " + res); return res;});
241 deferredResult.callback(); 239 deferredResult.callback();
242//MochiKit.Logging.logDebug("<<< OneTimePassword.saveChanges"); 240//Clipperz.logDebug("<<< OneTimePassword.saveChanges");
243 241
244 return deferredResult; 242 return deferredResult;
245 }, 243 },
246 244
247 //------------------------------------------------------------------------- 245 //-------------------------------------------------------------------------
248 246
249 'usageDate': function() { 247 'usageDate': function() {
250 return this._usageDate; 248 return this._usageDate;
@@ -303,17 +301,16 @@ Clipperz.PM.DataModel.OneTimePassword.computeKeyChecksumWithUsernameAndPassword
303} 301}
304 302
305//============================================================================= 303//=============================================================================
306 304
307Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue = function(aPassword) { 305Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue = function(aPassword) {
308 var result; 306 var result;
309 307
310 //"yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg" 308 //"yaxx k7ww - f8y6 tqz5 - 58b6 th44 - 9cwv q0fg"
311//console.log("Clipperz.PM.DataModel.OneTimePassword.isValidOneTimePasswordValue", aPassword);
312 if (aPassword.replace(/[\s\-]/g, '').length == 32) { 309 if (aPassword.replace(/[\s\-]/g, '').length == 32) {
313 try { 310 try {
314 var passwordByteArray; 311 var passwordByteArray;
315 312
316 passwordByteArray = new Clipperz.ByteArray(); 313 passwordByteArray = new Clipperz.ByteArray();
317 passwordByteArray.appendBase32String(aPassword); 314 passwordByteArray.appendBase32String(aPassword);
318 315
319 result = true; 316 result = true;
@@ -342,13 +339,12 @@ Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword = function(aPass
342 result = passwordByteArray.toBase64String(); 339 result = passwordByteArray.toBase64String();
343 } catch(exception) { 340 } catch(exception) {
344 result = aPassword; 341 result = aPassword;
345 } 342 }
346 } else { 343 } else {
347 result = aPassword; 344 result = aPassword;
348 } 345 }
349 346
350//console.log("Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword", aPassword, result);
351 return result; 347 return result;
352} 348}
353 349
354//############################################################################# 350//#############################################################################
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js
index f51bbc2..986db40 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!"; 25 throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!";
28} 26}
29 27
30Clipperz.PM.DataModel.Record.Version.Field = function(args) { 28Clipperz.PM.DataModel.Record.Version.Field = function(args) {
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js
index dd35fc9..87b319c 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js
@@ -1,39 +1,36 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!"; 25 throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!";
28} 26}
29 27
30Clipperz.PM.DataModel.Record.Version = function(args) { 28Clipperz.PM.DataModel.Record.Version = function(args) {
31//console.log(">>> Record.new");
32 Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments); 29 Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments);
33 30
34 this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); 31 this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter');
35 this._fields = null; 32 this._fields = null;
36 33
37 return this; 34 return this;
38} 35}
39 36
@@ -94,17 +91,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel
94 return deferredResult; 91 return deferredResult;
95 }, 92 },
96 93
97 //========================================================================= 94 //=========================================================================
98 95
99 'unpackData': function (someData) { //++ 96 'unpackData': function (someData) { //++
100 varresult; 97 varresult;
101 98
102//console.log("Record.Version - UNPACK DATA", this, someData);
103 result = someData; 99 result = someData;
104 if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) { 100 if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) {
105 varfields; 101 varfields;
106 var i,c; 102 var i,c;
107 103
108 fields = someData['fields']; 104 fields = someData['fields'];
109 delete someData['fields']; 105 delete someData['fields'];
110 106
@@ -287,17 +283,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel
287 //------------------------------------------------------------------------- 283 //-------------------------------------------------------------------------
288 284
289 'prepareRemoteDataWithKey': function (aKey) { 285 'prepareRemoteDataWithKey': function (aKey) {
290 var deferredResult; 286 var deferredResult;
291 var result; 287 var result;
292 288
293 result = {}; 289 result = {};
294 290
295//console.log("prepareRemoteDataWithKey", aKey);
296 deferredResult = new Clipperz.Async.Deferred("Record.Version.prepareRemoteDataWithKey", {trace:false}); 291 deferredResult = new Clipperz.Async.Deferred("Record.Version.prepareRemoteDataWithKey", {trace:false});
297 if (this.isBrandNew() == false) { 292 if (this.isBrandNew() == false) {
298 this.transientState()['originalReference'] = this.reference(); 293 this.transientState()['originalReference'] = this.reference();
299 294
300 deferredResult.collectResults({ 295 deferredResult.collectResults({
301 'key':MochiKit.Base.partial(MochiKit.Async.succeed, aKey), 296 'key':MochiKit.Base.partial(MochiKit.Async.succeed, aKey),
302 'value': MochiKit.Base.method(this, 'getKey'), 297 'value': MochiKit.Base.method(this, 'getKey'),
303 'version': MochiKit.Base.partial(MochiKit.Async.succeed, Clipperz.PM.Crypto.encryptingFunctions.currentVersion) 298 'version': MochiKit.Base.partial(MochiKit.Async.succeed, Clipperz.PM.Crypto.encryptingFunctions.currentVersion)
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js
index b816f80..3fc1813 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js
@@ -1,40 +1,37 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30 28
31Clipperz.PM.DataModel.Record = function(args) { 29Clipperz.PM.DataModel.Record = function(args) {
32//console.log(">>> new Clipperz.PM.DataModel.Record", args);
33 Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments); 30 Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments);
34 31
35 this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter')); 32 this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter'));
36 33
37 this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); 34 this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter');
38 this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter'); 35 this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter');
39 36
40 this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null; 37 this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null;
@@ -57,18 +54,16 @@ Clipperz.PM.DataModel.Record = function(args) {
57 'getVersion': MochiKit.Base.method(this, 'getVersion') 54 'getVersion': MochiKit.Base.method(this, 'getVersion')
58 55
59 }); 56 });
60 this._versions[newVersion.reference()] = newVersion; 57 this._versions[newVersion.reference()] = newVersion;
61 this._currentVersionReference = newVersion.reference(); 58 this._currentVersionReference = newVersion.reference();
62 // this.setLabel(''); 59 // this.setLabel('');
63 } 60 }
64 61
65//console.log("<<< new Clipperz.PM.DataModel.Record", args);
66
67 return this; 62 return this;
68} 63}
69 64
70 65
71Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, { 66Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, {
72 67
73 'toString': function() { 68 'toString': function() {
74 return "Record (" + this.reference() + ")"; 69 return "Record (" + this.reference() + ")";
@@ -205,31 +200,29 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
205 return result; 200 return result;
206 }, 201 },
207 202
208 //------------------------------------------------------------------------- 203 //-------------------------------------------------------------------------
209 204
210 'searchableContent': function () { 205 'searchableContent': function () {
211 var deferredResult; 206 var deferredResult;
212 207
213//console.log(">>> searchableContent");
214 deferredResult = new Clipperz.Async.Deferred("Record.searchableContent", {trace:false}); 208 deferredResult = new Clipperz.Async.Deferred("Record.searchableContent", {trace:false});
215 209
216 deferredResult.collectResults({ 210 deferredResult.collectResults({
217 'recordLabel': MochiKit.Base.method(this, 'label'), 211 'recordLabel': MochiKit.Base.method(this, 'label'),
218 'directLoginLabels': [ 212 'directLoginLabels': [
219 MochiKit.Base.method(this, 'directLoginReferences'), 213 MochiKit.Base.method(this, 'directLoginReferences'),
220 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.itemgetter('label')) 214 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.itemgetter('label'))
221 ] 215 ]
222 }) 216 })
223 deferredResult.addCallback(function (someValues) { 217 deferredResult.addCallback(function (someValues) {
224 return someValues['recordLabel'] + ' ' + someValues['directLoginLabels'].join(' '); 218 return someValues['recordLabel'] + ' ' + someValues['directLoginLabels'].join(' ');
225 }); 219 });
226 deferredResult.callback(); 220 deferredResult.callback();
227//console.log("<<< searchableContent");
228 221
229 return deferredResult; 222 return deferredResult;
230 }, 223 },
231 224
232 //------------------------------------------------------------------------- 225 //-------------------------------------------------------------------------
233 226
234 'isMatching': function (aRegExp) { 227 'isMatching': function (aRegExp) {
235 return Clipperz.Async.callbacks("deferredFilterFunction", [ 228 return Clipperz.Async.callbacks("deferredFilterFunction", [
@@ -265,17 +258,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
265 258
266 'createNewDirectLoginFunction': function () { 259 'createNewDirectLoginFunction': function () {
267 return this._createNewDirectLoginFunction; 260 return this._createNewDirectLoginFunction;
268 }, 261 },
269 262
270 'saveOriginalDirectLoginStatusToTransientState': function () { 263 'saveOriginalDirectLoginStatusToTransientState': function () {
271 if (this.transientState().getValue('directLogins') == null) { 264 if (this.transientState().getValue('directLogins') == null) {
272 // this.transientState().setValue('directLogins', this._directLogins) 265 // this.transientState().setValue('directLogins', this._directLogins)
273//console.log("SET TRANSIENT STATE", Clipperz.Base.serializeJSON(MochiKit.Base.keys(this.transientState().getValue('directLogins'))))
274 MochiKit.Iter.forEach(MochiKit.Base.keys(this._directLogins), MochiKit.Base.bind(function(aKey) { 266 MochiKit.Iter.forEach(MochiKit.Base.keys(this._directLogins), MochiKit.Base.bind(function(aKey) {
275 this.transientState().setValue('directLogins' + '.' + aKey, this._directLogins[aKey]) 267 this.transientState().setValue('directLogins' + '.' + aKey, this._directLogins[aKey])
276 }, this)) 268 }, this))
277 } 269 }
278 }, 270 },
279 271
280 'createNewDirectLogin': function () { 272 'createNewDirectLogin': function () {
281 this.saveOriginalDirectLoginStatusToTransientState(); 273 this.saveOriginalDirectLoginStatusToTransientState();
@@ -324,39 +316,36 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
324 return result; 316 return result;
325 }, 317 },
326 318
327 //========================================================================= 319 //=========================================================================
328 320
329 'unpackRemoteData': function (someData) { 321 'unpackRemoteData': function (someData) {
330 var result; 322 var result;
331 323
332//console.log("new Clipperz.PM.DataModel.Record.Version [2]");
333/* 324/*
334 this._currentRecordVersion = new Clipperz.PM.DataModel.Record.Version({ 325 this._currentRecordVersion = new Clipperz.PM.DataModel.Record.Version({
335 'reference': someData['currentVersion']['reference'], 326 'reference': someData['currentVersion']['reference'],
336 'retrieveKeyFunction': MochiKit.Base.method(this, 'getCurrentRecordVersionKey'), 327 'retrieveKeyFunction': MochiKit.Base.method(this, 'getCurrentRecordVersionKey'),
337 'remoteData': someData['currentVersion'], 328 'remoteData': someData['currentVersion'],
338 }); 329 });
339*/ 330*/
340 var versionKey; 331 var versionKey;
341 332
342 for (versionKey in someData['versions']) { 333 for (versionKey in someData['versions']) {
343//console.log("### versionKey", versionKey);
344 this._versions[versionKey] = new Clipperz.PM.DataModel.Record.Version({ 334 this._versions[versionKey] = new Clipperz.PM.DataModel.Record.Version({
345 'reference': versionKey, 335 'reference': versionKey,
346 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'), 336 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'),
347 'remoteData': someData['versions'][versionKey], 337 'remoteData': someData['versions'][versionKey],
348 'getVersion': MochiKit.Base.method(this, 'getVersion') 338 'getVersion': MochiKit.Base.method(this, 'getVersion')
349 }) 339 })
350 } 340 }
351 341
352 // this._currentVersionReference = someData['currentVersion']['reference']; 342 // this._currentVersionReference = someData['currentVersion']['reference'];
353 this._currentVersionReference = someData['currentVersion']; 343 this._currentVersionReference = someData['currentVersion'];
354//console.log("=== currentVersionReference", this._currentVersionReference, someData);
355 344
356 result = Clipperz.PM.DataModel.Record.superclass.unpackRemoteData.apply(this, arguments); 345 result = Clipperz.PM.DataModel.Record.superclass.unpackRemoteData.apply(this, arguments);
357 346
358 return result; 347 return result;
359 }, 348 },
360 349
361 //------------------------------------------------------------------------- 350 //-------------------------------------------------------------------------
362 351
@@ -531,17 +520,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
531 520
532 'setCurrentRecordVersion': function (aRecordVersion) { 521 'setCurrentRecordVersion': function (aRecordVersion) {
533 this._currentVersionReference = aRecordVersion.reference(); 522 this._currentVersionReference = aRecordVersion.reference();
534 }, 523 },
535 524
536 //......................................................................... 525 //.........................................................................
537 526
538 'currentVersionReference': function () { 527 'currentVersionReference': function () {
539//console.log("currentVersionReference");
540 return this._currentVersionReference; 528 return this._currentVersionReference;
541 }, 529 },
542 530
543 //------------------------------------------------------------------------- 531 //-------------------------------------------------------------------------
544 532
545 'createNewRecordVersion': function () { 533 'createNewRecordVersion': function () {
546 var deferredResult; 534 var deferredResult;
547 535
@@ -580,17 +568,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
580 } 568 }
581 569
582 return deferredResult; 570 return deferredResult;
583 }, 571 },
584 572
585 //------------------------------------------------------------------------- 573 //-------------------------------------------------------------------------
586 574
587 'getCurrentRecordVersionKey': function () { 575 'getCurrentRecordVersionKey': function () {
588//console.log("getCurrentRecordVersionKey");
589 return Clipperz.Async.callbacks("Record.getCurrentRecordVersionKey", [ 576 return Clipperz.Async.callbacks("Record.getCurrentRecordVersionKey", [
590 MochiKit.Base.method(this, 'getValue', 'currentVersionKey'), 577 MochiKit.Base.method(this, 'getValue', 'currentVersionKey'),
591 Clipperz.Async.deferredIf("currentVersionKey is NOT null", [ 578 Clipperz.Async.deferredIf("currentVersionKey is NOT null", [
592 MochiKit.Async.succeed 579 MochiKit.Async.succeed
593 ], [ 580 ], [
594 MochiKit.Base.method(this, 'getKey') 581 MochiKit.Base.method(this, 'getKey')
595 ]) 582 ])
596 ], {trace:false}); 583 ], {trace:false});
@@ -601,38 +588,31 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
601 return Clipperz.Async.callbacks("Record.setCurrentRecordVersionKey", [ 588 return Clipperz.Async.callbacks("Record.setCurrentRecordVersionKey", [
602 MochiKit.Base.method(this, 'setValue', 'currentVersionKey', aValue) 589 MochiKit.Base.method(this, 'setValue', 'currentVersionKey', aValue)
603 ], {trace:false}); 590 ], {trace:false});
604 }, 591 },
605 592
606 //------------------------------------------------------------------------- 593 //-------------------------------------------------------------------------
607 594
608 'invokeCurrentRecordVersionMethod': function (aMethodName, someValues) { 595 'invokeCurrentRecordVersionMethod': function (aMethodName, someValues) {
609//console.log(">>> invokeCurrentRecordVersionMethod", aMethodName);
610 return Clipperz.Async.callbacks("Record.invokeCurrentRecordVersionMethod", [ 596 return Clipperz.Async.callbacks("Record.invokeCurrentRecordVersionMethod", [
611 MochiKit.Base.method(this, 'getCurrentRecordVersion'), 597 MochiKit.Base.method(this, 'getCurrentRecordVersion'),
612//function (aValue) { console.log("=== getCurrentRecordVersion", aValue); return aValue},
613 MochiKit.Base.methodcaller(aMethodName, someValues) 598 MochiKit.Base.methodcaller(aMethodName, someValues)
614 ], {trace:false}); 599 ], {trace:false});
615 }, 600 },
616 601
617 602
618 'lazilyinvokeCurrentRecordVersionMethod': function (aMethodName, someValues, defaultResult) { 603 'lazilyinvokeCurrentRecordVersionMethod': function (aMethodName, someValues, defaultResult) {
619 return Clipperz.Async.callbacks("Record.lazilyinvokeCurrentRecordVersionMethod", [ 604 return Clipperz.Async.callbacks("Record.lazilyinvokeCurrentRecordVersionMethod", [
620 MochiKit.Base.method(this, 'currentVersionReference'), 605 MochiKit.Base.method(this, 'currentVersionReference'),
621//function (aValue) { console.log("LAZY -> versions", aValue); return aValue; },
622 Clipperz.Async.deferredIf("versions has been loaded", [ 606 Clipperz.Async.deferredIf("versions has been loaded", [
623//function (aValue) { console.log("LAZY -> then"); return aValue; },
624 MochiKit.Base.method(this, 'getCurrentRecordVersion'), 607 MochiKit.Base.method(this, 'getCurrentRecordVersion'),
625 MochiKit.Base.methodcaller(aMethodName, someValues), 608 MochiKit.Base.methodcaller(aMethodName, someValues),
626//function (aValue) { console.log("LAZY <- then"); return aValue; }
627 ], [ 609 ], [
628//function (aValue) { console.log("LAZY -> else"); return aValue; },
629 MochiKit.Base.partial(MochiKit.Async.succeed, defaultResult), 610 MochiKit.Base.partial(MochiKit.Async.succeed, defaultResult),
630//function (aValue) { console.log("LAZY <- else"); return aValue; }
631 ]) 611 ])
632 ], {trace:false}); 612 ], {trace:false});
633 }, 613 },
634 614
635 //========================================================================= 615 //=========================================================================
636 616
637 'hasPendingChanges': function () { 617 'hasPendingChanges': function () {
638 var deferredResult; 618 var deferredResult;
@@ -643,27 +623,25 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
643 'super': MochiKit.Base.bind(Clipperz.PM.DataModel.Record.superclass.hasPendingChanges, this), 623 'super': MochiKit.Base.bind(Clipperz.PM.DataModel.Record.superclass.hasPendingChanges, this),
644 'currentVersion': [ 624 'currentVersion': [
645 // MochiKit.Base.method(this, 'getCurrentRecordVersion'), 625 // MochiKit.Base.method(this, 'getCurrentRecordVersion'),
646 // MochiKit.Base.methodcaller('hasPendingChanges') 626 // MochiKit.Base.methodcaller('hasPendingChanges')
647 MochiKit.Base.method(this, 'invokeCurrentRecordVersionMethod', 'hasPendingChanges') 627 MochiKit.Base.method(this, 'invokeCurrentRecordVersionMethod', 'hasPendingChanges')
648 ], 628 ],
649 'directLogins': [ 629 'directLogins': [
650 MochiKit.Base.method(this, 'directLogins'), 630 MochiKit.Base.method(this, 'directLogins'),
651//function (aValue) { console.log("Record.directLogins", aValue); return aValue; },
652 MochiKit.Base.values, 631 MochiKit.Base.values,
653 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('hasPendingChanges')), 632 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('hasPendingChanges')),
654 Clipperz.Async.collectAll, 633 Clipperz.Async.collectAll,
655 Clipperz.Async.or 634 Clipperz.Async.or
656 // function(someValues) { 635 // function(someValues) {
657 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity); 636 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
658 // } 637 // }
659 ] 638 ]
660 }); 639 });
661//deferredResult.addCallback(function (aValue) { console.log("Record.hasPendingResults", aValue); return aValue; });
662 deferredResult.addCallback(MochiKit.Base.values); 640 deferredResult.addCallback(MochiKit.Base.values);
663 deferredResult.addCallback(MochiKit.Base.bind(function(someValues) { 641 deferredResult.addCallback(MochiKit.Base.bind(function(someValues) {
664 var result; 642 var result;
665 result = MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity); 643 result = MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
666 644
667 if ((result == false) && (this.isBrandNew() == false)) { 645 if ((result == false) && (this.isBrandNew() == false)) {
668 result = MochiKit.Iter.some(MochiKit.Base.values(this.transientState().getValue('hasPendingChanges.indexData')), MochiKit.Base.operator.identity); 646 result = MochiKit.Iter.some(MochiKit.Base.values(this.transientState().getValue('hasPendingChanges.indexData')), MochiKit.Base.operator.identity);
669 } 647 }
@@ -771,17 +749,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
771 749
772 return Clipperz.Async.callbacks("Record.resetTransientState", [ 750 return Clipperz.Async.callbacks("Record.resetTransientState", [
773 //- MochiKit.Base.method(this, 'getCurrentRecordVersion'), 751 //- MochiKit.Base.method(this, 'getCurrentRecordVersion'),
774 //- MochiKit.Base.methodcaller('resetTransientState'), 752 //- MochiKit.Base.methodcaller('resetTransientState'),
775 // MochiKit.Base.method(this, 'invokeCurrentRecordVersionMethod', 'resetTransientState'), 753 // MochiKit.Base.method(this, 'invokeCurrentRecordVersionMethod', 'resetTransientState'),
776 MochiKit.Base.method(this, 'lazilyinvokeCurrentRecordVersionMethod', 'resetTransientState'), 754 MochiKit.Base.method(this, 'lazilyinvokeCurrentRecordVersionMethod', 'resetTransientState'),
777 755
778 MochiKit.Base.method(this, 'directLogins'), 756 MochiKit.Base.method(this, 'directLogins'),
779//function (aValue) { console.log("resetTransientState - directLogins", aValue); return aValue; },
780 MochiKit.Base.values, 757 MochiKit.Base.values,
781 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('resetTransientState')), 758 MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('resetTransientState')),
782 759
783 MochiKit.Base.bind(function () { 760 MochiKit.Base.bind(function () {
784 if ((isCommitting == false) && (this.transientState().getValue('directLogins') != null)) { 761 if ((isCommitting == false) && (this.transientState().getValue('directLogins') != null)) {
785 this._directLogins = this.transientState().getValue('directLogins'); 762 this._directLogins = this.transientState().getValue('directLogins');
786 } 763 }
787 }, this), 764 }, this),
@@ -811,17 +788,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
811 deferredResult.callback(); 788 deferredResult.callback();
812 789
813 return deferredResult; 790 return deferredResult;
814 }, 791 },
815 792
816 //========================================================================= 793 //=========================================================================
817 794
818 'retrieveDirectLoginIndexDataFunction': function () { 795 'retrieveDirectLoginIndexDataFunction': function () {
819//console.log("Record.retrieveDirectLoginIndexDataFunction", this._retrieveDirectLoginIndexDataFunction);
820 return this._retrieveDirectLoginIndexDataFunction; 796 return this._retrieveDirectLoginIndexDataFunction;
821 }, 797 },
822 798
823 'setDirectLoginIndexDataFunction': function () { 799 'setDirectLoginIndexDataFunction': function () {
824 return this._setDirectLoginIndexDataFunction; 800 return this._setDirectLoginIndexDataFunction;
825 }, 801 },
826 802
827 'removeDirectLoginIndexDataFunction': function () { 803 'removeDirectLoginIndexDataFunction': function () {
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js
index d6202ff..cda5a41 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!"; 25 throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!";
28} 26}
29 27
30if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } 28if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; }
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js
index 3528db6..e82da47 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!"; 25 throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!";
28} 26}
29if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } 27if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; }
30 28
@@ -46,43 +44,37 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.OneTimePasswords, Clipper
46 return "Clipperz.PM.DataModel.User.Header.OneTimePasswords"; 44 return "Clipperz.PM.DataModel.User.Header.OneTimePasswords";
47 }, 45 },
48 46
49 //------------------------------------------------------------------------- 47 //-------------------------------------------------------------------------
50/* 48/*
51 'packData': function (someData) { //++ 49 'packData': function (someData) { //++
52 var result; 50 var result;
53 51
54console.log(">>> OneTimePasswords.packData", someData);
55 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments); 52 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments);
56console.log("<<< OneTimePasswords.packData");
57 53
58 return result; 54 return result;
59 }, 55 },
60*/ 56*/
61 //------------------------------------------------------------------------- 57 //-------------------------------------------------------------------------
62/* 58/*
63 'packRemoteData': function (someData) { 59 'packRemoteData': function (someData) {
64 var result; 60 var result;
65 61
66console.log(">>> OneTimePasswords.packRemoteData", someData);
67 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments); 62 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments);
68console.log("<<< OneTimePasswords.packRemoteData");
69 63
70 return result; 64 return result;
71 }, 65 },
72*/ 66*/
73 //------------------------------------------------------------------------- 67 //-------------------------------------------------------------------------
74/* 68/*
75 'prepareRemoteDataWithKey': function (aKey) { 69 'prepareRemoteDataWithKey': function (aKey) {
76 var result; 70 var result;
77 71
78console.log(">>> OneTimePasswords.prepareRemoteDataWithKey");
79 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments); 72 result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments);
80console.log("<<< OneTimePasswords.prepareRemoteDataWithKey");
81 73
82 return result; 74 return result;
83 }, 75 },
84*/ 76*/
85 //========================================================================= 77 //=========================================================================
86 78
87 'oneTimePasswords': function () { 79 'oneTimePasswords': function () {
88 vardeferredResult; 80 vardeferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js
index b164889..f1f95e8 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!"; 25 throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!";
28} 26}
29 27
30if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } 28if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; }
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js
index f77ea80..5681f70 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js
@@ -1,43 +1,40 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!"; 25 throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!";
28} 26}
29 27
30if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } 28if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; }
31 29
32Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) { 30Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) {
33 Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments); 31 Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments);
34 32
35//console.log("NEW Clipperz.PM.DataModel.User.Header.RecordIndex", args);
36 this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ 33 this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({
37 'name':'recordsData', 34 'name':'recordsData',
38 'retrieveKeyFunction': args.retrieveKeyFunction, 35 'retrieveKeyFunction': args.retrieveKeyFunction,
39 'remoteData': { 36 'remoteData': {
40 'data': args.recordsData['data'], 37 'data': args.recordsData['data'],
41 'version': args.encryptedDataVersion, 38 'version': args.encryptedDataVersion,
42 'recordsStats': args.recordsStats 39 'recordsStats': args.recordsStats
43 }//, 40 }//,
@@ -113,17 +110,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, {
113 if (this._transientState == null) { 110 if (this._transientState == null) {
114 this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/); 111 this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/);
115 } 112 }
116 113
117 return this._transientState; 114 return this._transientState;
118 }, 115 },
119 116
120 'resetTransientState': function (isCommitting) { 117 'resetTransientState': function (isCommitting) {
121//console.log("######## UserHeaderRecordIndex - resetTransientState", Clipperz.Base.deepClone(this._transientState));
122 if (this._transientState != null) { 118 if (this._transientState != null) {
123 this._transientState.removeAllData(); 119 this._transientState.removeAllData();
124 } 120 }
125 121
126 this._transientState = null; 122 this._transientState = null;
127 }, 123 },
128 124
129 //------------------------------------------------------------------------- 125 //-------------------------------------------------------------------------
@@ -153,25 +149,23 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, {
153 149
154 //------------------------------------------------------------------------- 150 //-------------------------------------------------------------------------
155 151
156 'getDirectLoginIndexData': function (aDirectLoginReference) { 152 'getDirectLoginIndexData': function (aDirectLoginReference) {
157 return this.directLoginsData().getValue(this.directLoginsIndex()[aDirectLoginReference]); 153 return this.directLoginsData().getValue(this.directLoginsIndex()[aDirectLoginReference]);
158 }, 154 },
159 155
160 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { 156 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) {
161//console.log("UserHeaderRecordIndex.setDirectLoginIndexData", aDirectLoginReference, this.directLoginsIndex()[aDirectLoginReference], aKey);
162//if (MochiKit.Base.isUndefinedOrNull(this.directLoginsIndex()[aDirectLoginReference])) { 157//if (MochiKit.Base.isUndefinedOrNull(this.directLoginsIndex()[aDirectLoginReference])) {
163 //throw "PIPPO"; 158 //throw "PIPPO";
164//} 159//}
165 return this.directLoginsData().setValue(this.directLoginsIndex()[aDirectLoginReference] + '.' + aKey, aValue); 160 return this.directLoginsData().setValue(this.directLoginsIndex()[aDirectLoginReference] + '.' + aKey, aValue);
166 }, 161 },
167 162
168 'addDirectLoginIndexData': function (aDirectLoginReference) { 163 'addDirectLoginIndexData': function (aDirectLoginReference) {
169//console.log("UserHeaderRecordIndex.addDirectLoginIndexData", aDirectLoginReference, this.directLoginsIndex()[aDirectLoginReference]);
170 return this.directLoginsData().setValue(this.directLoginsIndex()[aDirectLoginReference], {}); 164 return this.directLoginsData().setValue(this.directLoginsIndex()[aDirectLoginReference], {});
171 }, 165 },
172 166
173 'removeDirectLoginIndexData': function (aDirectLoginReference) { 167 'removeDirectLoginIndexData': function (aDirectLoginReference) {
174 return this.directLoginsData().removeValue(this.directLoginsIndex()[aDirectLoginReference]) 168 return this.directLoginsData().removeValue(this.directLoginsIndex()[aDirectLoginReference])
175 }, 169 },
176 170
177 //------------------------------------------------------------------------- 171 //-------------------------------------------------------------------------
@@ -256,22 +250,17 @@ Clipperz.log("SKIPPING record " + reference + " as there are no stas associated
256 250
257 if (record != null) { 251 if (record != null) {
258 // directLogin = new Clipperz.PM.DataModel.DirectLogin({ 252 // directLogin = new Clipperz.PM.DataModel.DirectLogin({
259 new Clipperz.PM.DataModel.DirectLogin({ 253 new Clipperz.PM.DataModel.DirectLogin({
260 'reference': reference, 254 'reference': reference,
261 'record': record 255 'record': record
262 }); 256 });
263 } else { 257 } else {
264Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!"); 258 Clipperz.logWarning("WARNING: DIRECT LOGIN without a matching RECORD!!");
265//console.log("direct login data", someData['directLogins']);
266//console.log("current direct login data", someData['directLogins'][indexReference])
267//console.log("reference", reference);
268//console.log("record index", this.recordsIndex());
269//console.log("record inverted index", recordsInvertedIndex);
270 } 259 }
271 } 260 }
272 261
273 return this._records; 262 return this._records;
274 }, this)); 263 }, this));
275 innerDeferredResult.callback(); 264 innerDeferredResult.callback();
276 } else { 265 } else {
277 innerDeferredResult = MochiKit.Async.succeed(this._records); 266 innerDeferredResult = MochiKit.Async.succeed(this._records);
@@ -300,17 +289,16 @@ Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
300 }, 289 },
301 290
302 //......................................................................... 291 //.........................................................................
303 292
304 'createNewRecord': function () { 293 'createNewRecord': function () {
305 var deferredResult; 294 var deferredResult;
306 var newRecord; 295 var newRecord;
307 296
308//console.log("#### new Clipperz.PM.DataModel.Record [4]");
309 newRecord = new Clipperz.PM.DataModel.Record({ 297 newRecord = new Clipperz.PM.DataModel.Record({
310 'retrieveKeyFunction': MochiKit.Base.method(this, 'getRecordKey'), 298 'retrieveKeyFunction': MochiKit.Base.method(this, 'getRecordKey'),
311 'retrieveRemoteDataFunction':this.retrieveRecordDetailFunction(), 299 'retrieveRemoteDataFunction':this.retrieveRecordDetailFunction(),
312 300
313 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getRecordIndexData'), 301 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getRecordIndexData'),
314 'updateIndexDataFunction': MochiKit.Base.method(this, 'updateRecordIndexData'), 302 'updateIndexDataFunction': MochiKit.Base.method(this, 'updateRecordIndexData'),
315 'updateDate': Clipperz.PM.Date.formatDateWithUTCFormat(new Date()), 303 'updateDate': Clipperz.PM.Date.formatDateWithUTCFormat(new Date()),
316 304
@@ -381,19 +369,17 @@ Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
381 var newDirectLogin; 369 var newDirectLogin;
382 varnewDirectLoginIndexValue; 370 varnewDirectLoginIndexValue;
383 371
384 newDirectLogin = new Clipperz.PM.DataModel.DirectLogin({record:aRecord}); 372 newDirectLogin = new Clipperz.PM.DataModel.DirectLogin({record:aRecord});
385 newDirectLoginIndexValue = MochiKit.Base.listMax(MochiKit.Base.map(function (aValue) { return aValue * 1; }, MochiKit.Base.values(this.directLoginsIndex()))) + 1; 373 newDirectLoginIndexValue = MochiKit.Base.listMax(MochiKit.Base.map(function (aValue) { return aValue * 1; }, MochiKit.Base.values(this.directLoginsIndex()))) + 1;
386 374
387 this.transientState().setValue('newDirectLoginReferences' + '.' + newDirectLogin.reference(), newDirectLogin); 375 this.transientState().setValue('newDirectLoginReferences' + '.' + newDirectLogin.reference(), newDirectLogin);
388 376
389//console.log("UserHeaderRecordIndex.createNewDirectLogin [1]", newDirectLogin.reference(), newDirectLoginIndexValue);
390 this.directLoginsIndex()[newDirectLogin.reference()] = newDirectLoginIndexValue; 377 this.directLoginsIndex()[newDirectLogin.reference()] = newDirectLoginIndexValue;
391//console.log("UserHeaderRecordIndex.createNewDirectLogin [2]", newDirectLogin.reference(), this.directLoginsIndex()[newDirectLogin.reference()]);
392 this.directLoginsData().setValue(this.directLoginsIndex()[newDirectLogin.reference()], {'record': this.recordsIndex()[aRecord.reference()]}); 378 this.directLoginsData().setValue(this.directLoginsIndex()[newDirectLogin.reference()], {'record': this.recordsIndex()[aRecord.reference()]});
393 379
394 return newDirectLogin; 380 return newDirectLogin;
395 }, 381 },
396 382
397 //========================================================================= 383 //=========================================================================
398 384
399 'deleteAllCleanTextData': function () { 385 'deleteAllCleanTextData': function () {
@@ -426,17 +412,16 @@ Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
426 ], 412 ],
427 // 'records': [ 413 // 'records': [
428 // MochiKit.Base.method(this, 'records'), 414 // MochiKit.Base.method(this, 'records'),
429 // MochiKit.Base.values, 415 // MochiKit.Base.values,
430 // MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('hasAnyCleanTextData')), 416 // MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('hasAnyCleanTextData')),
431 // Clipperz.Async.collectAll 417 // Clipperz.Async.collectAll
432 // ] 418 // ]
433 }); 419 });
434//deferredResult.addCallback(function (aValue) { console.log("USER.Header.RecordIndex.hasAnyCleanTextData", aValue); return aValue});
435 420
436 // deferredResult.addCallback(MochiKit.Base.values); 421 // deferredResult.addCallback(MochiKit.Base.values);
437 // deferredResult.addCallback(MochiKit.Base.flattenArguments); 422 // deferredResult.addCallback(MochiKit.Base.flattenArguments);
438 // deferredResult.addCallback(function(someValues) { 423 // deferredResult.addCallback(function(someValues) {
439 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity); 424 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
440 // }); 425 // });
441 deferredResult.addCallback(Clipperz.Async.or); 426 deferredResult.addCallback(Clipperz.Async.or);
442 427
@@ -456,17 +441,16 @@ Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
456 MochiKit.Base.method(this, 'recordsData'), 441 MochiKit.Base.method(this, 'recordsData'),
457 MochiKit.Base.methodcaller('hasPendingChanges') 442 MochiKit.Base.methodcaller('hasPendingChanges')
458 ], 443 ],
459 'directLoginsData': [ 444 'directLoginsData': [
460 MochiKit.Base.method(this, 'directLoginsData'), 445 MochiKit.Base.method(this, 'directLoginsData'),
461 MochiKit.Base.methodcaller('hasPendingChanges') 446 MochiKit.Base.methodcaller('hasPendingChanges')
462 ] 447 ]
463 }); 448 });
464//deferredResult.addCallback(function (aValue) { console.log("UserHeaderIndex.hasPendingResults", aValue); return aValue; });
465 deferredResult.addCallback(Clipperz.Async.or); 449 deferredResult.addCallback(Clipperz.Async.or);
466 // deferredResult.addCallback(MochiKit.Base.values); 450 // deferredResult.addCallback(MochiKit.Base.values);
467 // deferredResult.addCallback(MochiKit.Base.flattenArguments); 451 // deferredResult.addCallback(MochiKit.Base.flattenArguments);
468 // deferredResult.addCallback(function(someValues) { 452 // deferredResult.addCallback(function(someValues) {
469 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity); 453 // return MochiKit.Iter.some(someValues, MochiKit.Base.operator.identity);
470 // }); 454 // });
471 deferredResult.callback(); 455 deferredResult.callback();
472 456
@@ -565,17 +549,16 @@ Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
565 // "7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18" 549 // "7e1d069b7fa57c03bd7bf48807520feb953157834503aaff8c9d493f37dea69d":"18"
566 // }, 550 // },
567 // "data":"5YG9KKU/OZ5guUgFlms6k1 ... ZG/5Fn0uN+LoAsNfHm+EE62x" 551 // "data":"5YG9KKU/OZ5guUgFlms6k1 ... ZG/5Fn0uN+LoAsNfHm+EE62x"
568 // }, 552 // },
569 553
570 var deferredResult; 554 var deferredResult;
571 var result; 555 var result;
572 556
573//console.log("recordsIndex", this.recordsIndex());
574 result = {}; 557 result = {};
575 558
576 deferredResult = new Clipperz.Async.Deferred("User.Header.RecordIndex.prepareRemoteDataWithKey", {trace:false}); 559 deferredResult = new Clipperz.Async.Deferred("User.Header.RecordIndex.prepareRemoteDataWithKey", {trace:false});
577 deferredResult.collectResults({ 560 deferredResult.collectResults({
578 'index':MochiKit.Base.partial(MochiKit.Async.succeed, this.recordsIndex()), 561 'index':MochiKit.Base.partial(MochiKit.Async.succeed, this.recordsIndex()),
579 'data': [ 562 'data': [
580 MochiKit.Base.method(this.recordsData(), 'prepareRemoteDataWithKey', aKey), 563 MochiKit.Base.method(this.recordsData(), 'prepareRemoteDataWithKey', aKey),
581 MochiKit.Base.itemgetter('data') 564 MochiKit.Base.itemgetter('data')
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.js
index 646ce21..fd18faf 100644
--- a/frontend/gamma/js/Clipperz/PM/DataModel/User.js
+++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } 26if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; }
29 27
30 28
@@ -323,17 +321,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
323 'unpackServerData': function (someServerData) { 321 'unpackServerData': function (someServerData) {
324 var unpackedData; 322 var unpackedData;
325 var headerVersion; 323 var headerVersion;
326 324
327 varrecordsIndex; 325 varrecordsIndex;
328 var preferences; 326 var preferences;
329 var oneTimePasswords; 327 var oneTimePasswords;
330 328
331//console.log(">>> ***************** user.unpackServerData", someServerData);
332 // this.setServerLockValue(someServerData['lock']); 329 // this.setServerLockValue(someServerData['lock']);
333 330
334 headerVersion = this.headerFormatVersion(someServerData['header']); 331 headerVersion = this.headerFormatVersion(someServerData['header']);
335 332
336 switch (headerVersion) { 333 switch (headerVersion) {
337 case 'LEGACY': 334 case 'LEGACY':
338 varlegacyHeader; 335 varlegacyHeader;
339 336
@@ -412,17 +409,16 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
412 409
413 'recordsIndex': recordsIndex, 410 'recordsIndex': recordsIndex,
414 'preferences': preferences, 411 'preferences': preferences,
415 'oneTimePasswords': oneTimePasswords 412 'oneTimePasswords': oneTimePasswords
416 } 413 }
417 }; 414 };
418 415
419 this._serverData = unpackedData; 416 this._serverData = unpackedData;
420//console.log("<<< ***************** user.unpackServerData", this._serverData);
421 417
422 return this._serverData; 418 return this._serverData;
423 }, 419 },
424 420
425 //------------------------------------------------------------------------- 421 //-------------------------------------------------------------------------
426 422
427 'getServerData': function() { 423 'getServerData': function() {
428 var deferredResult; 424 var deferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/Date.js b/frontend/gamma/js/Clipperz/PM/Date.js
index 96a2700..a62857e 100644
--- a/frontend/gamma/js/Clipperz/PM/Date.js
+++ b/frontend/gamma/js/Clipperz/PM/Date.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; } 26if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; }
29 27
30Clipperz.PM.Date.VERSION = "0.1"; 28Clipperz.PM.Date.VERSION = "0.1";
diff --git a/frontend/gamma/js/Clipperz/PM/PIN.js b/frontend/gamma/js/Clipperz/PM/PIN.js
index bc932b2..a32889a 100644
--- a/frontend/gamma/js/Clipperz/PM/PIN.js
+++ b/frontend/gamma/js/Clipperz/PM/PIN.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.PIN) == 'undefined') { Clipperz.PM.PIN = {}; } 26if (typeof(Clipperz.PM.PIN) == 'undefined') { Clipperz.PM.PIN = {}; }
29 27
30MochiKit.Base.update(Clipperz.PM.PIN, { 28MochiKit.Base.update(Clipperz.PM.PIN, {
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy.js b/frontend/gamma/js/Clipperz/PM/Proxy.js
index 190bffd..a5eaae6 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//============================================================================= 27//=============================================================================
30 28
@@ -64,17 +62,16 @@ Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, {
64 return this._tolls; 62 return this._tolls;
65 }, 63 },
66 64
67 //------------------------------------------------------------------------- 65 //-------------------------------------------------------------------------
68 66
69 'payToll': function(aRequestType, someParameters) { 67 'payToll': function(aRequestType, someParameters) {
70 vardeferredResult; 68 vardeferredResult;
71 69
72//console.log(">>> Proxy.payToll", aRequestType, someParameters);
73 if (this.shouldPayTolls()) { 70 if (this.shouldPayTolls()) {
74 deferredResult = new Clipperz.Async.Deferred("Proxy.payToll", {trace:false}); 71 deferredResult = new Clipperz.Async.Deferred("Proxy.payToll", {trace:false});
75 72
76 if (this.tolls()[aRequestType].length == 0) { 73 if (this.tolls()[aRequestType].length == 0) {
77 deferredResult.addMethod(this, 'sendMessage', 'knock', {requestType:aRequestType}); 74 deferredResult.addMethod(this, 'sendMessage', 'knock', {requestType:aRequestType});
78 deferredResult.addMethod(this, 'setTollCallback'); 75 deferredResult.addMethod(this, 'setTollCallback');
79 } 76 }
80 deferredResult.addMethod(this.tolls()[aRequestType], 'pop'); 77 deferredResult.addMethod(this.tolls()[aRequestType], 'pop');
@@ -89,38 +86,33 @@ Clipperz.PM.Proxy.prototype = MochiKit.Base.update(null, {
89 86
90 return result; 87 return result;
91 }); 88 });
92 89
93 deferredResult.callback(); 90 deferredResult.callback();
94 } else { 91 } else {
95 deferredResult = MochiKit.Async.succeed({parameters:someParameters}); 92 deferredResult = MochiKit.Async.succeed({parameters:someParameters});
96 } 93 }
97//console.log("<<< Proxy.payToll");
98 94
99 return deferredResult; 95 return deferredResult;
100 }, 96 },
101 97
102 //------------------------------------------------------------------------- 98 //-------------------------------------------------------------------------
103 99
104 'addToll': function(aToll) { 100 'addToll': function(aToll) {
105//console.log(">>> Proxy.addToll", aToll);
106 this.tolls()[aToll.requestType()].push(aToll); 101 this.tolls()[aToll.requestType()].push(aToll);
107//console.log("<<< Proxy.addToll");
108 }, 102 },
109 103
110 //========================================================================= 104 //=========================================================================
111 105
112 'setTollCallback': function(someParameters) { 106 'setTollCallback': function(someParameters) {
113//console.log(">>> Proxy.setTollCallback", someParameters);
114 if (typeof(someParameters['toll']) != 'undefined') { 107 if (typeof(someParameters['toll']) != 'undefined') {
115//console.log("added a new toll", someParameters['toll']);
116 this.addToll(new Clipperz.PM.Toll(someParameters['toll'])); 108 this.addToll(new Clipperz.PM.Toll(someParameters['toll']));
117 } 109 }
118//console.log("<<< Proxy.setTallCallback", someParameters['result']); 110
119 return someParameters['result']; 111 return someParameters['result'];
120 }, 112 },
121 113
122 //========================================================================= 114 //=========================================================================
123 115
124 'registration': function (someParameters) { 116 'registration': function (someParameters) {
125 return this.processMessage('registration', someParameters, 'REGISTER'); 117 return this.processMessage('registration', someParameters, 'REGISTER');
126 }, 118 },
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js
index 5b39b4a..7d10dd4 100755
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.JSON.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//============================================================================= 27//=============================================================================
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
index 01ba122..326022c 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!"; 25 throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!";
28} 26}
29 27
30//============================================================================= 28//=============================================================================
@@ -102,32 +100,30 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
102 c = someData['users'].length; 100 c = someData['users'].length;
103 101
104 for (i=0; i<c; i++) { 102 for (i=0; i<c; i++) {
105 varnewConnection; 103 varnewConnection;
106 varrecordConfiguration; 104 varrecordConfiguration;
107 105
108 deferredResult.addMethod(this, 'userSerializedEncryptedData', someData['users'][i]); 106 deferredResult.addMethod(this, 'userSerializedEncryptedData', someData['users'][i]);
109 deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) { 107 deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) {
110//console.log("SERIALIZED USER", aUserSerializationContext);
111 resultData['users'][aUserSerializationContext['credentials']['C']] = { 108 resultData['users'][aUserSerializationContext['credentials']['C']] = {
112 's': aUserSerializationContext['credentials']['s'], 109 's': aUserSerializationContext['credentials']['s'],
113 'v': aUserSerializationContext['credentials']['v'], 110 'v': aUserSerializationContext['credentials']['v'],
114 'version': aUserSerializationContext['data']['connectionVersion'], 111 'version': aUserSerializationContext['data']['connectionVersion'],
115 'userDetails': aUserSerializationContext['encryptedData']['user']['header'], 112 'userDetails': aUserSerializationContext['encryptedData']['user']['header'],
116 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'], 113 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'],
117 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'], 114 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'],
118 'lock': aUserSerializationContext['encryptedData']['user']['lock'], 115 'lock': aUserSerializationContext['encryptedData']['user']['lock'],
119 'records': this.rearrangeRecordsData(aUserSerializationContext['encryptedData']['records']) 116 'records': this.rearrangeRecordsData(aUserSerializationContext['encryptedData']['records'])
120 } 117 }
121 }, this)); 118 }, this));
122 } 119 }
123 120
124 deferredResult.addCallback(MochiKit.Base.bind(function() { 121 deferredResult.addCallback(MochiKit.Base.bind(function() {
125//console.log("this._data", resultData);
126 this._data = resultData; 122 this._data = resultData;
127 }, this)); 123 }, this));
128 124
129 deferredResult.callback(); 125 deferredResult.callback();
130//Clipperz.log("<<< Proxy.Test.setupWithData"); 126//Clipperz.log("<<< Proxy.Test.setupWithData");
131 127
132 return deferredResult; 128 return deferredResult;
133 }, 129 },
@@ -390,17 +386,17 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
390 } catch (exception) { 386 } catch (exception) {
391 result = { 387 result = {
392 'data': Clipperz.PM.Crypto.randomKey(), 388 'data': Clipperz.PM.Crypto.randomKey(),
393 'version':Clipperz.PM.Connection.communicationProtocol.currentVersion 389 'version':Clipperz.PM.Connection.communicationProtocol.currentVersion
394 } 390 }
395 } 391 }
396 nextTollRequestType = 'CONNECT'; 392 nextTollRequestType = 'CONNECT';
397 } else { 393 } else {
398 MochiKit.Logging.logError("Clipperz.PM.Proxy.Test.handshake - unhandled message: " + someParameters.message); 394 Clipperz.logError("Clipperz.PM.Proxy.Test.handshake - unhandled message: " + someParameters.message);
399 } 395 }
400 396
401 result = { 397 result = {
402 result: result, 398 result: result,
403 toll: this.getTollForRequestType(nextTollRequestType) 399 toll: this.getTollForRequestType(nextTollRequestType)
404 } 400 }
405 401
406 return result; 402 return result;
@@ -520,19 +516,16 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
520 } else { 516 } else {
521 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly; 517 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly;
522 } 518 }
523 //===================================================================== 519 //=====================================================================
524 /* } else if (someParameters.message == 'updateData') { 520 /* } else if (someParameters.message == 'updateData') {
525 if (this.isReadOnly() == false) { 521 if (this.isReadOnly() == false) {
526 var i, c; 522 var i, c;
527 523
528//console.log("###===============================================================");
529//console.log("###>>>", Clipperz.Base.serializeJSON(someParameters));
530//console.log("###--- userData", Clipperz.Base.serializeJSON(this.userData()));
531 if (this.userData()['lock']!= someParameters['parameters']['user']['lock']) { 524 if (this.userData()['lock']!= someParameters['parameters']['user']['lock']) {
532 throw "the lock attribute is not processed correctly" 525 throw "the lock attribute is not processed correctly"
533 } 526 }
534 527
535 this.userData()['userDetails'] = someParameters['parameters']['user']['header']; 528 this.userData()['userDetails'] = someParameters['parameters']['user']['header'];
536 this.userData()['statistics'] = someParameters['parameters']['user']['statistics']; 529 this.userData()['statistics'] = someParameters['parameters']['user']['statistics'];
537 this.userData()['userDetailsVersions']= someParameters['parameters']['user']['version']; 530 this.userData()['userDetailsVersions']= someParameters['parameters']['user']['version'];
538 531
@@ -557,32 +550,24 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
557 'previousVersion': currentRecordData['currentRecordVersion']['previousVersion'], 550 'previousVersion': currentRecordData['currentRecordVersion']['previousVersion'],
558 'previousVersionKey':currentRecordData['currentRecordVersion']['previousVersionKey'] 551 'previousVersionKey':currentRecordData['currentRecordVersion']['previousVersionKey']
559 } 552 }
560 } 553 }
561 554
562 this.userData()['lock'] = Clipperz.PM.Crypto.randomKey(); 555 this.userData()['lock'] = Clipperz.PM.Crypto.randomKey();
563 result['lock'] = this.userData()['lock']; 556 result['lock'] = this.userData()['lock'];
564 result['result'] = 'done'; 557 result['result'] = 'done';
565//console.log("###<<< userData", Clipperz.Base.serializeJSON(this.userData()));
566 } else { 558 } else {
567 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly; 559 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly;
568 } 560 }
569 */ //===================================================================== 561 */ //=====================================================================
570 } else if (someParameters.message == 'saveChanges') { 562 } else if (someParameters.message == 'saveChanges') {
571 if (this.isReadOnly() == false) { 563 if (this.isReadOnly() == false) {
572 var i, c; 564 var i, c;
573 565
574//console.log("###===============================================================");
575//console.log("###>>>", someParameters);
576//console.log("###>>>", Clipperz.Base.serializeJSON(someParameters));
577//console.log("###--- userData", Clipperz.Base.serializeJSON(this.userData()));
578//console.log("###===============================================================");
579//console.log("--- userData.lock ", this.userData()['lock']);
580//console.log("--- parameters.lock", someParameters['parameters']['user']['lock']);
581 if (aConnection['userData']['lock']!= someParameters['parameters']['user']['lock']) { 566 if (aConnection['userData']['lock']!= someParameters['parameters']['user']['lock']) {
582 throw "the lock attribute is not processed correctly" 567 throw "the lock attribute is not processed correctly"
583 } 568 }
584 569
585 aConnection['userData']['userDetails'] = someParameters['parameters']['user']['header']; 570 aConnection['userData']['userDetails'] = someParameters['parameters']['user']['header'];
586 aConnection['userData']['statistics'] = someParameters['parameters']['user']['statistics']; 571 aConnection['userData']['statistics'] = someParameters['parameters']['user']['statistics'];
587 aConnection['userData']['userDetailsVersions']= someParameters['parameters']['user']['version']; 572 aConnection['userData']['userDetailsVersions']= someParameters['parameters']['user']['version'];
588 573
@@ -594,17 +579,16 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
594 currentRecordData = someParameters['parameters']['records']['updated'][i]; 579 currentRecordData = someParameters['parameters']['records']['updated'][i];
595 currentRecord = aConnection['userData']['records'][currentRecordData['record']['reference']]; 580 currentRecord = aConnection['userData']['records'][currentRecordData['record']['reference']];
596 581
597 if ( 582 if (
598 (typeof(aConnection['userData']['records'][currentRecordData['record']['reference']]) == 'undefined') 583 (typeof(aConnection['userData']['records'][currentRecordData['record']['reference']]) == 'undefined')
599 && 584 &&
600 (typeof(currentRecordData['currentRecordVersion']) == 'undefined') 585 (typeof(currentRecordData['currentRecordVersion']) == 'undefined')
601 ) { 586 ) {
602//console.log("######## SHIT HAPPENS");
603 throw "Record added without a recordVersion"; 587 throw "Record added without a recordVersion";
604 } 588 }
605 589
606 if (currentRecord == null) { 590 if (currentRecord == null) {
607 currentRecord = {}; 591 currentRecord = {};
608 currentRecord['versions'] = {}; 592 currentRecord['versions'] = {};
609 currentRecord['creationDate']= Clipperz.PM.Date.formatDateWithUTCFormat(new Date()); 593 currentRecord['creationDate']= Clipperz.PM.Date.formatDateWithUTCFormat(new Date());
610 currentRecord['accessDate'] = Clipperz.PM.Date.formatDateWithUTCFormat(new Date()); 594 currentRecord['accessDate'] = Clipperz.PM.Date.formatDateWithUTCFormat(new Date());
@@ -630,35 +614,33 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
630 } 614 }
631 } 615 }
632 616
633 c = someParameters['parameters']['records']['deleted'].length; 617 c = someParameters['parameters']['records']['deleted'].length;
634 for (i=0; i<c; i++) { 618 for (i=0; i<c; i++) {
635 var currentRecordReference; 619 var currentRecordReference;
636 620
637 currentRecordReference = someParameters['parameters']['records']['deleted'][i]; 621 currentRecordReference = someParameters['parameters']['records']['deleted'][i];
638//console.log("DELETING records", currentRecordReference);
639 delete aConnection['userData']['records'][currentRecordReference]; 622 delete aConnection['userData']['records'][currentRecordReference];
640 } 623 }
641 624
642 aConnection['userData']['lock'] = Clipperz.PM.Crypto.randomKey(); 625 aConnection['userData']['lock'] = Clipperz.PM.Crypto.randomKey();
643 result['lock'] = aConnection['userData']['lock']; 626 result['lock'] = aConnection['userData']['lock'];
644 result['result'] = 'done'; 627 result['result'] = 'done';
645//console.log("###<<< userData", Clipperz.Base.serializeJSON(this.userData()));
646 } else { 628 } else {
647 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly; 629 throw Clipperz.PM.Proxy.Offline.DataStore.exception.ReadOnly;
648 } 630 }
649 631
650 //===================================================================== 632 //=====================================================================
651 // 633 //
652 // U N H A N D L E D M e t h o d 634 // U N H A N D L E D M e t h o d
653 // 635 //
654 //===================================================================== 636 //=====================================================================
655 } else { 637 } else {
656 MochiKit.Logging.logError("Clipperz.PM.Proxy.Test.message - unhandled message: " + someParameters.message); 638 Clipperz.logError("Clipperz.PM.Proxy.Test.message - unhandled message: " + someParameters.message);
657 } 639 }
658 640
659 result = { 641 result = {
660 result: result, 642 result: result,
661 toll: this.getTollForRequestType('MESSAGE') 643 toll: this.getTollForRequestType('MESSAGE')
662 } 644 }
663 645
664 // return MochiKit.Async.succeed(result); 646 // return MochiKit.Async.succeed(result);
@@ -681,22 +663,22 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
681 663
682 'userDetails': function(aConnection) { 664 'userDetails': function(aConnection) {
683 var result; 665 var result;
684 666
685 if (this.isTestData(aConnection)) { 667 if (this.isTestData(aConnection)) {
686 var serializedHeader; 668 var serializedHeader;
687 var version; 669 var version;
688 670
689//MochiKit.Logging.logDebug("### test data"); 671//Clipperz.logDebug("### test data");
690 version = aConnection['userData']['userDetailsVersion']; 672 version = aConnection['userData']['userDetailsVersion'];
691 serializedHeader = Clipperz.Base.serializeJSON(aConnection['userData']['userDetails']); 673 serializedHeader = Clipperz.Base.serializeJSON(aConnection['userData']['userDetails']);
692 result = Clipperz.PM.Crypto.encryptingFunctions.versions[version].encrypt(aConnection['userData']['__masterkey_test_value__'], serializedHeader); 674 result = Clipperz.PM.Crypto.encryptingFunctions.versions[version].encrypt(aConnection['userData']['__masterkey_test_value__'], serializedHeader);
693 } else { 675 } else {
694//MochiKit.Logging.logDebug("### NOT test data"); 676//Clipperz.logDebug("### NOT test data");
695 result = aConnection['userData']['userDetails']; 677 result = aConnection['userData']['userDetails'];
696 } 678 }
697 679
698 return result; 680 return result;
699 }, 681 },
700 682
701 'statistics': function(aConnection) { 683 'statistics': function(aConnection) {
702 var result; 684 var result;
@@ -744,21 +726,19 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
744 726
745 connection = new Clipperz.PM.Connection.communicationProtocol.versions[aDeferredContext['data']['connectionVersion']]() 727 connection = new Clipperz.PM.Connection.communicationProtocol.versions[aDeferredContext['data']['connectionVersion']]()
746 aDeferredContext['credentials'] = connection.serverSideUserCredentials(aDeferredContext['user'].username(),aDeferredContext['user'].passphrase()); 728 aDeferredContext['credentials'] = connection.serverSideUserCredentials(aDeferredContext['user'].username(),aDeferredContext['user'].passphrase());
747 729
748 return aDeferredContext; 730 return aDeferredContext;
749 }); 731 });
750 732
751 // deferredResult.addCallback(function(aDeferredContext) { 733 // deferredResult.addCallback(function(aDeferredContext) {
752//console.log("#-#-#-#-#", aDeferredContext);
753 // return aDeferredContext['user'].serializedDataUsingVersion(MochiKit.Base.values(aDeferredContext['user'].records()), aDeferredContext['data']['version']); 734 // return aDeferredContext['user'].serializedDataUsingVersion(MochiKit.Base.values(aDeferredContext['user'].records()), aDeferredContext['data']['version']);
754 // }, deferredContext); 735 // }, deferredContext);
755 // deferredResult.addCallback(function(aUserSerializedData) { 736 // deferredResult.addCallback(function(aUserSerializedData) {
756//console.log("USER SERIALIZED DATA", aUserSerializedData);
757 // }); 737 // });
758// 738//
759 // deferredResult.addCallback(MochiKit.Async.succeed, deferredContext); 739 // deferredResult.addCallback(MochiKit.Async.succeed, deferredContext);
760 deferredResult.callback(deferredContext); 740 deferredResult.callback(deferredContext);
761 741
762 return deferredResult; 742 return deferredResult;
763 }, 743 },
764 744
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js
index a86ac4f..5764bda 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Offline.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//============================================================================= 27//=============================================================================
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js
index 803c590..f628975 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.OfflineCache.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//============================================================================= 27//=============================================================================
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
index d554c6a..d459726 100644
--- a/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
+++ b/frontend/gamma/js/Clipperz/PM/Proxy/Proxy.Test.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; } 26if (typeof(Clipperz.PM.Proxy) == 'undefined') { Clipperz.PM.Proxy = {}; }
29 27
30//============================================================================= 28//=============================================================================
@@ -93,57 +91,51 @@ Clipperz.Base.extend(Clipperz.PM.Proxy.Test, Clipperz.PM.Proxy.Offline, {
93 'resetUnexpectedRequests': function () { 91 'resetUnexpectedRequests': function () {
94 this._unexpectedRequests = []; 92 this._unexpectedRequests = [];
95 }, 93 },
96 94
97 //------------------------------------------------------------------------- 95 //-------------------------------------------------------------------------
98 96
99 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) { 97 'testExpectedRequestParameters': function (aPath, anActualRequest, anExpectedRequest) {
100 var aKey; 98 var aKey;
101//console.log(">>> Proxy.testExpectedRequestParameters [" + aPath + "]", anActualRequest, anExpectedRequest);
102 for (aKey in anExpectedRequest) { 99 for (aKey in anExpectedRequest) {
103 if (typeof(anActualRequest[aKey]) == 'undefined') { 100 if (typeof(anActualRequest[aKey]) == 'undefined') {
104 throw "the expected paramter [" + aKey + "] is missing from the actual request"; 101 throw "the expected paramter [" + aKey + "] is missing from the actual request";
105 } 102 }
106 if (typeof(anExpectedRequest[aKey]) == 'object') { 103 if (typeof(anExpectedRequest[aKey]) == 'object') {
107 this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey]) 104 this.testExpectedRequestParameters(aPath + "." + aKey, anActualRequest[aKey], anExpectedRequest[aKey])
108 } else { 105 } else {
109 if (! anExpectedRequest[aKey](anActualRequest[aKey])) { 106 if (! anExpectedRequest[aKey](anActualRequest[aKey])) {
110 throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'"; 107 throw "wrong value for paramter [" + aKey + "]; got '" + anActualRequest[aKey] + "'";
111 } 108 }
112 } 109 }
113 } 110 }
114//console.log("<<< Proxy.testExpectedRequestParameters");
115 }, 111 },
116 112
117 //------------------------------------------------------------------------- 113 //-------------------------------------------------------------------------
118 114
119 'checkRequest': function(aFunctionName, someParameters) { 115 'checkRequest': function(aFunctionName, someParameters) {
120 if (this.shouldCheckExpectedRequests()) { 116 if (this.shouldCheckExpectedRequests()) {
121 var expectedRequest; 117 var expectedRequest;
122 118
123//console.log(">>> Proxy.Test.checkRequest - " + aFunctionName, someParameters);
124 expectedRequest = this.expectedRequests().pop(); 119 expectedRequest = this.expectedRequests().pop();
125//console.log("--- Proxy.Test.checkRequest - expectedRequest", expectedRequest);
126 if (expectedRequest == null) { 120 if (expectedRequest == null) {
127 throw "Proxy.Test.sentMessage: no expected result specified. Got request '" + aFunctionName + "': " + someParameters; 121 throw "Proxy.Test.sentMessage: no expected result specified. Got request '" + aFunctionName + "': " + someParameters;
128 } 122 }
129 123
130 try { 124 try {
131 if (aFunctionName != expectedRequest.functionName) { 125 if (aFunctionName != expectedRequest.functionName) {
132 throw "wrong function name. Got '" + aFunctionName + "', expected '" + expectedRequest.request.functionName + "'"; 126 throw "wrong function name. Got '" + aFunctionName + "', expected '" + expectedRequest.request.functionName + "'";
133 } 127 }
134 128
135 this.testExpectedRequestParameters("parameters", someParameters, expectedRequest.parameters); 129 this.testExpectedRequestParameters("parameters", someParameters, expectedRequest.parameters);
136 } catch(exception) { 130 } catch(exception) {
137//console.log("EXCEPTION: Proxy.Test.sentMessage[" + expectedRequest.name + "]", exception)
138 throw "Proxy.Test.sentMessage[" + expectedRequest.name + "]: " + exception; 131 throw "Proxy.Test.sentMessage[" + expectedRequest.name + "]: " + exception;
139 } 132 }
140 } 133 }
141//console.log("<<< Proxy.Test.checkRequest");
142 }, 134 },
143 135
144 //========================================================================= 136 //=========================================================================
145 137
146 'sendMessage': function(aFunctionName, someParameters) { 138 'sendMessage': function(aFunctionName, someParameters) {
147 var result; 139 var result;
148 140
149 if (this.isExpectingRequests() == false) { 141 if (this.isExpectingRequests() == false) {
diff --git a/frontend/gamma/js/Clipperz/PM/Strings.js b/frontend/gamma/js/Clipperz/PM/Strings.js
index a051365..7e855ff 100644
--- a/frontend/gamma/js/Clipperz/PM/Strings.js
+++ b/frontend/gamma/js/Clipperz/PM/Strings.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } 26if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; }
29if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } 27if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; }
30 28
@@ -236,32 +234,27 @@ Clipperz.PM.Strings.Languages.setSelectedLanguage = function(aLanguage) {
236 234
237//----------------------------------------------------------------------------- 235//-----------------------------------------------------------------------------
238 236
239Clipperz.PM.Strings.getValue = function (aKeyPath, someKeyValues) { 237Clipperz.PM.Strings.getValue = function (aKeyPath, someKeyValues) {
240 varresult; 238 varresult;
241 239
242 result = Clipperz.PM.Strings.stringsObjectStore.getValue(aKeyPath); 240 result = Clipperz.PM.Strings.stringsObjectStore.getValue(aKeyPath);
243 241
244//try {
245 if (typeof(result) == 'string') { 242 if (typeof(result) == 'string') {
246 if (typeof (someKeyValues) != 'undefined') { 243 if (typeof (someKeyValues) != 'undefined') {
247 varkey; 244 varkey;
248 245
249 for (key in someKeyValues) { 246 for (key in someKeyValues) {
250 result = result.replace( new RegExp(key), someKeyValues[key]); 247 result = result.replace( new RegExp(key), someKeyValues[key]);
251 // result.replace(, '');
252 } 248 }
253 } 249 }
254 250
255 result = result.replace(new RegExp('\n'), '<br>'); 251 result = result.replace(new RegExp('\n'), '<br>');
256 } 252 }
257//} catch (exception) {
258 //console.log("####", result, aKeyPath, someKeyValues, exception);
259//}
260 253
261 return result; 254 return result;
262} 255}
263 256
264Clipperz.PM.Strings.errorDescriptionForException = function (anException) { 257Clipperz.PM.Strings.errorDescriptionForException = function (anException) {
265 var result; 258 var result;
266 259
267 result = Clipperz.PM.Strings.getValue('exceptionsMessages' + '.' + anException.name); 260 result = Clipperz.PM.Strings.getValue('exceptionsMessages' + '.' + anException.name);
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js b/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js
index 7f6c52f..7565d2d 100644
--- a/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js
+++ b/frontend/gamma/js/Clipperz/PM/Strings/MessagePanelConfigurations.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } 26if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; }
29 27
30Clipperz.PM.Strings.messagePanelConfigurations = { 28Clipperz.PM.Strings.messagePanelConfigurations = {
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js b/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js
index 101ed3f..aefd94a 100644
--- a/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js
+++ b/frontend/gamma/js/Clipperz/PM/Strings/Strings_defaults.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; } 26if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; }
29if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; } 27if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; }
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js b/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js
index b540633..85d55c0 100644
--- a/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js
+++ b/frontend/gamma/js/Clipperz/PM/Strings/Strings_en-US.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26//============================================================================= 24//=============================================================================
27// 25//
28 // E N G L I S H A M E R I C A N ( en_US ) 26 // E N G L I S H A M E R I C A N ( en_US )
29// 27//
30//============================================================================= 28//=============================================================================
diff --git a/frontend/gamma/js/Clipperz/PM/Toll.js b/frontend/gamma/js/Clipperz/PM/Toll.js
index bb31c43..e9c3092 100644
--- a/frontend/gamma/js/Clipperz/PM/Toll.js
+++ b/frontend/gamma/js/Clipperz/PM/Toll.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28 26
29//============================================================================= 27//=============================================================================
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js
index 25e82ca..f667526 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/download.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //download.js 25 //download.js
28 //Download 26 //Download
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/15/10 28 //Created by Giulio Cesare Solaroli on 3/15/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js
index ba425ec..dae5a2d 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/CoverActions/look.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //look.js 25 //look.js
28 //Look 26 //Look
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/15/10 28 //Created by Giulio Cesare Solaroli on 3/15/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js
index 5c1f860..497fd05 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/directLogin.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //directLogin.js 25 //directLogin.js
28 //directLogin 26 //directLogin
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js
index b829ed6..f015535 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/protect.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //protect.js 25 //protect.js
28 //protect 26 //protect
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js
index 8d73cc7..47972fc 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/share.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //share.js 25 //share.js
28 //share 26 //share
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js
index 572d9be..a4f30b2 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Features/store.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //store.js 25 //store.js
28 //store 26 //store
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js
index b9443bd..dccefab 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/GraphicFunctions.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Canvas'); 24Clipperz.Base.module('Clipperz.PM.UI.Canvas');
27 25
28MochiKit.Base.update(Clipperz.PM.UI.Canvas , { 26MochiKit.Base.update(Clipperz.PM.UI.Canvas , {
29 'marks': { 27 'marks': {
30 '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark, 28 '!':Clipperz_PM_UI_Canvas_Marks_exclamationMark,
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js
index cc60bba..24c0bc3 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Logo/normal.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //normal.js 25 //normal.js
28 //New Image 26 //New Image
29// 27//
30 //Created by Giulio Cesare Solaroli on 2/13/12 28 //Created by Giulio Cesare Solaroli on 2/13/12
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js
index 02f2f80..5982f0d 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/exclamationMark.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //exclamationMark.js 25 //exclamationMark.js
28 //! 26 //!
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js
index fad5c10..2501992 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/info.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //info.js 25 //info.js
28 //i 26 //i
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js
index 5842828..9a8ac7d 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Marks/questionMark.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //questionMark.js 25 //questionMark.js
28 //? 26 //?
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/7/10 28 //Created by Giulio Cesare Solaroli on 3/7/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js
index 2462d0e..65e5ca6 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/RegisterButton/normal.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //normal.js 25 //normal.js
28 //normal 26 //normal
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/24/10 28 //Created by Giulio Cesare Solaroli on 3/24/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js
index cf475c6..5b344ef 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Star/normal.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //normal.js 25 //normal.js
28 //normal 26 //normal
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/15/10 28 //Created by Giulio Cesare Solaroli on 3/15/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js
index cd7ed90..21dfcc0 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/close.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //close.js 25 //close.js
28 //close 26 //close
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/14/10 28 //Created by Giulio Cesare Solaroli on 3/14/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js
index 30c1c69..9c76865 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Canvas/Tips/open.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26// 24//
27 //open.js 25 //open.js
28 //open 26 //open
29// 27//
30 //Created by Giulio Cesare Solaroli on 3/14/10 28 //Created by Giulio Cesare Solaroli on 3/14/10
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
index b9d7adf..58b7593 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/BaseComponent.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30var _Clipperz_PM_Components_base_id_ = 0; 28var _Clipperz_PM_Components_base_id_ = 0;
@@ -118,17 +116,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Compo
118/* 116/*
119 'domHelperAppend': function(aValue) { 117 'domHelperAppend': function(aValue) {
120 Clipperz.YUI.DomHelper.append(this.element().dom, aValue); 118 Clipperz.YUI.DomHelper.append(this.element().dom, aValue);
121 }, 119 },
122 */ 120 */
123 //------------------------------------------------------------------------- 121 //-------------------------------------------------------------------------
124 122
125 'element': function() { 123 'element': function() {
126//MochiKit.Logging.logDebug(">>> BaseComponent.element");
127 return MochiKit.DOM.getElement(this._element); 124 return MochiKit.DOM.getElement(this._element);
128 }, 125 },
129 126
130 'setElement': function(aNode) { 127 'setElement': function(aNode) {
131 this._element = aNode; 128 this._element = aNode;
132 }, 129 },
133 130
134 //----------------------------------------------------- 131 //-----------------------------------------------------
@@ -308,21 +305,18 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.BaseComponent, /*Ext.Compo
308 if (domNode != null) { 305 if (domNode != null) {
309 aComponent.renderInNode(domNode); 306 aComponent.renderInNode(domNode);
310 } 307 }
311 }, 308 },
312 309
313 //----------------------------------------------------- 310 //-----------------------------------------------------
314/* 311/*
315 'purgeListeners': function() { 312 'purgeListeners': function() {
316//MochiKit.Logging.logDebug(">>> Clipperz.PM.UI.Common.Components.BaseComponent.purgeListeners [" + this + "]");
317//MochiKit.Logging.logDebug("--- " + this + ".purgeListeners");
318 Clipperz.NotificationCenter.unregister(this); 313 Clipperz.NotificationCenter.unregister(this);
319 MochiKit.Signal.disconnectAllTo(this); 314 MochiKit.Signal.disconnectAllTo(this);
320//MochiKit.Logging.logDebug("<<< Clipperz.PM.UI.Common.Components.BaseComponent.purgeListeners");
321 }, 315 },
322 */ 316 */
323 //----------------------------------------------------- 317 //-----------------------------------------------------
324 318
325 'clear': function() { 319 'clear': function() {
326 varslotName; 320 varslotName;
327 var componentId; 321 var componentId;
328 322
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
index 1010c9d..1268118 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Button.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.Button = function(args) { 26Clipperz.PM.UI.Common.Components.Button = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js
index 7f56c1e..2f82359 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ComponentSlot.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js
index 2db2489..bf00ffc 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/FaviconComponent.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) { 26Clipperz.PM.UI.Common.Components.FaviconComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -72,17 +70,17 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.FaviconComponent, Clipperz
72 70
73 'setDefaultFavicon': function (anEvent) { 71 'setDefaultFavicon': function (anEvent) {
74 MochiKit.Signal.disconnectAll(anEvent.src()); 72 MochiKit.Signal.disconnectAll(anEvent.src());
75 this.setSrc(null); 73 this.setSrc(null);
76 }, 74 },
77 75
78 'handleOnLoad': function (anEvent) { 76 'handleOnLoad': function (anEvent) {
79 MochiKit.Signal.disconnectAll(anEvent.src()); 77 MochiKit.Signal.disconnectAll(anEvent.src());
80//console.log("HANDLE ON LOAD", anEvent, anEvent.src().src); 78
81 if (anEvent.src().complete == false) { 79 if (anEvent.src().complete == false) {
82 this.setSrc(null); 80 this.setSrc(null);
83 } 81 }
84 }, 82 },
85 83
86 //------------------------------------------------------------------------- 84 //-------------------------------------------------------------------------
87 __syntaxFix__: "syntax fix" 85 __syntaxFix__: "syntax fix"
88}); 86});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js
index 2788b79..020290b 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/MessagePanelWithProgressBar.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) { 26Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBar = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -126,36 +124,32 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.MessagePanelWithProgressBa
126 this.getElement('container').innerHTML = ''; 124 this.getElement('container').innerHTML = '';
127 // this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]); 125 // this.setButtons([{text:"Close", result:'CANCEL', isDefault:true}]);
128 this.setButtons(someParameters['buttons']); 126 this.setButtons(someParameters['buttons']);
129 }, 127 },
130 128
131 //------------------------------------------------------------------------- 129 //-------------------------------------------------------------------------
132 130
133 'closeOk': function () { 131 'closeOk': function () {
134//console.log("=== closeOk");
135 this.showProgressBar(); 132 this.showProgressBar();
136 MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback')); 133 MochiKit.Async.callLater(0.5, MochiKit.Base.method(this.deferred(), 'callback'));
137 this._deferred = null; 134 this._deferred = null;
138 }, 135 },
139 136
140 'closeCancel': function () { 137 'closeCancel': function () {
141//console.log("=== closeCancel");
142 this.deferredHideModal({closeToElement:this.onCancelCloseToElement()}); 138 this.deferredHideModal({closeToElement:this.onCancelCloseToElement()});
143 this.deferred().cancel(); 139 this.deferred().cancel();
144 this._deferred = null; 140 this._deferred = null;
145 }, 141 },
146 142
147 //------------------------------------------------------------------------- 143 //-------------------------------------------------------------------------
148 144
149 'deferredDone': function () { 145 'deferredDone': function () {
150//console.log("=== deferredDone");
151 return this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); 146 return this.deferredHideModal({closeToElement:this.onOkCloseToElement()});
152 }, 147 },
153 148
154 'deferredError': function (someParameters) { 149 'deferredError': function (someParameters) {
155//console.log("=== deferredError");
156 this.showFailure(someParameters); 150 this.showFailure(someParameters);
157 }, 151 },
158 152
159 //------------------------------------------------------------------------- 153 //-------------------------------------------------------------------------
160 __syntaxFix__: "syntax fix" 154 __syntaxFix__: "syntax fix"
161}); 155});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js
index 089e3d4..78e8c9b 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/PasswordEntropyDisplay.js
@@ -1,46 +1,42 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) { 26Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay = function(anElement, args) {
29 args = args || {}; 27 args = args || {};
30 28
31//MochiKit.Logging.logDebug(">>> new TextFormField");
32 Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args); 29 Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay.superclass.constructor.call(this, anElement, args);
33 30
34 this._wrapperElement = null; 31 this._wrapperElement = null;
35 this._entropyElement = null; 32 this._entropyElement = null;
36 33
37 this.render(); 34 this.render();
38//MochiKit.Logging.logDebug("<<< new TextFormField");
39 35
40 return this; 36 return this;
41}; 37};
42 38
43Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, { 39Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Clipperz.PM.UI.Common.Components.BaseComponent, {
44 40
45 'toString': function() { 41 'toString': function() {
46 return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay"; 42 return "Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay";
@@ -105,27 +101,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.PasswordEntropyDisplay, Cl
105 101
106 'computeEntropyForString': function(aValue) { 102 'computeEntropyForString': function(aValue) {
107 return Clipperz.PM.Crypto.passwordEntropy(aValue); 103 return Clipperz.PM.Crypto.passwordEntropy(aValue);
108 }, 104 },
109 105
110 //----------------------------------------------------- 106 //-----------------------------------------------------
111 107
112 'updateEntropyElement': function(anEvent) { 108 'updateEntropyElement': function(anEvent) {
113/*
114//MochiKit.Logging.logDebug(">>> PasswordEntropyDisplay.updateEntropyElement");
115 varmaxExtent;
116 varentropy;
117
118 entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value));
119//MochiKit.Logging.logDebug("--- PasswordEntropyDisplay.updateEntropyElement - entropy: " + entropy);
120 this.entropyElement().setStyle('background-position', "0px " + -entropy + "px");
121 this.entropyElement().setWidth(this.passwordElement().getWidth() * (entropy/128));
122//MochiKit.Logging.logDebug("<<< PasswordEntropyDisplay.updateEntropyElement");
123*/
124 varentropy; 109 varentropy;
125 110
126 entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value)); 111 entropy = Math.min(128, this.computeEntropyForString(this.passwordElement().dom.value));
127 112
128 if (entropy == 0) { 113 if (entropy == 0) {
129 this.entropyElement().setStyle('background-position', "0px 26px"); 114 this.entropyElement().setStyle('background-position', "0px 26px");
130 } else { 115 } else {
131 this.entropyElement().setStyle('background-position', "0px -" + (128-entropy)*26 + "px"); 116 this.entropyElement().setStyle('background-position', "0px -" + (128-entropy)*26 + "px");
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js
index 5991530..6638008 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/ProgressBar.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.ProgressBar = function(args) { 26Clipperz.PM.UI.Common.Components.ProgressBar = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
index 1d816a9..8c98811 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/SimpleMessagePanel.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) { 26Clipperz.PM.UI.Common.Components.SimpleMessagePanel = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -213,29 +211,25 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe
213 //------------------------------------------------------------------------- 211 //-------------------------------------------------------------------------
214 212
215 'buttonEventHandler': function(aButton, anEvent) { 213 'buttonEventHandler': function(aButton, anEvent) {
216 anEvent.preventDefault(); 214 anEvent.preventDefault();
217 215
218 // MochiKit.Signal.signal(this, 'cancelEvent'); 216 // MochiKit.Signal.signal(this, 'cancelEvent');
219 switch (aButton['result']) { 217 switch (aButton['result']) {
220 case 'OK': 218 case 'OK':
221//console.log("==> OK");
222 this.closeOk(); 219 this.closeOk();
223 break; 220 break;
224 case 'CANCEL': 221 case 'CANCEL':
225//console.log("==> CANCEL");
226 this.closeCancel(); 222 this.closeCancel();
227 break; 223 break;
228 default: 224 default:
229//console.log("==> ????");
230 this.closeError(); 225 this.closeError();
231 break; 226 break;
232 } 227 }
233//console.log("<==");
234 }, 228 },
235 229
236 //------------------------------------------------------------------------- 230 //-------------------------------------------------------------------------
237 231
238 'deferredShow': function (someArgs, aResult) { 232 'deferredShow': function (someArgs, aResult) {
239 this.deferredShowModal(someArgs); 233 this.deferredShowModal(someArgs);
240 234
241 this.deferred().addMethod(this, 'deferredHideModal', {closeToElement:someArgs.onOkCloseToElement }); 235 this.deferred().addMethod(this, 'deferredHideModal', {closeToElement:someArgs.onOkCloseToElement });
@@ -274,24 +268,20 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.SimpleMessagePanel, Clippe
274 MochiKit.Style.hideElement(this.getId('modalDialogFrame')); 268 MochiKit.Style.hideElement(this.getId('modalDialogFrame'));
275 }, 269 },
276 270
277 //------------------------------------------------------------------------- 271 //-------------------------------------------------------------------------
278 272
279 'keyDownHandler': function (anEvent) { 273 'keyDownHandler': function (anEvent) {
280 if (anEvent.key().string == 'KEY_ENTER') { 274 if (anEvent.key().string == 'KEY_ENTER') {
281 anEvent.preventDefault(); 275 anEvent.preventDefault();
282//console.log("13 - RETURN ?", this);
283 this.closeOk(); 276 this.closeOk();
284//console.log('<<< 13')
285 } 277 }
286 278
287 if (anEvent.key().string == 'KEY_ESCAPE') { 279 if (anEvent.key().string == 'KEY_ESCAPE') {
288 anEvent.preventDefault(); 280 anEvent.preventDefault();
289//console.log("27 - ESC ?", this);
290 this.closeCancel(); 281 this.closeCancel();
291//console.log("<<< 27");
292 } 282 }
293 }, 283 },
294 284
295 //------------------------------------------------------------------------- 285 //-------------------------------------------------------------------------
296 __syntaxFix__: "syntax fix" 286 __syntaxFix__: "syntax fix"
297}); 287});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js
index 936514a..1e2a690 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TabPanelComponent.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) { 26Clipperz.PM.UI.Common.Components.TabPanelComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args); 28 Clipperz.PM.UI.Common.Components.TabPanelComponent.superclass.constructor.call(this, args);
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js
index 8df7e0e..6517d2a 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/Tooltip.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.Tooltip = function(args) { 26Clipperz.PM.UI.Common.Components.Tooltip = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -136,57 +134,50 @@ Clipperz.Base.extend(Clipperz.PM.UI.Common.Components.Tooltip, Clipperz.PM.UI.Co
136 var bodyPosition; 134 var bodyPosition;
137 135
138 if (this.isVisible() == false) { 136 if (this.isVisible() == false) {
139 arrowPosition = {}; 137 arrowPosition = {};
140 bodyPosition = {}; 138 bodyPosition = {};
141 139
142 this.setIsVisible(true); 140 this.setIsVisible(true);
143 elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element()); 141 elementSizeAndPosition = Clipperz.Style.getSizeAndPosition(this.element());
144//console.log("ELEMENT SIZE AND POSITION", Clipperz.Base.serializeJSON(elementSizeAndPosition));
145//console.log("BOX DIMENSIONS", Clipperz.Base.serializeJSON(this.boxDimensions()));
146 switch (this.position()) { 142 switch (this.position()) {
147 case 'ABOVE': 143 case 'ABOVE':
148//console.log("ABOVE");
149 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); 144 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px');
150 bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); 145 bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2);
151 bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13; 146 bodyPosition.y = elementSizeAndPosition.position.y - this.boxDimensions().h - 13;
152 147
153 // arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); 148 // arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2);
154 // arrowPosition.y = elementSizeAndPosition.position.y - 13; 149 // arrowPosition.y = elementSizeAndPosition.position.y - 13;
155 break; 150 break;
156 case 'BELOW': 151 case 'BELOW':
157//console.log("BELOW");
158 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px'); 152 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:36, h:13}, 'px');
159 bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2); 153 bodyPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - this.boxDimensions().w/2);
160 bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13; 154 bodyPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h + 13;
161 155
162 // arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2); 156 // arrowPosition.x = elementSizeAndPosition.position.x + (elementSizeAndPosition.dimensions.w/2 - 36/2);
163 // arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h; 157 // arrowPosition.y = elementSizeAndPosition.position.y + elementSizeAndPosition.dimensions.h;
164 break; 158 break;
165 case 'LEFT': 159 case 'LEFT':
166//console.log("LEFT");
167 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); 160 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px');
168 bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13; 161 bodyPosition.x = elementSizeAndPosition.position.x - this.boxDimensions().w - 13;
169 bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); 162 bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2);
170 163
171 // arrowPosition.x = elementSizeAndPosition.position.x -13; 164 // arrowPosition.x = elementSizeAndPosition.position.x -13;
172 // arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); 165 // arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2);
173 break; 166 break;
174 case 'RIGHT': 167 case 'RIGHT':
175//console.log("RIGHT");
176 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px'); 168 // MochiKit.Style.setElementDimensions(this.getId('arrow'), {w:13, h:36}, 'px');
177 bodyPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w + 13; 169 bodyPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w + 13;
178 bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2); 170 bodyPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - this.boxDimensions().h/2);
179 171
180 // arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w; 172 // arrowPosition.x = elementSizeAndPosition.position.x + elementSizeAndPosition.dimensions.w;
181 // arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2); 173 // arrowPosition.y = elementSizeAndPosition.position.y + (elementSizeAndPosition.dimensions.h/2 - 36/2);
182 break; 174 break;
183 } 175 }
184//console.log("X: " + bodyPosition.x + ", Y: " + bodyPosition.y);
185 176
186 MochiKit.Style.setElementPosition(this.getId('tooltip'), bodyPosition); 177 MochiKit.Style.setElementPosition(this.getId('tooltip'), bodyPosition);
187 // MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition); 178 // MochiKit.Style.setElementPosition(this.getId('body'), bodyPosition);
188 // MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition); 179 // MochiKit.Style.setElementPosition(this.getId('arrow'), arrowPosition);
189 MochiKit.Visual.appear(this.displayElement(), {duration:0.4}); 180 MochiKit.Visual.appear(this.displayElement(), {duration:0.4});
190 } 181 }
191 }, 182 },
192 183
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js
index c41fc7c..ba58edd 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Components/TranslatorWidget.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) { 26Clipperz.PM.UI.Common.Components.TranslatorWidget = function(args) {
29Clipperz.log(">>> TranslatorWidget.new"); 27Clipperz.log(">>> TranslatorWidget.new");
30 args = args || {}; 28 args = args || {};
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js
index 5fd10f9..77d59a5 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers');
27 25
28Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { 26Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) {
29 this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); 27 this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter');
30 this._target = Clipperz.PM.Crypto.randomKey(); 28 this._target = Clipperz.PM.Crypto.randomKey();
@@ -149,17 +147,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototy
149 }, 147 },
150 148
151 //------------------------------------------------------------------------- 149 //-------------------------------------------------------------------------
152 150
153 'runHttpAuthDirectLogin': function(aWindow, someAttributes) { 151 'runHttpAuthDirectLogin': function(aWindow, someAttributes) {
154 var completeUrl; 152 var completeUrl;
155 var url; 153 var url;
156 154
157//console.log("runHttpAuthDirectLogin", someAttributes);
158 url = someAttributes['inputValues']['url']; 155 url = someAttributes['inputValues']['url'];
159 156
160 if (/^https?\:\/\//.test(url) == false) { 157 if (/^https?\:\/\//.test(url) == false) {
161 url = 'http://' + url; 158 url = 'http://' + url;
162 } 159 }
163 160
164 if (Clipperz_IEisBroken === true) { 161 if (Clipperz_IEisBroken === true) {
165 completeUrl = url; 162 completeUrl = url;
@@ -177,44 +174,40 @@ MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototy
177 window.open(completeUrl, this.target()); 174 window.open(completeUrl, this.target());
178 }, 175 },
179 176
180 //============================================================================= 177 //=============================================================================
181 178
182 'runDirectLogin': function (aWindow) { 179 'runDirectLogin': function (aWindow) {
183 var deferredResult; 180 var deferredResult;
184 181
185//console.log(">>> runDirectLogin");
186 deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false}); 182 deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false});
187 deferredResult.addMethod(this, 'initialWindowSetup', aWindow); 183 deferredResult.addMethod(this, 'initialWindowSetup', aWindow);
188 deferredResult.addMethod(this.directLogin(), 'label'); 184 deferredResult.addMethod(this.directLogin(), 'label');
189 deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow); 185 deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow);
190 deferredResult.collectResults({ 186 deferredResult.collectResults({
191 'type': MochiKit.Base.method(this.directLogin(), 'type'), 187 'type': MochiKit.Base.method(this.directLogin(), 'type'),
192 'label': MochiKit.Base.method(this.directLogin(), 'label'), 188 'label': MochiKit.Base.method(this.directLogin(), 'label'),
193 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'), 189 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'),
194 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues') 190 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues')
195 }); 191 });
196//deferredResult.addCallback(function (aValue) { console.log("SOME ATTRIBUTES", aValue); return aValue; });
197 deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) { 192 deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) {
198//console.log("SOME ATTRIBUTES", someAttributes);
199 switch (someAttributes['type']) { 193 switch (someAttributes['type']) {
200 case 'http_auth': 194 case 'http_auth':
201 this.runHttpAuthDirectLogin(aWindow, someAttributes); 195 this.runHttpAuthDirectLogin(aWindow, someAttributes);
202 break; 196 break;
203 case 'simple_url': 197 case 'simple_url':
204 this.runSimpleUrlDirectLogin(aWindow, someAttributes); 198 this.runSimpleUrlDirectLogin(aWindow, someAttributes);
205 break; 199 break;
206 default: 200 default:
207 this.runSubmitFormDirectLogin(aWindow, someAttributes); 201 this.runSubmitFormDirectLogin(aWindow, someAttributes);
208 break; 202 break;
209 } 203 }
210 }, this)); 204 }, this));
211 deferredResult.callback(); 205 deferredResult.callback();
212//console.log("<<< runDirectLogin");
213 206
214 return deferredResult; 207 return deferredResult;
215 }, 208 },
216 209
217 //============================================================================= 210 //=============================================================================
218 211
219 'run': function () { 212 'run': function () {
220 var newWindow; 213 var newWindow;
@@ -251,14 +244,13 @@ Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.openDirectLogin = function (
251 return runner.run(); 244 return runner.run();
252}; 245};
253 246
254//----------------------------------------------------------------------------- 247//-----------------------------------------------------------------------------
255 248
256Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.testDirectLogin = function (aDirectLogin) { 249Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.testDirectLogin = function (aDirectLogin) {
257 varrunner; 250 varrunner;
258 251
259//console.log(">>>>>> TESTING DIRECT LOGIN");
260 runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin}); 252 runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin});
261 return runner.test(); 253 return runner.test();
262}; 254};
263 255
264//----------------------------------------------------------------------------- 256//-----------------------------------------------------------------------------
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js
index 41fe17f..52d81d4 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/ProgressBarController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers');
27 25
28Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) { 26Clipperz.PM.UI.Common.Controllers.ProgressBarController = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js
index 341fde9..d3e86de 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/TabPanelController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers');
27 25
28Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) { 26Clipperz.PM.UI.Common.Controllers.TabPanelController = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js
index ef38bc6..c13d96a 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/WizardController.js
@@ -1,28 +1,26 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26 //Still empty, but here it should be reasonable to factor in code duplicated between 24 //Still empty, but here it should be reasonable to factor in code duplicated between
27 //- DirectLoginWizardController 25 //- DirectLoginWizardController
28 //- NewUserWizardController \ No newline at end of file 26 //- NewUserWizardController \ No newline at end of file
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js
index ea987cd..f0ccdfb 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Compact/MainController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Compact'); 24Clipperz.Base.module('Clipperz.PM.UI.Compact');
27 25
28Clipperz.PM.UI.Compact.MainController = function() { 26Clipperz.PM.UI.Compact.MainController = function() {
29 //this._loginPanel = null; 27 //this._loginPanel = null;
30 //this._user = null; 28 //this._user = null;
@@ -43,14 +41,14 @@ MochiKit.Base.update(Clipperz.PM.UI.Compact.MainController.prototype, {
43 41
44 'toString': function() { 42 'toString': function() {
45 return "Clipperz.PM.UI.Compact.MainController"; 43 return "Clipperz.PM.UI.Compact.MainController";
46 }, 44 },
47 45
48 //----------------------------------------------------------------------------- 46 //-----------------------------------------------------------------------------
49 47
50 'run': function(shouldShowRegistrationForm) { 48 'run': function(shouldShowRegistrationForm) {
51MochiKit.Logging.logDebug("running " + this.toString()); 49 Clipperz.logDebug("running " + this.toString());
52 }, 50 },
53 51
54 //----------------------------------------------------------------------------- 52 //-----------------------------------------------------------------------------
55 __syntaxFix__: "syntax fix" 53 __syntaxFix__: "syntax fix"
56}); \ No newline at end of file 54}); \ No newline at end of file
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js
index 32dfa63..abf4758 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardDetail.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
27 25
28Clipperz.PM.UI.Mobile.Components.CardDetail = function(args) { 26Clipperz.PM.UI.Mobile.Components.CardDetail = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -53,17 +51,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardDetail, Clipperz.PM.UI
53 51
54 'setCardReference': function (aValue) { 52 'setCardReference': function (aValue) {
55 this._cardReference = aValue; 53 this._cardReference = aValue;
56 }, 54 },
57*/ 55*/
58 //------------------------------------------------------------------------- 56 //-------------------------------------------------------------------------
59 57
60 'renderSelf': function () { 58 'renderSelf': function () {
61console.log("CardDetail.renderSelf");
62 this.append(this.element(), {tag:'div', cls:'cardDetail', children:[ 59 this.append(this.element(), {tag:'div', cls:'cardDetail', children:[
63 {tag:'div', cls:'toolbar', children:[ 60 {tag:'div', cls:'toolbar', children:[
64 {tag:'a', href:'#', cls:'back', html:"List"}, 61 {tag:'a', href:'#', cls:'back', html:"List"},
65 {tag:'h1', id:this.getId('cardTitle'), html:"…"} 62 {tag:'h1', id:this.getId('cardTitle'), html:"…"}
66 ]}, 63 ]},
67 {tag:'div', cls:'scroll', id:this.getId('cardDetails'), children:[ 64 {tag:'div', cls:'scroll', id:this.getId('cardDetails'), children:[
68 ]} 65 ]}
69 ]}); 66 ]});
@@ -150,27 +147,25 @@ console.log("CardDetail.renderSelf");
150 147
151 'addDirectLogin': function (aDirectLogin) { 148 'addDirectLogin': function (aDirectLogin) {
152 this.append(this.directLoginElement(), {tag:'li', cls:'directLogin forward', children:[ 149 this.append(this.directLoginElement(), {tag:'li', cls:'directLogin forward', children:[
153 {tag:'a', href:'#', html:"direct login", children:[ 150 {tag:'a', href:'#', html:"direct login", children:[
154 {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:'http://www.clipperz.com/favicon.ico'}]} 151 {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:'http://www.clipperz.com/favicon.ico'}]}
155 ]} 152 ]}
156 ]}) 153 ]})
157 154
158console.log("ADD DIRECT LOGIN", aDirectLogin);
159 }, 155 },
160 156
161 //========================================================================= 157 //=========================================================================
162 158
163 'showCard': function (aCard) { 159 'showCard': function (aCard) {
164 var deferredResult; 160 var deferredResult;
165 161
166 // this.render(); 162 // this.render();
167 163
168console.log("CardDetail.showCard", aCard);
169 deferredResult = new Clipperz.Async.Deferred("CardDetail.showCard", {trace:false}); 164 deferredResult = new Clipperz.Async.Deferred("CardDetail.showCard", {trace:false});
170 deferredResult.addMethod(aCard, 'label'); 165 deferredResult.addMethod(aCard, 'label');
171 deferredResult.addMethod(this, 'setTitle'); 166 deferredResult.addMethod(this, 'setTitle');
172 167
173 deferredResult.addMethod(aCard, 'fields'); 168 deferredResult.addMethod(aCard, 'fields');
174 deferredResult.addCallback(MochiKit.Base.values); 169 deferredResult.addCallback(MochiKit.Base.values);
175 deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addField')); 170 deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'addField'));
176 171
@@ -261,17 +256,16 @@ console.log("CardDetail.showCard", aCard);
261 }, 256 },
262 257
263 //------------------------------------------------------------------------- 258 //-------------------------------------------------------------------------
264/* 259/*
265 'toggleClickHandler': function (anEvent) { 260 'toggleClickHandler': function (anEvent) {
266 varnextState; 261 varnextState;
267 varfieldValue; 262 varfieldValue;
268 263
269//console.log("TOGGLE");
270 anEvent.preventDefault; 264 anEvent.preventDefault;
271 fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0]; 265 fieldValue = MochiKit.Selector.findChildElements(anEvent.src().parentNode.parentNode, ['span.password'])[0];
272 266
273 nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true'); 267 nextState = (MochiKit.DOM.getNodeAttribute(anEvent.src(), 'toggled') != 'true');
274 if (nextState) { 268 if (nextState) {
275 MochiKit.DOM.removeElementClass(fieldValue, 'clear'); 269 MochiKit.DOM.removeElementClass(fieldValue, 'clear');
276 } else { 270 } else {
277 MochiKit.DOM.addElementClass(fieldValue, 'clear'); 271 MochiKit.DOM.addElementClass(fieldValue, 'clear');
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js
index a4aa212..a0e4879 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/CardList.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
27 25
28Clipperz.PM.UI.Mobile.Components.CardList = function(args) { 26Clipperz.PM.UI.Mobile.Components.CardList = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -85,29 +83,27 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardList, Clipperz.PM.UI.C
85 cardInfo = { 83 cardInfo = {
86 '_rowObject': MochiKit.Async.succeed, 84 '_rowObject': MochiKit.Async.succeed,
87 '_reference': MochiKit.Base.methodcaller('reference'), 85 '_reference': MochiKit.Base.methodcaller('reference'),
88 '_searchableContent':MochiKit.Base.methodcaller('searchableContent'), 86 '_searchableContent':MochiKit.Base.methodcaller('searchableContent'),
89 'label': MochiKit.Base.methodcaller('label'), 87 'label': MochiKit.Base.methodcaller('label'),
90 'favicon': MochiKit.Base.methodcaller('favicon') 88 'favicon': MochiKit.Base.methodcaller('favicon')
91 }; 89 };
92 90
93//console.log("someCards", someCards);
94 deferredResult = new Clipperz.Async.Deferred("CardList.showCards", {trace:false}); 91 deferredResult = new Clipperz.Async.Deferred("CardList.showCards", {trace:false});
95 deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("CardList.value - collectResults", cardInfo, {trace:false})); 92 deferredResult.addCallback(MochiKit.Base.map, Clipperz.Async.collectResults("CardList.value - collectResults", cardInfo, {trace:false}));
96 deferredResult.addCallback(Clipperz.Async.collectAll); 93 deferredResult.addCallback(Clipperz.Async.collectAll);
97 deferredResult.addCallback(MochiKit.Base.methodcaller('sort', Clipperz.Base.caseInsensitiveKeyComparator('label'))); 94 deferredResult.addCallback(MochiKit.Base.methodcaller('sort', Clipperz.Base.caseInsensitiveKeyComparator('label')));
98 deferredResult.addCallbackPass(MochiKit.DOM.replaceChildNodes, cardListElement); 95 deferredResult.addCallbackPass(MochiKit.DOM.replaceChildNodes, cardListElement);
99 // deferredResult.addCallbackPass(MochiKit.DOM.removeElementClass, cardListElement, 'loading'); 96 // deferredResult.addCallbackPass(MochiKit.DOM.removeElementClass, cardListElement, 'loading');
100 deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'appendCardToList', cardListElement)); 97 deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.method(this, 'appendCardToList', cardListElement));
101 deferredResult.callback(someCards); 98 deferredResult.callback(someCards);
102 }, 99 },
103 100
104 'appendCardToList': function (aCardListElement, aCardInfo) { 101 'appendCardToList': function (aCardListElement, aCardInfo) {
105//console.log("appendCardToList", aCardInfo);
106 this.append(aCardListElement, {tag:'li', cls:'cardListItem arrow', cardreference:aCardInfo['_reference'], children:[ 102 this.append(aCardListElement, {tag:'li', cls:'cardListItem arrow', cardreference:aCardInfo['_reference'], children:[
107 {tag:'a', href:'#', html:aCardInfo['label'], children:[ 103 {tag:'a', href:'#', html:aCardInfo['label'], children:[
108 {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:aCardInfo['favicon']}]} 104 {tag:'small', cls:'favicon', children:[{tag:'img', cls:'favicon', src:aCardInfo['favicon']}]}
109 ]} 105 ]}
110 ]}); 106 ]});
111 }, 107 },
112 108
113 'cardSelectionHandler': function (anEvent) { 109 'cardSelectionHandler': function (anEvent) {
@@ -116,17 +112,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.CardList, Clipperz.PM.UI.C
116 112
117 anEvent.preventDefault(); 113 anEvent.preventDefault();
118 114
119 listElement = anEvent.target(); 115 listElement = anEvent.target();
120 if (MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') == null) { 116 if (MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') == null) {
121 listElement = MochiKit.DOM.getFirstParentByTagAndClassName(anEvent.target(), tagName='li', className='cardListItem'); 117 listElement = MochiKit.DOM.getFirstParentByTagAndClassName(anEvent.target(), tagName='li', className='cardListItem');
122 } 118 }
123 cardReference = MochiKit.DOM.getNodeAttribute(listElement, 'cardreference'); 119 cardReference = MochiKit.DOM.getNodeAttribute(listElement, 'cardreference');
124console.log("###", listElement, cardReference);
125 //TODO: Notify card with reference MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') has been selected 120 //TODO: Notify card with reference MochiKit.DOM.getNodeAttribute(listElement, 'cardreference') has been selected
126 MochiKit.Signal.signal(this, 'selectedCard', cardReference); 121 MochiKit.Signal.signal(this, 'selectedCard', cardReference);
127 }, 122 },
128 123
129 //------------------------------------------------------------------------- 124 //-------------------------------------------------------------------------
130/* 125/*
131 'searchHandler': function (anEvent) { 126 'searchHandler': function (anEvent) {
132 if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN 127 if ((typeof(anEvent.key()) != 'undefined') && (anEvent.key().string == 'KEY_ENTER')) { //RETURN
@@ -166,17 +161,16 @@ console.log("###", listElement, cardReference);
166 161
167 'cardListClickHandler': function (anEvent) { 162 'cardListClickHandler': function (anEvent) {
168 anEvent.preventDefault(); 163 anEvent.preventDefault();
169 164
170 if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) { 165 if (/(cardListReference_|cardListItem_)/.test(anEvent.target().id)) {
171 var cardListReference; 166 var cardListReference;
172 167
173 cardListReference = anEvent.target().id.match(/(cardListReference_|cardListItem_)(.*)/)[2]; 168 cardListReference = anEvent.target().id.match(/(cardListReference_|cardListItem_)(.*)/)[2];
174//console.log("Showing detail for card named", cardListReference);
175 MochiKit.Signal.signal(this, 'selectedCard', cardListReference); 169 MochiKit.Signal.signal(this, 'selectedCard', cardListReference);
176 } 170 }
177 }, 171 },
178 172
179 //========================================================================= 173 //=========================================================================
180 174
181 'cardDetail': function (someData) { 175 'cardDetail': function (someData) {
182 if (this._cardDetail == null) { 176 if (this._cardDetail == null) {
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js
index eafcdbc..3aeac0c 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Components/LoginForm.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Mobile.Components');
27 25
28Clipperz.PM.UI.Mobile.Components.LoginForm = function(args) { 26Clipperz.PM.UI.Mobile.Components.LoginForm = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -134,17 +132,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.LoginForm, Clipperz.PM.UI.
134 //------------------------------------------------------------------------- 132 //-------------------------------------------------------------------------
135 133
136 'setCallbacks': function (args) { 134 'setCallbacks': function (args) {
137 this._callback = args['callback']; 135 this._callback = args['callback'];
138 this._errorCallback = args['errorCallback']; 136 this._errorCallback = args['errorCallback'];
139 }, 137 },
140 138
141 'showErrors': function (args) { 139 'showErrors': function (args) {
142//console.log("LoginForm.showErrors", args);
143 if (args['previousFailedAttempt'] == 'LOGIN') { 140 if (args['previousFailedAttempt'] == 'LOGIN') {
144 this.setErrorMessage("Wrong credentials"); 141 this.setErrorMessage("Wrong credentials");
145 } else if (args['previousFailedAttempt'] == 'PIN') { 142 } else if (args['previousFailedAttempt'] == 'PIN') {
146 if (args['failedAttempts'] == -1) { 143 if (args['failedAttempts'] == -1) {
147 this.setErrorMessage("Wrong PIN - Resetted"); 144 this.setErrorMessage("Wrong PIN - Resetted");
148 } else { 145 } else {
149 this.setErrorMessage("Wrong PIN"); 146 this.setErrorMessage("Wrong PIN");
150 } 147 }
@@ -294,17 +291,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.LoginForm, Clipperz.PM.UI.
294 // $(this.getAnchor('PIN')).blur(); 291 // $(this.getAnchor('PIN')).blur();
295 this.getElement('PIN').blur(); 292 this.getElement('PIN').blur();
296 293
297 credentials = Clipperz.PM.PIN.credentialsWithPIN(pin); 294 credentials = Clipperz.PM.PIN.credentialsWithPIN(pin);
298 this.loginWithCredentials(credentials); 295 this.loginWithCredentials(credentials);
299 }, 296 },
300 297
301 'submitCredentialsHandler': function (anEvent) { 298 'submitCredentialsHandler': function (anEvent) {
302//console.log("submitCredentialsHandler");
303 varcredentials; 299 varcredentials;
304 300
305 this.setMessage(null); 301 this.setMessage(null);
306 302
307 credentials = {}; 303 credentials = {};
308 credentials['username'] = this.getElement('usernameField').value; 304 credentials['username'] = this.getElement('usernameField').value;
309 credentials['passphrase'] = this.getElement('passphraseField').value; 305 credentials['passphrase'] = this.getElement('passphraseField').value;
310 // $(this.getAnchor('passphraseField')).blur(); 306 // $(this.getAnchor('passphraseField')).blur();
@@ -326,31 +322,26 @@ Clipperz.Base.extend(Clipperz.PM.UI.Mobile.Components.LoginForm, Clipperz.PM.UI.
326 MochiKit.Style.showElement(this.getElement('validating')); 322 MochiKit.Style.showElement(this.getElement('validating'));
327 323
328 MochiKit.Async.callLater(0.1, this.callback(), args); 324 MochiKit.Async.callLater(0.1, this.callback(), args);
329 }, 325 },
330 326
331 //------------------------------------------------------------------------- 327 //-------------------------------------------------------------------------
332 328
333 'initProgressHandle': function (anEvent) { 329 'initProgressHandle': function (anEvent) {
334//console.log("** initProgressHandle", anEvent);
335 this._steps = anEvent['steps']; 330 this._steps = anEvent['steps'];
336 this._actualSteps = 0; 331 this._actualSteps = 0;
337 }, 332 },
338 333
339 'updateProgressHandle': function (anEvent) { 334 'updateProgressHandle': function (anEvent) {
340//console.log("** updateProgressHandle", anEvent);
341 this._steps += anEvent['extraSteps']; 335 this._steps += anEvent['extraSteps'];
342 }, 336 },
343 337
344 'advanceProgressHandle': function (anEvent) { 338 'advanceProgressHandle': function (anEvent) {
345//console.log("** advanceProgressHandle", anEvent);
346 this._actualSteps ++; 339 this._actualSteps ++;
347//console.log("STEPS: " + this._actualSteps + "/" + this._steps);
348 }, 340 },
349 341
350 'progressDoneHandle': function (anEvent) { 342 'progressDoneHandle': function (anEvent) {
351//console.log("** progressDoneHandle", anEvent);
352 }, 343 },
353 344
354 //------------------------------------------------------------------------- 345 //-------------------------------------------------------------------------
355 __syntaxFix__: "syntax fix" 346 __syntaxFix__: "syntax fix"
356}); 347});
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js
index 12a61f7..9951f44 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Mobile/Controllers/MainController.js
@@ -1,37 +1,35 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Mobile.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Mobile.Controllers');
27 25
28Clipperz.PM.UI.Mobile.Controllers.MainController = function() { 26Clipperz.PM.UI.Mobile.Controllers.MainController = function() {
29 this._jQTouch = null; 27 // this._jQTouch = null;
30 this._user = null; 28 this._user = null;
31 this._proxy = null; 29 this._proxy = null;
32 this._loginForm = null; 30 this._loginForm = null;
33 this._cardList = null; 31 this._cardList = null;
34 this._cardDetail= null; 32 this._cardDetail= null;
35 33
36 return this; 34 return this;
37} 35}
@@ -48,47 +46,45 @@ MochiKit.Base.update(Clipperz.PM.UI.Mobile.Controllers.MainController.prototype,
48 return this._user; 46 return this._user;
49 }, 47 },
50 48
51 'setUser': function (aValue) { 49 'setUser': function (aValue) {
52 this._user = aValue; 50 this._user = aValue;
53 }, 51 },
54 52
55 //------------------------------------------------------------------------- 53 //-------------------------------------------------------------------------
56 54/*
57 'jQTouch': function () { 55 'jQTouch': function () {
58 return this._jQTouch; 56 return this._jQTouch;
59 }, 57 },
60 58
61 'setJQTouch': function (aValue) { 59 'setJQTouch': function (aValue) {
62 this._jQTouch = aValue; 60 this._jQTouch = aValue;
63 }, 61 },
64 62*/
65 //========================================================================= 63 //=========================================================================
66 64
67 'run': function () { 65 'run': function () {
68 console.log("MainController.run");
69
70 MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin')); 66 MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin'));
71 Clipperz.DOM.Helper.overwrite(MochiKit.DOM.currentDocument().body, {tag:'div', id:'jqt', children:[ 67 Clipperz.DOM.Helper.overwrite(MochiKit.DOM.currentDocument().body, {tag:'div', id:'jqt', children:[
72 {tag:'div', id:'loginForm'}, 68 {tag:'div', id:'loginForm'},
73 {tag:'div', id:'cardList'}, 69 {tag:'div', id:'cardList'},
74 {tag:'div', id:'cardDetail'}, 70 {tag:'div', id:'cardDetail'},
75 {tag:'div', id:'preferences'} 71 {tag:'div', id:'preferences'}
76 ]}); 72 ]});
77 73
78 this.showLoginForm(); 74 this.showLoginForm();
79 75
80 this.initjQTouch(); 76 // this.initjQTouch();
81 77
82 78
83 // this.showAddToHomeScreenBaloon(); 79 // this.showAddToHomeScreenBaloon();
84 // this.selectInitialProxy(); 80 // this.selectInitialProxy();
85 }, 81 },
86 82/*
87 'initjQTouch': function () { 83 'initjQTouch': function () {
88 var jqt; 84 var jqt;
89 85
90 jqt = new $.jQTouch({ 86 jqt = new $.jQTouch({
91 icon: 'data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAIAAAAAvxIqAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAAd7klEQVR4nO19eZQV13nn797a3tr7yg5ikxCIHRohkACBEFqsJY4z8T52nPHYPp74JJ54bMfOsRMf2Z44OZ7EJ16iDLIsS5ZlydJY+2Ii1haiAQFCNGvTNHS/9/pt9Wq93/xRb+9u6OU1wif9O3Wq6223bv3qu7/vu9+9txqYwAQmMIEJTGACE5jABCbwnxTs/a4AHnjggY0bNwohxl4U5/xnP/tZe3v72Iv6g8fDDz9MlcOHP/zh9/uCAEB+vysA27YBkHAh7KK3aSRlMIDAFcZl13UrW73R4f2nNQvXYGYMjANUROkVyWXZvbBIDcLXOH4VHBGuGVoBgAMMYGAAERhAeekfyC8r+svA3n8nUYxrilYXxAFkScz6sKENlgHkfc5AYmSyMc64dmglEOW4pOyOUSlZxS9Y4RVjIHeEcjy+uGZoJYBErmlTdk/5V0NQxnLkUgXiswrimqEVAIkcTQU685+BioJsyikAkDXbCVqHABWslcpopcJfopIuTIFZMSECQ0GAWBGJA2j13mQspw8MeRumayJczeNaorVMW7MxVqkUgIEox6Yo7CdEYAhQji+UuKxyWgcFA0SWWbompODaoRUD7K40Hri8dJIgIVjRt99fXEu0FhNKpWabbfulYJTthjGAXLqW5PVapRUYwGyuj1AcGGTBQAJiQgQGotDFQkFkBwkGcpZbiAK8nqsgEsC10te6FmglAESCeZFAltPiMGvQSAtALhYAsrSSmLDWLIg8Wt0iQgdoa7nXKupm5TuvwgW5NEFrFp6kilyEVGAWGERSvT0rsWgwkEtZeZ2g1YNnX1llRIHNYlq9Dy6Tc4EgciHcPzwRuP/++9Pp9KuvvuoNk1QKRAQIKjBSrABFx9l2P2jvgIFcCAFyxyNunTVj2h/dt82nad/8zg+G+ZPh0ur3+7/70HdnXTdrz54927dvf+qpp7q7u0dbzxJkaaVSESjYbFHbz3NKJSksIOuySFTSZQX8/lvWrPjQg3dvWr92UktTV/eFH/30kYu9fcP57XBpXbOmbebMGURi1apVq1at+upX/9czTz+9/ZGf79q1a8yjciKrjCgKPEvcF8o7tRggBiRIuCQqE2DNnjXjvrs2P3jvHTfMn6sosmmayWSiqaF2w/q2X/zqt8MpYbi0Pvjgg4xzYaXgpIhrLY31f/aZP//EJz6+e/fu7du3P/3Ms5cuXRrlRQjynHhRp55KDgbpdJUIQDbf6hnsGKw1FAysu3nlnzxw94Z1bfX1dY5tO44BV6gwDVcmId+7dWMlaa2urr5j8+0kXLgW4yoTJukpwSQu+2+5Ze0t69Z9/aunnvnts9t//os9e/aO/MIIwi2JBMqZ9YS1zGXlDgRlIwHhQjijE4F5c2Y9eM8dH7hr8/Vzr+MSt03TTPerkutTuCSrINW2kpaptK1YNG3KpLNdV1a/YdG6fv26GTNnuJbByQWTwRQmSZKwyYoLMya4Nqml4bOf+++f/PhHd+7c9cijjz373O96+4alQQCIBIQrhFuqrQNsVgwwWO/TbEfLJRJCjEyOqsKhDevaPnT/tnVrVtbVVlu27ZhpmVl+iWRNYpIMcIDAFZU5KcdsrK3efNuan2z/1RVLHhatD95/Hxgn12CMgbw0vgBjjKuMXC4M0pOOLklycMNt6zZsuPXUyZO/efq3jz72RPv+t69culegtxXKH0DrQB3wDgi5/quLgt+7AhbMn/PgvVvu2bpp7uyZnDPbNKx0ROW2ooBzCVwCGIQAIxCBQ1EVltZdV7l787qfPvLkFVvklWltbGzccNt6YWUYOeBK9pqLXQqXGeOycMiOuWZEcN/USY3/44uf+/QnP/YfO3c98ugvf/fiy9FobKjyCUTCpWy/s6jkkoNSqS3skR0vIEFCkHAvf7011VWb1q/54/vvXLt6WU11tW2ZrpngyAS5KyscXAI4iCBcMMpOWgBBEJd9CqKm6Vu2aP6cWdOOd54ZK60bb1s/eXKrldEVr7kVsZGj2LMRxrgqMUcSGaEnbV1SpNDmjetu33jric7Op37z7GNP/Lrj0DuD8SqyXU+IrHqW8VvSNSjrdCH7KYmsvA4RCSxaMO/Be7bcs3XDdTOnc8ZsM+2kuzVmKpwYl8A4gKx5gmXbfvYAAIFLqkyGaVZXBbfc2lYBWh+47wMggrCYoiBvU0DBlLIXKbLHTOIS4+SQExHxXof5Zk5p/PKXPv+ZT33s9zvefPTxJ198+fX+eKLAKuWttcxlDTDYEmXIcQoAjMj1rLXMZdXX1tx+25oPfmDrmpVLqsJh28oIIyKTHuK2JDEwzzxF1iVmzbOYU++MHIIpisYyumPL226/+V8efsK5bFh5BVqnTpmybm2bbegcAkzKznIgKr0wkXtHZAc/iAAwLktMSCIjMklHl/xSeNuWW7du3nj8vfd+/fRzv3zymSPHjgPw4k0ityhuHZTZPK2D9LgYuQRBJNyc11qy6Po/uueOu7asnzl9GgM5ZkKkzviZoXABzzwJIBdMADyXEfemKnnH3mwwBpY9KVc0hSVM01w0f9YN82YdPPLe6GndvOm2pqYGQ0+qipQjseiCy7qSVEqHRzTjXFI4OYrb5yZ6BfPNmd70lb/8/H/79Eff2LHz4UceD/h9wnUgRDmVA5kt7hqIXMo1a7ACwhWO01BX88cf2PpfHty2avnicDDgWDrpFxSk/MzmHGBSzr95I7gsSxwxMAbGQBxEYLl9Yd4CgUk+hWUyZtAf2Lph9eVpvdyMMMbYs089dsfmjbaR0nwhICthOZPMbdmXOUdMBLjZg8KnORUWthC2Q7LLw5K/1rJhGBlVVbmTCIme3J27jPvK39ocoV7YKpwENTtyfSaTqQqHOBPCjMsirrGMxAisaNJc9oCVHGT3vGjPAF7yDpfITvdG01wJH363c+uffskwraGou5y1zr5u1uoVSy0jI3MGzpF3CESFrcRsaWhNyHk2xjlXVHIh+pxkrwyfxqtclzMigmBe4UPSivLj3I6RICJBIqQJnjmnIqkwh/Gcz/ES5IUpiGzAxnPdNZ4z5LywMoDAOASYrGk8plvW/FlTFi+YvXv/kdHQeueWjbU11YaelNRAzsGW+qtyTUCRBytuy6LoHuQsl0myRDLpqptwhOxCAs9rqyj9eZk4oLQO3idCdmM+iqtM53nz9NpNfg4s5ayVsQK/xLPBMssJQj6uyjLLCxVgkk9T0knDFwjcuWHVaGiVJeneu7Y4tsVATFJzjRrZRsGkrBV4zV84gAPk55rJhebPvD6lneUUZVwzzmWVuSCzkJwelNlifoGi9gGAGEOIp4rUMN8pYIWDPJtULAI5YSWWlVTPeIlyFFPhJUHVfFKy3zLljWsWPxTwp/TMyGi94fp5S2+60TIzmqqAK1lCyYGdgHEJ+jlkeqB3I9MFMwonBWHBixaYDK5BqYIShlYPtR5qPbQGyAFwDRAQTqny5oKY7LG4HLNsqN6Bd0fzg4zFhKJgsN5Bll9WOChQyQr+iigXJOReCmKy6pPchG3Omtq84qZ5r+06MDJa7966KRTwZwxD0kIw+hB/B5G30H8QyfeQPgs7CVE6U7d4CmUxOMBlKGH4WhCYjPBchGbBPwVKFZgMYQFOSc+isC8S2WJmB0lxFZ14YAWGVFWAeM6JFcWqlJvmhXw8kL/xAJP9fiWRMWUlsO225SOjVVXVbXdstB3B4wfZwR8jfgiZbm9MpETlhwlyYMZgxNB/FHgZnEFrRGg2ahai5kb4WsEVCCvX0Sp2WZcV2QKzrNxy84QWuGalNpu3guIDzzsxEM/63oIs5E4toGh+hfWZlrxu5Q211aFYPDVcWpfedOON82dbtu07sx3nXoAMMEAaNo8DwQrXCBCMS8hcQu9OyBpCs1G/HLVL4WsGOMgqUl5RwmNJQrbIa5U4MZQ2HFa6L9PWHJvFzT8byeZdmWe2yPcLmKT6VYrp1pTm2jVL5z/32iDLwAan6rOf+si6taudZLev8/uM9MtGt6NC3mLIRaYXsQ707kD6JJgMrR5czWW1Sw22oLmicFDwhKUDt1lac28ylN+M4o0V3R42YI+8TXg/55ysVNqQZcVx3f/3+lsDr28Qaw0GA1s23mLarhTbzY3eETT20cEr30mjdw/69iA0E03rUbccchCuVS61JRRjQGCAIXWgzGAHD12pYLnFCpv3ltnvQPUFVClhWmbb4tnNDTUX+/rLrmkQa13btvxzn/pTx3H8p34o6acrb6qDIn91Vj+iB9D/NiDga4akFSVSS0W2kJbNezYxiCWiKH4o2CYKRoqylyh6M49SlyjJZCXTGVETDhzpPH/kRFfZ1Qxiivdu3SjLEqwos/rAclW9avDsJnMBpx7Fse8hsjuX3i7rK3sKkGfcBTyP5w6yCe99J7sXInec/0L+uLgXXlaOyKVmBFxTljiERcLdesvCgYvCyq21vq7277/2xYBPcUmyGjba1ctJDjA3ye1EiQ8Yb3iWaycQexv6afiaoNYOYrPFCuvZLyu24sGkEwXnM0iSM29BeYvOvvT8mG0Z6VS8Pxrpj6dcIsZITGqpf+a1t+NJvbj65dpaU1PTr4sWpgb8ZJrMrl5pVa9mdkxJHVajv1fi+ySjuxCNjDe8U/QfReokmtajcT0kDcIq19ZiOkRx+82FBPluqxdpZV96LTUfsRYrbD4lyMEIwrIsR8/YaUOYFhPEOGc+nyakQHfMfvPAKcMub86DcOMPBJctWXzX1k0bb1k5e3qzyoVlmrZgIMacmJI8rMb+Q020S2bP1eMXgABC0zH5bgSmQtil6RgM5rtQFJaiaPVmPmWFLI8exWVJLAYIsmxHN9y0CdOWXMEkiWmaRrK/O+buPnT2+df37W7viEUHGQy9HCWBYGjZ0sXbNm/YtG7ldVMbFeaYpukIBjBmx+TUEV//m2qyXTIvXSV+CZA0tNyO+lUA5TJqZfkt76v5lFXRz7MdqhyhJblBno1bGSCEabm6ibTJTVcWgnHONE2D7L8QFzs7zjz/RvvetzqikcsNLQ+LiVAovHz50js337rx5uUzJ9fJcEzTyPOrpo9o8Z1a8m3J6h13fj2aapegdQskX26tvCgIAkoNtpjZgoWiQKuXnQFBkGmLtMl1SzZdxSUmsSybPQnadfDM82+8tbu9IxrpHU41R0ZAuKp6xfKl225ff9vNS6a31Mhk5+2X21FFP+KL79bSHZLVN778CiA4FVPugVoHYZcSStkeUZmdUqm1slyClYRpU9qS05ZquqogLnFoqgol0JOgXYfOvfBG++72jkjfsNgsPuFoUFVds3LF0m2333rr6oXTmqs4WZZh2h6/TlRNH/Un92rpg5IdGdt5hgYBai0m3w3/lFzWsTgILRNZrw4sqwwgEmTZSFtK2tZMVxPEOSefpkEO9CRo9+FzL/x+/659HZG+Uc6AGuvlVtfUrlq5bNumdetWLpjaFOaukbNfcCem6cd8qX0+/bBkRytxtlIQIPsx6S6EZmXDg9IkbHZNYtZIyWPTdFjaUnXbbwgtZ5sKU4IXE9j9zrnn39i/u72jr3e088lyqNiF1tTWrV65bNumW25ZccOUBj9cwzQMhyQQSU5Myxzzp9p9maOSE6vkaT0n1roFoTmlNlv8DUFCmLaUtrW07TeFTxCXGGmaytTgxQT2HDn//Bv7d+07MHY286i8+NXW1betXHbnprVrl82bXOeHq5uG6RAHSLKjmvFuIH3AZxyR3HhlzkcAV9C6BaHZEFbuLQJAwjVsnra1tBOwXJ8LLjFomsKU4KUk9h7pfmHH2zv3Hui9dLEyNSnCOMZEdfUNa1Yvv3PjzTcvnt1aq1qZpG074DKE3dLzkM94r6I2q6J1CwLTiz2YcO2uRH1a1HLmSpxrgareFPYevfDCjgM79x64dLGnQqcfBFcjlG9oaFq9atmXPrF1drNmu7y2/8ma+PPjo7NboTVCONm3GExTnE22giu9Kf7dR/fs2nfgYs+Fip54cIx31g8A+vouvXfkQLWccYgH0vuqEy+NSwLXyaDnFVj9YJRPoGiq0+S7IFwnLOvxC+9eHU4xtoz/cFFbFfzJ331mxtRWlulqivxUEplxaSQMcE1YUQSn5YYLCUQ+2XZs02Hhm2+asWP/yUhcv3JRY8a408oY+9YXP7ipbaFppJqjD2t29zgKDwPsFIQF/6RszhAEICDrKZ35/eEFsxqf33ncssd90fG40/qRe9d+/sO3G5Zbl3gmnNk/7mLOACsCOQC1Nve4IcE480vpaEqZ3FRXHVJff+vUOFdinGldcv2M7//Vh7ikBvX2huSzjF2tfLjRC18zJBVwvTFwWRYK9IjuWzS7uTemHz5ZsRB1UIwjrXXVwX/+2kcmN9dzs6s18XNO5vidqxzChZNCYFJhDJHIp9iObacs36oFre3HLlzoG2QgulIYL1o5Y9/6wn23rZxvGqnW5KOqc+kqpWU9MMBOg6vQaiGc7AgCQ1DNJHXGJf+S2Y0vt59OG5VcDlmM8aL1o/e0ffZD6zOW25j+Xdg8dFU59cAAKw5/E7iUHxtnHAFFj6TkxprQpMbgK+1nhRgXXRoXWpfdMP2hv7iPMTlk7G/KvPg+cOpBuCAbvgbAzU/LlWWhwuhLaXOn1tiOaD82LiJbeVrra0I//OsPtjTUSGbXJP1JjiHn1g4fBObCx71JicOHJwVqFSStMEWDyKfZruP069ryufXHz/Wf7kmOvYZlqDCtnLNvf+6utUuvs8zU5MyTmohc+TfDQIJd183XVtNJjhGGnEQQJnz12bHu7KA3hTQjlWGuUJfNrdtxsKc/VYF7X4wK0/qxu1f+2QOrM6bbYr4Udt6tSJk2AmfZBh2NAAujfKLDFcAA14AczAVb3ui3YJyCqh5JKOGgOnty+OX9F2ynkg8oqyStyxdM/fvP30lMqrY7mqw3KlXsebQl0crI1NHoR9THRphRJIAs+Gqy8oqcyCpC40ZvXJveHPCr0puHRzascnlUjNaGmuA//dU9TXXVitU9xXp2xDo4BGI0s4dukmVFVv2upaepqYadldhIAiMGuBYUPyRvAVQu3iLh1yzhuNGUsmhWuCdqvNtVMZGtDK0SZ9/+7Ja2hdMcMznV+q1K5VO9RgcLwTNiraJoz3ck955yls/UdJMsBGt5F8NIAiMCIKAGQE7OYL2NQj4jpTPDkpbPDe873t8br4zIVobWT9y97JP3LDFMp9V5vYoq1eNmZ90VGTREDPVLP3jx1Z2Hbm5b0RpIJu2QDCvEoyMpCRA2VB84gRzABhwv6mJMhLRMJKFqsnTjjMArB6KGVQGRrQCtqxZM+daf3yZIqnEONou9Yy/QQ8Sd2ePMUzXtO788tq/juOvYh08n7ly3ULEjSVEX5n0qN0ZQHBE4QeagHKdwAAfkyIrjk81Lca2lRmmslt84FB84aDtSjJXWxtrgD/5iS311UHW6p4lXRhwADQGTQqesFYqqvPKO+Y+PvE4kAPT1RVJUs2Fxo5nRdVFdJ1/gbNiWxQC4UBhgAhZgASZgAzbI8fsM4VJfUp0/WdNN9+DpseZkx0SrJPFvf+bWlTe0OlZqOr2soTKST2Cn7SWGqIrZvr/84Y54vOD63zl+dsacBTe0WClDEiTVKMN9GAQACIJsg9s5g/U2G8wCOeFAOq3L6Yy89DrtaFemKzKmdMGYBl0+vm3hllXTM4bZSrsDGMkVXha99rSY1aCoyv95uvPc+ZJhEhLOd37y4ul0k8rNi2ZzxGoaQc+YADu3uqx4E4AQnNmzWroVnpK58+X7aifVjekJYaO31tU3TvrGJ9oEsTpxpIV1jKUSxciI0CljoSrLb7wn/uHnO2jAv9DJ6OnOXtq6ZiYykYRTXadEZD68YM67AXLpxKwiyIrwK+bFqFwToBmN/LXDpjta7zVKWptrg//7C+trw37N7ZkuvclRmS4KgZ/M3GC4wYQT/PKP9sX6B4/8z3f3SOFpa+aqum4YQmvwRYdrsjQ0rQQQ/D4HwrnUL2Y2urIk9p4Y5XWNhlZZ4t/6dNuyeQ2ulZol7VBZhQbdGHrMKT3GJJ9P/YdnL7751rHLfLfj3a6FixbPDEcSpswhqrT0cM/C8wsrSk6dR1XQSet2Im0vnCbOR9E5qrkZo9HWj985f9Oy1kzGnCy95WeVifwBpJ3QeX2KT3Z3nMCTLw6+Oi8P28x8+2c7+9gMmTLnUnVxMzBckXUGW7UhChtjmDtFaDKRiy9sYXNaRnMtI7bWpddP/btPLXcsUxAx2CEek1gF+qkC/ERytumqKVH11z85FIld+W4lEvGLRvj2pXVWui9l+xr8aWk4Y2UMkIdeZMIAwsUI+uLMcRFWae7U0IsdrjvCbPeIrTWq4534ZH+4hgkjYk9512hLuA0jLaQcDN16c9wMaKr845d6T545P8zfvfjavicO+INBLWWIU7HwsAw299C9QWyWwbJw5CSOnWa2RTKRG75+b3SRSyNmacTW2h9PPPf7w0r93KXzW5lx0XDkqNMCICTHR9ZPz4MhaQVPJqZqktjdFfrez9tH8pQw6jjeu2rFTc3y6f4MfLIb0obhZNhgXoujP4nDJ1kkwRmRX9N6fau/+ZT79ItvjfSpZRidy3Jsa+e+g8f7fCuWLq6VopZlxp26tBsKyYnhxjpFcIkf759qOUxntV95+L2+yJBPzBoUlmUcvcC2tE3imZP9GdQHSLlixMkHLIslnL2Io6eZYUEiClQ37+xf/pV/e+/YuydGejkeRh+3njp99qW3umdcv2JOM3P0vrQTiNl1Gjf88uBPLhgcDOcS9Zf0kN+n/vOr9ut7j4+iJn19EV2etm6+m0kldIs1hYfxT8nywQCHaeHoaZy5yEmQwsFqb/zZ/inff2RvMj6SbE4pxtR5TSbiz+84bIfmLF8wVTZ7TIeiVp0jpLCS5nxY3iNu+Dr76zXJab9Q/71fHBLuKL3fkc7emfOWzavp6U/ZnKE2dKWVj7k1WdF+HOpk0QTjRH6fv0dr+8avjedebSd3TJ3XsaZaSDhvdRw90MWXLl3WpMYsI5mwwgk7EFJ0VboCR47g70ZqLUeYvP6rj1y41Dey5l9aD/dAp75+9Y1V7tlomlX74fddllkJRDjTjSNnmGlBAgVqWndEl3714WMnOk+OvhqF4iuB890XXth7rmX2iuunqK7ek3HkSCascCekmkN6Z4bTsWBvSgoElH/dob2yp3OMdcjo6dPx6s3L6p1UbyLDmqsgDXVxHIaNd07iTA8jQSpnVLfox+0t//iLPelkZcLwig26ZPT0SzuP9MszVy6aqVldluVEjYDh8CrNlAYKAkNMlzojiipnDvRO/u5jJ12nAhNMzl/oleuuXzU1nUzoloOmmsG+xHEphoOdLJZgnCjgD5z3tf3Nr1Mv7dhPojIDRajwyCuJw0dP7OmkhUtWTQpGLD2SsNRYRgkqtk8pinsYbAdHLjLbMS25+euPGT2XRu8cynD4RN/Cm5ZNVbqiCfKpqCoWWQZBONHFjp1llg0Z5K+d/Fp0ydf+/cjp06crVQEPlZ9+0dvb+7td56qmrVw0Q6X0qYzt9qXBmQj7Csv4Tvay3hQF/P5/293y0q5KTot0Xftwl7tx1Vw10xVNsoYqaJq3bAO6gYOd7HwfANIkJuoX/6i98YeP7zbSiSsWO1KMy2Qh28rs2HOsy565csnsoHPaMs1omqUtVPkgK+hLoLOXaRIO9c9+6JdnnUo0/2Ik4vE+0brhBl8mEUtnWEs9uISLEXScYHEdEigYCp1V277+ZPy1nW+P07+FG7+JmPRe55nfH8W8m9ZPr07YeiJlskiKSRyne5ltk6O2fuMJ58LFykx7KcPJsxfrpy++qSHSnzCFYLEEjp5ljoDCyF8/7YWLi/7m3w+eO3duPE7tYXynDff3x17YdU5qWr1kTg1Lnzcs9CWY7SDg9/3f/a0v7By/WdHU0RlbvWJJI85GkoimGAP5ZG7XLf2nndU//tVu0xjHya24CpPcXcfae+D48cSU5cuWVotuy7RUiR1NXvfQ4+ccp8Izn4phW8a7vcqWldOYfoERgqGqTrnta4/3vrn3ICqUdL8MrsZKFwBnz51/9VBm+oL1cxuMjKt+8zfifE/Fxr6GQl8kmvHNXD9HSP7a57pv/NvtHd3dw82N/SGBy75P/cmW//rA6qv1xAwwSf2fn77z3ttXXBP/FGiccTXW2L1/p5vABCYwgQlMYAL/2fH/AdkCEQl+/Ar/AAAAAElFTkSuQmCCCg==', 87 icon: 'data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAIAAAAAvxIqAAAD8GlDQ1BJQ0MgUHJvZmlsZQAAKJGNVd1v21QUP4lvXKQWP6Cxjg4Vi69VU1u5GxqtxgZJk6XpQhq5zdgqpMl1bhpT1za2021Vn/YCbwz4A4CyBx6QeEIaDMT2su0BtElTQRXVJKQ9dNpAaJP2gqpwrq9Tu13GuJGvfznndz7v0TVAx1ea45hJGWDe8l01n5GPn5iWO1YhCc9BJ/RAp6Z7TrpcLgIuxoVH1sNfIcHeNwfa6/9zdVappwMknkJsVz19HvFpgJSpO64PIN5G+fAp30Hc8TziHS4miFhheJbjLMMzHB8POFPqKGKWi6TXtSriJcT9MzH5bAzzHIK1I08t6hq6zHpRdu2aYdJYuk9Q/881bzZa8Xrx6fLmJo/iu4/VXnfH1BB/rmu5ScQvI77m+BkmfxXxvcZcJY14L0DymZp7pML5yTcW61PvIN6JuGr4halQvmjNlCa4bXJ5zj6qhpxrujeKPYMXEd+q00KR5yNAlWZzrF+Ie+uNsdC/MO4tTOZafhbroyXuR3Df08bLiHsQf+ja6gTPWVimZl7l/oUrjl8OcxDWLbNU5D6JRL2gxkDu16fGuC054OMhclsyXTOOFEL+kmMGs4i5kfNuQ62EnBuam8tzP+Q+tSqhz9SuqpZlvR1EfBiOJTSgYMMM7jpYsAEyqJCHDL4dcFFTAwNMlFDUUpQYiadhDmXteeWAw3HEmA2s15k1RmnP4RHuhBybdBOF7MfnICmSQ2SYjIBM3iRvkcMki9IRcnDTthyLz2Ld2fTzPjTQK+Mdg8y5nkZfFO+se9LQr3/09xZr+5GcaSufeAfAww60mAPx+q8u/bAr8rFCLrx7s+vqEkw8qb+p26n11Aruq6m1iJH6PbWGv1VIY25mkNE8PkaQhxfLIF7DZXx80HD/A3l2jLclYs061xNpWCfoB6WHJTjbH0mV35Q/lRXlC+W8cndbl9t2SfhU+Fb4UfhO+F74GWThknBZ+Em4InwjXIyd1ePnY/Psg3pb1TJNu15TMKWMtFt6ScpKL0ivSMXIn9QtDUlj0h7U7N48t3i8eC0GnMC91dX2sTivgloDTgUVeEGHLTizbf5Da9JLhkhh29QOs1luMcScmBXTIIt7xRFxSBxnuJWfuAd1I7jntkyd/pgKaIwVr3MgmDo2q8x6IdB5QH162mcX7ajtnHGN2bov71OU1+U0fqqoXLD0wX5ZM005UHmySz3qLtDqILDvIL+iH6jB9y2x83ok898GOPQX3lk3Itl0A+BrD6D7tUjWh3fis58BXDigN9yF8M5PJH4B8Gr79/F/XRm8m241mw/wvur4BGDj42bzn+Vmc+NL9L8GcMn8F1kAcXjEKMJAAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrlPw1BAAAd7klEQVR4nO19eZQV13nn797a3tr7yg5ikxCIHRohkACBEFqsJY4z8T52nPHYPp74JJ54bMfOsRMf2Z44OZ7EJ16iDLIsS5ZlydJY+2Ii1haiAQFCNGvTNHS/9/pt9Wq93/xRb+9u6OU1wif9O3Wq6223bv3qu7/vu9+9txqYwAQmMIEJTGACE5jABCbwnxTs/a4AHnjggY0bNwohxl4U5/xnP/tZe3v72Iv6g8fDDz9MlcOHP/zh9/uCAEB+vysA27YBkHAh7KK3aSRlMIDAFcZl13UrW73R4f2nNQvXYGYMjANUROkVyWXZvbBIDcLXOH4VHBGuGVoBgAMMYGAAERhAeekfyC8r+svA3n8nUYxrilYXxAFkScz6sKENlgHkfc5AYmSyMc64dmglEOW4pOyOUSlZxS9Y4RVjIHeEcjy+uGZoJYBErmlTdk/5V0NQxnLkUgXiswrimqEVAIkcTQU685+BioJsyikAkDXbCVqHABWslcpopcJfopIuTIFZMSECQ0GAWBGJA2j13mQspw8MeRumayJczeNaorVMW7MxVqkUgIEox6Yo7CdEYAhQji+UuKxyWgcFA0SWWbompODaoRUD7K40Hri8dJIgIVjRt99fXEu0FhNKpWabbfulYJTthjGAXLqW5PVapRUYwGyuj1AcGGTBQAJiQgQGotDFQkFkBwkGcpZbiAK8nqsgEsC10te6FmglAESCeZFAltPiMGvQSAtALhYAsrSSmLDWLIg8Wt0iQgdoa7nXKupm5TuvwgW5NEFrFp6kilyEVGAWGERSvT0rsWgwkEtZeZ2g1YNnX1llRIHNYlq9Dy6Tc4EgciHcPzwRuP/++9Pp9KuvvuoNk1QKRAQIKjBSrABFx9l2P2jvgIFcCAFyxyNunTVj2h/dt82nad/8zg+G+ZPh0ur3+7/70HdnXTdrz54927dvf+qpp7q7u0dbzxJkaaVSESjYbFHbz3NKJSksIOuySFTSZQX8/lvWrPjQg3dvWr92UktTV/eFH/30kYu9fcP57XBpXbOmbebMGURi1apVq1at+upX/9czTz+9/ZGf79q1a8yjciKrjCgKPEvcF8o7tRggBiRIuCQqE2DNnjXjvrs2P3jvHTfMn6sosmmayWSiqaF2w/q2X/zqt8MpYbi0Pvjgg4xzYaXgpIhrLY31f/aZP//EJz6+e/fu7du3P/3Ms5cuXRrlRQjynHhRp55KDgbpdJUIQDbf6hnsGKw1FAysu3nlnzxw94Z1bfX1dY5tO44BV6gwDVcmId+7dWMlaa2urr5j8+0kXLgW4yoTJukpwSQu+2+5Ze0t69Z9/aunnvnts9t//os9e/aO/MIIwi2JBMqZ9YS1zGXlDgRlIwHhQjijE4F5c2Y9eM8dH7hr8/Vzr+MSt03TTPerkutTuCSrINW2kpaptK1YNG3KpLNdV1a/YdG6fv26GTNnuJbByQWTwRQmSZKwyYoLMya4Nqml4bOf+++f/PhHd+7c9cijjz373O96+4alQQCIBIQrhFuqrQNsVgwwWO/TbEfLJRJCjEyOqsKhDevaPnT/tnVrVtbVVlu27ZhpmVl+iWRNYpIMcIDAFZU5KcdsrK3efNuan2z/1RVLHhatD95/Hxgn12CMgbw0vgBjjKuMXC4M0pOOLklycMNt6zZsuPXUyZO/efq3jz72RPv+t69culegtxXKH0DrQB3wDgi5/quLgt+7AhbMn/PgvVvu2bpp7uyZnDPbNKx0ROW2ooBzCVwCGIQAIxCBQ1EVltZdV7l787qfPvLkFVvklWltbGzccNt6YWUYOeBK9pqLXQqXGeOycMiOuWZEcN/USY3/44uf+/QnP/YfO3c98ugvf/fiy9FobKjyCUTCpWy/s6jkkoNSqS3skR0vIEFCkHAvf7011VWb1q/54/vvXLt6WU11tW2ZrpngyAS5KyscXAI4iCBcMMpOWgBBEJd9CqKm6Vu2aP6cWdOOd54ZK60bb1s/eXKrldEVr7kVsZGj2LMRxrgqMUcSGaEnbV1SpNDmjetu33jric7Op37z7GNP/Lrj0DuD8SqyXU+IrHqW8VvSNSjrdCH7KYmsvA4RCSxaMO/Be7bcs3XDdTOnc8ZsM+2kuzVmKpwYl8A4gKx5gmXbfvYAAIFLqkyGaVZXBbfc2lYBWh+47wMggrCYoiBvU0DBlLIXKbLHTOIS4+SQExHxXof5Zk5p/PKXPv+ZT33s9zvefPTxJ198+fX+eKLAKuWttcxlDTDYEmXIcQoAjMj1rLXMZdXX1tx+25oPfmDrmpVLqsJh28oIIyKTHuK2JDEwzzxF1iVmzbOYU++MHIIpisYyumPL226/+V8efsK5bFh5BVqnTpmybm2bbegcAkzKznIgKr0wkXtHZAc/iAAwLktMSCIjMklHl/xSeNuWW7du3nj8vfd+/fRzv3zymSPHjgPw4k0ityhuHZTZPK2D9LgYuQRBJNyc11qy6Po/uueOu7asnzl9GgM5ZkKkzviZoXABzzwJIBdMADyXEfemKnnH3mwwBpY9KVc0hSVM01w0f9YN82YdPPLe6GndvOm2pqYGQ0+qipQjseiCy7qSVEqHRzTjXFI4OYrb5yZ6BfPNmd70lb/8/H/79Eff2LHz4UceD/h9wnUgRDmVA5kt7hqIXMo1a7ACwhWO01BX88cf2PpfHty2avnicDDgWDrpFxSk/MzmHGBSzr95I7gsSxwxMAbGQBxEYLl9Yd4CgUk+hWUyZtAf2Lph9eVpvdyMMMbYs089dsfmjbaR0nwhICthOZPMbdmXOUdMBLjZg8KnORUWthC2Q7LLw5K/1rJhGBlVVbmTCIme3J27jPvK39ocoV7YKpwENTtyfSaTqQqHOBPCjMsirrGMxAisaNJc9oCVHGT3vGjPAF7yDpfITvdG01wJH363c+uffskwraGou5y1zr5u1uoVSy0jI3MGzpF3CESFrcRsaWhNyHk2xjlXVHIh+pxkrwyfxqtclzMigmBe4UPSivLj3I6RICJBIqQJnjmnIqkwh/Gcz/ES5IUpiGzAxnPdNZ4z5LywMoDAOASYrGk8plvW/FlTFi+YvXv/kdHQeueWjbU11YaelNRAzsGW+qtyTUCRBytuy6LoHuQsl0myRDLpqptwhOxCAs9rqyj9eZk4oLQO3idCdmM+iqtM53nz9NpNfg4s5ayVsQK/xLPBMssJQj6uyjLLCxVgkk9T0knDFwjcuWHVaGiVJeneu7Y4tsVATFJzjRrZRsGkrBV4zV84gAPk55rJhebPvD6lneUUZVwzzmWVuSCzkJwelNlifoGi9gGAGEOIp4rUMN8pYIWDPJtULAI5YSWWlVTPeIlyFFPhJUHVfFKy3zLljWsWPxTwp/TMyGi94fp5S2+60TIzmqqAK1lCyYGdgHEJ+jlkeqB3I9MFMwonBWHBixaYDK5BqYIShlYPtR5qPbQGyAFwDRAQTqny5oKY7LG4HLNsqN6Bd0fzg4zFhKJgsN5Bll9WOChQyQr+iigXJOReCmKy6pPchG3Omtq84qZ5r+06MDJa7966KRTwZwxD0kIw+hB/B5G30H8QyfeQPgs7CVE6U7d4CmUxOMBlKGH4WhCYjPBchGbBPwVKFZgMYQFOSc+isC8S2WJmB0lxFZ14YAWGVFWAeM6JFcWqlJvmhXw8kL/xAJP9fiWRMWUlsO225SOjVVXVbXdstB3B4wfZwR8jfgiZbm9MpETlhwlyYMZgxNB/FHgZnEFrRGg2ahai5kb4WsEVCCvX0Sp2WZcV2QKzrNxy84QWuGalNpu3guIDzzsxEM/63oIs5E4toGh+hfWZlrxu5Q211aFYPDVcWpfedOON82dbtu07sx3nXoAMMEAaNo8DwQrXCBCMS8hcQu9OyBpCs1G/HLVL4WsGOMgqUl5RwmNJQrbIa5U4MZQ2HFa6L9PWHJvFzT8byeZdmWe2yPcLmKT6VYrp1pTm2jVL5z/32iDLwAan6rOf+si6taudZLev8/uM9MtGt6NC3mLIRaYXsQ707kD6JJgMrR5czWW1Sw22oLmicFDwhKUDt1lac28ylN+M4o0V3R42YI+8TXg/55ysVNqQZcVx3f/3+lsDr28Qaw0GA1s23mLarhTbzY3eETT20cEr30mjdw/69iA0E03rUbccchCuVS61JRRjQGCAIXWgzGAHD12pYLnFCpv3ltnvQPUFVClhWmbb4tnNDTUX+/rLrmkQa13btvxzn/pTx3H8p34o6acrb6qDIn91Vj+iB9D/NiDga4akFSVSS0W2kJbNezYxiCWiKH4o2CYKRoqylyh6M49SlyjJZCXTGVETDhzpPH/kRFfZ1Qxiivdu3SjLEqwos/rAclW9avDsJnMBpx7Fse8hsjuX3i7rK3sKkGfcBTyP5w6yCe99J7sXInec/0L+uLgXXlaOyKVmBFxTljiERcLdesvCgYvCyq21vq7277/2xYBPcUmyGjba1ctJDjA3ye1EiQ8Yb3iWaycQexv6afiaoNYOYrPFCuvZLyu24sGkEwXnM0iSM29BeYvOvvT8mG0Z6VS8Pxrpj6dcIsZITGqpf+a1t+NJvbj65dpaU1PTr4sWpgb8ZJrMrl5pVa9mdkxJHVajv1fi+ySjuxCNjDe8U/QfReokmtajcT0kDcIq19ZiOkRx+82FBPluqxdpZV96LTUfsRYrbD4lyMEIwrIsR8/YaUOYFhPEOGc+nyakQHfMfvPAKcMub86DcOMPBJctWXzX1k0bb1k5e3qzyoVlmrZgIMacmJI8rMb+Q020S2bP1eMXgABC0zH5bgSmQtil6RgM5rtQFJaiaPVmPmWFLI8exWVJLAYIsmxHN9y0CdOWXMEkiWmaRrK/O+buPnT2+df37W7viEUHGQy9HCWBYGjZ0sXbNm/YtG7ldVMbFeaYpukIBjBmx+TUEV//m2qyXTIvXSV+CZA0tNyO+lUA5TJqZfkt76v5lFXRz7MdqhyhJblBno1bGSCEabm6ibTJTVcWgnHONE2D7L8QFzs7zjz/RvvetzqikcsNLQ+LiVAovHz50js337rx5uUzJ9fJcEzTyPOrpo9o8Z1a8m3J6h13fj2aapegdQskX26tvCgIAkoNtpjZgoWiQKuXnQFBkGmLtMl1SzZdxSUmsSybPQnadfDM82+8tbu9IxrpHU41R0ZAuKp6xfKl225ff9vNS6a31Mhk5+2X21FFP+KL79bSHZLVN778CiA4FVPugVoHYZcSStkeUZmdUqm1slyClYRpU9qS05ZquqogLnFoqgol0JOgXYfOvfBG++72jkjfsNgsPuFoUFVds3LF0m2333rr6oXTmqs4WZZh2h6/TlRNH/Un92rpg5IdGdt5hgYBai0m3w3/lFzWsTgILRNZrw4sqwwgEmTZSFtK2tZMVxPEOSefpkEO9CRo9+FzL/x+/659HZG+Uc6AGuvlVtfUrlq5bNumdetWLpjaFOaukbNfcCem6cd8qX0+/bBkRytxtlIQIPsx6S6EZmXDg9IkbHZNYtZIyWPTdFjaUnXbbwgtZ5sKU4IXE9j9zrnn39i/u72jr3e088lyqNiF1tTWrV65bNumW25ZccOUBj9cwzQMhyQQSU5Myxzzp9p9maOSE6vkaT0n1roFoTmlNlv8DUFCmLaUtrW07TeFTxCXGGmaytTgxQT2HDn//Bv7d+07MHY286i8+NXW1betXHbnprVrl82bXOeHq5uG6RAHSLKjmvFuIH3AZxyR3HhlzkcAV9C6BaHZEFbuLQJAwjVsnra1tBOwXJ8LLjFomsKU4KUk9h7pfmHH2zv3Hui9dLEyNSnCOMZEdfUNa1Yvv3PjzTcvnt1aq1qZpG074DKE3dLzkM94r6I2q6J1CwLTiz2YcO2uRH1a1HLmSpxrgareFPYevfDCjgM79x64dLGnQqcfBFcjlG9oaFq9atmXPrF1drNmu7y2/8ma+PPjo7NboTVCONm3GExTnE22giu9Kf7dR/fs2nfgYs+Fip54cIx31g8A+vouvXfkQLWccYgH0vuqEy+NSwLXyaDnFVj9YJRPoGiq0+S7IFwnLOvxC+9eHU4xtoz/cFFbFfzJ331mxtRWlulqivxUEplxaSQMcE1YUQSn5YYLCUQ+2XZs02Hhm2+asWP/yUhcv3JRY8a408oY+9YXP7ipbaFppJqjD2t29zgKDwPsFIQF/6RszhAEICDrKZ35/eEFsxqf33ncssd90fG40/qRe9d+/sO3G5Zbl3gmnNk/7mLOACsCOQC1Nve4IcE480vpaEqZ3FRXHVJff+vUOFdinGldcv2M7//Vh7ikBvX2huSzjF2tfLjRC18zJBVwvTFwWRYK9IjuWzS7uTemHz5ZsRB1UIwjrXXVwX/+2kcmN9dzs6s18XNO5vidqxzChZNCYFJhDJHIp9iObacs36oFre3HLlzoG2QgulIYL1o5Y9/6wn23rZxvGqnW5KOqc+kqpWU9MMBOg6vQaiGc7AgCQ1DNJHXGJf+S2Y0vt59OG5VcDlmM8aL1o/e0ffZD6zOW25j+Xdg8dFU59cAAKw5/E7iUHxtnHAFFj6TkxprQpMbgK+1nhRgXXRoXWpfdMP2hv7iPMTlk7G/KvPg+cOpBuCAbvgbAzU/LlWWhwuhLaXOn1tiOaD82LiJbeVrra0I//OsPtjTUSGbXJP1JjiHn1g4fBObCx71JicOHJwVqFSStMEWDyKfZruP069ryufXHz/Wf7kmOvYZlqDCtnLNvf+6utUuvs8zU5MyTmohc+TfDQIJd183XVtNJjhGGnEQQJnz12bHu7KA3hTQjlWGuUJfNrdtxsKc/VYF7X4wK0/qxu1f+2QOrM6bbYr4Udt6tSJk2AmfZBh2NAAujfKLDFcAA14AczAVb3ui3YJyCqh5JKOGgOnty+OX9F2ynkg8oqyStyxdM/fvP30lMqrY7mqw3KlXsebQl0crI1NHoR9THRphRJIAs+Gqy8oqcyCpC40ZvXJveHPCr0puHRzascnlUjNaGmuA//dU9TXXVitU9xXp2xDo4BGI0s4dukmVFVv2upaepqYadldhIAiMGuBYUPyRvAVQu3iLh1yzhuNGUsmhWuCdqvNtVMZGtDK0SZ9/+7Ja2hdMcMznV+q1K5VO9RgcLwTNiraJoz3ck955yls/UdJMsBGt5F8NIAiMCIKAGQE7OYL2NQj4jpTPDkpbPDe873t8br4zIVobWT9y97JP3LDFMp9V5vYoq1eNmZ90VGTREDPVLP3jx1Z2Hbm5b0RpIJu2QDCvEoyMpCRA2VB84gRzABhwv6mJMhLRMJKFqsnTjjMArB6KGVQGRrQCtqxZM+daf3yZIqnEONou9Yy/QQ8Sd2ePMUzXtO788tq/juOvYh08n7ly3ULEjSVEX5n0qN0ZQHBE4QeagHKdwAAfkyIrjk81Lca2lRmmslt84FB84aDtSjJXWxtrgD/5iS311UHW6p4lXRhwADQGTQqesFYqqvPKO+Y+PvE4kAPT1RVJUs2Fxo5nRdVFdJ1/gbNiWxQC4UBhgAhZgASZgAzbI8fsM4VJfUp0/WdNN9+DpseZkx0SrJPFvf+bWlTe0OlZqOr2soTKST2Cn7SWGqIrZvr/84Y54vOD63zl+dsacBTe0WClDEiTVKMN9GAQACIJsg9s5g/U2G8wCOeFAOq3L6Yy89DrtaFemKzKmdMGYBl0+vm3hllXTM4bZSrsDGMkVXha99rSY1aCoyv95uvPc+ZJhEhLOd37y4ul0k8rNi2ZzxGoaQc+YADu3uqx4E4AQnNmzWroVnpK58+X7aifVjekJYaO31tU3TvrGJ9oEsTpxpIV1jKUSxciI0CljoSrLb7wn/uHnO2jAv9DJ6OnOXtq6ZiYykYRTXadEZD68YM67AXLpxKwiyIrwK+bFqFwToBmN/LXDpjta7zVKWptrg//7C+trw37N7ZkuvclRmS4KgZ/M3GC4wYQT/PKP9sX6B4/8z3f3SOFpa+aqum4YQmvwRYdrsjQ0rQQQ/D4HwrnUL2Y2urIk9p4Y5XWNhlZZ4t/6dNuyeQ2ulZol7VBZhQbdGHrMKT3GJJ9P/YdnL7751rHLfLfj3a6FixbPDEcSpswhqrT0cM/C8wsrSk6dR1XQSet2Im0vnCbOR9E5qrkZo9HWj985f9Oy1kzGnCy95WeVifwBpJ3QeX2KT3Z3nMCTLw6+Oi8P28x8+2c7+9gMmTLnUnVxMzBckXUGW7UhChtjmDtFaDKRiy9sYXNaRnMtI7bWpddP/btPLXcsUxAx2CEek1gF+qkC/ERytumqKVH11z85FIld+W4lEvGLRvj2pXVWui9l+xr8aWk4Y2UMkIdeZMIAwsUI+uLMcRFWae7U0IsdrjvCbPeIrTWq4534ZH+4hgkjYk9512hLuA0jLaQcDN16c9wMaKr845d6T545P8zfvfjavicO+INBLWWIU7HwsAw299C9QWyWwbJw5CSOnWa2RTKRG75+b3SRSyNmacTW2h9PPPf7w0r93KXzW5lx0XDkqNMCICTHR9ZPz4MhaQVPJqZqktjdFfrez9tH8pQw6jjeu2rFTc3y6f4MfLIb0obhZNhgXoujP4nDJ1kkwRmRX9N6fau/+ZT79ItvjfSpZRidy3Jsa+e+g8f7fCuWLq6VopZlxp26tBsKyYnhxjpFcIkf759qOUxntV95+L2+yJBPzBoUlmUcvcC2tE3imZP9GdQHSLlixMkHLIslnL2Io6eZYUEiClQ37+xf/pV/e+/YuydGejkeRh+3njp99qW3umdcv2JOM3P0vrQTiNl1Gjf88uBPLhgcDOcS9Zf0kN+n/vOr9ut7j4+iJn19EV2etm6+m0kldIs1hYfxT8nywQCHaeHoaZy5yEmQwsFqb/zZ/inff2RvMj6SbE4pxtR5TSbiz+84bIfmLF8wVTZ7TIeiVp0jpLCS5nxY3iNu+Dr76zXJab9Q/71fHBLuKL3fkc7emfOWzavp6U/ZnKE2dKWVj7k1WdF+HOpk0QTjRH6fv0dr+8avjedebSd3TJ3XsaZaSDhvdRw90MWXLl3WpMYsI5mwwgk7EFJ0VboCR47g70ZqLUeYvP6rj1y41Dey5l9aD/dAp75+9Y1V7tlomlX74fddllkJRDjTjSNnmGlBAgVqWndEl3714WMnOk+OvhqF4iuB890XXth7rmX2iuunqK7ek3HkSCascCekmkN6Z4bTsWBvSgoElH/dob2yp3OMdcjo6dPx6s3L6p1UbyLDmqsgDXVxHIaNd07iTA8jQSpnVLfox+0t//iLPelkZcLwig26ZPT0SzuP9MszVy6aqVldluVEjYDh8CrNlAYKAkNMlzojiipnDvRO/u5jJ12nAhNMzl/oleuuXzU1nUzoloOmmsG+xHEphoOdLJZgnCjgD5z3tf3Nr1Mv7dhPojIDRajwyCuJw0dP7OmkhUtWTQpGLD2SsNRYRgkqtk8pinsYbAdHLjLbMS25+euPGT2XRu8cynD4RN/Cm5ZNVbqiCfKpqCoWWQZBONHFjp1llg0Z5K+d/Fp0ydf+/cjp06crVQEPlZ9+0dvb+7td56qmrVw0Q6X0qYzt9qXBmQj7Csv4Tvay3hQF/P5/293y0q5KTot0Xftwl7tx1Vw10xVNsoYqaJq3bAO6gYOd7HwfANIkJuoX/6i98YeP7zbSiSsWO1KMy2Qh28rs2HOsy565csnsoHPaMs1omqUtVPkgK+hLoLOXaRIO9c9+6JdnnUo0/2Ik4vE+0brhBl8mEUtnWEs9uISLEXScYHEdEigYCp1V277+ZPy1nW+P07+FG7+JmPRe55nfH8W8m9ZPr07YeiJlskiKSRyne5ltk6O2fuMJ58LFykx7KcPJsxfrpy++qSHSnzCFYLEEjp5ljoDCyF8/7YWLi/7m3w+eO3duPE7tYXynDff3x17YdU5qWr1kTg1Lnzcs9CWY7SDg9/3f/a0v7By/WdHU0RlbvWJJI85GkoimGAP5ZG7XLf2nndU//tVu0xjHya24CpPcXcfae+D48cSU5cuWVotuy7RUiR1NXvfQ4+ccp8Izn4phW8a7vcqWldOYfoERgqGqTrnta4/3vrn3ICqUdL8MrsZKFwBnz51/9VBm+oL1cxuMjKt+8zfifE/Fxr6GQl8kmvHNXD9HSP7a57pv/NvtHd3dw82N/SGBy75P/cmW//rA6qv1xAwwSf2fn77z3ttXXBP/FGiccTXW2L1/p5vABCYwgQlMYAL/2fH/AdkCEQl+/Ar/AAAAAElFTkSuQmCCCg==',
92 // icon4: 'jqtouch4.png', 88 // icon4: 'jqtouch4.png',
93 // startupScreen: null, //Pass a string path to a 320px x 460px startup screen for full screen apps. 89 // startupScreen: null, //Pass a string path to a 320px x 460px startup screen for full screen apps.
94 statusBar: 'black-translucent', //Styles the status bar when running as a fullscreen app. Other options are `default`, `black`, and `black-translucent`. 90 statusBar: 'black-translucent', //Styles the status bar when running as a fullscreen app. Other options are `default`, `black`, and `black-translucent`.
@@ -119,33 +115,29 @@ MochiKit.Base.update(Clipperz.PM.UI.Mobile.Controllers.MainController.prototype,
119 // swapSelector: '.swap', //Link selector for 3d swap animation. (default: '.swap') 115 // swapSelector: '.swap', //Link selector for 3d swap animation. (default: '.swap')
120 // touchSelector: 'a, .touch', //Selector for items which are automatically given expanded touch events. This makes ordinary links more responsive and provides trigger events like `swipe` (default: 'a, .touch') 116 // touchSelector: 'a, .touch', //Selector for items which are automatically given expanded touch events. This makes ordinary links more responsive and provides trigger events like `swipe` (default: 'a, .touch')
121 117
122 debug: false 118 debug: false
123 }); 119 });
124 120
125 this.setJQTouch(jqt); 121 this.setJQTouch(jqt);
126 }, 122 },
127 123*/
128 //========================================================================= 124 //=========================================================================
129 125
130 'showAddToHomeScreenBaloon': function () { 126 'showAddToHomeScreenBaloon': function () {
131console.log(">>> showAddToHomeScreenBaloon");
132 }, 127 },
133 128
134 //------------------------------------------------------------------------- 129 //-------------------------------------------------------------------------
135 130
136 'selectInitialProxy': function () { 131 'selectInitialProxy': function () {
137//console.log(">>> selectInitialProxy");
138 if (this.isOnline()) { 132 if (this.isOnline()) {
139//console.log("--- selectInitialProxy: using default proxy");
140 this._proxy = Clipperz.PM.Proxy.defaultProxy; 133 this._proxy = Clipperz.PM.Proxy.defaultProxy;
141 } else { 134 } else {
142 if (this.hasLocalData()) { 135 if (this.hasLocalData()) {
143//console.log("--- selectInitialProxy: using local cache proxy");
144 this._proxy = new Clipperz.PM.Proxy.OfflineCache({'shouldPayTolls':false}); 136 this._proxy = new Clipperz.PM.Proxy.OfflineCache({'shouldPayTolls':false});
145 } else { 137 } else {
146 this.showOfflineError(); 138 this.showOfflineError();
147 } 139 }
148 } 140 }
149 }, 141 },
150 142
151 //------------------------------------------------------------------------- 143 //-------------------------------------------------------------------------
@@ -162,17 +154,16 @@ console.log(">>> showAddToHomeScreenBaloon");
162 args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedCredentialsLogin'); 154 args['errorCallback'] = MochiKit.Base.method(this, 'handleFailedCredentialsLogin');
163 this.loginForm().showCredentialsLogin(args); 155 this.loginForm().showCredentialsLogin(args);
164 } 156 }
165 }, 157 },
166 158
167 //......................................................................... 159 //.........................................................................
168 160
169 'handleFailedCredentialsLogin': function () { 161 'handleFailedCredentialsLogin': function () {
170console.log("LOGIN FAILED");
171 this.showLoginForm({'previousFailedAttempt':'LOGIN'}); 162 this.showLoginForm({'previousFailedAttempt':'LOGIN'});
172 }, 163 },
173 164
174 //......................................................................... 165 //.........................................................................
175 166
176 'handleFailedPinLogin': function () { 167 'handleFailedPinLogin': function () {
177 varfailedAttempts; 168 varfailedAttempts;
178 varstatus; 169 varstatus;
@@ -185,17 +176,16 @@ console.log("LOGIN FAILED");
185 176
186 'doLogin': function (someArgs) { 177 'doLogin': function (someArgs) {
187 var deferredResult; 178 var deferredResult;
188 var credentials; 179 var credentials;
189 var errorCallback; 180 var errorCallback;
190 var user; 181 var user;
191 var getPassphraseDelegate; 182 var getPassphraseDelegate;
192 183
193//console.log(">>> MainController.doLogin", someArgs);
194 credentials = someArgs['credentials']; 184 credentials = someArgs['credentials'];
195 errorCallback = someArgs['errorCallback'] || MochiKit.Base.noop; 185 errorCallback = someArgs['errorCallback'] || MochiKit.Base.noop;
196 186
197 getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, credentials.passphrase); 187 getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, credentials.passphrase);
198 user = new Clipperz.PM.DataModel.User({'username':credentials.username, 'getPassphraseFunction':getPassphraseDelegate}); 188 user = new Clipperz.PM.DataModel.User({'username':credentials.username, 'getPassphraseFunction':getPassphraseDelegate});
199 189
200 deferredResult = new Clipperz.Async.Deferred('MainController.doLogin', {trace:false}); 190 deferredResult = new Clipperz.Async.Deferred('MainController.doLogin', {trace:false});
201 deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); 191 deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4});
@@ -227,17 +217,16 @@ console.log("LOGIN FAILED");
227 return deferredResult; 217 return deferredResult;
228 }, 218 },
229 219
230 //------------------------------------------------------------------------- 220 //-------------------------------------------------------------------------
231 221
232 'setupApplication': function () { 222 'setupApplication': function () {
233 vardeferredResult; 223 vardeferredResult;
234 224
235console.log(">>> setupApplication");
236 deferredResult = new Clipperz.Async.Deferred("MainController.setupApplication", {trace:false}); 225 deferredResult = new Clipperz.Async.Deferred("MainController.setupApplication", {trace:false});
237 deferredResult.addMethod(this, 'welcomeFirstTimeUser'); 226 deferredResult.addMethod(this, 'welcomeFirstTimeUser');
238 deferredResult.addMethod(this, 'showPaymentReminder'); 227 deferredResult.addMethod(this, 'showPaymentReminder');
239 deferredResult.addMethod(this, 'copyDataLocally'); 228 deferredResult.addMethod(this, 'copyDataLocally');
240 deferredResult.callback(arguments); 229 deferredResult.callback(arguments);
241 230
242 return deferredResult; 231 return deferredResult;
243 }, 232 },
@@ -250,17 +239,17 @@ console.log(">>> setupApplication");
250 }, 239 },
251 240
252 'welcomeFirstTimeUser': function () { 241 'welcomeFirstTimeUser': function () {
253 vardeferredResult; 242 vardeferredResult;
254 243
255 deferredResult = new Clipperz.Async.Deferred('MainController.welcomeFirstTimeUser', {trace:false}); 244 deferredResult = new Clipperz.Async.Deferred('MainController.welcomeFirstTimeUser', {trace:false});
256 245
257 if (this.isFirstTimeUser()) { 246 if (this.isFirstTimeUser()) {
258 deferredResult.addCallback(function () { console.log("--> welcome"); }); 247 deferredResult.addCallback(function () { Clipperz.log("--> welcome"); });
259 } 248 }
260 deferredResult.callback(); 249 deferredResult.callback();
261 250
262 return deferredResult; 251 return deferredResult;
263 }, 252 },
264 253
265 //.......................................................................... 254 //..........................................................................
266 255
@@ -269,17 +258,17 @@ console.log(">>> setupApplication");
269 }, 258 },
270 259
271 'showPaymentReminder': function () { 260 'showPaymentReminder': function () {
272 vardeferredResult; 261 vardeferredResult;
273 262
274 deferredResult = new Clipperz.Async.Deferred('MainController.showPaymentReminder', {trace:false}); 263 deferredResult = new Clipperz.Async.Deferred('MainController.showPaymentReminder', {trace:false});
275 264
276 if (this.shouldShowPaymentReminder()) { 265 if (this.shouldShowPaymentReminder()) {
277 deferredResult.addCallback(function () { console.log("--> payment reminder"); }); 266 deferredResult.addCallback(function () { Clipperz.log("--> payment reminder"); });
278 } 267 }
279 deferredResult.callback(); 268 deferredResult.callback();
280 269
281 return deferredResult; 270 return deferredResult;
282 }, 271 },
283 272
284 //.......................................................................... 273 //..........................................................................
285 274
@@ -288,30 +277,29 @@ console.log(">>> setupApplication");
288 }, 277 },
289 278
290 'copyDataLocally': function () { 279 'copyDataLocally': function () {
291 vardeferredResult; 280 vardeferredResult;
292 281
293 deferredResult = new Clipperz.Async.Deferred('MainController.copyDataLocally', {trace:false}); 282 deferredResult = new Clipperz.Async.Deferred('MainController.copyDataLocally', {trace:false});
294 283
295 if (this.canCopyDataLocally()) { 284 if (this.canCopyDataLocally()) {
296 deferredResult.addCallback(function () { console.log("--> copy data locally"); }); 285 deferredResult.addCallback(function () { Clipperz.log("--> copy data locally"); });
297 } 286 }
298 deferredResult.callback(); 287 deferredResult.callback();
299 288
300 return deferredResult; 289 return deferredResult;
301 290
302 }, 291 },
303 292
304 //------------------------------------------------------------------------- 293 //-------------------------------------------------------------------------
305 294
306 'runApplication': function () { 295 'runApplication': function () {
307 var deferredResult; 296 var deferredResult;
308 297
309//console.log(">>> runApplication");
310 deferredResult = new Clipperz.Async.Deferred('MainController.runApplication', {trace:true}); 298 deferredResult = new Clipperz.Async.Deferred('MainController.runApplication', {trace:true});
311 deferredResult.addMethod(this.user(), 'getRecords'); 299 deferredResult.addMethod(this.user(), 'getRecords');
312 deferredResult.addMethod(this, 'showCards'); 300 deferredResult.addMethod(this, 'showCards');
313 deferredResult.callback(); 301 deferredResult.callback();
314 302
315 return deferredResult; 303 return deferredResult;
316 }, 304 },
317 305
@@ -357,17 +345,17 @@ console.log(">>> setupApplication");
357 MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selectCardHandler'); 345 MochiKit.Signal.connect(this._cardList, 'selectedCard', this, 'selectCardHandler');
358 } 346 }
359 347
360 return this._cardList; 348 return this._cardList;
361 }, 349 },
362 350
363 'showCards': function (someCards) { 351 'showCards': function (someCards) {
364 this.cardList().showCards(someCards); 352 this.cardList().showCards(someCards);
365 this.jQTouch().goTo('#cardList', 'slideleft'); 353 // this.jQTouch().goTo('#cardList', 'slideleft');
366 }, 354 },
367 355
368 //------------------------------------------------------------------------- 356 //-------------------------------------------------------------------------
369 357
370 'cardDetail': function () { 358 'cardDetail': function () {
371 if (this._cardDetail == null) { 359 if (this._cardDetail == null) {
372 this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:MochiKit.DOM.getElement('cardDetail')}); 360 this._cardDetail = new Clipperz.PM.UI.Mobile.Components.CardDetail({element:MochiKit.DOM.getElement('cardDetail')});
373 } 361 }
@@ -375,17 +363,17 @@ console.log(">>> setupApplication");
375 return this._cardDetail; 363 return this._cardDetail;
376 }, 364 },
377 365
378 'selectCardHandler': function (aCardReference) { 366 'selectCardHandler': function (aCardReference) {
379 var deferredResult; 367 var deferredResult;
380 368
381 deferredResult = new Clipperz.Async.Deferred("MainController.selectCardHandler", {trace:true}); 369 deferredResult = new Clipperz.Async.Deferred("MainController.selectCardHandler", {trace:true});
382 deferredResult.addMethod(this.cardDetail(), 'render'); 370 deferredResult.addMethod(this.cardDetail(), 'render');
383 deferredResult.addMethod(this.jQTouch(), 'goTo', '#cardDetail', 'slideleft'); 371 // deferredResult.addMethod(this.jQTouch(), 'goTo', '#cardDetail', 'slideleft');
384 deferredResult.addMethod(this.user(), 'getRecord', aCardReference); 372 deferredResult.addMethod(this.user(), 'getRecord', aCardReference);
385 deferredResult.addMethod(this.cardDetail(), 'showCard'); 373 deferredResult.addMethod(this.cardDetail(), 'showCard');
386 deferredResult.callback(); 374 deferredResult.callback();
387 375
388 return deferredResult; 376 return deferredResult;
389 }, 377 },
390 378
391 //========================================================================= 379 //=========================================================================
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { 26Clipperz.PM.UI.Web.Components.AccountPanel = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.AppPage = function(args) { 26Clipperz.PM.UI.Web.Components.AppPage = function(args) {
29 args = args || {}; 27 args = args || {};
30 Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args); 28 Clipperz.PM.UI.Web.Components.AppPage.superclass.constructor.call(this, args);
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) { 26Clipperz.PM.UI.Web.Components.BookmarkletComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) { 26Clipperz.PM.UI.Web.Components.CardDialogComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -677,17 +675,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz
677 }, 675 },
678 676
679 'showProgressMask': function () { 677 'showProgressMask': function () {
680 this.getElement('progressDescription').innerHTML = "Saving"; 678 this.getElement('progressDescription').innerHTML = "Saving";
681 MochiKit.DOM.addElementClass(this.getId('panel'), 'loading'); 679 MochiKit.DOM.addElementClass(this.getId('panel'), 'loading');
682 }, 680 },
683 681
684 'showError': function (anError) { 682 'showError': function (anError) {
685//console.log(">>> showError", anError);
686 MochiKit.Style.hideElement(this.getId('progress')); 683 MochiKit.Style.hideElement(this.getId('progress'));
687 this.getElement('errorMessage').innerHTML = Clipperz.PM.Strings.errorDescriptionForException(anError['message']); 684 this.getElement('errorMessage').innerHTML = Clipperz.PM.Strings.errorDescriptionForException(anError['message']);
688 MochiKit.Style.showElement(this.getId('error')); 685 MochiKit.Style.showElement(this.getId('error'));
689 }, 686 },
690 687
691 //------------------------------------------------------------------------- 688 //-------------------------------------------------------------------------
692 689
693 'cancel': function () { 690 'cancel': function () {
@@ -757,17 +754,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz
757 // MochiKit.Style.hideElement(this.getElement('addDirectLoginButton')); 754 // MochiKit.Style.hideElement(this.getElement('addDirectLoginButton'));
758 break; 755 break;
759 } 756 }
760 }, 757 },
761 758
762 //------------------------------------------------------------------------- 759 //-------------------------------------------------------------------------
763 760
764 'handleKeyEvent': function (anEvent) { 761 'handleKeyEvent': function (anEvent) {
765//console.log("####", anEvent.key().string);
766 if (anEvent.key().string == 'KEY_ESCAPE') { 762 if (anEvent.key().string == 'KEY_ESCAPE') {
767 MochiKit.Signal.signal(this, 'changedValue'); 763 MochiKit.Signal.signal(this, 'changedValue');
768 this.cancel(); 764 this.cancel();
769 } else if (anEvent.key().string == 'KEY_ENTER') { 765 } else if (anEvent.key().string == 'KEY_ENTER') {
770 if (anEvent.target().nodeName == 'TEXTAREA') { 766 if (anEvent.target().nodeName == 'TEXTAREA') {
771 767
772 } else { 768 } else {
773 anEvent.preventDefault(); 769 anEvent.preventDefault();
@@ -793,18 +789,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogComponent, Clipperz
793 789
794 deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false}); 790 deferredResult = new Clipperz.Async.Deferred("CardDialogComponent.askConfirmationForLoosingPendingChanges", {trace:false});
795 // deferredResult = confirmationDialog.deferredShow({openFromElement:anEvent.src(), onOkCloseToElement:MochiKit.DOM.currentDocument().body, onCancelCloseToElement:anEvent.src()}); 791 // deferredResult = confirmationDialog.deferredShow({openFromElement:anEvent.src(), onOkCloseToElement:MochiKit.DOM.currentDocument().body, onCancelCloseToElement:anEvent.src()});
796 deferredResult.addMethod(confirmationDialog, 'deferredShow', { 792 deferredResult.addMethod(confirmationDialog, 'deferredShow', {
797 'openFromElement': this.getElement('cancelButton'), 793 'openFromElement': this.getElement('cancelButton'),
798 'onOkCloseToElement': null, //this.getElement('cancelButton'), 794 'onOkCloseToElement': null, //this.getElement('cancelButton'),
799 'onCancelCloseToElement':this.getElement('cancelButton') 795 'onCancelCloseToElement':this.getElement('cancelButton')
800 }); 796 });
801 // deferredResult.addCallback(function () { console.log("DELETE: " + anObject.toString(), anObject); });
802 // deferredResult.addErrbackPass(function () { console.log("skip deletion: " + anObject.toString(), anObject); });
803 deferredResult.callback(); 797 deferredResult.callback();
804 798
805 return deferredResult; 799 return deferredResult;
806 }, 800 },
807 801
808 //========================================================================= 802 //=========================================================================
809 803
810 'showDirectLoginEditingComponent': function () { 804 'showDirectLoginEditingComponent': function () {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) { 26Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -50,17 +48,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginCo
50 48
51 'reference': function () { 49 'reference': function () {
52 return this._reference; 50 return this._reference;
53 }, 51 },
54 52
55 //------------------------------------------------------------------------- 53 //-------------------------------------------------------------------------
56 54
57 'renderSelf': function() { 55 'renderSelf': function() {
58//console.log(">>> CardDialogRecordDirectLoginComponent.renderSelf");
59 this.append(this.element(), [ 56 this.append(this.element(), [
60 {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[ 57 {tag:'div', cls:'cardDialogRecordDirectLoginComponent_favicon', children:[
61 {tag:'img', cls:'favicon', id:this.getId('favicon')} 58 {tag:'img', cls:'favicon', id:this.getId('favicon')}
62 ]}, 59 ]},
63 {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[ 60 {tag:'div', cls:'cardDialogRecordDirectLoginComponent_label', children:[
64 {tag:'input', id:this.getId('label'), type:'text'} 61 {tag:'input', id:this.getId('label'), type:'text'}
65 ]}, 62 ]},
66 {tag:'div', cls:'open', children:[ 63 {tag:'div', cls:'open', children:[
@@ -112,17 +109,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginCo
112 'shouldShowElementWhileRendering': function () { 109 'shouldShowElementWhileRendering': function () {
113 return false; 110 return false;
114 }, 111 },
115 112
116 //------------------------------------------------------------------------- 113 //-------------------------------------------------------------------------
117 114
118 'faviconComponent': function () { 115 'faviconComponent': function () {
119 if (this._faviconComponent == null) { 116 if (this._faviconComponent == null) {
120//console.log("created the FAVICON component");
121 this._faviconComponent = new Clipperz.PM.UI.Common.Components.FaviconComponent({element:this.getId('favicon')}); 117 this._faviconComponent = new Clipperz.PM.UI.Common.Components.FaviconComponent({element:this.getId('favicon')});
122 } 118 }
123 119
124 return this._faviconComponent; 120 return this._faviconComponent;
125 }, 121 },
126 122
127 //========================================================================= 123 //=========================================================================
128 124
@@ -155,25 +151,23 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordDirectLoginCo
155 }, 151 },
156 152
157 //------------------------------------------------------------------------- 153 //-------------------------------------------------------------------------
158 154
159 'editDirectLogin': function (anEvent) { 155 'editDirectLogin': function (anEvent) {
160 anEvent.preventDefault(); 156 anEvent.preventDefault();
161 157
162 MochiKit.Signal.signal(this, 'editDirectLogin', this.reference()); 158 MochiKit.Signal.signal(this, 'editDirectLogin', this.reference());
163//console.log("EDIT DIRECT LOGIN");
164 }, 159 },
165 160
166 //------------------------------------------------------------------------- 161 //-------------------------------------------------------------------------
167 162
168 'deleteDirectLogin': function (anEvent) { 163 'deleteDirectLogin': function (anEvent) {
169 anEvent.preventDefault(); 164 anEvent.preventDefault();
170 165
171 MochiKit.Signal.signal(this, 'deleteDirectLogin', this.reference()); 166 MochiKit.Signal.signal(this, 'deleteDirectLogin', this.reference());
172//console.log("DELETE DIRECT LOGIN");
173 }, 167 },
174 168
175 169
176 170
177 //========================================================================= 171 //=========================================================================
178 __syntaxFix__: "syntax fix" 172 __syntaxFix__: "syntax fix"
179}); 173});
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) { 26Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -164,18 +162,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.CardDialogRecordFieldComponen
164 this.setIsHidden(! this.isHidden()); 162 this.setIsHidden(! this.isHidden());
165 MochiKit.Signal.signal(this, 'changedValue'); 163 MochiKit.Signal.signal(this, 'changedValue');
166 }, 164 },
167 165
168 //========================================================================= 166 //=========================================================================
169 167
170 'handleActionLink': function (anEvent) { 168 'handleActionLink': function (anEvent) {
171 anEvent.preventDefault(); 169 anEvent.preventDefault();
172
173//console.log("ACTION LINK - " + this.actionType());
174 MochiKit.Signal.signal(this, 'performAction', this.reference(), anEvent.target()); 170 MochiKit.Signal.signal(this, 'performAction', this.reference(), anEvent.target());
175 }, 171 },
176 172
177 //========================================================================= 173 //=========================================================================
178 174
179 'deleteField': function (anEvent) { 175 'deleteField': function (anEvent) {
180 anEvent.preventDefault(); 176 anEvent.preventDefault();
181 177
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.ColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.ColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) { 26Clipperz.PM.UI.Web.Components.CreateNewCardSplashComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.DataPanel = function(args) { 26Clipperz.PM.UI.Web.Components.DataPanel = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.DateColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.DeleteObjectColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26/* 24/*
27Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 25Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
28 26
29//############################################################################# 27//#############################################################################
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) { 26Clipperz.PM.UI.Web.Components.DirectLoginEditingBindingComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) { 26Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -100,17 +98,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingComponent,
100 98
101 //========================================================================= 99 //=========================================================================
102 100
103 'label': function () { 101 'label': function () {
104 return this.getElement('label').value 102 return this.getElement('label').value
105 }, 103 },
106 104
107 'setLabel': function (aValue) { 105 'setLabel': function (aValue) {
108//console.log("##> LABEL: " + aValue);
109 this.getElement('label').value = (aValue ? aValue : ''); 106 this.getElement('label').value = (aValue ? aValue : '');
110 }, 107 },
111 108
112 //------------------------------------------------------------------------- 109 //-------------------------------------------------------------------------
113 110
114 'favicon': function () { 111 'favicon': function () {
115 return this.getElement('faviconURL').value; 112 return this.getElement('faviconURL').value;
116 }, 113 },
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) { 26Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -88,19 +86,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueCo
88 86
89 'initialValue': function () { 87 'initialValue': function () {
90 return this._initialValue; 88 return this._initialValue;
91 }, 89 },
92 90
93 //========================================================================= 91 //=========================================================================
94 92
95 'renderSelf': function() { 93 'renderSelf': function() {
96//console.log(">>> DirectLoginEditingFormValueComponent.renderSelf");
97//console.log("FIELD OPTIONS", this.fieldOptions());
98//console.log("OPTION VALUES", this.optionValues());
99 this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[ 94 this.append(this.element(), {tag:'div', id:this.getId('div'), cls:'formValue', children:[
100 {tag:'span', cls:'formFieldName', html:this.formFieldName()}, 95 {tag:'span', cls:'formFieldName', html:this.formFieldName()},
101 {tag:'div', id:this.getId('values')} 96 {tag:'div', id:this.getId('values')}
102 ]}); 97 ]});
103 98
104 if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) { 99 if ((this.fieldType() == 'radio') || (this.fieldType() == 'select')) {
105 this.append(this.getElement('values'), 100 this.append(this.getElement('values'),
106 {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children: 101 {tag:'select', name:this.formFieldName(), id:this.getId('select'), cls:'formFieldMatchinCardField', children:
@@ -136,23 +131,21 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DirectLoginEditingFormValueCo
136 MochiKit.Signal.connect(this.getElement('checkbox'), 'onchange', this, 'handleSelectChange'); 131 MochiKit.Signal.connect(this.getElement('checkbox'), 'onchange', this, 'handleSelectChange');
137 132
138 if (this.initialValue()) { 133 if (this.initialValue()) {
139 MochiKit.DOM.updateNodeAttributes(this.getElement('checkbox'), {checked:true}); 134 MochiKit.DOM.updateNodeAttributes(this.getElement('checkbox'), {checked:true});
140 } 135 }
141 } else { 136 } else {
142 WTF = TODO; 137 WTF = TODO;
143 } 138 }
144//console.log("<<< DirectLoginEditingFormValueComponent.renderSelf");
145 }, 139 },
146 140
147 //========================================================================= 141 //=========================================================================
148 142
149 'handleSelectChange': function (anEvent) { 143 'handleSelectChange': function (anEvent) {
150//console.log("handleSelectChange", anEvent, anEvent.src(), anEvent.src().value);
151 var options; 144 var options;
152 145
153 options = {}; 146 options = {};
154 147
155 options['fieldName'] = this.formFieldName(); 148 options['fieldName'] = this.formFieldName();
156 149
157 if (this.fieldType() == 'checkbox') { 150 if (this.fieldType() == 'checkbox') {
158 options['selectedValue'] = (this.getElement('checkbox').checked ? 1 : null); 151 options['selectedValue'] = (this.getElement('checkbox').checked ? 1 : null);
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.DirectLoginsColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.FaviconColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.GridComponent = function(args) { 26Clipperz.PM.UI.Web.Components.GridComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -120,23 +118,21 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.GridComponent, Clipperz.PM.UI
120 118
121 'focus': function () { 119 'focus': function () {
122 this.getElement('search').focus(); 120 this.getElement('search').focus();
123 }, 121 },
124 122
125 //------------------------------------------------------------------------- 123 //-------------------------------------------------------------------------
126 124
127 'startSearch': function () { 125 'startSearch': function () {
128//console.log("--> startSearch");
129 MochiKit.DOM.addElementClass(this.getElement('search'), 'running'); 126 MochiKit.DOM.addElementClass(this.getElement('search'), 'running');
130 }, 127 },
131 128
132 'endSearch': function () { 129 'endSearch': function () {
133 MochiKit.DOM.removeElementClass(this.getElement('search'), 'running'); 130 MochiKit.DOM.removeElementClass(this.getElement('search'), 'running');
134//console.log("<-- startSearch");
135 }, 131 },
136 132
137 //------------------------------------------------------------------------- 133 //-------------------------------------------------------------------------
138 134
139 'disconnectColumnManagersRowsSignals': function () { 135 'disconnectColumnManagersRowsSignals': function () {
140 MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) { 136 MochiKit.Iter.forEach(this.columnsManagers(), function (aColumnManager) {
141 aColumnManager.disconnectRowsSignals(); 137 aColumnManager.disconnectRowsSignals();
142 }); 138 });
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.ImageColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.LinkColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.LoginForm = function(args) { 26Clipperz.PM.UI.Web.Components.LoginForm = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.LoginPage = function(args) { 26Clipperz.PM.UI.Web.Components.LoginPage = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.LoginProgress = function(args) { 26Clipperz.PM.UI.Web.Components.LoginProgress = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -61,17 +59,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI
61 // var loginProgressElement; 59 // var loginProgressElement;
62 // 60 //
63 // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); 61 // loginProgressElement = MochiKit.DOM.getElement('loginProgress');
64 // 62 //
65 // if (loginProgressElement == null) { 63 // if (loginProgressElement == null) {
66 // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); 64 // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true);
67 // } 65 // }
68 66
69//console.log(">> LoginProgress.renderSelf", this.element());
70 this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ 67 this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [
71 // this.append(loginProgressElement, [ 68 // this.append(loginProgressElement, [
72 {tag:'div', cls:'header', children:[ 69 {tag:'div', cls:'header', children:[
73 {tag:'h3', id:this.getId('title'), html:"login progress"} 70 {tag:'h3', id:this.getId('title'), html:"login progress"}
74 ]}, 71 ]},
75 {tag:'div', cls:'body', children:[ 72 {tag:'div', cls:'body', children:[
76 {tag:'div', id:this.getId('progressBar')}, 73 {tag:'div', id:this.getId('progressBar')},
77 {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ 74 {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) { 26Clipperz.PM.UI.Web.Components.NewUserCreationComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -118,18 +116,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Cli
118 } 116 }
119 117
120 return this._tabPanelController; 118 return this._tabPanelController;
121 }, 119 },
122 120
123 //------------------------------------------------------------------------- 121 //-------------------------------------------------------------------------
124 122
125 'renderSelf': function() { 123 'renderSelf': function() {
126//console.log('** Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition));
127
128 this.append(this.element(), {tag:'div', cls:'NewUserCreation mainDialog', id:this.getId('panel'), children: [ 124 this.append(this.element(), {tag:'div', cls:'NewUserCreation mainDialog', id:this.getId('panel'), children: [
129 {tag:'form', id:this.getId('form'), cls:'newUserCreationForm', children:[ 125 {tag:'form', id:this.getId('form'), cls:'newUserCreationForm', children:[
130 {tag:'div', cls:'header', children:[ 126 {tag:'div', cls:'header', children:[
131 {tag:'div', cls:'title', children:[ 127 {tag:'div', cls:'title', children:[
132 {tag:'h3', id:this.getId('title'), html:"Create new user"} 128 {tag:'h3', id:this.getId('title'), html:"Create new user"}
133 ]} 129 ]}
134 ]}, 130 ]},
135 {tag:'div', id:this.getId('body'), cls:'body', children:[ 131 {tag:'div', id:this.getId('body'), cls:'body', children:[
@@ -328,20 +324,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.NewUserCreationComponent, Cli
328 'bottomMargin': function () { 324 'bottomMargin': function () {
329 var result; 325 var result;
330 326
331 //TODO: WTF!!! 327 //TODO: WTF!!!
332 // result =MochiKit.Style.getElementPosition(this.element())['y'] + 328 // result =MochiKit.Style.getElementPosition(this.element())['y'] +
333 // MochiKit.Style.getElementDimensions(this.element())['h']; 329 // MochiKit.Style.getElementDimensions(this.element())['h'];
334 330
335 // result =MochiKit.Style.getElementPosition(this.getElement('footer'))['y']; 331 // result =MochiKit.Style.getElementPosition(this.getElement('footer'))['y'];
336//console.log("### bottomMargin");
337//console.log('displayElement', this.displayElement());
338//console.log('-- Clipperz.targetModalDimensionsAndPosition', Clipperz.Base.serializeJSON(Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition));
339//console.log('element', MochiKit.Style.getElementPosition('modalDialog') ['y'], MochiKit.Style.getElementDimensions('modalDialog')['h']);
340 // result = 450; 332 // result = 450;
341 333
342 result =Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['position']['y'] + 334 result =Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['position']['y'] +
343 Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['dimensions']['h'] - 335 Clipperz.PM.UI.Common.Components.BaseComponent.targetModalDimensionsAndPosition['dimensions']['h'] -
344 60; 336 60;
345 337
346 return result; 338 return result;
347 }, 339 },
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.Page = function(args) { 26Clipperz.PM.UI.Web.Components.Page = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.PageFooter = function(args) { 26Clipperz.PM.UI.Web.Components.PageFooter = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.PageHeader = function(args) { 26Clipperz.PM.UI.Web.Components.PageHeader = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Common.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Common.Components');
27 25
28Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) { 26Clipperz.PM.UI.Web.Components.PasswordTooltip = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.RulerComponent = function(args) { 26Clipperz.PM.UI.Web.Components.RulerComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments); 28 Clipperz.PM.UI.Web.Components.RulerComponent.superclass.constructor.apply(this, arguments);
@@ -107,17 +105,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.RulerComponent, Clipperz.PM.U
107 // ]}, 105 // ]},
108 {tag:'div', cls:'dots', id:this.getId('dotsFrame')} 106 {tag:'div', cls:'dots', id:this.getId('dotsFrame')}
109 // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[ 107 // {tag:'div', cls:'dots' + ' ' + 'steps_' + this.steps().length, children:[
110 // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())} 108 // {tag:'ul', id:this.getId('dots'), children:MochiKit.Base.map(function (aStep) { return {tag:'li', children:[{tag:'span', html:'*'}]}}, this.steps())}
111 // ]} 109 // ]}
112 ]} 110 ]}
113 ]} 111 ]}
114 ])); 112 ]));
115//console.log("ELEMENT", this.element());
116 113
117 MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit'); 114 MochiKit.Signal.connect(this.getElement('exit'), 'onclick', this, 'handleExit');
118 115
119 MochiKit.Signal.connect(this.getElement('previousButton'), 'onclick', this, 'handlePrevious'); 116 MochiKit.Signal.connect(this.getElement('previousButton'), 'onclick', this, 'handlePrevious');
120 MochiKit.Signal.connect(this.getElement('smallPreviousButton'),'onclick', this, 'handlePrevious'); 117 MochiKit.Signal.connect(this.getElement('smallPreviousButton'),'onclick', this, 'handlePrevious');
121 118
122 MochiKit.Signal.connect(this.getElement('nextButton'), 'onclick', this, 'handleNext'); 119 MochiKit.Signal.connect(this.getElement('nextButton'), 'onclick', this, 'handleNext');
123 MochiKit.Signal.connect(this.getElement('smallNextButton'), 'onclick', this, 'handleNext'); 120 MochiKit.Signal.connect(this.getElement('smallNextButton'), 'onclick', this, 'handleNext');
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) { 26Clipperz.PM.UI.Web.Components.TabSidePanel = function(args) {
29 args = args || {}; 27 args = args || {};
30 Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args); 28 Clipperz.PM.UI.Web.Components.TabSidePanel.superclass.constructor.call(this, args);
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28//############################################################################# 26//#############################################################################
29 27
30Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) { 28Clipperz.PM.UI.Web.Components.TextColumnManager = function(args) {
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) { 26Clipperz.PM.UI.Web.Components.ToolsPanel = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) { 26Clipperz.PM.UI.Web.Components.UnlockPasswordComponent = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -155,17 +153,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UnlockPasswordComponent, Clip
155 153
156 //------------------------------------------------------------------------- 154 //-------------------------------------------------------------------------
157 155
158 'userSuccessfullyLoggedInHandler': function (anEvent) { 156 'userSuccessfullyLoggedInHandler': function (anEvent) {
159 this.deferredHideModal({closeToElement:this.onOkCloseToElement()}); 157 this.deferredHideModal({closeToElement:this.onOkCloseToElement()});
160 }, 158 },
161 159
162 'userLoginFailedHandler': function (anEvent) { 160 'userLoginFailedHandler': function (anEvent) {
163//console.log("############### FAILED LOGIN ################");
164 this.showFailure(); 161 this.showFailure();
165 }, 162 },
166 163
167 //------------------------------------------------------------------------- 164 //-------------------------------------------------------------------------
168/* 165/*
169 'deferredShow': function (someArgs, aResult) { 166 'deferredShow': function (someArgs, aResult) {
170 this.deferredShowModal(someArgs); 167 this.deferredShowModal(someArgs);
171 168
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,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Components');
27 25
28Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) { 26Clipperz.PM.UI.Web.Components.UserInfoBox = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -71,17 +69,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.C
71 'setIsLocked': function (aValue) { 69 'setIsLocked': function (aValue) {
72 this._isLocked = aValue; 70 this._isLocked = aValue;
73 }, 71 },
74 72
75 'toggleLock': function(anEvent) { 73 'toggleLock': function(anEvent) {
76 var deferredResult; 74 var deferredResult;
77 var shouldLock; 75 var shouldLock;
78 76
79//console.log(">>> UserInfoBox.toggleLock [locked: " + this.isLocked() + "]");
80 anEvent.preventDefault(); 77 anEvent.preventDefault();
81 this.lockTooltip().hide(); 78 this.lockTooltip().hide();
82 79
83 shouldLock = (this.isLocked() == false); 80 shouldLock = (this.isLocked() == false);
84 81
85 if (shouldLock) { 82 if (shouldLock) {
86 var maskElement; 83 var maskElement;
87 84
@@ -93,17 +90,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.C
93 MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')), 90 MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', MochiKit.Base.method(this, 'askForPassphrase')),
94 MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock') 91 MochiKit.Base.partial(MochiKit.Signal.signal, this, 'lock')
95 ], {trace:false}); 92 ], {trace:false});
96 } else { 93 } else {
97 deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [ 94 deferredResult = Clipperz.Async.callbacks("UserInfoBox.toggleLock [unlock]", [
98 MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock') 95 MochiKit.Base.partial(MochiKit.Signal.signal, this, 'unlock')
99 ], {trace:false}); 96 ], {trace:false});
100 } 97 }
101//console.log("<<< UserInfoBox.toggleLock");
102 98
103 return deferredResult; 99 return deferredResult;
104 }, 100 },
105 101
106 //------------------------------------------------------------------------- 102 //-------------------------------------------------------------------------
107 103
108 'unlock': function () { 104 'unlock': function () {
109 var deferredResult; 105 var deferredResult;
@@ -128,30 +124,28 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.UserInfoBox, Clipperz.PM.UI.C
128 124
129 deferredResult = new Clipperz.Async.Deferred("UserInfoBox.askForPassphrase", {trace:false}); 125 deferredResult = new Clipperz.Async.Deferred("UserInfoBox.askForPassphrase", {trace:false});
130 deferredResult.addCallback(MochiKit.Async.succeed, 'test'); 126 deferredResult.addCallback(MochiKit.Async.succeed, 'test');
131 127
132 deferredResult.callback(); 128 deferredResult.callback();
133 129
134 return deferredResult; 130 return deferredResult;
135*/ 131*/
136//console.log(">>> UserInfoBox.askForPassphrase");
137 unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({ 132 unlockPasswordComponent = new Clipperz.PM.UI.Web.Components.UnlockPasswordComponent({
138 'title':"Unlock account", 133 'title':"Unlock account",
139 'text': "Insert the passprase to unlock the account", 134 'text': "Insert the passprase to unlock the account",
140 'type': 'INFO', 135 'type': 'INFO',
141 'buttons': [ 136 'buttons': [
142 {text:"Cancel",result:'CANCEL'}, 137 {text:"Cancel",result:'CANCEL'},
143 {text:"Unlock", result:'OK',isDefault:true} 138 {text:"Unlock", result:'OK',isDefault:true}
144 ], 139 ],
145 'openFromElement': this.getElement('lock'), 140 'openFromElement': this.getElement('lock'),
146 'onOkCloseToElement': null, 141 'onOkCloseToElement': null,
147 'onCancelCloseToElement':this.getId('lock') 142 'onCancelCloseToElement':this.getId('lock')
148 }); 143 });
149//console.log("<<< UserInfoBox.askForPassphrase");
150 144
151 return unlockPasswordComponent.getPassphrase(); 145 return unlockPasswordComponent.getPassphrase();
152 }, 146 },
153 147
154 //========================================================================= 148 //=========================================================================
155 149
156 'renderSelf': function(/*aContainer, aPosition*/) { 150 'renderSelf': function(/*aContainer, aPosition*/) {
157 this.append(this.element(), [ 151 this.append(this.element(), [
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
index 1ab2e69..3d9d6d3 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.AppController = function(args) { 26Clipperz.PM.UI.Web.Controllers.AppController = function(args) {
29 27
30 this._user = null; 28 this._user = null;
@@ -319,17 +317,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, {
319 MochiKit.Base.method(this.user(), 'login'), 317 MochiKit.Base.method(this.user(), 'login'),
320 MochiKit.Base.method(this.cardsController(), 'focus'), 318 MochiKit.Base.method(this.cardsController(), 'focus'),
321 MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'), 319 MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'),
322 MochiKit.Base.method(this.userInfoBox(), 'unlock') 320 MochiKit.Base.method(this.userInfoBox(), 'unlock')
323 ], {trace:false}); 321 ], {trace:false});
324 }, 322 },
325 323
326 'handleDownloadOfflineCopy': function (anEvent) { 324 'handleDownloadOfflineCopy': function (anEvent) {
327console.log("AppController.handleDownloadOfflineCopy");
328 var downloadHref; 325 var downloadHref;
329 326
330 downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl; 327 downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl;
331 328
332 if (Clipperz_IEisBroken == true) { 329 if (Clipperz_IEisBroken == true) {
333 window.open(downloadHref, ""); 330 window.open(downloadHref, "");
334 } else { 331 } else {
335 vardeferredResult; 332 vardeferredResult;
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js
index effde31..b1ff81f 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardDialogController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) { 26Clipperz.PM.UI.Web.Controllers.CardDialogController = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
@@ -369,17 +367,16 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Controllers.CardDialogController, Object
369 MochiKit.Base.method(this.cardDialogComponent(), 'fixRendering'), 367 MochiKit.Base.method(this.cardDialogComponent(), 'fixRendering'),
370 MochiKit.Base.method(this, 'handleChangedValue') 368 MochiKit.Base.method(this, 'handleChangedValue')
371 ], {trace:false}) 369 ], {trace:false})
372 }, 370 },
373 371
374 //------------------------------------------------------------------------- 372 //-------------------------------------------------------------------------
375 373
376 'handlePerformFieldAction': function (aFieldID, aTargetElement) { 374 'handlePerformFieldAction': function (aFieldID, aTargetElement) {
377//console.log("### targetElement", aTargetElement);
378 return Clipperz.Async.callbacks("CardDialogController.handleDeleteField", [ 375 return Clipperz.Async.callbacks("CardDialogController.handleDeleteField", [
379 MochiKit.Base.method(this.record(), 'fields'), 376 MochiKit.Base.method(this.record(), 'fields'),
380 MochiKit.Base.itemgetter(aFieldID), 377 MochiKit.Base.itemgetter(aFieldID),
381 Clipperz.Async.collectResults("CardDialogController.handleDeleteField <collect results>", { 378 Clipperz.Async.collectResults("CardDialogController.handleDeleteField <collect results>", {
382 'value':MochiKit.Base.methodcaller('value'), 379 'value':MochiKit.Base.methodcaller('value'),
383 'type': MochiKit.Base.methodcaller('actionType') 380 'type': MochiKit.Base.methodcaller('actionType')
384 }, {trace:false}), 381 }, {trace:false}),
385 MochiKit.Base.bind(function (someValues) { 382 MochiKit.Base.bind(function (someValues) {
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js
index f58f0b8..68b5b9f 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/CardsController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.CardsController = function() { 26Clipperz.PM.UI.Web.Controllers.CardsController = function() {
29 Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments); 27 Clipperz.PM.UI.Web.Controllers.CardsController.superclass.constructor.apply(this, arguments);
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js
index c025a51..92ed6e3 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginWizardController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) { 26Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController = function(args) {
29 this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); 27 this._directLoginEditingComponent = args.directLoginEditingComponent|| Clipperz.Base.exception.raise('MandatoryParameter');
30 this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter'); 28 this._cardLabel = args.cardLabel || Clipperz.Base.exception.raise('MandatoryParameter');
@@ -158,17 +156,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.
158 156
159 //----------------------------------------------------------------------------- 157 //-----------------------------------------------------------------------------
160 158
161 'originalBindings': function () { 159 'originalBindings': function () {
162 return this._originalBindings; 160 return this._originalBindings;
163 }, 161 },
164 162
165 'setOriginalBindings': function (aValue) { 163 'setOriginalBindings': function (aValue) {
166//console.log("BINDINGS", aValue);
167 this._originalBindings = aValue; 164 this._originalBindings = aValue;
168 }, 165 },
169 166
170 //============================================================================= 167 //=============================================================================
171 168
172 'rulerComponent': function () { 169 'rulerComponent': function () {
173 if (this._rulerComponent == null) { 170 if (this._rulerComponent == null) {
174 this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({ 171 this._rulerComponent = new Clipperz.PM.UI.Web.Components.RulerComponent({
@@ -402,18 +399,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.DirectLoginWizardController.
402 399
403 MochiKit.Base.method(this.directLoginEditingComponent(), 'bookmarkletConfiguration'), 400 MochiKit.Base.method(this.directLoginEditingComponent(), 'bookmarkletConfiguration'),
404 MochiKit.Base.method(this.directLogin(), 'setBookmarkletConfiguration'), 401 MochiKit.Base.method(this.directLogin(), 'setBookmarkletConfiguration'),
405 402
406 //Bindings 403 //Bindings
407 MochiKit.Base.method(this.directLoginEditingComponent(), 'bindingComponents'), 404 MochiKit.Base.method(this.directLoginEditingComponent(), 'bindingComponents'),
408 // MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.bind(function (aBindingComponent) { 405 // MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.bind(function (aBindingComponent) {
409 Clipperz.Async.forEach(MochiKit.Base.bind(function (aBindingComponent) { 406 Clipperz.Async.forEach(MochiKit.Base.bind(function (aBindingComponent) {
410//console.log("aBindingComponent", aBindingComponent);
411 // this.directLogin().
412 return Clipperz.Async.callbacks("DirectLoginWizardController.done - update directLogin bindings", [ 407 return Clipperz.Async.callbacks("DirectLoginWizardController.done - update directLogin bindings", [
413 MochiKit.Base.method(this.directLogin(), 'bindings'), 408 MochiKit.Base.method(this.directLogin(), 'bindings'),
414 MochiKit.Base.itemgetter(aBindingComponent.formFieldName()), 409 MochiKit.Base.itemgetter(aBindingComponent.formFieldName()),
415 MochiKit.Base.methodcaller('setFieldKey', aBindingComponent.selectedValue()) 410 MochiKit.Base.methodcaller('setFieldKey', aBindingComponent.selectedValue())
416 ], {trace:false}); 411 ], {trace:false});
417 }, this)), 412 }, this)),
418 413
419 MochiKit.Base.method(this.directLoginEditingComponent(), 'favicon'), 414 MochiKit.Base.method(this.directLoginEditingComponent(), 'favicon'),
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js
index 6ca3be4..7ab512a 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/DirectLoginsController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26/* 24/*
27Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 25Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
28 26
29Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() { 27Clipperz.PM.UI.Web.Controllers.DirectLoginsController = function() {
30 Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments); 28 Clipperz.PM.UI.Web.Controllers.DirectLoginsController.superclass.constructor.apply(this, arguments);
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js
index bfc093a..de59ec3 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/FilterController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.FilterController = function(args) { 26Clipperz.PM.UI.Web.Controllers.FilterController = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js
index 8bb3016..44fbdef 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/GridController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.GridController = function(args) { 26Clipperz.PM.UI.Web.Controllers.GridController = function(args) {
29 args = args || {}; 27 args = args || {};
30 28
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js
index a57152d..ac85d36 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { 26Clipperz.PM.UI.Web.Controllers.LoginController = function(args) {
29 this._args = args || {}; 27 this._args = args || {};
30 28
@@ -207,23 +205,22 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, {
207 }, 205 },
208 206
209 207
210 //========================================================================= 208 //=========================================================================
211 209
212 'handleFailedLogin': function(aLoginProgress, anError) { 210 'handleFailedLogin': function(aLoginProgress, anError) {
213 var result; 211 var result;
214 212
215//console.log("anError", anError);
216 if (anError instanceof MochiKit.Async.CancelledError) { 213 if (anError instanceof MochiKit.Async.CancelledError) {
217 result = anError; 214 result = anError;
218 } else { 215 } else {
219 var deferredResult; 216 var deferredResult;
220 217
221MochiKit.Logging.logError("## MainController - FAILED LOGIN: " + anError); 218Clipperz.logError("## MainController - FAILED LOGIN: " + anError);
222 deferredResult = new MochiKit.Async.Deferred(); 219 deferredResult = new MochiKit.Async.Deferred();
223 220
224 aLoginProgress.showErrorMessage("failed login"); 221 aLoginProgress.showErrorMessage("failed login");
225 // Clipperz.NotificationCenter.register(loginProgress, 'cancelEvent', deferredResult, 'callback'); 222 // Clipperz.NotificationCenter.register(loginProgress, 'cancelEvent', deferredResult, 'callback');
226 MochiKit.Signal.connect(aLoginProgress, 'cancelEvent', deferredResult, 'callback'); 223 MochiKit.Signal.connect(aLoginProgress, 'cancelEvent', deferredResult, 'callback');
227 deferredResult.addCallback(MochiKit.Async.fail, anError) 224 deferredResult.addCallback(MochiKit.Async.fail, anError)
228 result = deferredResult; 225 result = deferredResult;
229 } 226 }
@@ -232,18 +229,17 @@ MochiKit.Logging.logError("## MainController - FAILED LOGIN: " + anError);
232 }, 229 },
233 230
234 'handleGenericError': function(anError) { 231 'handleGenericError': function(anError) {
235 var result; 232 var result;
236 233
237 if (anError instanceof MochiKit.Async.CancelledError) { 234 if (anError instanceof MochiKit.Async.CancelledError) {
238 result = anError; 235 result = anError;
239 } else { 236 } else {
240MochiKit.Logging.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack); 237Clipperz.logError("## MainController - GENERIC ERROR" + "\n" + "==>> " + anError + " <<==\n" + anError.stack);
241//console.log(anError);
242 result = new MochiKit.Async.CancelledError(anError); 238 result = new MochiKit.Async.CancelledError(anError);
243 } 239 }
244 240
245 return result; 241 return result;
246 }, 242 },
247 243
248 //----------------------------------------------------------------------------- 244 //-----------------------------------------------------------------------------
249 __syntaxFix__: "syntax fix" 245 __syntaxFix__: "syntax fix"
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js
index c83e3c0..9194125 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/MainController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.MainController = function(args) { 26Clipperz.PM.UI.Web.Controllers.MainController = function(args) {
29 this._args = args; 27 this._args = args;
30 28
@@ -170,24 +168,18 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.MainController.prototype, {
170 this._passphraseDelegate = null; 168 this._passphraseDelegate = null;
171 this._passphraseDelegateLock.acquire(); 169 this._passphraseDelegateLock.acquire();
172 } 170 }
173 }, 171 },
174 172
175 //------------------------------------------------------------------------- 173 //-------------------------------------------------------------------------
176 174
177 'loginControllerUserLoggedInCallback': function(anEvent) { 175 'loginControllerUserLoggedInCallback': function(anEvent) {
178//Clipperz.log(">>> loginControllerUserLoggedInCallback", anEvent);
179 // this.setUser(anEvent.parameters()['user']);
180//console.log("--- loginControllerUserLoggedInCallback - 1");
181
182//console.log("--- loginControllerUserLoggedInCallback - 2");
183 this.headerComponent().switchToLoggedMode(); 176 this.headerComponent().switchToLoggedMode();
184 this.appController().run({slot:this.pageComponent().slotNamed('body'), user:anEvent['user']}); 177 this.appController().run({slot:this.pageComponent().slotNamed('body'), user:anEvent['user']});
185//Clipperz.log("<<< loginControllerUserLoggedInCallback");
186 }, 178 },
187 179
188 //----------------------------------------------------------------------------- 180 //-----------------------------------------------------------------------------
189 181
190 'handleRemoteRequestSent': function () { 182 'handleRemoteRequestSent': function () {
191//Clipperz.log("REMOTE REQUEST sent >>>"); 183//Clipperz.log("REMOTE REQUEST sent >>>");
192 }, 184 },
193 185
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js
index 7db6888..b70aa17 100644
--- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js
+++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/NewUserWizardController.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); 24Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers');
27 25
28Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) { 26Clipperz.PM.UI.Web.Controllers.NewUserWizardController = function(args) {
29 this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter'); 27 this._newUserCreationComponent = args.newUserCreationComponent|| Clipperz.Base.exception.raise('MandatoryParameter');
30 28
@@ -67,17 +65,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prot
67 65
68 //----------------------------------------------------------------------------- 66 //-----------------------------------------------------------------------------
69 67
70 'userCreationState': function () { 68 'userCreationState': function () {
71 return this._userCreationState; 69 return this._userCreationState;
72 }, 70 },
73 71
74 'setUserCreationState': function (aValue) { 72 'setUserCreationState': function (aValue) {
75//console.log("+++ NewUserWizardController.setUserCreationState", aValue);
76 this._userCreationState = aValue; 73 this._userCreationState = aValue;
77 this.checkState(); 74 this.checkState();
78 }, 75 },
79 76
80 //============================================================================= 77 //=============================================================================
81 78
82 'resetCurrentStepIndex': function () { 79 'resetCurrentStepIndex': function () {
83 this._currentStepIndex = 0; 80 this._currentStepIndex = 0;
@@ -217,26 +214,23 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prot
217 this.newUserCreationComponent().enableCheckCredentialsPanel(); 214 this.newUserCreationComponent().enableCheckCredentialsPanel();
218 215
219 enableNext = (this.newUserCreationComponent().passphrase() == this.newUserCreationComponent().rePassphrase()); 216 enableNext = (this.newUserCreationComponent().passphrase() == this.newUserCreationComponent().rePassphrase());
220 // enablePrevious = true; 217 // enablePrevious = true;
221 break 218 break
222 case 'TERMS_OF_SERVICE': 219 case 'TERMS_OF_SERVICE':
223 this.newUserCreationComponent().enableTermsOfServicePanel(); 220 this.newUserCreationComponent().enableTermsOfServicePanel();
224 221
225//console.log("awareOfUnrecoverablePassphrase", this.newUserCreationComponent().awareOfUnrecoverablePassphrase());
226//console.log("readTermsOfService", this.newUserCreationComponent().readTermsOfService());
227 enableNext = ( 222 enableNext = (
228 (this.newUserCreationComponent().awareOfUnrecoverablePassphrase() == 'on') 223 (this.newUserCreationComponent().awareOfUnrecoverablePassphrase() == 'on')
229 && 224 &&
230 (this.newUserCreationComponent().readTermsOfService() == 'on') 225 (this.newUserCreationComponent().readTermsOfService() == 'on')
231 ) 226 )
232 break; 227 break;
233 case 'CREATE_USER': 228 case 'CREATE_USER':
234//console.log(">>> CREATE_USER", this.userCreationState());
235 this.newUserCreationComponent().enableCreateUserPanel(); 229 this.newUserCreationComponent().enableCreateUserPanel();
236 230
237 switch (this.userCreationState()) { 231 switch (this.userCreationState()) {
238 case 'IDLE': 232 case 'IDLE':
239 this.setUserCreationState('IN PROGRESS'); 233 this.setUserCreationState('IN PROGRESS');
240 this.preformActualUserRegistration(); 234 this.preformActualUserRegistration();
241 235
242 enablePrevious = false; 236 enablePrevious = false;
@@ -332,17 +326,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prot
332 //============================================================================= 326 //=============================================================================
333 327
334 'handleMoveBackward': function () { 328 'handleMoveBackward': function () {
335 if (this._currentStepIndex > 0) { 329 if (this._currentStepIndex > 0) {
336 varafterMoveAction; 330 varafterMoveAction;
337 331
338 afterMoveAction = MochiKit.Base.noop; 332 afterMoveAction = MochiKit.Base.noop;
339 333
340//console.log("<-- backward", this.currentStep());
341 switch(this.currentStep()) { 334 switch(this.currentStep()) {
342 case 'CREDENTIALS': 335 case 'CREDENTIALS':
343 case 'CHECK_CREDENTIALS': 336 case 'CHECK_CREDENTIALS':
344 case 'TERMS_OF_SERVICE': 337 case 'TERMS_OF_SERVICE':
345 this._currentStepIndex --; 338 this._currentStepIndex --;
346 this.rulerComponent().moveBackward(afterMoveAction); 339 this.rulerComponent().moveBackward(afterMoveAction);
347 break; 340 break;
348 case 'CREATE_USER': 341 case 'CREATE_USER':
@@ -401,17 +394,16 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.NewUserWizardController.prot
401 394
402 'handleChangedValue': function (anEvent) { 395 'handleChangedValue': function (anEvent) {
403 this.checkState(); 396 this.checkState();
404 }, 397 },
405 398
406 //------------------------------------------------------------------------- 399 //-------------------------------------------------------------------------
407 400
408 'handleNewUserCreationComponentKeyPressed': function (anEvent) { 401 'handleNewUserCreationComponentKeyPressed': function (anEvent) {
409//console.log(">>> handleNewUserCreationComponentKeyPressed", anEvent.key().string);
410 if (anEvent.key().string == 'KEY_ENTER') { 402 if (anEvent.key().string == 'KEY_ENTER') {
411 if (anEvent.target().nodeName != 'TEXTAREA') { 403 if (anEvent.target().nodeName != 'TEXTAREA') {
412 anEvent.preventDefault(); 404 anEvent.preventDefault();
413 this.handleMoveForward(); 405 this.handleMoveForward();
414 } 406 }
415 } else if (anEvent.key().string == 'KEY_TAB') { 407 } else if (anEvent.key().string == 'KEY_TAB') {
416 if (anEvent.target() == this.newUserCreationComponent().usernameElement()) { 408 if (anEvent.target() == this.newUserCreationComponent().usernameElement()) {
417 } else { 409 } else {
diff --git a/frontend/gamma/js/Clipperz/Set.js b/frontend/gamma/js/Clipperz/Set.js
index 7023888..b3831a4 100644
--- a/frontend/gamma/js/Clipperz/Set.js
+++ b/frontend/gamma/js/Clipperz/Set.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26 24
27if (typeof(Clipperz) == 'undefined') { 25if (typeof(Clipperz) == 'undefined') {
28 Clipperz = {}; 26 Clipperz = {};
29} 27}
30 28
diff --git a/frontend/gamma/js/Clipperz/Signal.js b/frontend/gamma/js/Clipperz/Signal.js
index ca3e322..f9b74c9 100644
--- a/frontend/gamma/js/Clipperz/Signal.js
+++ b/frontend/gamma/js/Clipperz/Signal.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Signal) == 'undefined') { Clipperz.Signal = {}; } 25if (typeof(Clipperz.Signal) == 'undefined') { Clipperz.Signal = {}; }
28 26
29Clipperz.Signal.VERSION = "0.1"; 27Clipperz.Signal.VERSION = "0.1";
30Clipperz.Signal.NAME = "Clipperz.Signal"; 28Clipperz.Signal.NAME = "Clipperz.Signal";
diff --git a/frontend/gamma/js/Clipperz/Style.js b/frontend/gamma/js/Clipperz/Style.js
index d377893..acbe71b 100644
--- a/frontend/gamma/js/Clipperz/Style.js
+++ b/frontend/gamma/js/Clipperz/Style.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Style) == 'undefined') { Clipperz.Style = {}; } 25if (typeof(Clipperz.Style) == 'undefined') { Clipperz.Style = {}; }
28 26
29Clipperz.Style.VERSION = "0.1"; 27Clipperz.Style.VERSION = "0.1";
30Clipperz.Style.NAME = "Clipperz.DOM"; 28Clipperz.Style.NAME = "Clipperz.DOM";
diff --git a/frontend/gamma/js/Clipperz/Visual.js b/frontend/gamma/js/Clipperz/Visual.js
index c2da3b7..93ed725 100644
--- a/frontend/gamma/js/Clipperz/Visual.js
+++ b/frontend/gamma/js/Clipperz/Visual.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.Visual) == 'undefined') { Clipperz.Visual = {}; } 25if (typeof(Clipperz.Visual) == 'undefined') { Clipperz.Visual = {}; }
28 26
29Clipperz.Visual.VERSION = "0.1"; 27Clipperz.Visual.VERSION = "0.1";
30Clipperz.Visual.NAME = "Clipperz.Visual"; 28Clipperz.Visual.NAME = "Clipperz.Visual";
diff --git a/frontend/gamma/js/Clipperz/YUI/DomHelper.js b/frontend/gamma/js/Clipperz/YUI/DomHelper.js
index 87c74f5..0a1f9fe 100644
--- a/frontend/gamma/js/Clipperz/YUI/DomHelper.js
+++ b/frontend/gamma/js/Clipperz/YUI/DomHelper.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } 25if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; }
28 26
29 27
30/** 28/**
@@ -435,28 +433,23 @@ Clipperz.YUI.DomHelper.Template.prototype = {
435 * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) 433 * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
436 * @param {<i>Boolean</i>} returnElement (optional) true to return a YAHOO.Element 434 * @param {<i>Boolean</i>} returnElement (optional) true to return a YAHOO.Element
437 * @return {HTMLElement} The new node 435 * @return {HTMLElement} The new node
438 */ 436 */
439 append : function(el, values, returnElement){ 437 append : function(el, values, returnElement){
440 var sanitizedValues; 438 var sanitizedValues;
441 var key; 439 var key;
442 440
443 // sanitizedValues = MochiKit.Base.map(sanitizedValues)
444//console.log("values", values);
445 sanitizedValues = {}; 441 sanitizedValues = {};
446 for (key in values) { 442 for (key in values) {
447 sanitizedValues[key] = Clipperz.Base.sanitizeString(values[key]); 443 sanitizedValues[key] = Clipperz.Base.sanitizeString(values[key]);
448 } 444 }
449//console.log("sanitizedValues", sanitizedValues);
450// el = el.dom ? el.dom : YAHOO.util.Dom.get(el);
451 el = (typeof el == 'string') ? YAHOO.util.Dom.get(el) : el; 445 el = (typeof el == 'string') ? YAHOO.util.Dom.get(el) : el;
452//Clipperz.log(this.applyTemplate(sanitizedValues));
453 var newNode = Clipperz.YUI.DomHelper.insertHtml('beforeEnd', el, this.applyTemplate(sanitizedValues)); 446 var newNode = Clipperz.YUI.DomHelper.insertHtml('beforeEnd', el, this.applyTemplate(sanitizedValues));
454// return returnElement ? YAHOO.Element.get(newNode, true) : newNode; 447
455 return newNode; 448 return newNode;
456 }, 449 },
457 450
458 /** 451 /**
459 * Applies the supplied values to the template and overwrites the content of el with the new node(s) 452 * Applies the supplied values to the template and overwrites the content of el with the new node(s)
460 * @param {String/HTMLElement/Element} el The context element 453 * @param {String/HTMLElement/Element} el The context element
461 * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) 454 * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
462 * @param {<i>Boolean</i>} returnElement (optional) true to return a YAHOO.Element 455 * @param {<i>Boolean</i>} returnElement (optional) true to return a YAHOO.Element
diff --git a/frontend/gamma/js/Clipperz/YUI/DomQuery.js b/frontend/gamma/js/Clipperz/YUI/DomQuery.js
index 76d0fae..c1af0ca 100644
--- a/frontend/gamma/js/Clipperz/YUI/DomQuery.js
+++ b/frontend/gamma/js/Clipperz/YUI/DomQuery.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; } 25if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; }
28 26
29 27
30/* 28/*
diff --git a/frontend/gamma/js/Clipperz/YUI/Utils.js b/frontend/gamma/js/Clipperz/YUI/Utils.js
index e9929fc..4def842 100644
--- a/frontend/gamma/js/Clipperz/YUI/Utils.js
+++ b/frontend/gamma/js/Clipperz/YUI/Utils.js
@@ -1,30 +1,28 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof YAHOO == 'undefined') { YAHOO = {}; }; 24if (typeof YAHOO == 'undefined') { YAHOO = {}; };
27if (typeof YAHOO.util == 'undefined') { YAHOO.util = {}; }; 25if (typeof YAHOO.util == 'undefined') { YAHOO.util = {}; };
28if (typeof YAHOO.util.Dom == 'undefined') { YAHOO.util.Dom = {}; }; 26if (typeof YAHOO.util.Dom == 'undefined') { YAHOO.util.Dom = {}; };
29 27
30YAHOO.extend = function(subc, superc, overrides) { 28YAHOO.extend = function(subc, superc, overrides) {