summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue')
-rw-r--r--app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue126
1 files changed, 0 insertions, 126 deletions
diff --git a/app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue b/app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue
deleted file mode 100644
index 610a570c4ce..00000000000
--- a/app/assets/javascripts/pipeline_editor/components/header/validation_segment.vue
+++ /dev/null
@@ -1,126 +0,0 @@
-<script>
-import { GlIcon, GlLink, GlLoadingIcon } from '@gitlab/ui';
-import { __, s__, sprintf } from '~/locale';
-import getAppStatus from '~/pipeline_editor/graphql/queries/client/app_status.query.graphql';
-import TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue';
-import {
- EDITOR_APP_STATUS_EMPTY,
- EDITOR_APP_STATUS_LINT_UNAVAILABLE,
- EDITOR_APP_STATUS_LOADING,
- EDITOR_APP_STATUS_VALID,
-} from '../../constants';
-
-export const i18n = {
- empty: __(
- "We'll continuously validate your pipeline configuration. The validation results will appear here.",
- ),
- learnMore: __('Learn more'),
- loading: s__('Pipelines|Validating GitLab CI configuration…'),
- invalid: s__('Pipelines|This GitLab CI configuration is invalid.'),
- invalidWithReason: s__('Pipelines|This GitLab CI configuration is invalid: %{reason}.'),
- unavailableValidation: s__('Pipelines|Configuration validation currently not available.'),
- valid: s__('Pipelines|Pipeline syntax is correct.'),
-};
-
-export default {
- i18n,
- components: {
- GlIcon,
- GlLink,
- GlLoadingIcon,
- TooltipOnTruncate,
- },
- inject: {
- lintUnavailableHelpPagePath: {
- default: '',
- },
- ymlHelpPagePath: {
- default: '',
- },
- },
- props: {
- ciConfig: {
- type: Object,
- required: false,
- default: () => ({}),
- },
- },
- apollo: {
- appStatus: {
- query: getAppStatus,
- update(data) {
- return data.app.status;
- },
- },
- },
- computed: {
- helpPath() {
- return this.isLintUnavailable ? this.lintUnavailableHelpPagePath : this.ymlHelpPagePath;
- },
- isEmpty() {
- return this.appStatus === EDITOR_APP_STATUS_EMPTY;
- },
- isLintUnavailable() {
- return this.appStatus === EDITOR_APP_STATUS_LINT_UNAVAILABLE;
- },
- isLoading() {
- return this.appStatus === EDITOR_APP_STATUS_LOADING;
- },
- isValid() {
- return this.appStatus === EDITOR_APP_STATUS_VALID;
- },
- icon() {
- switch (this.appStatus) {
- case EDITOR_APP_STATUS_EMPTY:
- return 'check';
- case EDITOR_APP_STATUS_LINT_UNAVAILABLE:
- return 'time-out';
- case EDITOR_APP_STATUS_VALID:
- return 'check';
- default:
- return 'warning-solid';
- }
- },
- message() {
- const [reason] = this.ciConfig?.errors || [];
-
- switch (this.appStatus) {
- case EDITOR_APP_STATUS_EMPTY:
- return this.$options.i18n.empty;
- case EDITOR_APP_STATUS_LINT_UNAVAILABLE:
- return this.$options.i18n.unavailableValidation;
- case EDITOR_APP_STATUS_VALID:
- return this.$options.i18n.valid;
- default:
- // Only display first error as a reason
- return this.ciConfig?.errors?.length > 0
- ? sprintf(this.$options.i18n.invalidWithReason, { reason }, false)
- : this.$options.i18n.invalid;
- }
- },
- },
-};
-</script>
-
-<template>
- <div>
- <template v-if="isLoading">
- <gl-loading-icon size="sm" inline />
- {{ $options.i18n.loading }}
- </template>
-
- <span v-else class="gl-display-inline-flex gl-white-space-nowrap gl-max-w-full">
- <tooltip-on-truncate :title="message" class="gl-text-truncate">
- <gl-icon :name="icon" />
- <span data-qa-selector="validation_message_content" data-testid="validationMsg">
- {{ message }}
- </span>
- </tooltip-on-truncate>
- <span v-if="!isEmpty" class="gl-flex-shrink-0 gl-pl-2">
- <gl-link data-testid="learnMoreLink" :href="helpPath">
- {{ $options.i18n.learnMore }}
- </gl-link>
- </span>
- </span>
- </div>
-</template>