diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-13 00:09:53 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-13 00:09:53 +0300 |
commit | b6f17c69925beded921017fa049385de715553ba (patch) | |
tree | 5f8b2a5fbc6b1e779b7421ceddd219065e65fec9 /app/assets/javascripts/gitlab_pages | |
parent | 0ba11d8461a2b091d37bb6308d85e74f2b133803 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/gitlab_pages')
-rw-r--r-- | app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue | 84 | ||||
-rw-r--r-- | app/assets/javascripts/gitlab_pages/queries/mark_onboarding_complete.graphql | 6 |
2 files changed, 90 insertions, 0 deletions
diff --git a/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue b/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue new file mode 100644 index 00000000000..f17a05999b0 --- /dev/null +++ b/app/assets/javascripts/gitlab_pages/components/pages_pipeline_wizard.vue @@ -0,0 +1,84 @@ +<script> +import { GlLoadingIcon } from '@gitlab/ui'; +import { captureException } from '@sentry/browser'; +import PipelineWizard from '~/pipeline_wizard/pipeline_wizard.vue'; +import PagesWizardTemplate from '~/pipeline_wizard/templates/pages.yml'; +import { logError } from '~/lib/logger'; +import { s__ } from '~/locale'; +import { redirectTo } from '~/lib/utils/url_utility'; +import pagesMarkOnboardingComplete from '../queries/mark_onboarding_complete.graphql'; + +export const i18n = { + loadingMessage: s__('GitLabPages|Updating your Pages configuration...'), +}; + +export default { + name: 'PagesPipelineWizard', + i18n, + PagesWizardTemplate, + components: { + PipelineWizard, + GlLoadingIcon, + }, + props: { + projectPath: { + type: String, + required: true, + }, + defaultBranch: { + type: String, + required: true, + }, + redirectToWhenDone: { + type: String, + required: true, + }, + }, + data() { + return { + loading: false, + }; + }, + methods: { + async updateOnboardingState() { + try { + await this.$apollo.mutate({ + mutation: pagesMarkOnboardingComplete, + variables: { + input: { projectPath: this.projectPath }, + }, + }); + } catch (e) { + // eslint-disable-next-line @gitlab/require-i18n-strings + logError('Updating the pages onboarding state failed', e); + captureException(e); + } + }, + async onDone() { + this.loading = true; + await this.updateOnboardingState(); + redirectTo(this.redirectToWhenDone); + }, + }, +}; +</script> + +<template> + <div> + <div + v-if="loading" + class="gl-p-3 gl-rounded-base gl-text-center" + data-testid="onboarding-mutation-loading" + > + <gl-loading-icon /> + {{ $options.i18n.loadingMessage }} + </div> + <pipeline-wizard + v-else + :template="$options.PagesWizardTemplate" + :project-path="projectPath" + :default-branch="defaultBranch" + @done="onDone" + /> + </div> +</template> diff --git a/app/assets/javascripts/gitlab_pages/queries/mark_onboarding_complete.graphql b/app/assets/javascripts/gitlab_pages/queries/mark_onboarding_complete.graphql new file mode 100644 index 00000000000..abedd54b079 --- /dev/null +++ b/app/assets/javascripts/gitlab_pages/queries/mark_onboarding_complete.graphql @@ -0,0 +1,6 @@ +mutation pagesMarkOnboardingComplete($input: PagesMarkOnboardingCompleteInput!) { + pagesMarkOnboardingComplete(input: $input) { + onboardingComplete + errors + } +} |