From a891853d320ac0be254241e1777e170e44d06abd Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Sun, 12 Oct 2014 10:56:27 +0200 Subject: [PATCH] Added the option to "restore" and archived card --- frontend/delta/js/Clipperz/PM/DataModel/Record.js | 11 +++++++++-- .../Clipperz/PM/UI/Components/Cards/CommandToolbar.js | 6 +++--- frontend/delta/js/Clipperz/PM/UI/MainController.js | 6 +++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/frontend/delta/js/Clipperz/PM/DataModel/Record.js b/frontend/delta/js/Clipperz/PM/DataModel/Record.js index 209de7a..e86a480 100644 --- a/frontend/delta/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/delta/js/Clipperz/PM/DataModel/Record.js @@ -250,8 +250,15 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.Encrypt ], {trace:false}); }, - 'archive': function () { - return this.addTag(Clipperz.PM.DataModel.Record.archivedTag); + 'toggleArchive': function () { + return Clipperz.Async.callbacks("Record.toggleArchive", [ + MochiKit.Base.method(this, 'isArchived'), + Clipperz.Async.deferredIf("Record is archived", [ + MochiKit.Base.method(this, 'removeTag', Clipperz.PM.DataModel.Record.archivedTag) + ], [ + MochiKit.Base.method(this, 'addTag', Clipperz.PM.DataModel.Record.archivedTag) + ]), + ], {trace:false}); }, 'isArchived': function () { diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/CommandToolbar.js b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/CommandToolbar.js index 41eccf5..8a239a5 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/CommandToolbar.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/CommandToolbar.js @@ -38,7 +38,7 @@ Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({ getInitialState: function() { return {'showCommandMenu': false }; }, - + //---------------------------------------------------------------------------- commands: function () { @@ -48,8 +48,8 @@ Clipperz.PM.UI.Components.Cards.CommandToolbar = React.createClass({ 'broadcastEvent': 'deleteCard' }, 'archive': { - 'label': "archive", - 'broadcastEvent': 'archiveCard' + 'label': this.props['_isArchived'] ? "restore" : "archive", + 'broadcastEvent': 'toggleArchiveCard' }, // 'share': { // 'label': "share", diff --git a/frontend/delta/js/Clipperz/PM/UI/MainController.js b/frontend/delta/js/Clipperz/PM/UI/MainController.js index feafb50..9ee6ea7 100644 --- a/frontend/delta/js/Clipperz/PM/UI/MainController.js +++ b/frontend/delta/js/Clipperz/PM/UI/MainController.js @@ -65,7 +65,7 @@ Clipperz.PM.UI.MainController = function() { 'saveCardEdits', 'cancelCardEdits', 'cardSelected', 'addCardClick', - 'deleteCard', 'archiveCard', 'cloneCard', 'editCard', + 'deleteCard', 'toggleArchiveCard', 'cloneCard', 'editCard', 'addTag', 'removeTag', 'showArchivedCards', 'hideArchivedCards', 'goBackToMainPage', @@ -1056,10 +1056,10 @@ console.log("SET USER", aUser); ], {trace:false}); }, - archiveCard_handler: function (anEvent) { + toggleArchiveCard_handler: function (anEvent) { return Clipperz.Async.callbacks("MainController.archiveCard_handler", [ MochiKit.Base.method(this.user(), 'getRecord', anEvent['reference']), - MochiKit.Base.methodcaller('archive'), + MochiKit.Base.methodcaller('toggleArchive'), MochiKit.Base.method(this.user(), 'saveChanges'), MochiKit.Base.method(this, 'refreshUI', anEvent['reference']) ], {trace:false});