diff options
Diffstat (limited to 'app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue')
-rw-r--r-- | app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue | 58 |
1 files changed, 9 insertions, 49 deletions
diff --git a/app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue b/app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue index 1c7c4d7c704..7d0cea67099 100644 --- a/app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue +++ b/app/assets/javascripts/pipelines/components/pipelines_list/pipelines_artifacts.vue @@ -1,20 +1,15 @@ <script> import { - GlAlert, GlDropdown, GlDropdownItem, GlDropdownSectionHeader, - GlLoadingIcon, GlTooltipDirective, } from '@gitlab/ui'; -import axios from '~/lib/utils/axios_utils'; -import { __, s__ } from '~/locale'; +import { __ } from '~/locale'; export const i18n = { artifacts: __('Artifacts'), artifactSectionHeader: __('Download artifacts'), - artifactsFetchErrorMessage: s__('Pipelines|Could not load artifacts.'), - noArtifacts: s__('Pipelines|No artifacts available'), }; export default { @@ -23,11 +18,9 @@ export default { GlTooltip: GlTooltipDirective, }, components: { - GlAlert, GlDropdown, GlDropdownItem, GlDropdownSectionHeader, - GlLoadingIcon, }, inject: { artifactsEndpoint: { @@ -42,44 +35,22 @@ export default { type: Number, required: true, }, - }, - data() { - return { - artifacts: [], - hasError: false, - isLoading: false, - }; - }, - computed: { - hasArtifacts() { - return Boolean(this.artifacts.length); + artifacts: { + type: Array, + required: false, + default: () => [], }, }, - methods: { - fetchArtifacts() { - this.isLoading = true; - // Replace the placeholder with the ID of the pipeline we are viewing - const endpoint = this.artifactsEndpoint.replace( - this.artifactsEndpointPlaceholder, - this.pipelineId, - ); - return axios - .get(endpoint) - .then(({ data }) => { - this.artifacts = data.artifacts; - }) - .catch(() => { - this.hasError = true; - }) - .finally(() => { - this.isLoading = false; - }); + computed: { + shouldShowDropdown() { + return this.artifacts?.length; }, }, }; </script> <template> <gl-dropdown + v-if="shouldShowDropdown" v-gl-tooltip class="build-artifacts js-pipeline-dropdown-download" :title="$options.i18n.artifacts" @@ -89,22 +60,11 @@ export default { right lazy text-sr-only - @show.once="fetchArtifacts" > <gl-dropdown-section-header>{{ $options.i18n.artifactSectionHeader }}</gl-dropdown-section-header> - <gl-alert v-if="hasError" variant="danger" :dismissible="false"> - {{ $options.i18n.artifactsFetchErrorMessage }} - </gl-alert> - - <gl-loading-icon v-if="isLoading" size="sm" /> - - <gl-alert v-else-if="!hasArtifacts" variant="info" :dismissible="false"> - {{ $options.i18n.noArtifacts }} - </gl-alert> - <gl-dropdown-item v-for="(artifact, i) in artifacts" :key="i" |