From d80916696ff2563ef8a70d2d902e495d6ad59e7b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 26 Jun 2025 16:07:10 +0200 Subject: [PATCH] Bug 38201: Do not export $__ from the base resource We had this following warning in the console: [Vue warn]: setup() return property "$__" should not start with "$" or "_" which are reserved prefixes for Vue internals. Trying to fix this and realized we could do better in our handling of the i18n functions. This patch suggests to: 1. Have "@k" available as the Koha Vue root path so that we can easily import without relative paths TODO - Should be applied to all other imports 2. Import the i18n functions from the components when we need it 3. Do not have them available in the i18n object exported by the base resource 4. Remove direct use of __() from scripts and always use $__() (cherry picked from commit 247675939ef28a90d21be863c6a57382cf3de966) Signed-off-by: Michaela Sieber Signed-off-by: Jonathan Druart Signed-off-by: Lucas Gass --- .../RecordSources/RecordSourcesResource.vue | 29 ++- .../prog/js/vue/components/BaseResource.vue | 3 - .../prog/js/vue/components/ButtonSubmit.vue | 3 +- .../vue/components/ERM/AgreementResource.vue | 175 ++++++++---------- .../ERM/EHoldingsEBSCOPackageAgreements.vue | 2 +- .../ERM/EHoldingsEBSCOPackageTitlesList.vue | 8 +- .../ERM/EHoldingsEBSCOPackagesList.vue | 11 +- .../ERM/EHoldingsEBSCOTitlePackagesList.vue | 5 +- .../ERM/EHoldingsEBSCOTitlesList.vue | 15 +- .../ERM/EHoldingsLocalPackageResource.vue | 59 +++--- .../ERM/EHoldingsLocalTitlePackagesList.vue | 3 +- .../ERM/EHoldingsLocalTitleResource.vue | 117 ++++++------ .../ERM/EHoldingsLocalTitlesFormImport.vue | 8 +- .../ERM/EHoldingsLocalTitlesKBARTImport.vue | 2 +- .../js/vue/components/ERM/LicenseResource.vue | 83 ++++----- .../prog/js/vue/components/ERM/Main.vue | 2 +- ...sageStatisticsDataProvidersCounterLogs.vue | 8 +- ...UsageStatisticsDataProvidersFileImport.vue | 2 +- .../UsageStatisticsDataProvidersFormAdd.vue | 2 +- .../ERM/UsageStatisticsDataProvidersList.vue | 10 +- .../ERM/UsageStatisticsDataProvidersShow.vue | 2 +- .../UsageStatisticsDataProvidersSummary.vue | 12 +- .../ERM/UsageStatisticsProviderDataList.vue | 15 +- .../ERM/UsageStatisticsReportBuilder.vue | 2 +- .../ERM/UsageStatisticsReportsHome.vue | 2 +- .../ERM/UsageStatisticsReportsViewer.vue | 27 +-- .../ERM/UsageStatisticsSavedReports.vue | 2 +- .../prog/js/vue/components/KohaTable.vue | 2 +- .../js/vue/components/Preservation/Main.vue | 1 + .../vue/components/Preservation/Settings.vue | 2 +- .../Preservation/SettingsProcessings.vue | 2 +- .../SettingsProcessingsFormAdd.vue | 2 +- .../Preservation/SettingsProcessingsShow.vue | 2 +- .../Preservation/TrainItemsTable.vue | 14 +- .../components/Preservation/TrainResource.vue | 68 ++++--- .../Preservation/TrainsFormAddItem.vue | 2 +- .../Preservation/TrainsFormAddItems.vue | 2 +- .../Preservation/WaitingListResource.vue | 94 ++++------ .../prog/js/vue/components/ResourceList.vue | 3 +- .../prog/js/vue/components/Toolbar.vue | 2 - .../vue/components/Vendors/VendorResource.vue | 130 +++++++------ .../prog/js/vue/composables/base-resource.js | 23 ++- .../prog/js/vue/modules/acquisitions.ts | 2 +- .../js/vue/modules/admin/record_sources.ts | 2 +- .../intranet-tmpl/prog/js/vue/modules/erm.ts | 2 +- .../prog/js/vue/modules/preservation.ts | 2 +- .../prog/js/vue/routes/acquisitions.js | 2 +- .../js/vue/routes/admin/record_sources.js | 2 +- .../intranet-tmpl/prog/js/vue/routes/erm.js | 2 +- .../prog/js/vue/routes/preservation.js | 2 +- .../intranet-tmpl/prog/js/vue/stores/erm.js | 19 +- .../prog/js/vue/stores/usage-reports.js | 17 +- rspack.config.js | 4 + 53 files changed, 487 insertions(+), 527 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/RecordSourcesResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/RecordSourcesResource.vue index 2862f3a5e4..a231f82913 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/RecordSourcesResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/RecordSourcesResource.vue @@ -8,6 +8,7 @@ import BaseResource from "../../BaseResource.vue"; import { useBaseResource } from "../../../composables/base-resource.js"; import { APIClient } from "../../../fetch/api-client.js"; +import { $__ } from "@k/i18n"; export default { props: { @@ -25,14 +26,14 @@ export default { apiClient: APIClient.record_sources.record_sources, resourceTableUrl: APIClient.record_sources.httpClient._baseURL, i18n: { - deleteConfirmationMessage: __( + deleteConfirmationMessage: $__( "Are you sure you want to remove this record source?" ), - deleteSuccessMessage: __("Record source %s deleted"), - displayName: __("Record source"), - editLabel: __("Edit record source #%s"), - emptyListMessage: __("There are no record sources defined"), - newLabel: __("New record source"), + deleteSuccessMessage: $__("Record source %s deleted"), + displayName: $__("Record source"), + editLabel: $__("Edit record source #%s"), + emptyListMessage: $__("There are no record sources defined"), + newLabel: $__("New record source"), }, props, resourceAttrs: [ @@ -40,9 +41,9 @@ export default { name: "record_source_id", required: true, type: "text", - label: __("Id"), + label: $__("Id"), tableColumnDefinition: { - title: __("ID"), + title: $__("ID"), data: "record_source_id", searchable: true, }, @@ -52,12 +53,12 @@ export default { name: "name", required: true, type: "text", - label: __("Name"), + label: $__("Name"), }, { name: "can_be_edited", type: "checkbox", - label: __("Can be edited"), + label: $__("Can be edited"), value: false, }, ], @@ -71,7 +72,7 @@ export default { "edit", { delete: { - text: __("Delete"), + text: $__("Delete"), icon: "fa fa-trash", should_display: row => row.usage_count == 0, callback: baseResource.doResourceDelete, @@ -96,7 +97,7 @@ export default { .then( success => { baseResource.setMessage( - baseResource.$__("Record source updated!") + $__("Record source updated!") ); baseResource.router.push({ name: "RecordSourcesList", @@ -107,9 +108,7 @@ export default { } else { response = baseResource.apiClient.create(recordSource).then( success => { - baseResource.setMessage( - baseResource.$__("Record source created!") - ); + baseResource.setMessage($__("Record source created!")); baseResource.router.push({ name: "RecordSourcesList" }); }, error => {} diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue index 13b37f04f3..12bfb4cfe5 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue @@ -11,7 +11,6 @@ :toolbarButtons="instancedResource.toolbarButtons" component="list" :resource="resource" - :i18n="instancedResource.i18n" :componentPropData="componentPropData" /> @@ -33,7 +32,6 @@ :toolbarButtons="instancedResource.toolbarButtons" component="show" :resource="resource" - :i18n="instancedResource.i18n" :componentPropData="componentPropData" /> @@ -48,7 +46,6 @@ :toolbarButtons="instancedResource.toolbarButtons" component="form" :resource="resource" - :i18n="instancedResource.i18n" :componentPropData="componentPropData" :sticky=" instancedResource.stickyToolbar && diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ButtonSubmit.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ButtonSubmit.vue index 76e62635cb..ccafab8c4e 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ButtonSubmit.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ButtonSubmit.vue @@ -14,12 +14,13 @@