diff options
author | Phil Hughes <me@iamphill.com> | 2018-07-25 18:38:43 +0300 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2018-07-25 18:38:43 +0300 |
commit | 2f8b9931bcda4c881b79878bfaec8dea44f2d18e (patch) | |
tree | 9341bf4f40ec8ae50605d61212078203cd96bd74 /app/assets/javascripts/boards | |
parent | 3f14c56bfe77e83084b58dc2bd3c34e3c84c6cae (diff) |
CE backport of issue-boards-js-fix
Diffstat (limited to 'app/assets/javascripts/boards')
-rw-r--r-- | app/assets/javascripts/boards/index.js | 149 |
1 files changed, 76 insertions, 73 deletions
diff --git a/app/assets/javascripts/boards/index.js b/app/assets/javascripts/boards/index.js index 200d1923635..bc263cbbfea 100644 --- a/app/assets/javascripts/boards/index.js +++ b/app/assets/javascripts/boards/index.js @@ -1,5 +1,3 @@ -/* eslint-disable quote-props, comma-dangle */ - import $ from 'jquery'; import _ from 'underscore'; import Vue from 'vue'; @@ -47,7 +45,7 @@ export default () => { gl.IssueBoardsApp = new Vue({ el: $boardApp, components: { - 'board': gl.issueBoards.Board, + board: gl.issueBoards.Board, 'board-sidebar': gl.issueBoards.BoardSidebar, BoardAddIssuesModal, }, @@ -65,11 +63,11 @@ export default () => { defaultAvatar: $boardApp.dataset.defaultAvatar, }, computed: { - detailIssueVisible () { + detailIssueVisible() { return Object.keys(this.detailIssue.issue).length; }, }, - created () { + created() { gl.boardService = new BoardService({ boardsEndpoint: this.boardsEndpoint, listsEndpoint: this.listsEndpoint, @@ -89,15 +87,16 @@ export default () => { eventHub.$off('clearDetailIssue', this.clearDetailIssue); sidebarEventHub.$off('toggleSubscription', this.toggleSubscription); }, - mounted () { + mounted() { this.filterManager = new FilteredSearchBoards(Store.filter, true, Store.cantEdit); this.filterManager.setup(); Store.disabled = this.disabled; - gl.boardService.all() + gl.boardService + .all() .then(res => res.data) - .then((data) => { - data.forEach((board) => { + .then(data => { + data.forEach(board => { const list = Store.addList(board, this.defaultAvatar); if (list.type === 'closed') { @@ -126,7 +125,7 @@ export default () => { newIssue.setFetchingState('subscriptions', true); BoardService.getIssueInfo(sidebarInfoEndpoint) .then(res => res.data) - .then((data) => { + .then(data => { newIssue.setFetchingState('subscriptions', false); newIssue.updateData({ subscribed: data.subscribed, @@ -159,7 +158,7 @@ export default () => { Flash(__('An error occurred when toggling the notification subscription')); }); } - } + }, }, }); @@ -168,77 +167,81 @@ export default () => { data: { filters: Store.state.filters, }, - mounted () { + mounted() { gl.issueBoards.newListDropdownInit(); }, }); - gl.IssueBoardsModalAddBtn = new Vue({ - el: document.getElementById('js-add-issues-btn'), - mixins: [modalMixin], - data() { - return { - modal: ModalStore.store, - store: Store.state, - canAdminList: this.$options.el.hasAttribute('data-can-admin-list'), - }; - }, - computed: { - disabled() { - if (!this.store) { - return true; - } - return !this.store.lists.filter(list => !list.preset).length; + const issueBoardsModal = document.getElementById('js-add-issues-btn'); + + if (issueBoardsModal) { + gl.IssueBoardsModalAddBtn = new Vue({ + el: issueBoardsModal, + mixins: [modalMixin], + data() { + return { + modal: ModalStore.store, + store: Store.state, + canAdminList: this.$options.el.hasAttribute('data-can-admin-list'), + }; }, - tooltipTitle() { - if (this.disabled) { - return 'Please add a list to your board first'; - } + computed: { + disabled() { + if (!this.store) { + return true; + } + return !this.store.lists.filter(list => !list.preset).length; + }, + tooltipTitle() { + if (this.disabled) { + return 'Please add a list to your board first'; + } - return ''; + return ''; + }, }, - }, - watch: { - disabled() { + watch: { + disabled() { + this.updateTooltip(); + }, + }, + mounted() { this.updateTooltip(); }, - }, - mounted() { - this.updateTooltip(); - }, - methods: { - updateTooltip() { - const $tooltip = $(this.$refs.addIssuesButton); - - this.$nextTick(() => { - if (this.disabled) { - $tooltip.tooltip(); - } else { - $tooltip.tooltip('dispose'); + methods: { + updateTooltip() { + const $tooltip = $(this.$refs.addIssuesButton); + + this.$nextTick(() => { + if (this.disabled) { + $tooltip.tooltip(); + } else { + $tooltip.tooltip('dispose'); + } + }); + }, + openModal() { + if (!this.disabled) { + this.toggleModal(true); } - }); - }, - openModal() { - if (!this.disabled) { - this.toggleModal(true); - } + }, }, - }, - template: ` - <div class="board-extra-actions"> - <button - class="btn btn-create prepend-left-10" - type="button" - data-placement="bottom" - ref="addIssuesButton" - :class="{ 'disabled': disabled }" - :title="tooltipTitle" - :aria-disabled="disabled" - v-if="canAdminList" - @click="openModal"> - Add issues - </button> - </div> - `, - }); + template: ` + <div class="board-extra-actions"> + <button + class="btn btn-create prepend-left-10" + type="button" + data-placement="bottom" + ref="addIssuesButton" + :class="{ 'disabled': disabled }" + :title="tooltipTitle" + :aria-disabled="disabled" + v-if="canAdminList" + @click="openModal"> + Add issues + </button> + </div> + `, + }); + } }; |