diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-06 09:12:20 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-02-06 09:12:20 +0000 |
commit | a6d9ec9567a4f0b6401295e6744ab394fa3b0033 (patch) | |
tree | f864b1123ce9ffe85cfebcd55650c8a867c6eb36 /app/assets/javascripts/packages_and_registries | |
parent | cfe9f9a5b3a338744b3caf1bf55f8fd290618d0e (diff) | |
download | gitlab-ce-a6d9ec9567a4f0b6401295e6744ab394fa3b0033.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/packages_and_registries')
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'; |