From 9fcbae9e81084b3a3907770ae081772d5f35abf2 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Tue, 7 Nov 2017 16:55:17 -0200 Subject: Add warning when merge cannot be fast forwarded --- .../components/states/mr_widget_rebase.vue | 45 ++++++++++++++++++++++ .../vue_merge_request_widget/mr_widget_options.js | 2 + .../stores/get_state_key.js | 2 + .../vue_merge_request_widget/stores/state_maps.js | 2 + 4 files changed, 51 insertions(+) create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue new file mode 100644 index 00000000000..7f015a69668 --- /dev/null +++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_rebase.vue @@ -0,0 +1,45 @@ + + diff --git a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.js b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.js index 4f497b204a3..61defc221d8 100644 --- a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.js +++ b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.js @@ -1,4 +1,5 @@ import Flash from '../flash'; +import RebaseState from './components/states/mr_widget_rebase.vue'; import { WidgetHeader, WidgetMergeHelp, @@ -229,6 +230,7 @@ export default { 'mr-widget-pipeline-failed': PipelineFailedState, 'mr-widget-merge-when-pipeline-succeeds': MergeWhenPipelineSucceedsState, 'mr-widget-auto-merge-failed': AutoMergeFailed, + 'mr-widget-rebase': RebaseState, }, template: `
diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js b/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js index 7c15abfff10..fbbc5520737 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js @@ -23,6 +23,8 @@ export default function deviseState(data) { return this.mergeError ? 'autoMergeFailed' : 'mergeWhenPipelineSucceeds'; } else if (!this.canMerge) { return 'notAllowedToMerge'; + } else if (this.shouldBeRebased) { + return 'rebase'; } else if (this.canBeMerged) { return 'readyToMerge'; } diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/state_maps.js b/app/assets/javascripts/vue_merge_request_widget/stores/state_maps.js index 9074a064a6d..f9882aa3824 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/state_maps.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/state_maps.js @@ -17,6 +17,7 @@ const stateToComponentMap = { failedToMerge: 'mr-widget-failed-to-merge', autoMergeFailed: 'mr-widget-auto-merge-failed', shaMismatch: 'mr-widget-sha-mismatch', + rebase: 'mr-widget-rebase', }; const statesToShowHelpWidget = [ @@ -29,6 +30,7 @@ const statesToShowHelpWidget = [ 'pipelineFailed', 'pipelineBlocked', 'autoMergeFailed', + 'rebase', ]; export default { -- cgit v1.2.1