summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-08-16 22:36:19 +0300
committerLauri Ojansivu <x@xet7.org>2019-08-16 22:36:19 +0300
commit564ab219c6d80bce342ab0449b58af662898c200 (patch)
tree9bdb006a6a41255c8fd7dae774dfa1407c33831c
parent4b2193436eeedf3f9e8cd2bbf0a134087f77a087 (diff)
parent026d8f49419a7780c1e46cb2b3c68aaf07bc326a (diff)
downloadwekan-564ab219c6d80bce342ab0449b58af662898c200.tar.gz
wekan-564ab219c6d80bce342ab0449b58af662898c200.tar.bz2
wekan-564ab219c6d80bce342ab0449b58af662898c200.zip
Merge branch 'PDIS-master'
-rw-r--r--client/components/sidebar/sidebarArchives.js2
-rw-r--r--client/components/sidebar/sidebarFilters.jade16
-rw-r--r--client/components/sidebar/sidebarFilters.js19
-rw-r--r--client/components/swimlanes/swimlanes.jade3
-rw-r--r--client/components/swimlanes/swimlanes.js18
-rw-r--r--client/lib/filter.js4
-rw-r--r--i18n/en.i18n.json2
-rw-r--r--models/boards.js5
8 files changed, 63 insertions, 6 deletions
diff --git a/client/components/sidebar/sidebarArchives.js b/client/components/sidebar/sidebarArchives.js
index 53fc29b9..a4846561 100644
--- a/client/components/sidebar/sidebarArchives.js
+++ b/client/components/sidebar/sidebarArchives.js
@@ -1,3 +1,4 @@
+archivedRequested = false;
const subManager = new SubsManager();
BlazeComponent.extendComponent({
@@ -12,6 +13,7 @@ BlazeComponent.extendComponent({
const currentBoardId = Session.get('currentBoard');
if (!currentBoardId) return;
const handle = subManager.subscribe('board', currentBoardId, true);
+ archivedRequested = true;
Tracker.nonreactive(() => {
Tracker.autorun(() => {
this.isArchiveReady.set(handle.ready());
diff --git a/client/components/sidebar/sidebarFilters.jade b/client/components/sidebar/sidebarFilters.jade
index f11528b1..55ab213a 100644
--- a/client/components/sidebar/sidebarFilters.jade
+++ b/client/components/sidebar/sidebarFilters.jade
@@ -56,6 +56,22 @@ template(name="filterSidebar")
if Filter.customFields.isSelected _id
i.fa.fa-check
hr
+ ul.sidebar-list
+ li(class="{{#if Filter.archive.isSelected _id}}active{{/if}}")
+ a.name.js-toggle-archive-filter
+ span.sidebar-list-item-description
+ | {{_ 'filter-show-archive'}}
+ if Filter.archive.isSelected _id
+ i.fa.fa-check
+ hr
+ ul.sidebar-list
+ li(class="{{#if Filter.hideEmpty.isSelected _id}}active{{/if}}")
+ a.name.js-toggle-hideEmpty-filter
+ span.sidebar-list-item-description
+ | {{_ 'filter-hide-empty'}}
+ if Filter.hideEmpty.isSelected _id
+ i.fa.fa-check
+ hr
span {{_ 'advanced-filter-label'}}
input.js-field-advanced-filter(type="text")
span {{_ 'advanced-filter-description'}}
diff --git a/client/components/sidebar/sidebarFilters.js b/client/components/sidebar/sidebarFilters.js
index 88438a7a..3483d00c 100644
--- a/client/components/sidebar/sidebarFilters.js
+++ b/client/components/sidebar/sidebarFilters.js
@@ -1,3 +1,5 @@
+const subManager = new SubsManager();
+
BlazeComponent.extendComponent({
events() {
return [
@@ -12,6 +14,23 @@ BlazeComponent.extendComponent({
Filter.members.toggle(this.currentData()._id);
Filter.resetExceptions();
},
+ 'click .js-toggle-archive-filter'(evt) {
+ evt.preventDefault();
+ Filter.archive.toggle(this.currentData()._id);
+ Filter.resetExceptions();
+ const currentBoardId = Session.get('currentBoard');
+ if (!currentBoardId) return;
+ subManager.subscribe(
+ 'board',
+ currentBoardId,
+ Filter.archive.isSelected(),
+ );
+ },
+ 'click .js-toggle-hideEmpty-filter'(evt) {
+ evt.preventDefault();
+ Filter.hideEmpty.toggle(this.currentData()._id);
+ Filter.resetExceptions();
+ },
'click .js-toggle-custom-fields-filter'(evt) {
evt.preventDefault();
Filter.customFields.toggle(this.currentData()._id);
diff --git a/client/components/swimlanes/swimlanes.jade b/client/components/swimlanes/swimlanes.jade
index 485b2ffc..3ad43777 100644
--- a/client/components/swimlanes/swimlanes.jade
+++ b/client/components/swimlanes/swimlanes.jade
@@ -33,7 +33,8 @@ template(name="listsGroup")
+addListForm
else
each lists
- +list(this)
+ if visible this
+ +list(this)
if currentCardIsInThisList _id null
+cardDetails(currentCard)
if currentUser.isBoardMember
diff --git a/client/components/swimlanes/swimlanes.js b/client/components/swimlanes/swimlanes.js
index 568c0bbe..e0857003 100644
--- a/client/components/swimlanes/swimlanes.js
+++ b/client/components/swimlanes/swimlanes.js
@@ -246,6 +246,24 @@ BlazeComponent.extendComponent({
currentCardIsInThisList(listId, swimlaneId) {
return currentCardIsInThisList(listId, swimlaneId);
},
+ visible(list) {
+ if (list.archived) {
+ // Show archived list only when filter archive is on or archive is selected
+ if (!(Filter.archive.isSelected() || archivedRequested)) {
+ return false;
+ }
+ }
+ if (Filter.hideEmpty.isSelected()) {
+ const swimlaneId = this.parentComponent()
+ .parentComponent()
+ .data()._id;
+ const cards = list.cards(swimlaneId);
+ if (cards.count() === 0) {
+ return false;
+ }
+ }
+ return true;
+ },
onRendered() {
const boardComponent = this.parentComponent();
const $listsDom = this.$('.js-lists');
diff --git a/client/lib/filter.js b/client/lib/filter.js
index f19dc617..1ca3a280 100644
--- a/client/lib/filter.js
+++ b/client/lib/filter.js
@@ -451,10 +451,12 @@ Filter = {
// before changing the schema.
labelIds: new SetFilter(),
members: new SetFilter(),
+ archive: new SetFilter(),
+ hideEmpty: new SetFilter(),
customFields: new SetFilter('_id'),
advanced: new AdvancedFilter(),
- _fields: ['labelIds', 'members', 'customFields'],
+ _fields: ['labelIds', 'members', 'archive', 'hideEmpty', 'customFields'],
// We don't filter cards that have been added after the last filter change. To
// implement this we keep the id of these cards in this `_exceptions` fields
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 7065396f..672c8eac 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -306,6 +306,8 @@
"filter-no-label": "No label",
"filter-no-member": "No member",
"filter-no-custom-fields": "No Custom Fields",
+ "filter-show-archive": "Show archived lists",
+ "filter-hide-empty": "Hide empty lists",
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
"filter-to-selection": "Filter to selection",
diff --git a/models/boards.js b/models/boards.js
index 2117ff7c..b5f8b01b 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -407,10 +407,7 @@ Boards.helpers({
},
lists() {
- return Lists.find(
- { boardId: this._id, archived: false },
- { sort: { sort: 1 } },
- );
+ return Lists.find({ boardId: this._id }, { sort: { sort: 1 } });
},
nullSortLists() {