From 6fac652b90ef64f31dc6286fa4dd6991ffb8be4b Mon Sep 17 00:00:00 2001 From: Nathan Friend Date: Fri, 24 May 2019 09:50:56 -0300 Subject: Add "Allow merge trains" setting (CE) This commit adds the "Allow merge trains" options to the project merge request settings page. This option is only visible in EE. This option is also hidden behind the "merge_trains" feature flag. --- app/assets/javascripts/pages/projects/edit/index.js | 2 ++ .../projects/edit/init_merge_options_checkbox_sync.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 app/assets/javascripts/pages/projects/edit/init_merge_options_checkbox_sync.js diff --git a/app/assets/javascripts/pages/projects/edit/index.js b/app/assets/javascripts/pages/projects/edit/index.js index 92ed6a652d7..ecf38d87aac 100644 --- a/app/assets/javascripts/pages/projects/edit/index.js +++ b/app/assets/javascripts/pages/projects/edit/index.js @@ -7,6 +7,7 @@ import dirtySubmitFactory from '~/dirty_submit/dirty_submit_factory'; import initAvatarPicker from '~/avatar_picker'; import initProjectLoadingSpinner from '../shared/save_project_loader'; import initProjectPermissionsSettings from '../shared/permissions'; +import initMergeOptionsCheckboxSync from './init_merge_options_checkbox_sync'; document.addEventListener('DOMContentLoaded', () => { initAvatarPicker(); @@ -17,6 +18,7 @@ document.addEventListener('DOMContentLoaded', () => { initProjectLoadingSpinner(); initProjectPermissionsSettings(); setupProjectEdit(); + initMergeOptionsCheckboxSync(); dirtySubmitFactory( document.querySelectorAll( diff --git a/app/assets/javascripts/pages/projects/edit/init_merge_options_checkbox_sync.js b/app/assets/javascripts/pages/projects/edit/init_merge_options_checkbox_sync.js new file mode 100644 index 00000000000..19fbf10bbf6 --- /dev/null +++ b/app/assets/javascripts/pages/projects/edit/init_merge_options_checkbox_sync.js @@ -0,0 +1,18 @@ +export default () => { + const mergePipelinesCheckbox = document.querySelector('.js-merge-options-merge-pipelines'); + const mergeTrainsCheckbox = document.querySelector('.js-merge-options-merge-trains'); + + if (mergePipelinesCheckbox && mergeTrainsCheckbox) { + mergePipelinesCheckbox.addEventListener('change', event => { + if (!event.target.checked && mergeTrainsCheckbox.checked) { + mergeTrainsCheckbox.click(); + } + }); + + mergeTrainsCheckbox.addEventListener('change', event => { + if (event.target.checked && !mergePipelinesCheckbox.checked) { + mergePipelinesCheckbox.click(); + } + }); + } +}; -- cgit v1.2.1