From c3339b332bb2ed95c2a7b09ce258ecbb23b0cfc5 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 2 Feb 2017 14:34:28 +0000 Subject: [PATCH] Resets modal filters when closing --- .../boards/components/modal/filters.js.es6 | 3 +++ .../boards/components/modal/index.js.es6 | 2 ++ .../boards/stores/modal_store.js.es6 | 17 +++++++----- spec/features/boards/modal_filter_spec.rb | 26 +++++++++++++++++++ 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/boards/components/modal/filters.js.es6 b/app/assets/javascripts/boards/components/modal/filters.js.es6 index 8f923f65306..f1828781c5a 100644 --- a/app/assets/javascripts/boards/components/modal/filters.js.es6 +++ b/app/assets/javascripts/boards/components/modal/filters.js.es6 @@ -18,6 +18,9 @@ required: true, }, }, + destroyed() { + ModalStore.setDefaultFilter(); + }, components: { 'user-filter': gl.issueBoards.ModalFilterUser, 'milestone-filter': gl.issueBoards.ModalFilterMilestone, diff --git a/app/assets/javascripts/boards/components/modal/index.js.es6 b/app/assets/javascripts/boards/components/modal/index.js.es6 index c0871d74565..71f7f7eeb20 100644 --- a/app/assets/javascripts/boards/components/modal/index.js.es6 +++ b/app/assets/javascripts/boards/components/modal/index.js.es6 @@ -74,6 +74,8 @@ this.loadIssues(true); }, 500), loadIssues(clearIssues = false) { + if (!this.showAddIssuesModal) return; + const data = Object.assign({}, this.filter, { search: this.searchTerm, page: this.page, diff --git a/app/assets/javascripts/boards/stores/modal_store.js.es6 b/app/assets/javascripts/boards/stores/modal_store.js.es6 index ed42af301cd..15fc6c79e8d 100644 --- a/app/assets/javascripts/boards/stores/modal_store.js.es6 +++ b/app/assets/javascripts/boards/stores/modal_store.js.es6 @@ -17,12 +17,17 @@ loadingNewPage: false, page: 1, perPage: 50, - filter: { - author_id: '', - assignee_id: '', - milestone_title: '', - label_name: [], - }, + }; + + this.setDefaultFilter(); + } + + setDefaultFilter() { + this.store.filter = { + author_id: '', + assignee_id: '', + milestone_title: '', + label_name: [], }; } diff --git a/spec/features/boards/modal_filter_spec.rb b/spec/features/boards/modal_filter_spec.rb index aede3882f54..44daa50a006 100644 --- a/spec/features/boards/modal_filter_spec.rb +++ b/spec/features/boards/modal_filter_spec.rb @@ -16,6 +16,32 @@ describe 'Issue Boards add issue modal filtering', :feature, :js do login_as(user) end + it 'restores filters when closing' do + visit_board + + page.within('.add-issues-modal') do + click_button 'Milestone' + + wait_for_ajax + + click_link 'Upcoming' + + wait_for_vue_resource + + expect(page).to have_selector('.card', count: 0) + + click_button 'Cancel' + end + + click_button('Add issues') + + page.within('.add-issues-modal') do + wait_for_vue_resource + + expect(page).to have_selector('.card', count: 1) + end + end + context 'author' do let!(:issue) { create(:issue, project: project, author: user2) }