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:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-04-20 12:18:59 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-04-20 12:18:59 +0300
commitc7eec01f1b68b2e047cdd709751cb695ab329933 (patch)
tree47609cd0e5f00afdd1532cf951f9c0055a125641 /app/assets/javascripts/packages_and_registries
parent9b863f753f0320a95af1ff774cd0c1d4ec7d2754 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/packages_and_registries')
-rw-r--r--app/assets/javascripts/packages_and_registries/package_registry/components/delete_modal.vue42
-rw-r--r--app/assets/javascripts/packages_and_registries/package_registry/components/details/package_versions_list.vue55
-rw-r--r--app/assets/javascripts/packages_and_registries/package_registry/constants.js2
-rw-r--r--app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql5
-rw-r--r--app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue43
5 files changed, 85 insertions, 62 deletions
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/delete_modal.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/delete_modal.vue
index f790c7b1430..0c3494ea812 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/components/delete_modal.vue
+++ b/app/assets/javascripts/packages_and_registries/package_registry/components/delete_modal.vue
@@ -16,10 +16,6 @@ import {
export default {
name: 'DeleteModal',
- i18n: {
- DELETE_MODAL_CONTENT,
- DELETE_PACKAGES_MODAL_DESCRIPTION,
- },
components: {
GlLink,
GlModal,
@@ -38,15 +34,21 @@ export default {
},
computed: {
itemToBeDeleted() {
- if (this.itemsToBeDeleted.length === 1) {
- const [itemToBeDeleted] = this.itemsToBeDeleted;
- return itemToBeDeleted;
- }
- return null;
+ return this.itemsToBeDeleted.length === 1 ? this.itemsToBeDeleted[0] : null;
},
title() {
return this.itemToBeDeleted ? DELETE_MODAL_TITLE : DELETE_PACKAGES_MODAL_TITLE;
},
+ packageDescription() {
+ return this.showRequestForwardingContent
+ ? DELETE_PACKAGE_REQUEST_FORWARDING_MODAL_CONTENT
+ : DELETE_MODAL_CONTENT;
+ },
+ packagesDescription() {
+ return this.showRequestForwardingContent
+ ? DELETE_PACKAGES_REQUEST_FORWARDING_MODAL_CONTENT
+ : DELETE_PACKAGES_MODAL_DESCRIPTION;
+ },
packagesDeletePrimaryActionProps() {
let text = DELETE_PACKAGE_MODAL_PRIMARY_ACTION;
@@ -62,11 +64,6 @@ export default {
attributes: { variant: 'danger', category: 'primary' },
};
},
- requestForwardingContentMessage() {
- return this.itemToBeDeleted
- ? DELETE_PACKAGE_REQUEST_FORWARDING_MODAL_CONTENT
- : DELETE_PACKAGES_REQUEST_FORWARDING_MODAL_CONTENT;
- },
},
modal: {
cancelAction: {
@@ -95,24 +92,23 @@ export default {
@primary="$emit('confirm')"
@cancel="$emit('cancel')"
>
- <p v-if="showRequestForwardingContent">
- <gl-sprintf :message="requestForwardingContentMessage">
- <template #docLink="{ content }">
+ <p>
+ <gl-sprintf v-if="itemToBeDeleted" :message="packageDescription">
+ <template v-if="showRequestForwardingContent" #docLink="{ content }">
<gl-link :href="$options.links.REQUEST_FORWARDING_HELP_PAGE_PATH">{{ content }}</gl-link>
</template>
- </gl-sprintf>
- </p>
- <p v-else>
- <gl-sprintf v-if="itemToBeDeleted" :message="$options.i18n.DELETE_MODAL_CONTENT">
<template #version>
<strong>{{ itemToBeDeleted.version }}</strong>
</template>
-
<template #name>
<strong>{{ itemToBeDeleted.name }}</strong>
</template>
</gl-sprintf>
- <gl-sprintf v-else :message="$options.i18n.DELETE_PACKAGES_MODAL_DESCRIPTION">
+ <gl-sprintf v-else :message="packagesDescription">
+ <template v-if="showRequestForwardingContent" #docLink="{ content }">
+ <gl-link :href="$options.links.REQUEST_FORWARDING_HELP_PAGE_PATH">{{ content }}</gl-link>
+ </template>
+
<template #count>
{{ itemsToBeDeleted.length }}
</template>
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/package_versions_list.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/package_versions_list.vue
index 7ea19df7a6c..482249bc252 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/package_versions_list.vue
+++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/package_versions_list.vue
@@ -6,7 +6,6 @@ import VersionRow from '~/packages_and_registries/package_registry/components/de
import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
import DeleteModal from '~/packages_and_registries/package_registry/components/delete_modal.vue';
-import DeletePackageModal from '~/packages_and_registries/shared/components/delete_package_modal.vue';
import {
CANCEL_DELETE_PACKAGE_VERSION_TRACKING_ACTION,
CANCEL_DELETE_PACKAGE_VERSIONS_TRACKING_ACTION,
@@ -24,7 +23,6 @@ import getPackageVersionsQuery from '~/packages_and_registries/package_registry/
export default {
components: {
DeleteModal,
- DeletePackageModal,
GlAlert,
VersionRow,
PackagesListLoader,
@@ -47,6 +45,11 @@ export default {
required: false,
default: false,
},
+ isRequestForwardingEnabled: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
packageId: {
type: String,
required: true,
@@ -54,7 +57,6 @@ export default {
},
data() {
return {
- itemToBeDeleted: null,
itemsToBeDeleted: [],
packageVersions: {},
fetchPackageVersionsError: false,
@@ -79,6 +81,9 @@ export default {
},
},
computed: {
+ itemToBeDeleted() {
+ return this.itemsToBeDeleted.length === 1 ? this.itemsToBeDeleted[0] : null;
+ },
isListEmpty() {
return this.count === 0;
},
@@ -110,36 +115,31 @@ export default {
},
},
methods: {
- deleteItemConfirmation() {
- this.$emit('delete', [this.itemToBeDeleted]);
- this.track(DELETE_PACKAGE_VERSION_TRACKING_ACTION);
- this.itemToBeDeleted = null;
- },
- deleteItemCanceled() {
- this.track(CANCEL_DELETE_PACKAGE_VERSION_TRACKING_ACTION);
- this.itemToBeDeleted = null;
- },
deleteItemsCanceled() {
- this.track(CANCEL_DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
+ if (this.itemToBeDeleted) {
+ this.track(CANCEL_DELETE_PACKAGE_VERSION_TRACKING_ACTION);
+ } else {
+ this.track(CANCEL_DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
+ }
+
this.itemsToBeDeleted = [];
},
deleteItemsConfirmation() {
this.$emit('delete', this.itemsToBeDeleted);
- this.track(DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
+ if (this.itemToBeDeleted) {
+ this.track(DELETE_PACKAGE_VERSION_TRACKING_ACTION);
+ } else {
+ this.track(DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
+ }
this.itemsToBeDeleted = [];
},
- setItemToBeDeleted(item) {
- this.itemToBeDeleted = { ...item };
- this.track(REQUEST_DELETE_PACKAGE_VERSION_TRACKING_ACTION);
- },
setItemsToBeDeleted(items) {
+ this.itemsToBeDeleted = items;
if (items.length === 1) {
- const [item] = items;
- this.setItemToBeDeleted(item);
- return;
+ this.track(REQUEST_DELETE_PACKAGE_VERSION_TRACKING_ACTION);
+ } else {
+ this.track(REQUEST_DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
}
- this.itemsToBeDeleted = items;
- this.track(REQUEST_DELETE_PACKAGE_VERSIONS_TRACKING_ACTION);
this.$refs.deletePackagesModal.show();
},
fetchPreviousVersionsPage() {
@@ -196,21 +196,16 @@ export default {
:first="first"
:package-entity="item"
:selected="isSelected(item)"
- @delete="setItemToBeDeleted(item)"
+ @delete="setItemsToBeDeleted([item])"
@select="selectItem(item)"
/>
</template>
</registry-list>
- <delete-package-modal
- :item-to-be-deleted="itemToBeDeleted"
- @ok="deleteItemConfirmation"
- @cancel="deleteItemCanceled"
- />
-
<delete-modal
ref="deletePackagesModal"
:items-to-be-deleted="itemsToBeDeleted"
+ :show-request-forwarding-content="isRequestForwardingEnabled"
@confirm="deleteItemsConfirmation"
@cancel="deleteItemsCanceled"
/>
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/constants.js b/app/assets/javascripts/packages_and_registries/package_registry/constants.js
index ad5edcd7602..b4276d69ed6 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/constants.js
+++ b/app/assets/javascripts/packages_and_registries/package_registry/constants.js
@@ -136,7 +136,7 @@ export const DELETE_PACKAGES_WITH_REQUEST_FORWARDING_PRIMARY_ACTION = s__(
'PackageRegistry|Yes, delete selected packages',
);
export const DELETE_PACKAGE_REQUEST_FORWARDING_MODAL_CONTENT = s__(
- 'PackageRegistry|Deleting this package while request forwarding is enabled for the project can pose a security risk. Do you want to delete the package anyway? %{docLinkStart}What are the risks?%{docLinkEnd}',
+ 'PackageRegistry|Deleting this package while request forwarding is enabled for the project can pose a security risk. Do you want to delete %{name} version %{version} anyway? %{docLinkStart}What are the risks?%{docLinkEnd}',
);
export const DELETE_PACKAGES_REQUEST_FORWARDING_MODAL_CONTENT = s__(
'PackageRegistry|Some of the selected package formats allow request forwarding. Deleting a package while request forwarding is enabled for the project can pose a security risk. Do you want to proceed with deleting the selected packages? %{docLinkStart}What are the risks?%{docLinkEnd}',
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql b/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql
index 99864f7ad0c..984996b829a 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql
+++ b/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_details.query.graphql
@@ -1,3 +1,5 @@
+#import "~/packages_and_registries/package_registry/graphql/fragments/package_group_settings.fragment.graphql"
+
query getPackageDetails($id: PackagesPackageID!) {
package(id: $id) {
id
@@ -23,6 +25,9 @@ query getPackageDetails($id: PackagesPackageID!) {
path
name
fullPath
+ group {
+ ...GroupPackageSettings
+ }
}
tags(first: 10) {
nodes {
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue
index 0f1c63a04ad..6d4979ac785 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue
+++ b/app/assets/javascripts/packages_and_registries/package_registry/pages/details.vue
@@ -2,6 +2,7 @@
import {
GlBadge,
GlButton,
+ GlLink,
GlModal,
GlModalDirective,
GlTooltipDirective,
@@ -37,6 +38,7 @@ import {
DELETE_PACKAGE_FILE_TRACKING_ACTION,
DELETE_PACKAGE_FILES_TRACKING_ACTION,
REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION,
+ REQUEST_FORWARDING_HELP_PAGE_PATH,
CANCEL_DELETE_PACKAGE_FILE_TRACKING_ACTION,
SHOW_DELETE_SUCCESS_ALERT,
FETCH_PACKAGE_DETAILS_ERROR_MESSAGE,
@@ -44,6 +46,7 @@ import {
DELETE_PACKAGE_FILE_SUCCESS_MESSAGE,
DELETE_PACKAGE_FILES_ERROR_MESSAGE,
DELETE_PACKAGE_FILES_SUCCESS_MESSAGE,
+ DELETE_PACKAGE_REQUEST_FORWARDING_MODAL_CONTENT,
DOWNLOAD_PACKAGE_ASSET_TRACKING_ACTION,
DELETE_MODAL_TITLE,
DELETE_MODAL_CONTENT,
@@ -64,6 +67,7 @@ export default {
GlButton,
GlEmptyState,
GlModal,
+ GlLink,
GlTab,
GlTabs,
GlSprintf,
@@ -124,6 +128,11 @@ export default {
},
},
computed: {
+ deleteModalContent() {
+ return this.isRequestForwardingEnabled
+ ? DELETE_PACKAGE_REQUEST_FORWARDING_MODAL_CONTENT
+ : this.deletePackageModalContent;
+ },
projectName() {
return this.packageEntity.project?.name;
},
@@ -170,6 +179,12 @@ export default {
showFiles() {
return this.packageType !== PACKAGE_TYPE_COMPOSER;
},
+ groupSettings() {
+ return this.packageEntity.project?.group?.packageSettings ?? {};
+ },
+ isRequestForwardingEnabled() {
+ return this.groupSettings[`${this.packageType.toLowerCase()}PackageRequestsForwarding`];
+ },
showMetadata() {
return [
PACKAGE_TYPE_COMPOSER,
@@ -291,6 +306,9 @@ export default {
),
otherVersionsTabTitle: s__('PackageRegistry|Other versions'),
},
+ links: {
+ REQUEST_FORWARDING_HELP_PAGE_PATH,
+ },
modal: {
packageDeletePrimaryAction: {
text: s__('PackageRegistry|Permanently delete'),
@@ -398,6 +416,7 @@ export default {
:can-destroy="packageEntity.canDestroy"
:count="packageVersionsCount"
:is-mutation-loading="versionsMutationLoading"
+ :is-request-forwarding-enabled="isRequestForwardingEnabled"
:package-id="packageEntity.id"
@delete="deletePackages"
>
@@ -429,15 +448,23 @@ export default {
@canceled="track($options.trackingActions.CANCEL_DELETE_PACKAGE)"
>
<template #modal-title>{{ $options.i18n.DELETE_MODAL_TITLE }}</template>
- <gl-sprintf :message="deletePackageModalContent">
- <template #version>
- <strong>{{ packageEntity.version }}</strong>
- </template>
+ <p>
+ <gl-sprintf :message="deleteModalContent">
+ <template v-if="isRequestForwardingEnabled" #docLink="{ content }">
+ <gl-link :href="$options.links.REQUEST_FORWARDING_HELP_PAGE_PATH">{{
+ content
+ }}</gl-link>
+ </template>
+
+ <template #version>
+ <strong>{{ packageEntity.version }}</strong>
+ </template>
- <template #name>
- <strong>{{ packageEntity.name }}</strong>
- </template>
- </gl-sprintf>
+ <template #name>
+ <strong>{{ packageEntity.name }}</strong>
+ </template>
+ </gl-sprintf>
+ </p>
</gl-modal>
</template>
</delete-packages>