From 04bfbd5bd1f7c20486c0872641506f14336c8d21 Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Sat, 22 Aug 2015 02:06:49 +0200 Subject: Implement list restoration --- client/components/main/layouts.styl | 4 +++ client/components/sidebar/sidebar.styl | 14 +++++++++++ client/components/sidebar/sidebarArchives.jade | 35 ++++++++++++++++++-------- client/components/sidebar/sidebarArchives.js | 23 ++++++++++++++--- client/config/reactiveTabs.js | 5 ++++ 5 files changed, 66 insertions(+), 15 deletions(-) create mode 100644 client/config/reactiveTabs.js (limited to 'client') diff --git a/client/components/main/layouts.styl b/client/components/main/layouts.styl index 5199da0f..5160ee8b 100644 --- a/client/components/main/layouts.styl +++ b/client/components/main/layouts.styl @@ -288,6 +288,10 @@ a list-style-type: initial padding-left: 20px +.basicTabs-container .tabs-content-container + padding: 0 + padding-top: 15px + @keyframes fadeIn from opacity: 0 diff --git a/client/components/sidebar/sidebar.styl b/client/components/sidebar/sidebar.styl index cda15ba5..f4c4dd01 100644 --- a/client/components/sidebar/sidebar.styl +++ b/client/components/sidebar/sidebar.styl @@ -116,3 +116,17 @@ .board-sidebar.is-open &.is-hidden z-index: 0 left: 5px + +.archived-lists .archived-lists-item + border-top: 1px solid darken(white, 20%) + clear: both + padding: 5px 0 + + &:first-child + border-top: none + + button + float: right + margin: 0 + margin-bottom: 5px + padding: 0 2px 0 10px diff --git a/client/components/sidebar/sidebarArchives.jade b/client/components/sidebar/sidebarArchives.jade index 6911c286..d2bd5d7b 100644 --- a/client/components/sidebar/sidebarArchives.jade +++ b/client/components/sidebar/sidebarArchives.jade @@ -1,12 +1,25 @@ template(name="archivesSidebar") - each archivedCards - .minicard-wrapper.js-minicard - +minicard(this) - p.quiet - a.js-restore Restore - | - - a.js-delete Delete - if cardIsInArchivedList - p.quiet.small (warning: this card is in an archived list)
- else - p.no-items-message No archived cards. + +basicTabs(tabs=tabs) + + +tabContent(slug="cards") + each archivedCards + .minicard-wrapper.js-minicard + +minicard(this) + p.quiet + a.js-restore-card Restore + | - + a.js-delete-card Delete + if cardIsInArchivedList + p.quiet.small (warning: this card is in an archived list)
+ else + p.no-items-message No archived cards. + + +tabContent(slug="lists") + ul.archived-lists + each archivedLists + li.archived-lists-item + button.js-restore-list + i.fa.fa-undo + = title + else + li.no-items-message No archived lists. diff --git a/client/components/sidebar/sidebarArchives.js b/client/components/sidebar/sidebarArchives.js index d422cb43..dd989ca3 100644 --- a/client/components/sidebar/sidebarArchives.js +++ b/client/components/sidebar/sidebarArchives.js @@ -3,8 +3,19 @@ BlazeComponent.extendComponent({ return 'archivesSidebar'; }, + tabs: function() { + return [ + { name: 'Cards', slug: 'cards' }, + { name: 'Lists', slug: 'lists' } + ] + }, + archivedCards: function() { - return Cards.find({archived: true}); + return Cards.find({ archived: true }); + }, + + archivedLists: function() { + return Lists.find({ archived: true }); }, cardIsInArchivedList: function() { @@ -17,15 +28,19 @@ BlazeComponent.extendComponent({ events: function() { return [{ - 'click .js-restore': function() { + 'click .js-restore-card': function() { var cardId = this.currentData()._id; Cards.update(cardId, {$set: {archived: false}}); }, - 'click .js-delete': Popup.afterConfirm('cardDelete', function() { + 'click .js-delete-card': Popup.afterConfirm('cardDelete', function() { var cardId = this._id; Cards.remove(cardId); Popup.close(); - }) + }), + 'click .js-restore-list': function() { + var listId = this.currentData()._id; + Lists.update(listId, {$set: {archived: false}}); + } }]; } }).register('archivesSidebar'); diff --git a/client/config/reactiveTabs.js b/client/config/reactiveTabs.js new file mode 100644 index 00000000..937057f7 --- /dev/null +++ b/client/config/reactiveTabs.js @@ -0,0 +1,5 @@ +// XXX Since Blaze doesn't have a clean high component API, component API are +// also tweaky to use. I guess React would be a solution. +ReactiveTabs.createInterface({ + template: 'basicTabs' +}); -- cgit v1.2.3-1-g7c22