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:
@@ -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');
|
||||
};
|
||||
|
||||
@@ -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});
|
||||
},
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user