summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/packages/shared/components/package_list_row.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/packages/shared/components/package_list_row.vue')
-rw-r--r--app/assets/javascripts/packages/shared/components/package_list_row.vue174
1 files changed, 0 insertions, 174 deletions
diff --git a/app/assets/javascripts/packages/shared/components/package_list_row.vue b/app/assets/javascripts/packages/shared/components/package_list_row.vue
deleted file mode 100644
index eee0e470c7b..00000000000
--- a/app/assets/javascripts/packages/shared/components/package_list_row.vue
+++ /dev/null
@@ -1,174 +0,0 @@
-<script>
-import { GlButton, GlLink, GlSprintf, GlTooltipDirective, GlTruncate } from '@gitlab/ui';
-import { s__ } from '~/locale';
-import ListItem from '~/vue_shared/components/registry/list_item.vue';
-import timeagoMixin from '~/vue_shared/mixins/timeago';
-import { PACKAGE_ERROR_STATUS, PACKAGE_DEFAULT_STATUS } from '../constants';
-import { getPackageTypeLabel } from '../utils';
-import PackagePath from './package_path.vue';
-import PackageTags from './package_tags.vue';
-import PublishMethod from './publish_method.vue';
-
-export default {
- name: 'PackageListRow',
- components: {
- GlButton,
- GlLink,
- GlSprintf,
- GlTruncate,
- PackageTags,
- PackagePath,
- PublishMethod,
- ListItem,
- PackageIconAndName: () =>
- import(/* webpackChunkName: 'package_registry_components' */ './package_icon_and_name.vue'),
- InfrastructureIconAndName: () =>
- import(
- /* webpackChunkName: 'infrastructure_registry_components' */ '~/packages_and_registries/infrastructure_registry/components/infrastructure_icon_and_name.vue'
- ),
- },
- directives: {
- GlTooltip: GlTooltipDirective,
- },
- mixins: [timeagoMixin],
- inject: {
- iconComponent: {
- from: 'iconComponent',
- default: 'PackageIconAndName',
- },
- },
- props: {
- packageEntity: {
- type: Object,
- required: true,
- },
- packageLink: {
- type: String,
- required: true,
- },
- disableDelete: {
- type: Boolean,
- default: false,
- required: false,
- },
- isGroup: {
- type: Boolean,
- default: false,
- required: false,
- },
- showPackageType: {
- type: Boolean,
- default: true,
- required: false,
- },
- },
- computed: {
- packageType() {
- return getPackageTypeLabel(this.packageEntity.package_type);
- },
- hasPipeline() {
- return Boolean(this.packageEntity.pipeline);
- },
- hasProjectLink() {
- return Boolean(this.packageEntity.project_path);
- },
- showWarningIcon() {
- return this.packageEntity.status === PACKAGE_ERROR_STATUS;
- },
- disabledRow() {
- return this.packageEntity.status && this.packageEntity.status !== PACKAGE_DEFAULT_STATUS;
- },
- disabledDeleteButton() {
- return this.disabledRow || !this.packageEntity._links.delete_api_path;
- },
- },
- i18n: {
- erroredPackageText: s__('PackageRegistry|Invalid Package: failed metadata extraction'),
- },
-};
-</script>
-
-<template>
- <list-item data-qa-selector="package_row" :disabled="disabledRow">
- <template #left-primary>
- <div class="gl-display-flex gl-align-items-center gl-mr-3 gl-min-w-0">
- <gl-link
- :href="packageLink"
- class="gl-text-body gl-min-w-0"
- data-qa-selector="package_link"
- :disabled="disabledRow"
- >
- <gl-truncate :text="packageEntity.name" />
- </gl-link>
-
- <gl-button
- v-if="showWarningIcon"
- v-gl-tooltip="{ title: $options.i18n.erroredPackageText }"
- class="gl-hover-bg-transparent!"
- icon="warning"
- category="tertiary"
- data-testid="warning-icon"
- :aria-label="__('Warning')"
- />
-
- <package-tags
- v-if="packageEntity.tags && packageEntity.tags.length"
- class="gl-ml-3"
- :tags="packageEntity.tags"
- hide-label
- :tag-display-limit="1"
- />
- </div>
- </template>
- <template #left-secondary>
- <div class="gl-display-flex">
- <span>{{ packageEntity.version }}</span>
-
- <div v-if="hasPipeline" class="gl-display-none gl-sm-display-flex gl-ml-2">
- <gl-sprintf :message="s__('PackageRegistry|published by %{author}')">
- <template #author>{{ packageEntity.pipeline.user.name }}</template>
- </gl-sprintf>
- </div>
-
- <component :is="iconComponent" v-if="showPackageType">
- {{ packageType }}
- </component>
-
- <package-path
- v-if="hasProjectLink"
- :path="packageEntity.project_path"
- :disabled="disabledRow"
- />
- </div>
- </template>
-
- <template #right-primary>
- <publish-method :package-entity="packageEntity" :is-group="isGroup" />
- </template>
-
- <template #right-secondary>
- <span>
- <gl-sprintf :message="__('Created %{timestamp}')">
- <template #timestamp>
- <span v-gl-tooltip :title="tooltipTitle(packageEntity.created_at)">
- {{ timeFormatted(packageEntity.created_at) }}
- </span>
- </template>
- </gl-sprintf>
- </span>
- </template>
-
- <template v-if="!disableDelete" #right-action>
- <gl-button
- data-testid="action-delete"
- icon="remove"
- category="secondary"
- variant="danger"
- :title="s__('PackageRegistry|Remove package')"
- :aria-label="s__('PackageRegistry|Remove package')"
- :disabled="disabledDeleteButton"
- @click="$emit('packageToDelete', packageEntity)"
- />
- </template>
- </list-item>
-</template>