diff options
Diffstat (limited to 'app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js')
-rw-r--r-- | app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js | 85 |
1 files changed, 8 insertions, 77 deletions
diff --git a/app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js b/app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js index fcc62a2b2af..5472b8c684f 100644 --- a/app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js +++ b/app/assets/javascripts/pages/milestones/shared/promote_milestone_modal_init.js @@ -1,88 +1,19 @@ import Vue from 'vue'; import Translate from '~/vue_shared/translate'; import PromoteMilestoneModal from './components/promote_milestone_modal.vue'; -import eventHub from './event_hub'; Vue.use(Translate); export default () => { - const onRequestFinished = ({ milestoneUrl, successful }) => { - const button = document.querySelector( - `.js-promote-project-milestone-button[data-url="${milestoneUrl}"]`, - ); - - if (!successful) { - button.removeAttribute('disabled'); - } - }; - - const onRequestStarted = milestoneUrl => { - const button = document.querySelector( - `.js-promote-project-milestone-button[data-url="${milestoneUrl}"]`, - ); - button.setAttribute('disabled', ''); - eventHub.$once('promoteMilestoneModal.requestFinished', onRequestFinished); - }; - - const onDeleteButtonClick = event => { - const button = event.currentTarget; - const modalProps = { - milestoneTitle: button.dataset.milestoneTitle, - url: button.dataset.url, - groupName: button.dataset.groupName, - }; - eventHub.$once('promoteMilestoneModal.requestStarted', onRequestStarted); - eventHub.$emit('promoteMilestoneModal.props', modalProps); - }; - - const promoteMilestoneButtons = document.querySelectorAll('.js-promote-project-milestone-button'); - promoteMilestoneButtons.forEach(button => { - button.addEventListener('click', onDeleteButtonClick); - }); - - eventHub.$once('promoteMilestoneModal.mounted', () => { - promoteMilestoneButtons.forEach(button => { - button.removeAttribute('disabled'); - }); - }); - const promoteMilestoneModal = document.getElementById('promote-milestone-modal'); - let promoteMilestoneComponent; - - if (promoteMilestoneModal) { - promoteMilestoneComponent = new Vue({ - el: promoteMilestoneModal, - components: { - PromoteMilestoneModal, - }, - data() { - return { - modalProps: { - milestoneTitle: '', - groupName: '', - url: '', - }, - }; - }, - mounted() { - eventHub.$on('promoteMilestoneModal.props', this.setModalProps); - eventHub.$emit('promoteMilestoneModal.mounted'); - }, - beforeDestroy() { - eventHub.$off('promoteMilestoneModal.props', this.setModalProps); - }, - methods: { - setModalProps(modalProps) { - this.modalProps = modalProps; - }, - }, - render(createElement) { - return createElement('promote-milestone-modal', { - props: this.modalProps, - }); - }, - }); + if (!promoteMilestoneModal) { + return null; } - return promoteMilestoneComponent; + return new Vue({ + el: promoteMilestoneModal, + render(createElement) { + return createElement(PromoteMilestoneModal); + }, + }); }; |