diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-10-23 09:49:45 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2018-10-23 09:49:45 +0000 |
commit | 86ead874e217fb1aceb2d09daf29a9a6ade0ff62 (patch) | |
tree | 16d7130d8b4ce09bff582e4506ca191253a2895c /app/assets/javascripts/notes/discussion_filters.js | |
parent | 10bb8297ebe5fc01540b20c3fd365234779b6837 (diff) | |
download | gitlab-ce-86ead874e217fb1aceb2d09daf29a9a6ade0ff62.tar.gz |
Resolve "Filter discussion (tab) by comments or activity in issues and merge requests"
Diffstat (limited to 'app/assets/javascripts/notes/discussion_filters.js')
-rw-r--r-- | app/assets/javascripts/notes/discussion_filters.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/assets/javascripts/notes/discussion_filters.js b/app/assets/javascripts/notes/discussion_filters.js new file mode 100644 index 00000000000..012ffc4093e --- /dev/null +++ b/app/assets/javascripts/notes/discussion_filters.js @@ -0,0 +1,33 @@ +import Vue from 'vue'; +import DiscussionFilter from './components/discussion_filter.vue'; + +export default (store) => { + const discussionFilterEl = document.getElementById('js-vue-discussion-filter'); + + if (discussionFilterEl) { + const { defaultFilter, notesFilters } = discussionFilterEl.dataset; + const defaultValue = defaultFilter ? parseInt(defaultFilter, 10) : null; + const filterValues = notesFilters ? JSON.parse(notesFilters) : {}; + const filters = Object.keys(filterValues).map(entry => + ({ title: entry, value: filterValues[entry] })); + + return new Vue({ + el: discussionFilterEl, + name: 'DiscussionFilter', + components: { + DiscussionFilter, + }, + store, + render(createElement) { + return createElement('discussion-filter', { + props: { + filters, + defaultValue, + }, + }); + }, + }); + } + + return null; +}; |