From a9deabea00a1fa34bfeb8b6c421a99aa7568a5c8 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 10 Mar 2017 12:08:19 +0000 Subject: [PATCH] Added filter bar into add issues modal [ci skip] --- .../boards/components/modal/filters.js | 48 ++-------- .../boards/components/modal/filters/label.js | 54 ----------- .../components/modal/filters/milestone.js | 56 ----------- .../boards/components/modal/filters/user.js | 96 ------------------- .../boards/components/modal/header.js | 13 +-- .../boards/filtered_search_boards.js | 4 +- .../filtered_search/dropdown_hint.js | 2 +- .../filtered_search_dropdown_manager.js | 26 ++--- .../filtered_search_manager.js | 13 +-- .../filtered_search_visual_tokens.js | 14 +-- app/assets/stylesheets/pages/boards.scss | 8 +- app/views/projects/boards/_show.html.haml | 1 + .../shared/issuable/_search_bar.html.haml | 34 +++---- 13 files changed, 60 insertions(+), 309 deletions(-) delete mode 100644 app/assets/javascripts/boards/components/modal/filters/label.js delete mode 100644 app/assets/javascripts/boards/components/modal/filters/milestone.js delete mode 100644 app/assets/javascripts/boards/components/modal/filters/user.js diff --git a/app/assets/javascripts/boards/components/modal/filters.js b/app/assets/javascripts/boards/components/modal/filters.js index 6de06811d94..991b3c695dd 100644 --- a/app/assets/javascripts/boards/components/modal/filters.js +++ b/app/assets/javascripts/boards/components/modal/filters.js @@ -1,49 +1,13 @@ /* global Vue */ -const userFilter = require('./filters/user'); -const milestoneFilter = require('./filters/milestone'); -const labelFilter = require('./filters/label'); +import FilteredSearchBoards from '../../filtered_search_boards'; -module.exports = Vue.extend({ +export default { name: 'modal-filters', - props: { - projectId: { - type: Number, - required: true, - }, - milestonePath: { - type: String, - required: true, - }, - labelPath: { - type: String, - required: true, - }, + mounted() { + this.filteredSearch = new FilteredSearchBoards({path: ''}, false, this.$el); }, destroyed() { gl.issueBoards.ModalStore.setDefaultFilter(); }, - components: { - userFilter, - milestoneFilter, - labelFilter, - }, - template: ` - - `, -}); + template: '#js-board-modal-filter', +}; diff --git a/app/assets/javascripts/boards/components/modal/filters/label.js b/app/assets/javascripts/boards/components/modal/filters/label.js deleted file mode 100644 index 4fc8f72a145..00000000000 --- a/app/assets/javascripts/boards/components/modal/filters/label.js +++ /dev/null @@ -1,54 +0,0 @@ -/* eslint-disable no-new */ -/* global Vue */ -/* global LabelsSelect */ -module.exports = Vue.extend({ - name: 'filter-label', - props: { - labelPath: { - type: String, - required: true, - }, - }, - mounted() { - new LabelsSelect(this.$refs.dropdown); - }, - template: ` - - `, -}); diff --git a/app/assets/javascripts/boards/components/modal/filters/milestone.js b/app/assets/javascripts/boards/components/modal/filters/milestone.js deleted file mode 100644 index 436aa981c59..00000000000 --- a/app/assets/javascripts/boards/components/modal/filters/milestone.js +++ /dev/null @@ -1,56 +0,0 @@ -/* eslint-disable no-new */ -/* global Vue */ -/* global MilestoneSelect */ -module.exports = Vue.extend({ - name: 'filter-milestone', - props: { - milestonePath: { - type: String, - required: true, - }, - }, - mounted() { - new MilestoneSelect(null, this.$refs.dropdown); - }, - template: ` - - `, -}); diff --git a/app/assets/javascripts/boards/components/modal/filters/user.js b/app/assets/javascripts/boards/components/modal/filters/user.js deleted file mode 100644 index 8523028c29c..00000000000 --- a/app/assets/javascripts/boards/components/modal/filters/user.js +++ /dev/null @@ -1,96 +0,0 @@ -/* eslint-disable no-new */ -/* global Vue */ -/* global UsersSelect */ -module.exports = Vue.extend({ - name: 'filter-user', - props: { - toggleClassName: { - type: String, - required: true, - }, - dropdownClassName: { - type: String, - required: false, - default: '', - }, - toggleLabel: { - type: String, - required: true, - }, - fieldName: { - type: String, - required: true, - }, - nullUser: { - type: Boolean, - required: false, - default: false, - }, - projectId: { - type: Number, - required: true, - }, - }, - mounted() { - new UsersSelect(null, this.$refs.dropdown); - }, - computed: { - currentUsername() { - return gon.current_username; - }, - dropdownTitle() { - return `Filter by ${this.toggleLabel.toLowerCase()}`; - }, - inputPlaceholder() { - return `Search ${this.toggleLabel.toLowerCase()}`; - }, - }, - template: ` - - `, -}); diff --git a/app/assets/javascripts/boards/components/modal/header.js b/app/assets/javascripts/boards/components/modal/header.js index 70c088f9054..f4e68f8f93d 100644 --- a/app/assets/javascripts/boards/components/modal/header.js +++ b/app/assets/javascripts/boards/components/modal/header.js @@ -1,6 +1,6 @@ /* global Vue */ require('./tabs'); -const modalFilters = require('./filters'); +import modalFilters from './filters'; (() => { const ModalStore = gl.issueBoards.ModalStore; @@ -66,16 +66,7 @@ const modalFilters = require('./filters');