diff --git a/client/components/main/globalSearch.jade b/client/components/main/globalSearch.jade index cd5337296..07979fd41 100644 --- a/client/components/main/globalSearch.jade +++ b/client/components/main/globalSearch.jade @@ -32,11 +32,15 @@ template(name="globalSearch") +resultCard(card) else .global-search-instructions - +viewer - = searchInstructions + h2 Label Colors .palette-colors: each label in labelColors span.card-label.palette-color.js-palette-color(class="card-label-{{label.color}}") = label.name + h2 Lists + .lists-wrapper + each title in myLists.get + span.card-label.list-title.js-list-title + = title template(name="globalSearchViewChangePopup") if currentUser diff --git a/client/components/main/globalSearch.js b/client/components/main/globalSearch.js index b3eea0ca4..c9787c517 100644 --- a/client/components/main/globalSearch.js +++ b/client/components/main/globalSearch.js @@ -42,6 +42,7 @@ BlazeComponent.extendComponent({ this.query = new ReactiveVar(''); this.resultsHeading = new ReactiveVar(''); this.searchLink = new ReactiveVar(null); + this.myLists = new ReactiveVar([]); this.queryParams = null; this.parsingErrors = []; this.resultsCount = 0; @@ -55,6 +56,13 @@ BlazeComponent.extendComponent({ // } // // eslint-disable-next-line no-console // console.log('colorMap:', this.colorMap); + + Meteor.call('myLists', (err, data) => { + if (!err) { + this.myLists.set(data); + } + }); + Meteor.subscribe('setting'); if (Session.get('globalQuery')) { this.searchAllBoards(Session.get('globalQuery')); @@ -375,6 +383,11 @@ BlazeComponent.extendComponent({ `${this.query.get()} label:"${evt.currentTarget.textContent}"`, ); }, + 'click .js-list-title'(evt) { + this.query.set( + `${this.query.get()} list:"${evt.currentTarget.textContent}"`, + ); + }, }, ]; }, diff --git a/client/components/main/globalSearch.styl b/client/components/main/globalSearch.styl index 4dc5b5f6d..242b5156f 100644 --- a/client/components/main/globalSearch.styl +++ b/client/components/main/globalSearch.styl @@ -95,3 +95,6 @@ code background-color: lightgrey padding: 0.1rem !important font-size: 0.7rem !important + +.list-title + background-color: darkgray diff --git a/models/lists.js b/models/lists.js index dcfd4294e..f1824ee5d 100644 --- a/models/lists.js +++ b/models/lists.js @@ -362,6 +362,20 @@ Meteor.methods({ const list = Lists.findOne({ _id: listId }); list.toggleSoftLimit(!list.getWipLimit('soft')); }, + + myLists() { + // my lists + return _.uniq( + Lists.find( + { boardId: { $in: Boards.userBoardIds(this.userId) } }, + { fields: { title: 1 } }, + ) + .fetch() + .map(list => { + return list.title; + }), + ); + }, }); Lists.hookOptions.after.update = { fetchPrevious: false };