Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/pipelines/components/pipelines_list/failure_widget/failed_job_details.vue')
-rw-r--r--app/assets/javascripts/pipelines/components/pipelines_list/failure_widget/failed_job_details.vue165
1 files changed, 0 insertions, 165 deletions
diff --git a/app/assets/javascripts/pipelines/components/pipelines_list/failure_widget/failed_job_details.vue b/app/assets/javascripts/pipelines/components/pipelines_list/failure_widget/failed_job_details.vue
deleted file mode 100644
index edf4cc87a87..00000000000
--- a/app/assets/javascripts/pipelines/components/pipelines_list/failure_widget/failed_job_details.vue
+++ /dev/null
@@ -1,165 +0,0 @@
-<script>
-import { GlButton, GlIcon, GlLink, GlTooltip } from '@gitlab/ui';
-import { createAlert } from '~/alert';
-import { __, s__, sprintf } from '~/locale';
-import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import CiIcon from '~/vue_shared/components/ci_icon.vue';
-import SafeHtml from '~/vue_shared/directives/safe_html';
-import { BRIDGE_KIND } from '~/pipelines/components/graph/constants';
-import RetryMrFailedJobMutation from '../../../graphql/mutations/retry_mr_failed_job.mutation.graphql';
-
-export default {
- components: {
- CiIcon,
- GlButton,
- GlIcon,
- GlLink,
- GlTooltip,
- },
- directives: {
- SafeHtml,
- },
- props: {
- job: {
- type: Object,
- required: true,
- },
- },
- data() {
- return {
- isHovered: false,
- isJobLogVisible: false,
- isLoadingAction: false,
- };
- },
- computed: {
- canReadBuild() {
- return this.job.userPermissions.readBuild;
- },
- canRetryJob() {
- return this.job.retryable && this.job.userPermissions.updateBuild && !this.isBridgeJob;
- },
- isBridgeJob() {
- return this.job.kind === BRIDGE_KIND;
- },
- jobChevronName() {
- return this.isJobLogVisible ? 'chevron-down' : 'chevron-right';
- },
- jobTrace() {
- if (this.canReadBuild) {
- return this.job?.trace?.htmlSummary || this.$options.i18n.noTraceText;
- }
-
- return this.$options.i18n.cannotReadBuild;
- },
- parsedJobId() {
- return getIdFromGraphQLId(this.job.id);
- },
- tooltipErrorText() {
- return this.isBridgeJob
- ? this.$options.i18n.cannotRetryTrigger
- : this.$options.i18n.cannotRetry;
- },
- tooltipText() {
- return sprintf(this.$options.i18n.jobActionTooltipText, { jobName: this.job.name });
- },
- },
- methods: {
- setActiveRow() {
- this.isHovered = true;
- },
- resetActiveRow() {
- this.isHovered = false;
- },
- async retryJob() {
- try {
- this.isLoadingAction = true;
-
- const {
- data: {
- jobRetry: { errors },
- },
- } = await this.$apollo.mutate({
- mutation: RetryMrFailedJobMutation,
- variables: { id: this.job.id },
- });
-
- if (errors.length > 0) {
- throw new Error(errors[0]);
- }
-
- this.$emit('job-retried', this.job.name);
- } catch (error) {
- createAlert({ message: error?.message || this.$options.i18n.retryError });
- } finally {
- this.isLoadingAction = false;
- }
- },
- toggleJobLog(event) {
- // Do not toggle the log visibility when clicking on a link
- if (event.target.tagName === 'A') {
- return;
- }
- this.isJobLogVisible = !this.isJobLogVisible;
- },
- },
- i18n: {
- cannotReadBuild: s__("Job|You do not have permission to read this job's log."),
- cannotRetry: s__('Job|You do not have permission to run this job again.'),
- cannotRetryTrigger: s__('Job|You cannot rerun trigger jobs from this list.'),
- jobActionTooltipText: s__('Pipelines|Retry %{jobName} Job'),
- noTraceText: s__('Job|No job log'),
- retry: __('Retry'),
- retryError: __('There was an error while retrying this job'),
- },
-};
-</script>
-<template>
- <div class="container-fluid gl-grid-tpl-rows-auto">
- <div
- class="row gl-my-3 gl-cursor-pointer gl-display-flex gl-align-items-center"
- :aria-pressed="isJobLogVisible"
- role="button"
- tabindex="0"
- data-testid="widget-row"
- @click="toggleJobLog"
- @keyup.enter="toggleJobLog"
- @keyup.space="toggleJobLog"
- @mouseover="setActiveRow"
- @mouseout="resetActiveRow"
- >
- <div class="col-6 gl-text-gray-900 gl-font-weight-bold gl-text-left">
- <gl-icon :name="jobChevronName" />
- <ci-icon :status="job.detailedStatus" />
- {{ job.name }}
- </div>
- <div class="col-2 gl-text-left">{{ job.stage.name }}</div>
- <div class="col-2 gl-text-left">
- <gl-link :href="job.detailedStatus.detailsPath">#{{ parsedJobId }}</gl-link>
- </div>
- <gl-tooltip v-if="!canRetryJob" :target="() => $refs.retryBtn" placement="top">
- {{ tooltipErrorText }}
- </gl-tooltip>
- <div class="col-2 gl-text-right">
- <span ref="retryBtn">
- <gl-button
- :disabled="!canRetryJob"
- icon="retry"
- category="tertiary"
- :loading="isLoadingAction"
- :title="$options.i18n.retry"
- :aria-label="$options.i18n.retry"
- @click.stop="retryJob"
- />
- </span>
- </div>
- </div>
- <div v-if="isJobLogVisible" class="row">
- <pre
- v-safe-html="jobTrace"
- class="gl-bg-gray-900 gl-text-white gl-w-full"
- data-testid="job-log"
- ></pre>
- </div>
- </div>
-</template>