summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/DataModel/User.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/DataModel/User.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/DataModel/User.js17
1 files changed, 10 insertions, 7 deletions
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/User.js b/frontend/beta/js/Clipperz/PM/DataModel/User.js
index dbbe9a0..b065557 100644
--- a/frontend/beta/js/Clipperz/PM/DataModel/User.js
+++ b/frontend/beta/js/Clipperz/PM/DataModel/User.js
@@ -96,548 +96,551 @@ Clipperz.PM.DataModel.User.prototype = MochiKit.Base.update(null, {
96 'maxNumberOfRecords': function() { 96 'maxNumberOfRecords': function() {
97 return this._maxNumberOfRecords; 97 return this._maxNumberOfRecords;
98 }, 98 },
99 99
100 'setMaxNumberOfRecords': function(aValue) { 100 'setMaxNumberOfRecords': function(aValue) {
101 this._maxNumberOfRecords = aValue; 101 this._maxNumberOfRecords = aValue;
102 }, 102 },
103 103
104 //------------------------------------------------------------------------- 104 //-------------------------------------------------------------------------
105 105
106 'errorHandler': function(anErrorString, anException) { 106 'errorHandler': function(anErrorString, anException) {
107MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")"); 107MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")");
108 }, 108 },
109 109
110 //------------------------------------------------------------------------- 110 //-------------------------------------------------------------------------
111 111
112 'connectionVersion': function() { 112 'connectionVersion': function() {
113 return this._connectionVersion; 113 return this._connectionVersion;
114 }, 114 },
115 115
116 'setConnectionVersion': function(aValue) { 116 'setConnectionVersion': function(aValue) {
117 this._connectionVersion = aValue; 117 this._connectionVersion = aValue;
118 }, 118 },
119 119
120 //------------------------------------------------------------------------- 120 //-------------------------------------------------------------------------
121 121
122 'connection': function() { 122 'connection': function() {
123 if ((this._connection == null) && (this.connectionVersion() != null) ){ 123 if ((this._connection == null) && (this.connectionVersion() != null) ){
124 this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this}); 124 this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this});
125 } 125 }
126 126
127 return this._connection; 127 return this._connection;
128 }, 128 },
129 129
130 'resetConnection': function(aValue) { 130 'resetConnection': function(aValue) {
131 this._connection = null; 131 this._connection = null;
132 }, 132 },
133 133
134 //========================================================================= 134 //=========================================================================
135 135
136 'register': function(anInvitationCode) { 136 'register': function(anInvitationCode) {
137 vardeferredResult; 137 vardeferredResult;
138 var prng; 138 var prng;
139 139
140//MochiKit.Logging.logError(">>> User.register: " + this); 140//MochiKit.Logging.logError(">>> User.register: " + this);
141 prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); 141 prng = Clipperz.Crypto.PRNG.defaultRandomGenerator();
142 142
143 deferredResult = new MochiKit.Async.Deferred() 143 deferredResult = new MochiKit.Async.Deferred()
144//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;}); 144//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;});
145 deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); 145 deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection'));
146//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;}); 146//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;});
147 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode); 147 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode);
148//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;}); 148//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;});
149 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode); 149 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode);
150//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;}); 150//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;});
151 deferredResult.callback(); 151 deferredResult.callback();
152//MochiKit.Logging.logError("<<< User.register"); 152//MochiKit.Logging.logError("<<< User.register");
153 153
154 return deferredResult; 154 return deferredResult;
155 }, 155 },
156 156
157 //========================================================================= 157 //=========================================================================
158 158
159 'connect': function(aValue) { 159 'connect': function(aValue) {
160 vardeferredResult; 160 vardeferredResult;
161 var prng; 161 var prng;
162 162
163 prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); 163 prng = Clipperz.Crypto.PRNG.defaultRandomGenerator();
164 164
165//MochiKit.Logging.logDebug(">>> User.connect"); 165//MochiKit.Logging.logDebug(">>> User.connect");
166 deferredResult = new MochiKit.Async.Deferred(); 166 deferredResult = new MochiKit.Async.Deferred();
167//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.1 - User.connect - 1: "/* + res*/); return res;}); 167//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.1 - User.connect - 1: "/* + res*/); return res;});
168//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 168//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
169 deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); 169 deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection'));
170//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.2 - User.connect - 2: "/* + res*/); return res;}); 170//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.2 - User.connect - 2: "/* + res*/); return res;});
171//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 171//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
172 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'login')); 172 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'login'));
173//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.3 - User.connect - 3: "/* + res*/); return res;}); 173//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.3 - User.connect - 3: "/* + res*/); return res;});
174//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 174//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
175 175
176 // TODO:add an addErrback call here to manage a wrong login. Any error after this point is due to some other causes. 176 // TODO:add an addErrback call here to manage a wrong login. Any error after this point is due to some other causes.
177 // possibly the same exact 'handleConnectionFallback use at the end of this same method. 177 // possibly the same exact 'handleConnectionFallback use at the end of this same method.
178 178
179 if (this.connectionVersion() != 'current') { 179 if (this.connectionVersion() != 'current') {
180 varcurrentConnection; 180 varcurrentConnection;
181 181
182 currentVersionConnection = new Clipperz.PM.Crypto.communicationProtocol.versions['current']({user:this}); 182 currentVersionConnection = new Clipperz.PM.Crypto.communicationProtocol.versions['current']({user:this});
183 183
184//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.4 - User.connect - 4: "/* + res*/); return res;}); 184//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.4 - User.connect - 4: "/* + res*/); return res;});
185//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 185//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
186 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_upgrading'); 186 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_upgrading');
187//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.5 - User.connect - 5: "/* + res*/); return res;}); 187//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.5 - User.connect - 5: "/* + res*/); return res;});
188//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 188//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
189 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials', currentVersionConnection.serverSideUserCredentials()); 189 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials', currentVersionConnection.serverSideUserCredentials());
190//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.6 - User.connect - 6: "/* + res*/); return res;}); 190//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.6 - User.connect - 6: "/* + res*/); return res;});
191//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 191//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
192 } 192 }
193 193
194//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.7 - User.connect - 7: "/* + res*/); return res;}); 194//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.7 - User.connect - 7: "/* + res*/); return res;});
195//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 195//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
196 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'userConnected', null); 196 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'userConnected', null);
197//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.8 - User.connect - 8: "/* + res*/); return res;}); 197//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.8 - User.connect - 8: "/* + res*/); return res;});
198//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 198//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
199 deferredResult.addErrback(MochiKit.Base.method(this, 'handleConnectionFallback')); 199 deferredResult.addErrback(MochiKit.Base.method(this, 'handleConnectionFallback'));
200//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.9 - User.connect - 9: "/* + res*/); return res;}); 200//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.9 - User.connect - 9: "/* + res*/); return res;});
201//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); 201//deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;});
202 202
203 deferredResult.callback(aValue); 203 deferredResult.callback(aValue);
204//MochiKit.Logging.logDebug("<<< User.connect"); 204//MochiKit.Logging.logDebug("<<< User.connect");
205 205
206 return deferredResult; 206 return deferredResult;
207 }, 207 },
208 208
209 //......................................................................... 209 //.........................................................................
210 210
211 'handleConnectionFallback': function(aValue) { 211 'handleConnectionFallback': function(aValue) {
212 var result; 212 var result;
213//MochiKit.Logging.logDebug(">>> User.handleConnectionFallback"); 213//MochiKit.Logging.logDebug(">>> User.handleConnectionFallback");
214 if (aValue instanceof MochiKit.Async.CancelledError) { 214 if (aValue instanceof MochiKit.Async.CancelledError) {
215//MochiKit.Logging.logDebug("--- User.handleConnectionFallback - operation cancelled"); 215//MochiKit.Logging.logDebug("--- User.handleConnectionFallback - operation cancelled");
216 result = aValue; 216 result = aValue;
217 } else { 217 } else {
218 218
219//MochiKit.Logging.logDebug("--- User.handleConnectionFallback - an ERROR has occurred - " + aValue); 219//MochiKit.Logging.logDebug("--- User.handleConnectionFallback - an ERROR has occurred - " + aValue);
220 this.resetConnection(); 220 this.resetConnection();
221 this.setConnectionVersion(Clipperz.PM.Crypto.communicationProtocol.fallbackVersions[this.connectionVersion()]); 221 this.setConnectionVersion(Clipperz.PM.Crypto.communicationProtocol.fallbackVersions[this.connectionVersion()]);
222 222
223 if (this.connectionVersion() != null) { 223 if (this.connectionVersion() != null) {
224 result = new MochiKit.Async.Deferred(); 224 result = new MochiKit.Async.Deferred();
225 225
226 result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_tryOlderSchema'); 226 result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_tryOlderSchema');
227 result.addCallback(MochiKit.Base.method(this, 'connect')); 227 result.addCallback(MochiKit.Base.method(this, 'connect'));
228 result.callback(); 228 result.callback();
229 } else { 229 } else {
230 result = MochiKit.Async.fail(Clipperz.PM.DataModel.User.exception.LoginFailed); 230 result = MochiKit.Async.fail(Clipperz.PM.DataModel.User.exception.LoginFailed);
231 } 231 }
232 } 232 }
233//MochiKit.Logging.logDebug("<<< User.handleConnectionFallback"); 233//MochiKit.Logging.logDebug("<<< User.handleConnectionFallback");
234 return result; 234 return result;
235 }, 235 },
236 236
237 //========================================================================= 237 //=========================================================================
238 238
239 'header': function() { 239 'header': function() {
240 if (this._header == null) { 240 if (this._header == null) {
241 this._header = new Clipperz.PM.DataModel.Header({user:this}); 241 this._header = new Clipperz.PM.DataModel.Header({user:this});
242 } 242 }
243 return this._header; 243 return this._header;
244 }, 244 },
245 245
246 //------------------------------------------------------------------------- 246 //-------------------------------------------------------------------------
247 247
248 'statistics': function() { 248 'statistics': function() {
249 if (this._statistics == null) { 249 if (this._statistics == null) {
250 this._statistics = new Clipperz.PM.DataModel.Statistics({user:this}); 250 this._statistics = new Clipperz.PM.DataModel.Statistics({user:this});
251 } 251 }
252 return this._statistics; 252 return this._statistics;
253 }, 253 },
254 254
255 //------------------------------------------------------------------------- 255 //-------------------------------------------------------------------------
256 256
257 'records': function() { 257 'records': function() {
258 return this._records; 258 return this._records;
259 }, 259 },
260 260
261 //......................................................................... 261 //.........................................................................
262 262
263 'addRecord': function(aValue, isBatchUpdate) { 263 'addRecord': function(aValue, isBatchUpdate) {
264 this.records()[aValue.reference()] = aValue; 264 this.records()[aValue.reference()] = aValue;
265 265
266 if (isBatchUpdate != true) { 266 if (isBatchUpdate != true) {
267 Clipperz.NotificationCenter.notify(aValue, 'recordAdded', null, true); 267 Clipperz.NotificationCenter.notify(aValue, 'recordAdded', null, true);
268 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); 268 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true);
269 } 269 }
270 }, 270 },
271 271
272 //----------------------------------------------------------------------------- 272 //-----------------------------------------------------------------------------
273 273
274 'addNewRecord': function() { 274 'addNewRecord': function() {
275 varrecord; 275 varrecord;
276 276
277//MochiKit.Logging.logDebug(">>> User.addNewRecord"); 277//MochiKit.Logging.logDebug(">>> User.addNewRecord");
278 record = new Clipperz.PM.DataModel.Record({user:this}); 278 record = new Clipperz.PM.DataModel.Record({user:this});
279 this.addRecord(record); 279 this.addRecord(record);
280 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); 280 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true);
281//MochiKit.Logging.logDebug("<<< User.addNewRecord"); 281//MochiKit.Logging.logDebug("<<< User.addNewRecord");
282 282
283 return record; 283 return record;
284 }, 284 },
285 285
286 //------------------------------------------------------------------------- 286 //-------------------------------------------------------------------------
287 287
288 'saveRecords': function(someRecords, aMethodName) { 288 'saveRecords': function(someRecords /*, aMethodName*/) {
289 var deferredResult; 289 var deferredResult;
290 var methodName; 290 // var methodName;
291 varresult; 291 varresult;
292 var i,c; 292 var i,c;
293 293
294//console.log("User.saveRecords - someRecords", someRecords); 294//console.log("User.saveRecords - someRecords", someRecords);
295 methodName = aMethodName || 'addNewRecords'; 295 // methodName = aMethodName || 'addNewRecords';
296 296
297 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); 297 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true);
298//MochiKit.Logging.logDebug(">>> User.saveRecords"); 298//MochiKit.Logging.logDebug(">>> User.saveRecords");
299//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] User.saveRecords"); 299//MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] User.saveRecords");
300/* 300/*
301MochiKit.Logging.logDebug("--- User.saveRecords - 1"); 301MochiKit.Logging.logDebug("--- User.saveRecords - 1");
302 MochiKit.Iter.forEach(someRecords, function(aRecord) { 302 MochiKit.Iter.forEach(someRecords, function(aRecord) {
303 if (aRecord.headerNotes() != null) { 303 if (aRecord.headerNotes() != null) {
304 aRecord.setNotes(aRecord.headerNotes()); 304 aRecord.setNotes(aRecord.headerNotes());
305 } 305 }
306 aRecord.syncDirectLoginReferenceValues(); 306 aRecord.syncDirectLoginReferenceValues();
307 aRecord.currentVersion().createNewVersion(); 307 aRecord.currentVersion().createNewVersion();
308 aRecord.updateKey(); 308 aRecord.updateKey();
309 }); 309 });
310MochiKit.Logging.logDebug("--- User.saveRecords - 2"); 310MochiKit.Logging.logDebug("--- User.saveRecords - 2");
311*/ 311*/
312 312
313 result = {'records': []}; 313 result = {'records': []};
314 314
315 deferredResult = new MochiKit.Async.Deferred(); 315 deferredResult = new MochiKit.Async.Deferred();
316 c = someRecords.length; 316 c = someRecords.length;
317 for (i=0; i<c; i++) { 317 for (i=0; i<c; i++) {
318 deferredResult.addCallback(function(aRecord) { 318 deferredResult.addCallback(function(aRecord) {
319 if (aRecord.headerNotes() != null) { 319 if (aRecord.headerNotes() != null) {
320 aRecord.setNotes(aRecord.headerNotes()); 320 aRecord.setNotes(aRecord.headerNotes());
321 } 321 }
322 aRecord.syncDirectLoginReferenceValues(); 322 aRecord.syncDirectLoginReferenceValues();
323 aRecord.currentVersion().createNewVersion(); 323 aRecord.currentVersion().createNewVersion();
324 aRecord.updateKey(); 324 aRecord.updateKey();
325 }, someRecords[i]); 325 }, someRecords[i]);
326 deferredResult.addCallback(MochiKit.Async.wait, 0.1); 326 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
327 } 327 }
328//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 1 " + res); return res;}); 328//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 1 " + res); return res;});
329 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo'); 329 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo');
330//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 2 " + res); return res;}); 330//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 2 " + res); return res;});
331 331
332 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData'); 332 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData');
333//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 3 " + res); return res;}); 333//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 3 " + res); return res;});
334 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); 334 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData'));
335//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 4 " + res); return res;}); 335//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 4 " + res); return res;});
336 deferredResult.addCallback(function(aResult, res) { 336 deferredResult.addCallback(function(aResult, res) {
337 aResult['user'] = res; 337 aResult['user'] = res;
338 return aResult; 338 return aResult;
339 }, result); 339 }, result);
340//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 5 " + res); return res;}); 340//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 5 " + res); return res;});
341 341
342 c = someRecords.length; 342 c = someRecords.length;
343 for (i=0; i<c; i++) { 343 for (i=0; i<c; i++) {
344 var recordData; 344 var recordData;
345 345
346 recordData = {}; 346 recordData = {};
347 347
348//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.1 " + res); return res;}); 348//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.1 " + res); return res;});
349 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData'); 349 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData');
350//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.2 " + res); return res;}); 350//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.2 " + res); return res;});
351 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'encryptedData')); 351 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'encryptedData'));
352//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.3 " + res); return res;}); 352//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.3 " + res); return res;});
353 deferredResult.addCallback(function(aResult, res) { 353 deferredResult.addCallback(function(aResult, res) {
354 aResult['record'] = res; 354 aResult['record'] = res;
355 return aResult; 355 return aResult;
356 }, recordData); 356 }, recordData);
357//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.4 " + res); return res;}); 357//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.4 " + res); return res;});
358 358
359 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {} /*'saveCard_encryptRecordVersions'*/); 359 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {} /*'saveCard_encryptRecordVersions'*/);
360//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.5 " + res); return res;}); 360//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.5 " + res); return res;});
361 deferredResult.addCallback(MochiKit.Base.method(someRecords[i].currentVersion(), 'encryptedData')); 361 deferredResult.addCallback(MochiKit.Base.method(someRecords[i].currentVersion(), 'encryptedData'));
362//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.6 " + res); return res;}); 362//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.6 " + res); return res;});
363 deferredResult.addCallback(function(aResult, res) { 363 deferredResult.addCallback(function(aResult, res) {
364 aResult['currentRecordVersion'] = res; 364 aResult['currentRecordVersion'] = res;
365 return aResult; 365 return aResult;
366 }, recordData); 366 }, recordData);
367//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;}); 367//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;});
368 368
369 deferredResult.addCallback(function(aResult, res) { 369 deferredResult.addCallback(function(aResult, res) {
370 aResult['records'].push(res); 370 aResult['records'] = { 'updated': [res] };
371 return aResult; 371 return aResult;
372 }, result); 372 }, result);
373//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;}); 373//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;});
374 } 374 }
375 375
376//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;}); 376//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;});
377 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); 377 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData');
378//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;}); 378//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;});
379 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName); 379 // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName);
380 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges');
380//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;}); 381//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;});
381 382
382 for (i=0; i<c; i++) { 383 for (i=0; i<c; i++) {
383//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.1 " + res); return res;}); 384//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.1 " + res); return res;});
384 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'takeSnapshotOfCurrentData')); 385 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'takeSnapshotOfCurrentData'));
385//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.2 " + res); return res;}); 386//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.2 " + res); return res;});
386 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'setIsBrandNew'), false); 387 deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'setIsBrandNew'), false);
387//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.3 " + res); return res;}); 388//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.3 " + res); return res;});
388 } 389 }
389 390
390//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 10 " + res); return res;}); 391//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 10 " + res); return res;});
391 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated'); 392 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated');
392//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 11 " + res); return res;}); 393//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 11 " + res); return res;});
393 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated'); 394 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated');
394//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 12 " + res); return res;}); 395//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 12 " + res); return res;});
395 deferredResult.callback(); 396 deferredResult.callback();
396 397
397 return deferredResult; 398 return deferredResult;
398 }, 399 },
399 400
400 //------------------------------------------------------------------------- 401 //-------------------------------------------------------------------------
401 402
402 'removeRecord': function(aRecord) { 403 'removeRecord': function(aRecord) {
403//MochiKit.Logging.logDebug(">>> User.removeRecord"); 404//MochiKit.Logging.logDebug(">>> User.removeRecord");
404 delete this.records()[aRecord.reference()]; 405 delete this.records()[aRecord.reference()];
405//MochiKit.Logging.logDebug("--- User.removeRecord - 1"); 406//MochiKit.Logging.logDebug("--- User.removeRecord - 1");
406 Clipperz.NotificationCenter.notify(aRecord, 'recordRemoved', null, false); 407 Clipperz.NotificationCenter.notify(aRecord, 'recordRemoved', null, false);
407 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); 408 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true);
408//MochiKit.Logging.logDebug("<<< User.removeRecord"); 409//MochiKit.Logging.logDebug("<<< User.removeRecord");
409 }, 410 },
410 411
411 //------------------------------------------------------------------------- 412 //-------------------------------------------------------------------------
412 413
413 'deleteRecordsAction': function(someRecords) { 414 'deleteRecordsAction': function(someRecords) {
414 vardeferredResult; 415 vardeferredResult;
415 var parameters; 416 var parameters;
416 417
417//MochiKit.Logging.logDebug(">>> User.deleteRecordsAction - someRecords.length: " + someRecords.length); 418//MochiKit.Logging.logDebug(">>> User.deleteRecordsAction - someRecords.length: " + someRecords.length);
418 parameters = {}; 419 parameters = {};
419 deferredResult = new MochiKit.Async.Deferred(); 420 deferredResult = new MochiKit.Async.Deferred();
420//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 1 " + res); return res;}); 421//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 1 " + res); return res;});
421 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_collectData'); 422 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_collectData');
422//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 2 " + res); return res;}); 423//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 2 " + res); return res;});
423 deferredResult.addCallback(function(someParameters, someRecords) { 424 deferredResult.addCallback(function(someParameters, someRecords) {
424 var recordReferences; 425 var recordReferences;
425 426
426 recordReferences = MochiKit.Base.map(function(aRecord) { 427 recordReferences = MochiKit.Base.map(function(aRecord) {
427 var result; 428 var result;
428 429
429 result = aRecord.reference(); 430 result = aRecord.reference();
430 aRecord.remove(); 431 aRecord.remove();
431 432
432 return result; 433 return result;
433 }, someRecords); 434 }, someRecords);
434 someParameters.recordReferences = recordReferences; 435 // someParameters.recordReferences = recordReferences;
436 someParameters['records'] = { 'deleted': recordReferences};
435 437
436 return someParameters; 438 return someParameters;
437 }, parameters); 439 }, parameters);
438//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 3 " + res); return res;}); 440//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 3 " + res); return res;});
439 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_encryptData'); 441 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_encryptData');
440//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 4 " + res); return res;}); 442//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 4 " + res); return res;});
441 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); 443 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData'));
442//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 5 " + res); return res;}); 444//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 5 " + res); return res;});
443 deferredResult.addCallback(function(someParameters, anUserEncryptedData) { 445 deferredResult.addCallback(function(someParameters, anUserEncryptedData) {
444 someParameters.user = anUserEncryptedData; 446 someParameters.user = anUserEncryptedData;
445 return someParameters; 447 return someParameters;
446 }, parameters); 448 }, parameters);
447//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 6 " + res); return res;}); 449//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 6 " + res); return res;});
448 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData'); 450 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData');
449//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;}); 451//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;});
450//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;}); 452//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;});
451 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords'); 453 // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords');
454 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges');
452//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;}); 455//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;});
453 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface'); 456 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface');
454//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;}); 457//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;});
455 deferredResult.callback(someRecords); 458 deferredResult.callback(someRecords);
456//MochiKit.Logging.logDebug("<<< User.deleteRecordsAction"); 459//MochiKit.Logging.logDebug("<<< User.deleteRecordsAction");
457 460
458 return deferredResult; 461 return deferredResult;
459 }, 462 },
460 463
461 //------------------------------------------------------------------------- 464 //-------------------------------------------------------------------------
462 465
463 'resetAllLocalData': function() { 466 'resetAllLocalData': function() {
464 this.resetConnection(); 467 this.resetConnection();
465 468
466 this.setUsername(""); 469 this.setUsername("");
467 this.setPassphrase(""); 470 this.setPassphrase("");
468 471
469 this._header = null; 472 this._header = null;
470 this._statistics = null; 473 this._statistics = null;
471 this._preferences = null; 474 this._preferences = null;
472 this._records = {}; 475 this._records = {};
473 this._directLoginReferences = {}; 476 this._directLoginReferences = {};
474 }, 477 },
475 478
476 //------------------------------------------------------------------------- 479 //-------------------------------------------------------------------------
477 480
478 'deleteAccountAction': function() { 481 'deleteAccountAction': function() {
479 var deferredResult; 482 var deferredResult;
480 483
481//MochiKit.Logging.logDebug(">>> user.deleteAccountAction - " + this); 484//MochiKit.Logging.logDebug(">>> user.deleteAccountAction - " + this);
482 deferredResult = new MochiKit.Async.Deferred(); 485 deferredResult = new MochiKit.Async.Deferred();
483 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteUser'); 486 deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteUser');
484 deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData')); 487 deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData'));
485 deferredResult.callback(); 488 deferredResult.callback();
486//MochiKit.Logging.logDebug("<<< user.deleteAccountAction - " + this); 489//MochiKit.Logging.logDebug("<<< user.deleteAccountAction - " + this);
487 490
488 return deferredResult; 491 return deferredResult;
489 }, 492 },
490 493
491 //------------------------------------------------------------------------- 494 //-------------------------------------------------------------------------
492 495
493 'encryptedData': function() { 496 'encryptedData': function() {
494 var deferredResult; 497 var deferredResult;
495 varresult; 498 varresult;
496 499
497 result = {}; 500 result = {};
498 501
499 deferredResult = new MochiKit.Async.Deferred(); 502 deferredResult = new MochiKit.Async.Deferred();
500 503
501//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 0: " + res); return res;}); 504//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 0: " + res); return res;});
502 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'encryptedData')); 505 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'encryptedData'));
503//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 1: " + res); return res;}); 506//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 1: " + res); return res;});
504 deferredResult.addCallback(function(aResult, aValue) { 507 deferredResult.addCallback(function(aResult, aValue) {
505 aResult['header'] = aValue; 508 aResult['header'] = aValue;
506 }, result); 509 }, result);
507//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 2: " + res); return res;}); 510//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 2: " + res); return res;});
508 511
509 deferredResult.addCallback(MochiKit.Base.method(this.statistics(), 'encryptedData')); 512 deferredResult.addCallback(MochiKit.Base.method(this.statistics(), 'encryptedData'));
510//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 3: " + res); return res;}); 513//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 3: " + res); return res;});
511 deferredResult.addCallback(function(aResult, aValue) { 514 deferredResult.addCallback(function(aResult, aValue) {
512 aResult['statistics'] = aValue; 515 aResult['statistics'] = aValue;
513 }, result); 516 }, result);
514//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 4: " + res); return res;}); 517//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 4: " + res); return res;});
515 518
516 deferredResult.addCallback(MochiKit.Base.bind(function(aResult, aValue) { 519 deferredResult.addCallback(MochiKit.Base.bind(function(aResult, aValue) {
517 aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; 520 aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion;
518 aResult['lock'] = this.lock(); 521 aResult['lock'] = this.lock();
519 522
520 return aResult; 523 return aResult;
521 }, this), result); 524 }, this), result);
522//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 5: " + res); return res;}); 525//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 5: " + res); return res;});
523 deferredResult.callback(); 526 deferredResult.callback();
524 527
525 return deferredResult; 528 return deferredResult;
526 }, 529 },
527 530
528 //------------------------------------------------------------------------- 531 //-------------------------------------------------------------------------
529 532
530 'preferences': function() { 533 'preferences': function() {
531 if (this._preferences == null) { 534 if (this._preferences == null) {
532 this._preferences = new Clipperz.PM.DataModel.UserPreferences({user:this}); 535 this._preferences = new Clipperz.PM.DataModel.UserPreferences({user:this});
533 } 536 }
534 537
535 return this._preferences; 538 return this._preferences;
536 }, 539 },
537/* 540/*
538 'setPreferences': function(aValue) { 541 'setPreferences': function(aValue) {
539 this._preferences = aValue; 542 this._preferences = aValue;
540 543
541 if (this._preferences.preferredLanguage() != null) { 544 if (this._preferences.preferredLanguage() != null) {
542 Clipperz.PM.Strings.Languages.setSelectedLanguage(this._preferences.preferredLanguage()); 545 Clipperz.PM.Strings.Languages.setSelectedLanguage(this._preferences.preferredLanguage());
543 } else { 546 } else {
544//MochiKit.Logging.logDebug("### keepping the browser selected language: " + Clipperz.PM.Strings.selectedLanguage); 547//MochiKit.Logging.logDebug("### keepping the browser selected language: " + Clipperz.PM.Strings.selectedLanguage);
545 } 548 }
546 }, 549 },
547*/ 550*/
548 //------------------------------------------------------------------------- 551 //-------------------------------------------------------------------------
549 552
550 'oneTimePasswordManager': function() { 553 'oneTimePasswordManager': function() {
551 if (this._oneTimePasswordManager == null) { 554 if (this._oneTimePasswordManager == null) {
552 this._oneTimePasswordManager = new Clipperz.PM.DataModel.OneTimePasswordManager(this, null); 555 this._oneTimePasswordManager = new Clipperz.PM.DataModel.OneTimePasswordManager(this, null);
553 } 556 }
554 557
555 return this._oneTimePasswordManager; 558 return this._oneTimePasswordManager;
556 }, 559 },
557 560
558 //------------------------------------------------------------------------- 561 //-------------------------------------------------------------------------
559 562
560 'directLoginReferences': function() { 563 'directLoginReferences': function() {
561 return this._directLoginReferences; 564 return this._directLoginReferences;
562 }, 565 },
563 566
564 'addDirectLoginReference': function(aDirectLoginReference, isBatchUpdate) { 567 'addDirectLoginReference': function(aDirectLoginReference, isBatchUpdate) {
565//MochiKit.Logging.logDebug(">>> User.addDirectLoginReference"); 568//MochiKit.Logging.logDebug(">>> User.addDirectLoginReference");
566 this.directLoginReferences()[aDirectLoginReference.reference()] = aDirectLoginReference; 569 this.directLoginReferences()[aDirectLoginReference.reference()] = aDirectLoginReference;
567 570
568 if (isBatchUpdate != true) { 571 if (isBatchUpdate != true) {
569 Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginAdded'); 572 Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginAdded');
570 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); 573 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true);
571 } 574 }
572 }, 575 },
573 576
574 'removeDirectLoginReference': function(aDirectLoginReference) { 577 'removeDirectLoginReference': function(aDirectLoginReference) {
575 delete this.directLoginReferences()[aDirectLoginReference.reference()]; 578 delete this.directLoginReferences()[aDirectLoginReference.reference()];
576 Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginRemoved'); 579 Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginRemoved');
577 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); 580 Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true);
578 }, 581 },
579 582
580 //......................................................................... 583 //.........................................................................
581 584
582 'addDirectLogin': function(aDirectLogin) { 585 'addDirectLogin': function(aDirectLogin) {
583 varnewDirectLoginReference; 586 varnewDirectLoginReference;
584 587
585 newDirectLoginReference = new Clipperz.PM.DataModel.DirectLoginReference({user:this, directLogin:aDirectLogin}) 588 newDirectLoginReference = new Clipperz.PM.DataModel.DirectLoginReference({user:this, directLogin:aDirectLogin})
586 this.addDirectLoginReference(newDirectLoginReference); 589 this.addDirectLoginReference(newDirectLoginReference);
587 }, 590 },
588 591
589 'synchronizeDirectLogin': function(aDirectLogin) { 592 'synchronizeDirectLogin': function(aDirectLogin) {
590 var directLoginReference; 593 var directLoginReference;
591 594
592 directLoginReference = this.directLoginReferences()[aDirectLogin.reference()]; 595 directLoginReference = this.directLoginReferences()[aDirectLogin.reference()];
593 if (typeof(directLoginReference) != 'undefined') { 596 if (typeof(directLoginReference) != 'undefined') {
594 directLoginReference.synchronizeValues(aDirectLogin); 597 directLoginReference.synchronizeValues(aDirectLogin);
595 } else { 598 } else {
596 this.addDirectLogin(aDirectLogin); 599 this.addDirectLogin(aDirectLogin);
597 } 600 }
598 }, 601 },
599 602
600 'removeDirectLogin': function(aDirectLogin) { 603 'removeDirectLogin': function(aDirectLogin) {
601 this.removeDirectLoginReference(aDirectLogin); 604 this.removeDirectLoginReference(aDirectLogin);
602 }, 605 },
603 606
604 //------------------------------------------------------------------------- 607 //-------------------------------------------------------------------------
605 608
606 'changeCredentials': function(aUsername, aPassphrase) { 609 'changeCredentials': function(aUsername, aPassphrase) {
607 vardeferredResult; 610 vardeferredResult;
608 var result; 611 var result;
609 612
610 result = {}; 613 result = {};
611 614
612 deferredResult = new MochiKit.Async.Deferred(); 615 deferredResult = new MochiKit.Async.Deferred();
613 616
614 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'loadAllSections')); 617 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'loadAllSections'));
615 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections')); 618 deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'));
616 619
617 deferredResult.addCallback(MochiKit.Base.bind(function(aUsername, aPssphrase) { 620 deferredResult.addCallback(MochiKit.Base.bind(function(aUsername, aPssphrase) {
618 this.setUsername(aUsername); 621 this.setUsername(aUsername);
619 this.setPassphrase(aPassphrase); 622 this.setPassphrase(aPassphrase);
620 }, this), aUsername, aPassphrase) 623 }, this), aUsername, aPassphrase)
621 624
622//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 1: " + res); return res;}); 625//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 1: " + res); return res;});
623 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_encryptingData'); 626 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_encryptingData');
624//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 2: " + res); return res;}); 627//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 2: " + res); return res;});
625 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); 628 deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData'));
626//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 3: " + res); return res;}); 629//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 3: " + res); return res;});
627 deferredResult.addCallback(function(aResult, anEncryptedData) { 630 deferredResult.addCallback(function(aResult, anEncryptedData) {
628 aResult['user'] = anEncryptedData; 631 aResult['user'] = anEncryptedData;
629 632
630 return aResult; 633 return aResult;
631 }, result); 634 }, result);
632//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 4: " + res); return res;}); 635//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 4: " + res); return res;});
633 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_creatingNewCredentials'); 636 deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_creatingNewCredentials');
634//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 5: " + res); return res;}); 637//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 5: " + res); return res;});
635 deferredResult.addCallback(function(aResult, anUser) { 638 deferredResult.addCallback(function(aResult, anUser) {
636 varnewConnection; 639 varnewConnection;
637 640
638 newConnection = new Clipperz.PM.Crypto.communicationProtocol.versions[Clipperz.PM.Crypto.communicationProtocol.currentVersion]({user:anUser}) 641 newConnection = new Clipperz.PM.Crypto.communicationProtocol.versions[Clipperz.PM.Crypto.communicationProtocol.currentVersion]({user:anUser})
639 aResult['credentials'] = newConnection.serverSideUserCredentials(); 642 aResult['credentials'] = newConnection.serverSideUserCredentials();
640 643
641 return aResult; 644 return aResult;
642 }, result, this); 645 }, result, this);
643//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 6: " + res); return res;}); 646//deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 6: " + res); return res;});