mirror of
http://git.whoc.org.uk/git/password-manager.git
synced 2025-10-25 17:47:34 +02:00
Download all records data for export together, to avoid request-toll issues
This commit is contained in:
@@ -164,10 +164,19 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
'hasLoadedRemoteData': function () {
|
||||
//console.log("EncryptedRemoteObject.hasLoadedRemoteData", this._remoteData);
|
||||
return (this._remoteData != null);
|
||||
},
|
||||
|
||||
'setRemoteData': function (someData) {
|
||||
return Clipperz.Async.callbacks("EncryptedRemoteObject.setRemoteData", [
|
||||
MochiKit.Base.method(this, 'unpackRemoteData', someData),
|
||||
MochiKit.Base.bind(function (unpackedData) {
|
||||
this._remoteData = unpackedData;
|
||||
return this._remoteData;
|
||||
}, this)
|
||||
], {trace:false});
|
||||
},
|
||||
|
||||
'getRemoteData': function () {
|
||||
var deferredResult;
|
||||
var deferredLock;
|
||||
@@ -184,17 +193,12 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
|
||||
} else {
|
||||
innerDeferredResult = Clipperz.Async.callbacks("EncryptedRemoteObjects.getRemoteData <inner deferred>", [
|
||||
MochiKit.Base.partial(this.retrieveRemoteDataFunction(), this.reference()),
|
||||
MochiKit.Base.method(this, 'unpackRemoteData'),
|
||||
MochiKit.Base.bind(function (someData) {
|
||||
this._remoteData = someData;
|
||||
return this._remoteData;
|
||||
}, this)
|
||||
MochiKit.Base.method(this, 'setRemoteData'),
|
||||
], {trace:false});
|
||||
}
|
||||
|
||||
return innerDeferredResult;
|
||||
}, this))
|
||||
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress');
|
||||
deferredResult.releaseLock(deferredLock);
|
||||
|
||||
deferredResult.callback();
|
||||
@@ -259,7 +263,6 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
|
||||
innerDeferredResult = new Clipperz.Async.Deferred("EncryptedRemoteObject.getDecryptedData <inner deferred>", {trace:false});
|
||||
|
||||
innerDeferredResult.addMethod(this, 'getRemoteData');
|
||||
innerDeferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress');
|
||||
innerDeferredResult.collectResults({
|
||||
'key': MochiKit.Base.method(this, 'getKey'),
|
||||
'value': MochiKit.Base.itemgetter(this._encryptedDataKeypath),
|
||||
@@ -267,14 +270,12 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
|
||||
});
|
||||
|
||||
innerDeferredResult.addCallback(Clipperz.PM.Crypto.deferredDecrypt);
|
||||
innerDeferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress');
|
||||
innerDeferredResult.addMethod(this, 'unpackData');
|
||||
innerDeferredResult.callback();
|
||||
|
||||
return innerDeferredResult;
|
||||
}, this)));
|
||||
deferredResult.releaseLock(deferredLock);
|
||||
deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'advanceProgress');
|
||||
deferredResult.callback();
|
||||
|
||||
return deferredResult;
|
||||
@@ -534,10 +535,6 @@ Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(nul
|
||||
},
|
||||
MochiKit.Base.method(this, 'packRemoteData'),
|
||||
MochiKit.Base.method(this.transientState(), 'setValue', 'packedRemoteData'),
|
||||
function (someData) {
|
||||
MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'advanceProgress');
|
||||
return someData;
|
||||
}
|
||||
], {trace:false});
|
||||
},
|
||||
|
||||
|
||||
@@ -630,6 +630,19 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
|
||||
|
||||
//=========================================================================
|
||||
|
||||
'recordWithData': function (recordData) {
|
||||
//console.log("recordWithData", recordData)
|
||||
return Clipperz.Async.callbacks("User.recordWithData", [
|
||||
MochiKit.Base.method(this, 'getHeaderIndex', 'recordsIndex'),
|
||||
MochiKit.Base.methodcaller('records'),
|
||||
MochiKit.Base.itemgetter(recordData['reference']),
|
||||
MochiKit.Base.methodcaller('setRemoteData', recordData),
|
||||
], {trace:false});
|
||||
|
||||
},
|
||||
|
||||
//=========================================================================
|
||||
|
||||
'getRecords': function () {
|
||||
return Clipperz.Async.callbacks("User.getRecords", [
|
||||
MochiKit.Base.method(this, 'getHeaderIndex', 'recordsIndex'),
|
||||
@@ -638,49 +651,22 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
|
||||
], {trace:false});
|
||||
},
|
||||
|
||||
'getRecordsInfo': function (someInfo /*, shouldIncludeArchivedCards */) {
|
||||
'getRecordsLoadingAllData': function () {
|
||||
return Clipperz.Async.callbacks("User.getRecordsLoadingAllData", [
|
||||
MochiKit.Base.method(this.connection(), 'message', 'getAllRecordDetails'),
|
||||
MochiKit.Base.values,
|
||||
MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'recordWithData')),
|
||||
MochiKit.Base.method(this, 'getRecords'),
|
||||
], {trace:false});
|
||||
},
|
||||
|
||||
'getRecordsInfo': function (someInfo) {
|
||||
return Clipperz.Async.callbacks("User.getRecordsInfo", [
|
||||
MochiKit.Base.method(this, 'getRecords'),
|
||||
MochiKit.Base.partial(MochiKit.Base.map, Clipperz.Async.collectResults("collectResults", someInfo, {trace:false})),
|
||||
Clipperz.Async.collectAll,
|
||||
/*
|
||||
function (aResult) {
|
||||
var result;
|
||||
|
||||
if (shouldIncludeArchivedCards == false) {
|
||||
result = MochiKit.Base.filter(function (aRecordInfo) { return !aRecordInfo['_isArchived']; }, aResult);
|
||||
} else {
|
||||
result = aResult;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
*/
|
||||
], {trace:false});
|
||||
},
|
||||
/*
|
||||
'filterRecordsInfo': function (someArgs) {
|
||||
var info = (someArgs.info ? someArgs.info : Clipperz.PM.DataModel.Record.defaultCardInfo);
|
||||
var searchField = (someArgs.searchField ? someArgs.searchField : Clipperz.PM.DataModel.Record.defaultSearchField);
|
||||
var includeArchived = (someArgs.includeArchived ? someArgs.includeArchived : false);
|
||||
var regExp = (someArgs.regExp ? someArgs.regExp : Clipperz.PM.DataModel.Record.regExpForSearch(''));
|
||||
|
||||
if (someArgs.regExp) {
|
||||
regExp = regExp;
|
||||
} else if (someArgs.search) {
|
||||
regExp = Clipperz.PM.DataModel.Record.regExpForSearch(someArgs.search);
|
||||
} else if (someArgs.tag) {
|
||||
regExp = Clipperz.PM.DataModel.Record.regExpForTag(someArgs.tag);
|
||||
} else {
|
||||
regExp = Clipperz.PM.DataModel.Record.regExpForSearch('');
|
||||
};
|
||||
|
||||
return Clipperz.Async.callbacks("User.filterRecordsInfo", [
|
||||
MochiKit.Base.method(this, 'getRecordsInfo', info, includeArchived),
|
||||
MochiKit.Base.partial(MochiKit.Base.filter, function (aCardInfo) { regExp.lastIndex = 0; return regExp.test(aCardInfo[searchField]);})
|
||||
], {trace:false});
|
||||
},
|
||||
*/
|
||||
|
||||
'recordWithLabel': function (aLabel) {
|
||||
return Clipperz.Async.callbacks("User.recordWithLabel", [
|
||||
|
||||
Reference in New Issue
Block a user