From b38f9c0c55615312e3d0a6fa9dca3e2232bcadf1 Mon Sep 17 00:00:00 2001
From: Paul Gascou-Vaillancourt <pgascouvaillancourt@gitlab.com>
Date: Thu, 25 Jul 2024 13:38:56 +0000
Subject: [PATCH] Configure all of `GlPagination`'s labels

`GlPagination` now exposes all of its internal labels for translation
via the configuration. This ensures all of them are properly passed to
GitLab UI so we can benefit from translated labels by default.
---
 .../components/access_token_table_app.vue     |  4 ----
 .../inactive_access_token_table_app.vue       |  4 ----
 .../admin/abuse_reports/components/app.vue    |  4 ----
 .../admin/deploy_keys/components/table.vue    |  6 ------
 .../badges/components/badge_list.vue          |  4 ----
 .../components/secure_files_list.vue          |  6 ------
 .../clusters_list/components/clusters.vue     |  2 --
 app/assets/javascripts/commons/gitlab_ui.js   | 17 +++++++++++++++-
 .../deploy_keys/components/app.vue            | 10 +---------
 .../components/environments_app.vue           |  8 --------
 .../components/table/members_pagination.vue   |  4 ----
 .../javascripts/profile/components/follow.vue |  7 -------
 .../pagination/table_pagination.vue           | 20 -------------------
 .../components/pagination_links.vue           | 14 -------------
 .../secrets_table/secrets_table.vue           |  4 ----
 .../pipeline/security_dashboard_table.vue     |  4 ----
 locale/gitlab.pot                             |  6 ------
 .../abuse_reports/components/app_spec.js      |  2 +-
 .../deploy_keys/components/table_spec.js      |  2 --
 .../table/members_pagination_spec.js          |  2 +-
 .../profile/components/follow_spec.js         |  2 --
 21 files changed, 19 insertions(+), 113 deletions(-)

diff --git a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue
index d21f94b736f43..f28893206da9b 100644
--- a/app/assets/javascripts/access_tokens/components/access_token_table_app.vue
+++ b/app/assets/javascripts/access_tokens/components/access_token_table_app.vue
@@ -172,10 +172,6 @@ export default {
         v-model="currentPage"
         :per-page="$options.PAGE_SIZE"
         :total-items="activeAccessTokens.length"
-        :prev-text="__('Prev')"
-        :next-text="__('Next')"
-        :label-next-page="__('Go to next page')"
-        :label-prev-page="__('Go to previous page')"
         align="center"
         class="gl-mt-5"
       />
diff --git a/app/assets/javascripts/access_tokens/components/inactive_access_token_table_app.vue b/app/assets/javascripts/access_tokens/components/inactive_access_token_table_app.vue
index bfb4aac75e8bd..eb57b778e33aa 100644
--- a/app/assets/javascripts/access_tokens/components/inactive_access_token_table_app.vue
+++ b/app/assets/javascripts/access_tokens/components/inactive_access_token_table_app.vue
@@ -114,10 +114,6 @@ export default {
       v-model="currentPage"
       :per-page="$options.PAGE_SIZE"
       :total-items="inactiveAccessTokens.length"
-      :prev-text="__('Prev')"
-      :next-text="__('Next')"
-      :label-next-page="__('Go to next page')"
-      :label-prev-page="__('Go to previous page')"
       align="center"
       class="gl-mt-5"
     />
diff --git a/app/assets/javascripts/admin/abuse_reports/components/app.vue b/app/assets/javascripts/admin/abuse_reports/components/app.vue
index d42ae7c1ba946..ce0972808a43e 100644
--- a/app/assets/javascripts/admin/abuse_reports/components/app.vue
+++ b/app/assets/javascripts/admin/abuse_reports/components/app.vue
@@ -51,10 +51,6 @@ export default {
       :per-page="pagination.perPage"
       :total-items="pagination.totalItems"
       :link-gen="paginationLinkGenerator"
-      :prev-text="__('Prev')"
-      :next-text="__('Next')"
-      :label-next-page="__('Go to next page')"
-      :label-prev-page="__('Go to previous page')"
       align="center"
       class="gl-mt-3"
     />
diff --git a/app/assets/javascripts/admin/deploy_keys/components/table.vue b/app/assets/javascripts/admin/deploy_keys/components/table.vue
index e045a19c97e27..bca50af547972 100644
--- a/app/assets/javascripts/admin/deploy_keys/components/table.vue
+++ b/app/assets/javascripts/admin/deploy_keys/components/table.vue
@@ -30,10 +30,6 @@ export default {
     ),
     delete: __('Delete deploy key'),
     edit: __('Edit deploy key'),
-    pagination: {
-      next: __('Next'),
-      prev: __('Prev'),
-    },
     modal: {
       title: __('Are you sure?'),
       body: __('Are you sure you want to delete this deploy key?'),
@@ -289,8 +285,6 @@ export default {
       v-model="page"
       :per-page="$options.DEFAULT_PER_PAGE"
       :total-items="totalItems"
-      :next-text="$options.i18n.pagination.next"
-      :prev-text="$options.i18n.pagination.prev"
       align="center"
       class="gl-mt-5"
     />
diff --git a/app/assets/javascripts/badges/components/badge_list.vue b/app/assets/javascripts/badges/components/badge_list.vue
index 33257e78aa469..adabbf39902d3 100644
--- a/app/assets/javascripts/badges/components/badge_list.vue
+++ b/app/assets/javascripts/badges/components/badge_list.vue
@@ -165,10 +165,6 @@ export default {
         v-model="currentPage"
         :per-page="$options.PAGE_SIZE"
         :total-items="badges.length"
-        :prev-text="__('Prev')"
-        :next-text="__('Next')"
-        :label-next-page="__('Go to next page')"
-        :label-prev-page="__('Go to previous page')"
         align="center"
         class="gl-mt-5"
       />
diff --git a/app/assets/javascripts/ci_secure_files/components/secure_files_list.vue b/app/assets/javascripts/ci_secure_files/components/secure_files_list.vue
index 874a339ae126f..57a325d454672 100644
--- a/app/assets/javascripts/ci_secure_files/components/secure_files_list.vue
+++ b/app/assets/javascripts/ci_secure_files/components/secure_files_list.vue
@@ -49,10 +49,6 @@ export default {
     uploadLabel: __('Upload File'),
     uploadingLabel: __('Uploading...'),
     noFilesMessage: __('There are no secure files yet.'),
-    pagination: {
-      next: __('Next'),
-      prev: __('Prev'),
-    },
     uploadErrorMessages: {
       duplicate: __('A file with this name already exists.'),
       tooLarge: __('File too large. Secure Files must be less than %{limit} MB.'),
@@ -281,8 +277,6 @@ export default {
       v-model="page"
       :per-page="$options.DEFAULT_PER_PAGE"
       :total-items="totalItems"
-      :next-text="$options.i18n.pagination.next"
-      :prev-text="$options.i18n.pagination.prev"
       align="center"
       class="gl-mt-5"
     />
diff --git a/app/assets/javascripts/clusters_list/components/clusters.vue b/app/assets/javascripts/clusters_list/components/clusters.vue
index 77c962e405633..e100d36fc80b3 100644
--- a/app/assets/javascripts/clusters_list/components/clusters.vue
+++ b/app/assets/javascripts/clusters_list/components/clusters.vue
@@ -334,8 +334,6 @@ export default {
       v-model="currentPage"
       :per-page="clustersPerPage"
       :total-items="totalClusters"
-      :prev-text="__('Prev')"
-      :next-text="__('Next')"
       align="center"
     />
   </section>
diff --git a/app/assets/javascripts/commons/gitlab_ui.js b/app/assets/javascripts/commons/gitlab_ui.js
index e0637edd1117e..29218c6424d01 100644
--- a/app/assets/javascripts/commons/gitlab_ui.js
+++ b/app/assets/javascripts/commons/gitlab_ui.js
@@ -1,6 +1,13 @@
 import applyGitLabUIConfig from '@gitlab/ui/dist/config';
 import { __, s__, n__ } from '~/locale';
-import { NEXT, PREV } from '~/vue_shared/components/pagination/constants';
+import {
+  PREV,
+  NEXT,
+  LABEL_FIRST_PAGE,
+  LABEL_PREV_PAGE,
+  LABEL_NEXT_PAGE,
+  LABEL_LAST_PAGE,
+} from '~/vue_shared/components/pagination/constants';
 
 applyGitLabUIConfig({
   translations: {
@@ -12,7 +19,15 @@ applyGitLabUIConfig({
     'GlKeysetPagination.prevText': PREV,
     'GlKeysetPagination.navigationLabel': s__('Pagination|Pagination'),
     'GlKeysetPagination.nextText': NEXT,
+
+    'GlPagination.labelFirstPage': LABEL_FIRST_PAGE,
+    'GlPagination.labelLastPage': LABEL_LAST_PAGE,
+    'GlPagination.labelNextPage': LABEL_NEXT_PAGE,
     'GlPagination.labelPage': s__('Pagination|Go to page %{page}'),
+    'GlPagination.labelPrevPage': LABEL_PREV_PAGE,
+    'GlPagination.nextText': NEXT,
+    'GlPagination.prevText': PREV,
+
     'GlCollapsibleListbox.srOnlyResultsLabel': (count) => n__('%d result', '%d results', count),
   },
 });
diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue
index 256fdedc7abeb..93d7aed928989 100644
--- a/app/assets/javascripts/deploy_keys/components/app.vue
+++ b/app/assets/javascripts/deploy_keys/components/app.vue
@@ -1,7 +1,7 @@
 <script>
 import { GlIcon, GlLoadingIcon, GlPagination } from '@gitlab/ui';
 import { createAlert } from '~/alert';
-import { s__, __ } from '~/locale';
+import { s__ } from '~/locale';
 import { captureException } from '~/sentry/sentry_browser_wrapper';
 import pageInfoQuery from '~/graphql_shared/client/page_info.query.graphql';
 import NavigationTabs from '~/vue_shared/components/navigation_tabs.vue';
@@ -89,10 +89,6 @@ export default {
   },
   i18n: {
     loading: s__('DeployKeys|Loading deploy keys'),
-    prevPage: __('Go to previous page'),
-    nextPage: __('Go to next page'),
-    next: __('Next'),
-    prev: __('Prev'),
   },
   computed: {
     tabs() {
@@ -204,10 +200,6 @@ export default {
         :total-items="pageInfo.total"
         :per-page="pageInfo.perPage"
         :value="currentPage"
-        :next="$options.i18n.next"
-        :prev="$options.i18n.prev"
-        :label-previous-page="$options.i18n.prevPage"
-        :label-next-page="$options.i18n.nextPage"
         @next="moveNext()"
         @previous="movePrevious()"
         @input="moveToPage"
diff --git a/app/assets/javascripts/environments/components/environments_app.vue b/app/assets/javascripts/environments/components/environments_app.vue
index 24c6f545c03bc..a38079ae51c23 100644
--- a/app/assets/javascripts/environments/components/environments_app.vue
+++ b/app/assets/javascripts/environments/components/environments_app.vue
@@ -85,10 +85,6 @@ export default {
     cleanUpEnvsButtonLabel: s__('Environments|Clean up environments'),
     active: __('Active'),
     stopped: __('Stopped'),
-    prevPage: __('Go to previous page'),
-    nextPage: __('Go to next page'),
-    next: __('Next'),
-    prev: __('Prev'),
     searchPlaceholder: s__('Environments|Search by environment name'),
   },
   modalId: 'enable-review-app-info',
@@ -339,10 +335,6 @@ export default {
       :total-items="totalItems"
       :per-page="itemsPerPage"
       :value="page"
-      :next="$options.i18n.next"
-      :prev="$options.i18n.prev"
-      :label-previous-page="$options.prevPage"
-      :label-next-page="$options.nextPage"
       @next="movePage('next')"
       @previous="movePage('previous')"
       @input="moveToPage"
diff --git a/app/assets/javascripts/members/components/table/members_pagination.vue b/app/assets/javascripts/members/components/table/members_pagination.vue
index ac5f78b89ffad..7761d89cf8c77 100644
--- a/app/assets/javascripts/members/components/table/members_pagination.vue
+++ b/app/assets/javascripts/members/components/table/members_pagination.vue
@@ -46,10 +46,6 @@ export default {
     :per-page="pagination.perPage"
     :total-items="pagination.totalItems"
     :link-gen="paginationLinkGenerator"
-    :prev-text="__('Prev')"
-    :next-text="__('Next')"
-    :label-next-page="__('Go to next page')"
-    :label-prev-page="__('Go to previous page')"
     align="center"
   />
 </template>
diff --git a/app/assets/javascripts/profile/components/follow.vue b/app/assets/javascripts/profile/components/follow.vue
index 4d010fd71327b..b130e985cb51a 100644
--- a/app/assets/javascripts/profile/components/follow.vue
+++ b/app/assets/javascripts/profile/components/follow.vue
@@ -8,14 +8,9 @@ import {
   GlEmptyState,
 } from '@gitlab/ui';
 import { DEFAULT_PER_PAGE } from '~/api';
-import { NEXT, PREV } from '~/vue_shared/components/pagination/constants';
 import { isCurrentUser } from '~/lib/utils/common_utils';
 
 export default {
-  i18n: {
-    prev: PREV,
-    next: NEXT,
-  },
   components: {
     GlAvatarLabeled,
     GlAvatarLink,
@@ -112,8 +107,6 @@ export default {
       :value="page"
       :total-items="totalItems"
       :per-page="perPage"
-      :prev-text="$options.i18n.prev"
-      :next-text="$options.i18n.next"
       @input="$emit('pagination-input', $event)"
     />
   </div>
diff --git a/app/assets/javascripts/vue_shared/components/pagination/table_pagination.vue b/app/assets/javascripts/vue_shared/components/pagination/table_pagination.vue
index 76bedc0feebda..a690dd1fec760 100644
--- a/app/assets/javascripts/vue_shared/components/pagination/table_pagination.vue
+++ b/app/assets/javascripts/vue_shared/components/pagination/table_pagination.vue
@@ -1,13 +1,5 @@
 <script>
 import { GlPagination } from '@gitlab/ui';
-import {
-  PREV,
-  NEXT,
-  LABEL_FIRST_PAGE,
-  LABEL_PREV_PAGE,
-  LABEL_NEXT_PAGE,
-  LABEL_LAST_PAGE,
-} from '~/vue_shared/components/pagination/constants';
 
 export default {
   components: {
@@ -53,12 +45,6 @@ export default {
       return this.pageInfo.nextPage || this.pageInfo.previousPage;
     },
   },
-  prevText: PREV,
-  nextText: NEXT,
-  labelFirstPage: LABEL_FIRST_PAGE,
-  labelPrevPage: LABEL_PREV_PAGE,
-  labelNextPage: LABEL_NEXT_PAGE,
-  labelLastPage: LABEL_LAST_PAGE,
 };
 </script>
 <template>
@@ -71,13 +57,7 @@ export default {
     :per-page="pageInfo.perPage"
     :total-items="pageInfo.total"
     :prev-page="pageInfo.previousPage"
-    :prev-text="$options.prevText"
     :next-page="pageInfo.nextPage"
-    :next-text="$options.nextText"
-    :label-first-page="$options.labelFirstPage"
-    :label-prev-page="$options.labelPrevPage"
-    :label-next-page="$options.labelNextPage"
-    :label-last-page="$options.labelLastPage"
     @input="change"
   />
 </template>
diff --git a/app/assets/javascripts/vue_shared/components/pagination_links.vue b/app/assets/javascripts/vue_shared/components/pagination_links.vue
index 5cfaf95f30095..e6bbd96294509 100644
--- a/app/assets/javascripts/vue_shared/components/pagination_links.vue
+++ b/app/assets/javascripts/vue_shared/components/pagination_links.vue
@@ -1,13 +1,5 @@
 <script>
 import { GlPagination } from '@gitlab/ui';
-import {
-  PREV,
-  NEXT,
-  LABEL_FIRST_PAGE,
-  LABEL_PREV_PAGE,
-  LABEL_NEXT_PAGE,
-  LABEL_LAST_PAGE,
-} from '~/vue_shared/components/pagination/constants';
 
 export default {
   components: {
@@ -28,12 +20,6 @@ export default {
       const baseProps = {
         ...this.$attrs,
         value: this.pageInfo.page,
-        prevText: PREV,
-        nextText: NEXT,
-        labelFirstPage: LABEL_FIRST_PAGE,
-        labelPrevPage: LABEL_PREV_PAGE,
-        labelNextPage: LABEL_NEXT_PAGE,
-        labelLastPage: LABEL_LAST_PAGE,
       };
 
       if (this.pageInfo.total) {
diff --git a/ee/app/assets/javascripts/ci/secrets/components/secrets_table/secrets_table.vue b/ee/app/assets/javascripts/ci/secrets/components/secrets_table/secrets_table.vue
index e2d4f01dff8ff..4da700d17195f 100644
--- a/ee/app/assets/javascripts/ci/secrets/components/secrets_table/secrets_table.vue
+++ b/ee/app/assets/javascripts/ci/secrets/components/secrets_table/secrets_table.vue
@@ -230,10 +230,6 @@ export default {
       :value="page"
       :per-page="$options.PAGE_SIZE"
       :total-items="secretsCount"
-      :prev-text="__('Prev')"
-      :next-text="__('Next')"
-      :label-next-page="__('Go to next page')"
-      :label-prev-page="__('Go to previous page')"
       align="center"
       class="gl-mt-5"
       @input="handlePageChange"
diff --git a/ee/app/assets/javascripts/security_dashboard/components/pipeline/security_dashboard_table.vue b/ee/app/assets/javascripts/security_dashboard/components/pipeline/security_dashboard_table.vue
index e7a953c43d255..960d297d51ad5 100644
--- a/ee/app/assets/javascripts/security_dashboard/components/pipeline/security_dashboard_table.vue
+++ b/ee/app/assets/javascripts/security_dashboard/components/pipeline/security_dashboard_table.vue
@@ -135,10 +135,6 @@ export default {
         :value="currentPage"
         :next-page="nextPage"
         :prev-page="previousPage"
-        :prev-text="__('Prev')"
-        :next-text="__('Next')"
-        :label-next-page="__('Go to next page')"
-        :label-prev-page="__('Go to previous page')"
         align="center"
         class="gl-mt-3"
         @input="fetchPage"
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 4df51ec65992c..52a506c6587e8 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -24527,9 +24527,6 @@ msgstr ""
 msgid "Go to merge requests"
 msgstr ""
 
-msgid "Go to next page"
-msgstr ""
-
 msgid "Go to parent"
 msgstr ""
 
@@ -24542,9 +24539,6 @@ msgstr ""
 msgid "Go to pipelines"
 msgstr ""
 
-msgid "Go to previous page"
-msgstr ""
-
 msgid "Go to project"
 msgstr ""
 
diff --git a/spec/frontend/admin/abuse_reports/components/app_spec.js b/spec/frontend/admin/abuse_reports/components/app_spec.js
index 41728baaf33e0..2ed4fa8fbe743 100644
--- a/spec/frontend/admin/abuse_reports/components/app_spec.js
+++ b/spec/frontend/admin/abuse_reports/components/app_spec.js
@@ -62,7 +62,7 @@ describe('AbuseReportsApp', () => {
         value: pagination.currentPage,
         perPage: pagination.perPage,
         totalItems: pagination.totalItems,
-        prevText: 'Prev',
+        prevText: 'Previous',
         nextText: 'Next',
         labelNextPage: 'Go to next page',
         labelPrevPage: 'Go to previous page',
diff --git a/spec/frontend/admin/deploy_keys/components/table_spec.js b/spec/frontend/admin/deploy_keys/components/table_spec.js
index d30da4217a644..95a999d5a6988 100644
--- a/spec/frontend/admin/deploy_keys/components/table_spec.js
+++ b/spec/frontend/admin/deploy_keys/components/table_spec.js
@@ -189,8 +189,6 @@ describe('DeployKeysTable', () => {
           value: 1,
           perPage: DEFAULT_PER_PAGE,
           totalItems: responseBody.length,
-          nextText: DeployKeysTable.i18n.pagination.next,
-          prevText: DeployKeysTable.i18n.pagination.prev,
           align: 'center',
         });
       });
diff --git a/spec/frontend/members/components/table/members_pagination_spec.js b/spec/frontend/members/components/table/members_pagination_spec.js
index e5d1619cde152..0ab1f0c7489bb 100644
--- a/spec/frontend/members/components/table/members_pagination_spec.js
+++ b/spec/frontend/members/components/table/members_pagination_spec.js
@@ -41,7 +41,7 @@ describe('MembersPagination', () => {
       value: mockPagination.currentPage,
       perPage: mockPagination.perPage,
       totalItems: mockPagination.totalItems,
-      prevText: 'Prev',
+      prevText: 'Previous',
       nextText: 'Next',
       labelNextPage: 'Go to next page',
       labelPrevPage: 'Go to previous page',
diff --git a/spec/frontend/profile/components/follow_spec.js b/spec/frontend/profile/components/follow_spec.js
index dd7bc40f2cf21..260c9cd504bd3 100644
--- a/spec/frontend/profile/components/follow_spec.js
+++ b/spec/frontend/profile/components/follow_spec.js
@@ -98,8 +98,6 @@ describe('FollowersTab', () => {
         value: defaultPropsData.page,
         totalItems: defaultPropsData.totalItems,
         perPage: DEFAULT_PER_PAGE,
-        prevText: Follow.i18n.prev,
-        nextText: Follow.i18n.next,
       });
     });
 
-- 
GitLab