mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
Implement list restoration
This commit is contained in:
parent
4fc72d64b4
commit
04bfbd5bd1
7 changed files with 68 additions and 15 deletions
|
@ -55,3 +55,4 @@ peerlibrary:blaze-components
|
|||
perak:markdown
|
||||
reactive-var
|
||||
seriousm:emoji-continued
|
||||
templates:tabs
|
||||
|
|
|
@ -107,6 +107,7 @@ spacebars@1.0.6
|
|||
spacebars-compiler@1.0.6
|
||||
srp@1.0.3
|
||||
tap:i18n@1.5.1
|
||||
templates:tabs@2.2.0
|
||||
templating@1.1.1
|
||||
tmeasday:presence@1.0.6
|
||||
tracker@1.0.7
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) <br>
|
||||
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) <br>
|
||||
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.
|
||||
|
|
|
@ -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');
|
||||
|
|
5
client/config/reactiveTabs.js
Normal file
5
client/config/reactiveTabs.js
Normal file
|
@ -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'
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue