summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-20 14:36:54 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-20 14:36:54 +0000
commitf61bb2a16a514b71bf33aabbbb999d6732016a24 (patch)
tree9548caa89e60b4f40b99bbd1dac030420b812aa8 /app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
parent35fc54e5d261f8898e390aea7c2f5ec5fdf0539d (diff)
downloadgitlab-ce-4a647b2732a66bd1012cef18484571aacad42b5a.tar.gz
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc42
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue')
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue56
1 files changed, 43 insertions, 13 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
index 62c5cd90035..751f8082e1a 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/ready_to_merge.vue
@@ -15,10 +15,12 @@ import { isEmpty } from 'lodash';
import readyToMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/ready_to_merge';
import readyToMergeQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/ready_to_merge.query.graphql';
import { refreshUserMergeRequestCounts } from '~/commons/nav/user_merge_requests';
+import createFlash from '~/flash';
+import { secondsToMilliseconds } from '~/lib/utils/datetime_utility';
import simplePoll from '~/lib/utils/simple_poll';
import { __ } from '~/locale';
+import SmartInterval from '~/smart_interval';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
-import { deprecatedCreateFlash as Flash } from '../../../flash';
import MergeRequest from '../../../merge_request';
import { AUTO_MERGE_STRATEGIES, DANGER, INFO, WARNING } from '../../constants';
import eventHub from '../../event_hub';
@@ -52,20 +54,27 @@ export default {
},
manual: true,
result({ data }) {
+ if (Object.keys(this.state).length === 0) {
+ this.removeSourceBranch =
+ data.project.mergeRequest.shouldRemoveSourceBranch ||
+ data.project.mergeRequest.forceRemoveSourceBranch ||
+ false;
+ this.commitMessage = data.project.mergeRequest.defaultMergeCommitMessage;
+ this.squashBeforeMerge = data.project.mergeRequest.squashOnMerge;
+ this.isSquashReadOnly = data.project.squashReadOnly;
+ this.squashCommitMessage = data.project.mergeRequest.defaultSquashCommitMessage;
+ }
+
this.state = {
...data.project.mergeRequest,
mergeRequestsFfOnlyEnabled: data.project.mergeRequestsFfOnlyEnabled,
onlyAllowMergeIfPipelineSucceeds: data.project.onlyAllowMergeIfPipelineSucceeds,
};
- this.removeSourceBranch =
- data.project.mergeRequest.shouldRemoveSourceBranch ||
- data.project.mergeRequest.forceRemoveSourceBranch ||
- false;
- this.commitMessage = data.project.mergeRequest.defaultMergeCommitMessage;
- this.squashBeforeMerge = data.project.mergeRequest.squashOnMerge;
- this.isSquashReadOnly = data.project.squashReadOnly;
- this.squashCommitMessage = data.project.mergeRequest.defaultSquashCommitMessage;
this.loading = false;
+
+ if (this.state.mergeTrainsCount !== null && this.state.mergeTrainsCount !== undefined) {
+ this.initPolling();
+ }
},
},
},
@@ -124,7 +133,7 @@ export default {
},
pipeline() {
if (this.glFeatures.mergeRequestWidgetGraphql) {
- return this.state.pipelines?.nodes?.[0];
+ return this.state.headPipeline;
}
return this.mr.pipeline;
@@ -291,8 +300,23 @@ export default {
if (this.glFeatures.mergeRequestWidgetGraphql) {
eventHub.$off('ApprovalUpdated', this.updateGraphqlState);
}
+
+ if (this.pollingInterval) {
+ this.pollingInterval.destroy();
+ }
},
methods: {
+ initPolling() {
+ const startingPollInterval = secondsToMilliseconds(5);
+
+ this.pollingInterval = new SmartInterval({
+ callback: () => this.$apollo.queries.state.refetch(),
+ startingInterval: startingPollInterval,
+ maxInterval: startingPollInterval + secondsToMilliseconds(4 * 60),
+ hiddenInterval: secondsToMilliseconds(6 * 60),
+ incrementByFactorOf: 2,
+ });
+ },
updateGraphqlState() {
return this.$apollo.queries.state.refetch();
},
@@ -351,7 +375,9 @@ export default {
})
.catch(() => {
this.isMakingRequest = false;
- new Flash(__('Something went wrong. Please try again.')); // eslint-disable-line
+ createFlash({
+ message: __('Something went wrong. Please try again.'),
+ });
});
},
handleMergeImmediatelyButtonClick() {
@@ -402,7 +428,9 @@ export default {
}
})
.catch(() => {
- new Flash(__('Something went wrong while merging this merge request. Please try again.')); // eslint-disable-line
+ createFlash({
+ message: __('Something went wrong while merging this merge request. Please try again.'),
+ });
stopPolling();
});
},
@@ -432,7 +460,9 @@ export default {
}
})
.catch(() => {
- new Flash(__('Something went wrong while deleting the source branch. Please try again.')); // eslint-disable-line
+ createFlash({
+ message: __('Something went wrong while deleting the source branch. Please try again.'),
+ });
});
},
},