1
0
mirror of http://git.whoc.org.uk/git/password-manager.git synced 2025-10-25 17:47:34 +02:00

Implemented "Clone card" command.

This commit is contained in:
Giulio Cesare Solaroli
2014-08-26 17:31:24 +02:00
parent 3918a7bdfc
commit 316dff637f
9 changed files with 181 additions and 35 deletions

View File

@@ -186,7 +186,8 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel
MochiKit.Base.bind(function () { this._fields[newField.reference()] = newField; }, this),
MochiKit.Base.method(newField, 'setLabel', someParameters['label']),
MochiKit.Base.method(newField, 'setValue', someParameters['value']),
MochiKit.Base.method(newField, 'setIsHidden', someParameters['isHidden']),
// MochiKit.Base.method(newField, 'setIsHidden', someParameters['isHidden']),
MochiKit.Base.method(newField, 'setIsHidden', someParameters['hidden']),
MochiKit.Base.method(this, '_getObjectDataStore'),
MochiKit.Base.methodcaller('values'),

View File

@@ -207,7 +207,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
//.........................................................................
'extractTags': function (aLabel) {
'extractTagsFromFullLabel': function (aLabel) {
var tagRegEx;
var result;
var match;
@@ -226,7 +226,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
'tags': function () {
return Clipperz.Async.callbacks("Record.label", [
MochiKit.Base.method(this, 'fullLabel'),
MochiKit.Base.method(this, 'extractTags'),
MochiKit.Base.method(this, 'extractTagsFromFullLabel'),
MochiKit.Base.keys
], {trace:false});
},
@@ -234,7 +234,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
'addTag': function (aNewTag) {
return Clipperz.Async.callbacks("Record.addTag", [
MochiKit.Base.method(this, 'fullLabel'),
MochiKit.Base.method(this, 'extractTags'),
MochiKit.Base.method(this, 'extractTagsFromFullLabel'),
function (someTags) { someTags[aNewTag] = true; /* console.log("UPDATED TAGS", someTags); */ return someTags; },
MochiKit.Base.method(this, 'updateTags')
], {trace:false});
@@ -244,7 +244,7 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
//console.log("ADD TAG", aNewTag);
return Clipperz.Async.callbacks("Record.removeTag", [
MochiKit.Base.method(this, 'fullLabel'),
MochiKit.Base.method(this, 'extractTags'),
MochiKit.Base.method(this, 'extractTagsFromFullLabel'),
function (someTags) { delete someTags[aTag]; return someTags; },
MochiKit.Base.method(this, 'updateTags')
], {trace:false});
@@ -1008,8 +1008,29 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
//=========================================================================
'setUpWithRecord': function (aRecord) {
return Clipperz.Async.callbacks("Record.hasAnyCleanTextData", [
MochiKit.Base.method(aRecord, 'full')
return Clipperz.Async.callbacks("Record.setUpWithRecord", [
MochiKit.Base.method(aRecord, 'label'),
MochiKit.Base.bind(function (aLabel) {
return this.setLabel(aLabel + " - copy");
}, this),
MochiKit.Base.method(aRecord, 'fullLabel'),
MochiKit.Base.method(aRecord, 'extractTagsFromFullLabel'),
MochiKit.Base.method(this, 'updateTags'),
MochiKit.Base.method(aRecord, 'notes'),
MochiKit.Base.method(this, 'setNotes'),
MochiKit.Base.method(aRecord, 'getFieldsValues'), MochiKit.Base.values,
MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addField')),
Clipperz.Async.collectAll,
// MochiKit.Base.method(aRecord, 'directLogins'), MochiKit.Base.values,
// function (aValue) { console.log("-> DirectLogin Values", aValue); return aValue; },
// MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.method(this, 'addField')),
// Clipperz.Async.collectAll,
MochiKit.Base.bind(function () { return this; }, this)
], {trace:false});
},

View File

@@ -660,10 +660,27 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
},
'cloneRecord': function (aRecord) {
console.log("USER.cloneRecord", aRecord);
//console.log("USER.cloneRecord", aRecord);
var result;
var user = this;
return Clipperz.Async.callbacks("User.cloneRecord", [
MochiKit.Base.method(this, 'createNewRecord'),
MochiKit.Base.methodcaller('setUpWithRecord', aRecord)
// MochiKit.Base.method(this, 'createNewRecord'),
// MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
// function (aValue) { result = aValue; return aValue; },
// MochiKit.Base.method(this, 'saveChanges'),
// function () { return result; }
MochiKit.Base.method(this, 'hasPendingChanges'),
Clipperz.Async.deferredIf("User has pending changes", [
MochiKit.Async.fail
], [
MochiKit.Base.method(user, 'createNewRecord'),
MochiKit.Base.methodcaller('setUpWithRecord', aRecord),
function (aValue) { result = aValue; return aValue; },
MochiKit.Base.method(user, 'saveChanges'),
function () { return result; }
])
], {trace:false});
},