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

Implemented card archiving, both the DataModel login and UI (still very rough, though)

This commit is contained in:
Giulio Cesare Solaroli
2014-07-30 09:28:05 +02:00
parent c0f96f5de9
commit 86634cc4af
9 changed files with 213 additions and 32 deletions

View File

@@ -236,6 +236,17 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt
], {trace:false});
},
'archive': function () {
return this.addTag(Clipperz.PM.DataModel.Record.archivedTag);
},
'isArchived': function () {
return Clipperz.Async.callbacks("Record.isArchived", [
MochiKit.Base.method(this, 'tags'),
function (someTags) { return MochiKit.Iter.some(someTags, MochiKit.Base.partial(MochiKit.Base.objEqual, Clipperz.PM.DataModel.Record.archivedTag))},
], {trace:false});
},
//=========================================================================
'headerNotes': function () {
@@ -988,12 +999,18 @@ Clipperz.PM.DataModel.Record.defaultCardInfo = {
'_reference': MochiKit.Base.methodcaller('reference'),
'_searchableContent': MochiKit.Base.methodcaller('searchableContent'),
'_accessDate': MochiKit.Base.methodcaller('accessDate'),
'_isArchived': MochiKit.Base.methodcaller('isArchived'),
'label': MochiKit.Base.methodcaller('label'),
'favicon': MochiKit.Base.methodcaller('favicon')
};
Clipperz.PM.DataModel.Record.defaultSearchField = '_searchableContent';
Clipperz.PM.DataModel.Record.tagChar = '#';
Clipperz.PM.DataModel.Record.tagChar = '\uE009';
Clipperz.PM.DataModel.Record.specialTagsWrapper = '___';
Clipperz.PM.DataModel.Record.specialTagsConstructor = function (aTag) {
return Clipperz.PM.DataModel.Record.specialTagsWrapper + aTag + Clipperz.PM.DataModel.Record.specialTagsWrapper;
}
Clipperz.PM.DataModel.Record.archivedTag = Clipperz.PM.DataModel.Record.specialTagsConstructor('archived');
Clipperz.PM.DataModel.Record.regExpForTag = function (aTag) {
return new RegExp('\\' + Clipperz.PM.DataModel.Record.tagChar + aTag, 'g');
};

View File

@@ -515,8 +515,15 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
MochiKit.Base.partial(MochiKit.Base.map, MochiKit.Base.methodcaller('tags')),
Clipperz.Async.collectAll,
MochiKit.Base.flattenArray,
Clipperz.Base.arrayWithUniqueValues
MochiKit.Iter.groupby,
function (someGroups) {
return MochiKit.Iter.reduce(function(aCollector, aGroup) {
if (aGroup[0] != Clipperz.PM.DataModel.Record.archivedTag) {
aCollector[aGroup[0]] = MochiKit.Iter.list(aGroup[1]).length;
}
return aCollector;
}, someGroups, {});
}
], {trace:false});
},
@@ -534,7 +541,19 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
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
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});
},
/*