summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/packages_and_registries
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-06 09:12:20 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-06 09:12:20 +0000
commita6d9ec9567a4f0b6401295e6744ab394fa3b0033 (patch)
treef864b1123ce9ffe85cfebcd55650c8a867c6eb36 /app/assets/javascripts/packages_and_registries
parentcfe9f9a5b3a338744b3caf1bf55f8fd290618d0e (diff)
downloadgitlab-ce-a6d9ec9567a4f0b6401295e6744ab394fa3b0033.tar.gz
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/settings/project/components/packages_cleanup_policy_form.vue28
-rw-r--r--app/assets/javascripts/packages_and_registries/settings/project/constants.js6
2 files changed, 34 insertions, 0 deletions
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/components/packages_cleanup_policy_form.vue b/app/assets/javascripts/packages_and_registries/settings/project/components/packages_cleanup_policy_form.vue
index f1f0b970b15..f95ec4336dc 100644
--- a/app/assets/javascripts/packages_and_registries/settings/project/components/packages_cleanup_policy_form.vue
+++ b/app/assets/javascripts/packages_and_registries/settings/project/components/packages_cleanup_policy_form.vue
@@ -1,5 +1,6 @@
<script>
import { GlButton } from '@gitlab/ui';
+import { sprintf } from '~/locale';
import {
UPDATE_SETTINGS_ERROR_MESSAGE,
UPDATE_SETTINGS_SUCCESS_MESSAGE,
@@ -7,10 +8,14 @@ import {
KEEP_N_DUPLICATED_PACKAGE_FILES_FIELDNAME,
KEEP_N_DUPLICATED_PACKAGE_FILES_LABEL,
SET_CLEANUP_POLICY_BUTTON,
+ READY_FOR_CLEANUP_MESSAGE,
+ TIME_TO_NEXT_CLEANUP_MESSAGE,
} from '~/packages_and_registries/settings/project/constants';
+import packagesCleanupPolicyQuery from '~/packages_and_registries/settings/project/graphql/queries/get_packages_cleanup_policy.query.graphql';
import updatePackagesCleanupPolicyMutation from '~/packages_and_registries/settings/project/graphql/mutations/update_packages_cleanup_policy.mutation.graphql';
import { formOptionsGenerator } from '~/packages_and_registries/settings/project/utils';
import Tracking from '~/tracking';
+import { approximateDuration, calculateRemainingMilliseconds } from '~/lib/utils/datetime_utility';
import ExpirationDropdown from './expiration_dropdown.vue';
export default {
@@ -36,6 +41,8 @@ export default {
KEEP_N_DUPLICATED_PACKAGE_FILES_LABEL,
KEEP_N_DUPLICATED_PACKAGE_FILES_DESCRIPTION,
SET_CLEANUP_POLICY_BUTTON,
+ TIME_TO_NEXT_CLEANUP_MESSAGE,
+ READY_FOR_CLEANUP_MESSAGE,
},
data() {
return {
@@ -69,6 +76,15 @@ export default {
keepNDuplicatedPackageFiles: this.prefilledForm.keepNDuplicatedPackageFiles,
};
},
+ nextCleanupMessage() {
+ const { nextRunAt } = this.value;
+ const difference = calculateRemainingMilliseconds(nextRunAt);
+ return difference
+ ? sprintf(TIME_TO_NEXT_CLEANUP_MESSAGE, {
+ nextRunAt: approximateDuration(difference / 1000),
+ })
+ : READY_FOR_CLEANUP_MESSAGE;
+ },
},
methods: {
findDefaultOption(option) {
@@ -83,6 +99,15 @@ export default {
variables: {
input: this.mutationVariables,
},
+ awaitRefetchQueries: true,
+ refetchQueries: [
+ {
+ query: packagesCleanupPolicyQuery,
+ variables: {
+ projectPath: this.projectPath,
+ },
+ },
+ ],
})
.then(({ data }) => {
const [errorMessage] = data?.updatePackagesCleanupPolicy?.errors ?? [];
@@ -119,6 +144,9 @@ export default {
data-testid="keep-n-duplicated-package-files-dropdown"
@input="onModelChange($event, 'keepNDuplicatedPackageFiles')"
/>
+ <p v-if="value.nextRunAt" data-testid="next-run-at">
+ {{ nextCleanupMessage }}
+ </p>
<div class="gl-mt-7 gl-display-flex gl-align-items-center">
<gl-button
data-testid="save-button"
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/constants.js b/app/assets/javascripts/packages_and_registries/settings/project/constants.js
index a9b47cbd343..731fb3e4c45 100644
--- a/app/assets/javascripts/packages_and_registries/settings/project/constants.js
+++ b/app/assets/javascripts/packages_and_registries/settings/project/constants.js
@@ -74,6 +74,12 @@ export const KEEP_N_DUPLICATED_PACKAGE_FILES_LABEL = s__(
export const KEEP_N_DUPLICATED_PACKAGE_FILES_DESCRIPTION = s__(
'PackageRegistry|Examples of assets include .pom & .jar files',
);
+export const TIME_TO_NEXT_CLEANUP_MESSAGE = s__(
+ 'PackageRegistry|Packages and assets will not be deleted until cleanup runs in %{nextRunAt}.',
+);
+export const READY_FOR_CLEANUP_MESSAGE = s__(
+ 'PackageRegistry|Packages and assets cleanup is ready to be executed when the next cleanup job runs.',
+);
export const KEEP_N_DUPLICATED_PACKAGE_FILES_FIELDNAME = 'keepNDuplicatedPackageFiles';