summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js22
1 files changed, 10 insertions, 12 deletions
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,184 +1,182 @@
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 = {}; }
31 29
32Clipperz.PM.DataModel.User.Header.Legacy = function(args) { 30Clipperz.PM.DataModel.User.Header.Legacy = function(args) {
33 //args = args || {}; 31 //args = args || {};
34 Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments); 32 Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments);
35 33
36 this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); 34 this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter');
37 this._records = null; 35 this._records = null;
38 //this._directLogins = null; 36 //this._directLogins = null;
39 37
40 return this; 38 return this;
41} 39}
42 40
43 41
44Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, { 42Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, {
45 43
46 'toString': function() { 44 'toString': function() {
47 return "Clipperz.PM.DataModel.User.Header.Legacy"; 45 return "Clipperz.PM.DataModel.User.Header.Legacy";
48 }, 46 },
49 47
50 //------------------------------------------------------------------------- 48 //-------------------------------------------------------------------------
51 49
52 'retrieveRecordDetailFunction': function () { 50 'retrieveRecordDetailFunction': function () {
53 return this._retrieveRecordDetailFunction; 51 return this._retrieveRecordDetailFunction;
54 }, 52 },
55 53
56 //------------------------------------------------------------------------- 54 //-------------------------------------------------------------------------
57 55
58 'getRecordKey': function (aRecordReference) { 56 'getRecordKey': function (aRecordReference) {
59 var deferredResult; 57 var deferredResult;
60 58
61 deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false}); 59 deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false});
62 deferredResult.addMethod(this, 'getRecordIndexData'); 60 deferredResult.addMethod(this, 'getRecordIndexData');
63 deferredResult.addCallback(MochiKit.Base.itemgetter('key')) 61 deferredResult.addCallback(MochiKit.Base.itemgetter('key'))
64 deferredResult.callback(); 62 deferredResult.callback();
65 63
66 return deferredResult; 64 return deferredResult;
67 }, 65 },
68 66
69 //========================================================================= 67 //=========================================================================
70 68
71 'getRecordIndexData': function (aRecordReference) { 69 'getRecordIndexData': function (aRecordReference) {
72 return this.getValue('records.' + aRecordReference); 70 return this.getValue('records.' + aRecordReference);
73 }, 71 },
74 72
75 'updateRecordIndexData': function (aRecordReference, aKey, aValue) { 73 'updateRecordIndexData': function (aRecordReference, aKey, aValue) {
76 return this.setValue('records.' + aRecordReference + "." + aKey, aValue); 74 return this.setValue('records.' + aRecordReference + "." + aKey, aValue);
77 }, 75 },
78 76
79 //------------------------------------------------------------------------- 77 //-------------------------------------------------------------------------
80 78
81 'getDirectLoginIndexData': function (aDirectLoginReference) { 79 'getDirectLoginIndexData': function (aDirectLoginReference) {
82 return this.getValue('directLogins.' + aDirectLoginReference); 80 return this.getValue('directLogins.' + aDirectLoginReference);
83 }, 81 },
84 82
85 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { 83 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) {
86 return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue); 84 return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue);
87 }, 85 },
88 86
89 'removeDirectLoginIndexData': function (aDirectLoginReference) { 87 'removeDirectLoginIndexData': function (aDirectLoginReference) {
90 return this.removeValue('directLogins.' + aDirectLoginReference); 88 return this.removeValue('directLogins.' + aDirectLoginReference);
91 }, 89 },
92 90
93 //========================================================================= 91 //=========================================================================
94 92
95 'records': function () { 93 'records': function () {
96 vardeferredResult; 94 vardeferredResult;
97 var deferredLock; 95 var deferredLock;
98 96
99 deferredLock = this.getDeferredLockForKey('records'); 97 deferredLock = this.getDeferredLockForKey('records');
100 98
101 deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false}); 99 deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false});
102 deferredResult.acquireLock(deferredLock); 100 deferredResult.acquireLock(deferredLock);
103 deferredResult.addCallback(MochiKit.Base.bind(function () { 101 deferredResult.addCallback(MochiKit.Base.bind(function () {
104 var innerDeferredResult; 102 var innerDeferredResult;
105 103
106 if (this._records == null) { 104 if (this._records == null) {
107 innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false}); 105 innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false});
108 innerDeferredResult.collectResults({ 106 innerDeferredResult.collectResults({
109 'header': [ 107 'header': [
110 // MochiKit.Base.method(this, 'getObjectDataStore'), 108 // MochiKit.Base.method(this, 'getObjectDataStore'),
111 // MochiKit.Base.methodcaller('values') 109 // MochiKit.Base.methodcaller('values')
112 MochiKit.Base.method(this, 'values') 110 MochiKit.Base.method(this, 'values')
113 ], 111 ],
114 'recordsStats': [ 112 'recordsStats': [
115 MochiKit.Base.method(this, 'getRemoteData'), 113 MochiKit.Base.method(this, 'getRemoteData'),
116 MochiKit.Base.itemgetter('recordsStats') 114 MochiKit.Base.itemgetter('recordsStats')
117 ] 115 ]
118 }); 116 });
119 innerDeferredResult.addCallback(MochiKit.Base.bind(function (someObjectData) { 117 innerDeferredResult.addCallback(MochiKit.Base.bind(function (someObjectData) {
120 var reference; 118 var reference;
121 119
122 this._records = {}; 120 this._records = {};
123 // this._directLogins = {}; 121 // this._directLogins = {};
124 122
125 for (reference in someObjectData['header']['records']) { 123 for (reference in someObjectData['header']['records']) {
126 varrecord; 124 varrecord;
127 125
128 record = new Clipperz.PM.DataModel.Record({ 126 record = new Clipperz.PM.DataModel.Record({
129 'reference': reference, 127 'reference': reference,
130 'retrieveKeyFunction': MochiKit.Base.method(this, 'getRecordKey'), 128 'retrieveKeyFunction': MochiKit.Base.method(this, 'getRecordKey'),
131 'retrieveRemoteDataFunction':this.retrieveRecordDetailFunction(), 129 'retrieveRemoteDataFunction':this.retrieveRecordDetailFunction(),
132 // 'encryptedDataKeypath': 'data', 130 // 'encryptedDataKeypath': 'data',
133 // 'encryptedVersionKeypath': 'version', 131 // 'encryptedVersionKeypath': 'version',
134 132
135 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getRecordIndexData'), 133 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getRecordIndexData'),
136 'updateIndexDataFunction': MochiKit.Base.method(this, 'updateRecordIndexData'), 134 'updateIndexDataFunction': MochiKit.Base.method(this, 'updateRecordIndexData'),
137 'updateDate': someObjectData['recordsStats'][reference]['updateDate'], 135 'updateDate': someObjectData['recordsStats'][reference]['updateDate'],
138 136
139 'retrieveDirectLoginIndexDataFunction':MochiKit.Base.method(this, 'getDirectLoginIndexData'), 137 'retrieveDirectLoginIndexDataFunction':MochiKit.Base.method(this, 'getDirectLoginIndexData'),
140 'setDirectLoginIndexDataFunction': MochiKit.Base.method(this, 'setDirectLoginIndexData'), 138 'setDirectLoginIndexDataFunction': MochiKit.Base.method(this, 'setDirectLoginIndexData'),
141 'removeDirectLoginIndexDataFunction':MochiKit.Base.method(this, 'removeDirectLoginIndexData') 139 'removeDirectLoginIndexDataFunction':MochiKit.Base.method(this, 'removeDirectLoginIndexData')
142 }); 140 });
143 141
144 this._records[reference] = record; 142 this._records[reference] = record;
145 } 143 }
146 144
147 for (reference in someObjectData['header']['directLogins']) { 145 for (reference in someObjectData['header']['directLogins']) {
148 vardirectLogin; 146 vardirectLogin;
149 var record; 147 var record;
150 148
151 record = this._records[someObjectData['header']['directLogins'][reference]['record']]; 149 record = this._records[someObjectData['header']['directLogins'][reference]['record']];
152 if (record != null) { 150 if (record != null) {
153 directLogin = new Clipperz.PM.DataModel.DirectLogin({ 151 directLogin = new Clipperz.PM.DataModel.DirectLogin({
154 'reference': reference, 152 'reference': reference,
155 'record': record//, 153 'record': record//,
156 // 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getDirectLoginIndexData'), 154 // 'retrieveIndexDataFunction':MochiKit.Base.method(this, 'getDirectLoginIndexData'),
157 // 'setIndexDataFunction': MochiKit.Base.method(this, 'setDirectLoginIndexData'), 155 // 'setIndexDataFunction': MochiKit.Base.method(this, 'setDirectLoginIndexData'),
158 // 'removeIndexDataFunction': MochiKit.Base.method(this, 'removeDirectLoginIndexData') 156 // 'removeIndexDataFunction': MochiKit.Base.method(this, 'removeDirectLoginIndexData')
159 }); 157 });
160 } else { 158 } else {
161Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!"); 159Clipperz.log("WARNING: DIRECT LOGIN without a matching RECORD!!");
162 } 160 }
163 } 161 }
164 162
165 return this._records; 163 return this._records;
166 }, this)); 164 }, this));
167 innerDeferredResult.callback(); 165 innerDeferredResult.callback();
168 } else { 166 } else {
169 innerDeferredResult = MochiKit.Async.succeed(this._records); 167 innerDeferredResult = MochiKit.Async.succeed(this._records);
170 } 168 }
171 169
172 return innerDeferredResult; 170 return innerDeferredResult;
173 }, this)); 171 }, this));
174 deferredResult.releaseLock(deferredLock); 172 deferredResult.releaseLock(deferredLock);
175 deferredResult.callback(); 173 deferredResult.callback();
176 174
177 return deferredResult; 175 return deferredResult;
178 }, 176 },
179 177
180 //========================================================================= 178 //=========================================================================
181 __syntaxFix__: "syntax fix" 179 __syntaxFix__: "syntax fix"
182}); 180});
183 181
184 182