From 916aff7fd70069bdab74ac5236483dc402988cd3 Mon Sep 17 00:00:00 2001 From: Dmitriy-Litvinenko Date: Wed, 15 Jan 2025 23:29:17 +0200 Subject: [PATCH 1/9] UIU-3313: Update changelog after release --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ee6b50b2..ee01c417e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,13 @@ * Hide Create block button for user without permission. Refs UIU-3300. * Add HTML page title to add/edit patron block page. Refs UIU-3302. * Update fee/fine actions column UX for accessibility. Refs UIU-3027. -* Rename permission after BE changes. Refs UIU-3309. * Change import of `exportToCsv` from `stripes-util` to `stripes-components`. Refs UIU-3202. +## [11.0.11](https://github.com/folio-org/ui-users/tree/v11.0.11) (2025-01-15) +[Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) + +* Rename permission after BE changes. Refs UIU-3309. + ## [11.0.10](https://github.com/folio-org/ui-users/tree/v11.0.10) (2025-01-10) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.9...v11.0.10) From a1087ef467e18b95691a89dc89a46000285da09f Mon Sep 17 00:00:00 2001 From: Zak Burke Date: Thu, 16 Jan 2025 09:04:48 -0500 Subject: [PATCH 2/9] UIU-3312 provide itemToString to correctly serialize options (#2843) `MultiSelection` creates unique `key` attributes for its options with a default function of ``` (option) => option ? option.label : '' ``` but the `label` attribute here is a ``, leading that function to serialize all options as `[object Object]`. Since we know the `value` attribute here is a unique string, we use that instead. Refs UIU-3312 --- CHANGELOG.md | 1 + src/components/EditSections/EditContactInfo/EditContactInfo.js | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee01c417e..fca290149 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * Add HTML page title to add/edit patron block page. Refs UIU-3302. * Update fee/fine actions column UX for accessibility. Refs UIU-3027. * Change import of `exportToCsv` from `stripes-util` to `stripes-components`. Refs UIU-3202. +* Provide `itemToString` to create unique `key` attributes. Refs UIU-3312. ## [11.0.11](https://github.com/folio-org/ui-users/tree/v11.0.11) (2025-01-15) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) diff --git a/src/components/EditSections/EditContactInfo/EditContactInfo.js b/src/components/EditSections/EditContactInfo/EditContactInfo.js index fd0e514b0..cd511b72f 100644 --- a/src/components/EditSections/EditContactInfo/EditContactInfo.js +++ b/src/components/EditSections/EditContactInfo/EditContactInfo.js @@ -136,6 +136,7 @@ const EditContactInfo = ({ fullWidth disabled={disabled} filter={prefEmailCommFilterOptions} + itemToString={(option) => option.value} /> From 14cc4b806f1807af569d20168bda2333da11a453 Mon Sep 17 00:00:00 2001 From: FOLIO Translations Bot <38661258+folio-translations@users.noreply.github.com> Date: Thu, 16 Jan 2025 20:13:15 -0500 Subject: [PATCH 3/9] Update translation strings --- translations/ui-users/ar.json | 5 ++- translations/ui-users/ber.json | 5 ++- translations/ui-users/ca.json | 5 ++- translations/ui-users/cs_CZ.json | 5 ++- translations/ui-users/da.json | 5 ++- translations/ui-users/de.json | 5 ++- translations/ui-users/en_GB.json | 5 ++- translations/ui-users/en_SE.json | 5 ++- translations/ui-users/en_US.json | 5 ++- translations/ui-users/es.json | 5 ++- translations/ui-users/es_419.json | 5 ++- translations/ui-users/es_ES.json | 5 ++- translations/ui-users/fr.json | 5 ++- translations/ui-users/fr_FR.json | 5 ++- translations/ui-users/he.json | 5 ++- translations/ui-users/hi_IN.json | 5 ++- translations/ui-users/hu.json | 5 ++- translations/ui-users/it_IT.json | 5 ++- translations/ui-users/ja.json | 5 ++- translations/ui-users/ko.json | 5 ++- translations/ui-users/nb.json | 5 ++- translations/ui-users/nl.json | 5 ++- translations/ui-users/nn.json | 5 ++- translations/ui-users/pl.json | 5 ++- translations/ui-users/pt_BR.json | 53 ++++++++++++++++--------------- translations/ui-users/pt_PT.json | 5 ++- translations/ui-users/ru.json | 5 ++- translations/ui-users/sk.json | 5 ++- translations/ui-users/sv.json | 5 ++- translations/ui-users/ur.json | 5 ++- translations/ui-users/zh_CN.json | 5 ++- translations/ui-users/zh_TW.json | 5 ++- 32 files changed, 152 insertions(+), 56 deletions(-) diff --git a/translations/ui-users/ar.json b/translations/ui-users/ar.json index 17634c436..29cdea1d3 100644 --- a/translations/ui-users/ar.json +++ b/translations/ui-users/ar.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ber.json b/translations/ui-users/ber.json index 5a54a57da..55189d2d8 100644 --- a/translations/ui-users/ber.json +++ b/translations/ui-users/ber.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ca.json b/translations/ui-users/ca.json index 2ab1c9073..033732a1b 100644 --- a/translations/ui-users/ca.json +++ b/translations/ui-users/ca.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/cs_CZ.json b/translations/ui-users/cs_CZ.json index fba6097f2..d62f5c7f3 100644 --- a/translations/ui-users/cs_CZ.json +++ b/translations/ui-users/cs_CZ.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Uživatelé: Mohou zpracovávat ztracené jednotky vyžadující skutečné náklady", "permission.open-transactions.view": "Uživatelé: Mohou kontrolovat otevřené transakce", "permission.patron-notice-print-jobs.view": "Uživatelé: Zobrazení tiskových úloh s upozorněním pro čtenáře", - "permission.patron-notice-print-jobs.delete": "Uživatelé: Zobrazení a odstranění tiskových úloh s upozorněním pro čtenáře" + "permission.patron-notice-print-jobs.delete": "Uživatelé: Zobrazení a odstranění tiskových úloh s upozorněním pro čtenáře", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/da.json b/translations/ui-users/da.json index 6f4f1699e..6343b5a79 100644 --- a/translations/ui-users/da.json +++ b/translations/ui-users/da.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/de.json b/translations/ui-users/de.json index bf3f03913..9a53b85cb 100644 --- a/translations/ui-users/de.json +++ b/translations/ui-users/de.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Personen: Kann verlorene Exemplare mit tatsächlichen Kosten bearbeiten", "permission.open-transactions.view": "Personen: Kann offene Transaktionen öffnen", "permission.patron-notice-print-jobs.view": "Personen: Print-Jobs für Benachrichtigungen anzeigen", - "permission.patron-notice-print-jobs.delete": "Personen: Print-Jobs für Benachrichtigungen anzeigen und entfernen" + "permission.patron-notice-print-jobs.delete": "Personen: Print-Jobs für Benachrichtigungen anzeigen und entfernen", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/en_GB.json b/translations/ui-users/en_GB.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/en_GB.json +++ b/translations/ui-users/en_GB.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/en_SE.json b/translations/ui-users/en_SE.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/en_SE.json +++ b/translations/ui-users/en_SE.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/en_US.json b/translations/ui-users/en_US.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/en_US.json +++ b/translations/ui-users/en_US.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/es.json b/translations/ui-users/es.json index 7737f5277..9e7a4f0f3 100644 --- a/translations/ui-users/es.json +++ b/translations/ui-users/es.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/es_419.json b/translations/ui-users/es_419.json index be3acc38a..2c732bee8 100644 --- a/translations/ui-users/es_419.json +++ b/translations/ui-users/es_419.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/es_ES.json b/translations/ui-users/es_ES.json index 7737f5277..9e7a4f0f3 100644 --- a/translations/ui-users/es_ES.json +++ b/translations/ui-users/es_ES.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/fr.json b/translations/ui-users/fr.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/fr.json +++ b/translations/ui-users/fr.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/fr_FR.json b/translations/ui-users/fr_FR.json index 4b7a3ee17..fc0439047 100644 --- a/translations/ui-users/fr_FR.json +++ b/translations/ui-users/fr_FR.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Utilisateurs : peut vérifier les opérations en cours", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/he.json b/translations/ui-users/he.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/he.json +++ b/translations/ui-users/he.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/hi_IN.json b/translations/ui-users/hi_IN.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/hi_IN.json +++ b/translations/ui-users/hi_IN.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/hu.json b/translations/ui-users/hu.json index d62f4873f..cd0442448 100644 --- a/translations/ui-users/hu.json +++ b/translations/ui-users/hu.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/it_IT.json b/translations/ui-users/it_IT.json index a881dc4af..551cdbf35 100644 --- a/translations/ui-users/it_IT.json +++ b/translations/ui-users/it_IT.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ja.json b/translations/ui-users/ja.json index 3d805dba1..885eb71e1 100644 --- a/translations/ui-users/ja.json +++ b/translations/ui-users/ja.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ko.json b/translations/ui-users/ko.json index 7c65bebae..d9cc11540 100644 --- a/translations/ui-users/ko.json +++ b/translations/ui-users/ko.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/nb.json b/translations/ui-users/nb.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/nb.json +++ b/translations/ui-users/nb.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/nl.json b/translations/ui-users/nl.json index 03af2e50e..f46e732b5 100644 --- a/translations/ui-users/nl.json +++ b/translations/ui-users/nl.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/nn.json b/translations/ui-users/nn.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/nn.json +++ b/translations/ui-users/nn.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/pl.json b/translations/ui-users/pl.json index a95998e5b..5431f6de9 100644 --- a/translations/ui-users/pl.json +++ b/translations/ui-users/pl.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Użytkownicy: można przetwarzać rzeczywistą wartość zagubionych egzemplarzy", "permission.open-transactions.view": "Użytkownicy: można sprawdzać otwarte transakcje", "permission.patron-notice-print-jobs.view": "Użytkownicy: wyświetlanie zadań drukowania powiadomień czytelników", - "permission.patron-notice-print-jobs.delete": "Użytkownicy: wyświetlanie i usuwanie zadań drukowania powiadomień czytelników" + "permission.patron-notice-print-jobs.delete": "Użytkownicy: wyświetlanie i usuwanie zadań drukowania powiadomień czytelników", + "title.patronBlock.create": "Użytkownicy - utwórz nową blokadę czytelnika", + "title.patronBlock.edit": "Użytkownicy - edytuj blokadę czytelnika", + "accounts.history.columns.actions": "Akcje" } \ No newline at end of file diff --git a/translations/ui-users/pt_BR.json b/translations/ui-users/pt_BR.json index 56bcb7c4f..a1fbb3fe3 100644 --- a/translations/ui-users/pt_BR.json +++ b/translations/ui-users/pt_BR.json @@ -586,7 +586,7 @@ "settings.block.renew": "Bloquear renovações", "settings.block.request": "Bloquear requisições", "settings.block.message": "Mensagem a ser exibida", - "settings.callout.message": "A condição do bloco de usuário {name} foi atualizada com sucesso.", + "settings.callout.message": "A condição de suspensão do usuário {name} foi atualizada com sucesso.", "settings.error.noMessage": "A mensagem a ser exibida é um campo obrigatório se uma ou mais ações bloqueadas selecionadas", "settings.error.noCheckbox": "Uma ou mais ações bloqueadas devem ser selecionadas para que a Mensagem seja exibida para ser usada", "permission.create": "Usuários: Podem criar e editar usuários", @@ -603,7 +603,7 @@ "loans.history": "Histórico de ações de empréstimos", "accounts.loading": "Carregando contas", "settings.limits": "Limites", - "settings.limits.callout.message": "O limite do bloco de usuário para o grupo de usuário {patronGroup} foi atualizado com sucesso.", + "settings.limits.callout.message": "O limite de suspensão do usuário para o grupo de usuário {patronGroup} foi atualizado com sucesso.", "settings.limits.callout.error": "Algo deu errado", "data.loanActionMap.markedAsMissing": "Marcado como desaparecido", "loans.markAsMissing": "Marcar como desaparecido", @@ -708,18 +708,18 @@ "information.patronGroup.expirationOffset": "Compensação da data de expiração (dias)", "reports.item.contributors": "Colaboradores", "information.patronGroup.expirationOffset.error": "Deve estar vazio ou um número inteiro maior que 0", - "settings.manualBlockTemplates": "Modelos de bloqueio de usuário", + "settings.manualBlockTemplates": "Modelos de suspensão de usuário", "manualBlockTemplates.templateInformation": "Informações do modelo", "manualBlockTemplates.templateName": "Nome do modelo", - "manualBlockTemplates.blockCode": "Código do bloqueio", - "manualBlockTemplates.blockInformation": "Informações de bloqueio", - "manualBlockTemplates.blockActions": "Ações de bloqueio", - "manualBlockTemplates.closeManualBlockDialog": "Fechar janela de modelo de bloqueio de usuário", - "manualBlockTemplates.newManualBlockTemplate": "Novo modelo de bloqueio de usuário", - "manualBlockTemplate": "modelo de bloqueio de usuário", - "manualBlockTemplate.deleteTemplate": "Excluir modelo de bloqueio de usuário?", - "manualBlockTemplate.deleteTemplateMessage": "{name} será removido dos modelos de bloqueio de usuário.", - "manualBlockTemplate.untitledTemplate": "Modelo de bloqueio de usuário sem título", + "manualBlockTemplates.blockCode": "Código do suspensão", + "manualBlockTemplates.blockInformation": "Informações de suspensão", + "manualBlockTemplates.blockActions": "Ações de suspensão", + "manualBlockTemplates.closeManualBlockDialog": "Fechar janela de modelo de suspensão de usuário", + "manualBlockTemplates.newManualBlockTemplate": "Novo modelo de suspensão de usuário", + "manualBlockTemplate": "modelo de suspensão de usuário", + "manualBlockTemplate.deleteTemplate": "Excluir modelo de suspensão de usuário?", + "manualBlockTemplate.deleteTemplateMessage": "{name} será removido dos modelos de suspensão de usuário.", + "manualBlockTemplate.untitledTemplate": "Modelo de suspensão de usuário sem título", "field.disabled": "Este campo está desabilitado", "loan404": "O empréstimo solicitado não pôde ser recuperado.", "actions": "Ações", @@ -813,7 +813,7 @@ "shortcut.paste": "Colar", "shortcut.find": "Buscar", "blocks.modal.comment": "Comentário", - "blocks.modal.overridePatronBlock.header": "Sobrescrever bloqueio de usuário", + "blocks.modal.overridePatronBlock.header": "Sobrescrever suspensão de usuário", "blocks.overrideButton": "Sobrescrever", "loans.columns.feefineIncurred": "Taxas/multas incorridas", "loans.details.fineIncurred": "Taxas/multas incorridas", @@ -930,7 +930,7 @@ "custom.customFields": "Campos personalizados", "custom.noCustomFieldsFound": "Nenhum campo personalizado encontrado", "reports.financial.patronBarcode.noBarcode": "[sem código de barras]", - "settings.manualBlockTemplates.paneTitle": "Modelos de bloqueios de usuário", + "settings.manualBlockTemplates.paneTitle": "Modelos de suspensão de usuário", "permission.feesfines.view": "Usuários: podem visualizar taxas/multas e empréstimos", "permissions-accordion.confirm-heading": "Continuar alterando as permissões?", "permissions-accordion.confirm-message": "As permissões invisíveis fazem parte deste conjunto e serão removidas quando as mudanças forem salvas. Você gostaria de continuar?", @@ -1061,16 +1061,16 @@ "permission.settings.addresstypes.all": "Configurações (usuários): Pode criar, editar e remover tipos de endereço", "permission.settings.comments.view": "Configurações (Usuários): Pode visualizar se o comentário for necessário", "permission.settings.comments.all": "Configurações (Usuários): Pode editar se o comentário for necessário", - "permission.settings.conditions.view": "Configurações (Usuários): Pode visualizar as condições de bloqueio do usuário", - "permission.settings.conditions.edit": "Configurações (Usuários): Pode visualizar e editar as condições de bloqueio do usuário", - "permission.settings.limits.view": "Configurações (Usuários): Pode visualizar os limites de bloqueios do usuário", - "permission.settings.limits.all": "Configurações (usuários): Pode criar, editar e remover limites de bloqueios de usuários", + "permission.settings.conditions.view": "Configurações (Usuários): Pode visualizar as condições de suspensão do usuário", + "permission.settings.conditions.edit": "Configurações (Usuários): Pode visualizar e editar as condições de suspensão do usuário", + "permission.settings.limits.view": "Configurações (Usuários): Pode visualizar os limites de suspensão do usuário", + "permission.settings.limits.all": "Configurações (usuários): Pode criar, editar e remover limites de suspensão de usuários", "permission.settings.manual-charges.view": "Configurações (Usuários): Pode visualizar cobranças manuais", "permission.settings.manual-charges.all": "Configurações (usuários): Pode criar, editar e remover cobranças manuais", "permission.settings.owners.view": "Configurações (Usuários): Pode visualizar os proprietários", "permission.settings.owners.all": "Configurações (Usuários): Pode criar, editar e remover proprietários", - "permission.settings.patron-block-templates.view": "Configurações (Usuários): Pode visualizar modelos de bloqueios de usuários", - "permission.settings.patron-block-templates.all": "Configurações (Usuários): Pode criar, editar e remover modelos de bloqueios de usuários", + "permission.settings.patron-block-templates.view": "Configurações (Usuários): Pode visualizar modelos de suspensão de usuários", + "permission.settings.patron-block-templates.all": "Configurações (Usuários): Pode criar, editar e remover modelos de suspensão de usuários", "permission.settings.payments.view": "Configurações (Usuários): Pode visualizar os métodos de pagamento", "permission.settings.payments.all": "Configurações (usuários): Pode criar, editar e remover métodos de pagamento", "permission.settings.permsets.view": "Configurações (Usuários): Pode visualizar conjuntos de permissões", @@ -1086,7 +1086,7 @@ "permission.settings.waives.view": "Configurações (Usuários): Pode visualizar os motivos de abonos", "permission.settings.waives.all": "Configurações (Usuários): Pode criar, editar e remover motivos de abonos", "permission.settings.general.view": "Configurações (Usuários): Pode visualizar entradas gerais", - "permission.settings.patron-blocks.view": "Configurações (Usuários): Pode visualizar todos os registros de bloqueios de usuários", + "permission.settings.patron-blocks.view": "Configurações (Usuários): Pode visualizar todos os registros de suspensão de usuários", "permission.settings.feefines.view": "Configurações (Usuários): Pode visualizar entradas relacionadas a multas", "loans.lastReminderNumber": "{count, number} {count, plural, one { taxa de lembrete } other { taxas de lembrete }} cobradas", "reports.feeFineExplanation": "Explicação da taxa/multa", @@ -1219,17 +1219,20 @@ "permission.manual-charge.execute": "Taxas/Multas: Pode cobrar", "permission.manual-pay.execute": "Taxas/Multas: Pode pagar", "permission.manual-waive.execute": "Taxas/Multas: Pode abonar", - "permission.patron-blocks.all": "Usuários: Podem criar, editar e remover bloqueios de usuários", + "permission.patron-blocks.all": "Usuários: Podem criar, editar e remover suspensão de usuários", "permission.perms.view": "Usuários: Pode visualizar as permissões atribuídas aos usuários", "permission.proxies.view": "Usuários: Pode visualizar os procuradores atribuídos aos usuários", "permission.user-service-points.view": "Usuários: Podem visualizar pontos de serviço atribuídos aos usuários", - "permission.override-patron-block.execute": "Usuário: Pode sobrepor bloqueios de usuários", - "permission.override-item-block.execute": "Usuário: pode sobrepor bloqueios de itens", + "permission.override-patron-block.execute": "Usuário: Pode sobrepor suspensão de usuários", + "permission.override-item-block.execute": "Usuário: pode sobrepor suspensão de itens", "permission.cash-drawer-report.execute": "Usuários: Criar e baixar o relatório de reconciliação do caixa de dinheiro", "permission.financial-transaction-report.execute": "Usuários: Criar e fazer download do relatório detalhado de transações financeiras", "permission.manual-process-refunds-report.execute": "Usuários: Criar e fazer o download de reembolsos para processar o relatório manualmente", "permission.lost-items-requiring-actual-cost.execute": "Usuários: Podem processar itens perdidos que exigem custo real", "permission.open-transactions.view": "Usuários: Podem verificar as transações em aberto", "permission.patron-notice-print-jobs.view": "Usuários: Exibir trabalhos de impressão de avisos ao usuário", - "permission.patron-notice-print-jobs.delete": "Usuários: Visualizar e remover trabalhos de impressão de avisos do usuário" + "permission.patron-notice-print-jobs.delete": "Usuários: Visualizar e remover trabalhos de impressão de avisos do usuário", + "title.patronBlock.create": "Usuários - Criar uma nova suspensão de usuário", + "title.patronBlock.edit": "Usuários - Editar uma suspensão de usuário", + "accounts.history.columns.actions": "Ações" } \ No newline at end of file diff --git a/translations/ui-users/pt_PT.json b/translations/ui-users/pt_PT.json index 35e30b3c6..79be85ade 100644 --- a/translations/ui-users/pt_PT.json +++ b/translations/ui-users/pt_PT.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ru.json b/translations/ui-users/ru.json index 5a3ebe112..4c9aee381 100644 --- a/translations/ui-users/ru.json +++ b/translations/ui-users/ru.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/sk.json b/translations/ui-users/sk.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/sk.json +++ b/translations/ui-users/sk.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/sv.json b/translations/ui-users/sv.json index 95da709e7..7de085c4f 100644 --- a/translations/ui-users/sv.json +++ b/translations/ui-users/sv.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/ur.json b/translations/ui-users/ur.json index 00bb248a0..8ead41d7f 100644 --- a/translations/ui-users/ur.json +++ b/translations/ui-users/ur.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/zh_CN.json b/translations/ui-users/zh_CN.json index 8058fa395..73feea7af 100644 --- a/translations/ui-users/zh_CN.json +++ b/translations/ui-users/zh_CN.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "用户:可以处理需要实际费用的遗失单件", "permission.open-transactions.view": "用户:可以查看未结事务", "permission.patron-notice-print-jobs.view": "用户:查看读者通知打印任务", - "permission.patron-notice-print-jobs.delete": "用户:查看和删除读者通知打印任务" + "permission.patron-notice-print-jobs.delete": "用户:查看和删除读者通知打印任务", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file diff --git a/translations/ui-users/zh_TW.json b/translations/ui-users/zh_TW.json index 37bb64d52..2482dfb70 100644 --- a/translations/ui-users/zh_TW.json +++ b/translations/ui-users/zh_TW.json @@ -1231,5 +1231,8 @@ "permission.lost-items-requiring-actual-cost.execute": "Users: Can process lost items requiring actual cost", "permission.open-transactions.view": "Users: Can check open transactions", "permission.patron-notice-print-jobs.view": "Users: View patron notice print jobs", - "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs" + "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", + "title.patronBlock.create": "Users - Create a new patron block", + "title.patronBlock.edit": "Users - Edit a patron block", + "accounts.history.columns.actions": "Actions" } \ No newline at end of file From d64f25681bbab4cf7cbd8d2949bf0f6f0bdd6b80 Mon Sep 17 00:00:00 2001 From: Ryan Berger Date: Tue, 21 Jan 2025 15:59:12 -0500 Subject: [PATCH 4/9] Add missing .edit subpermission to roles.manage. (#2846) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 534b9ca1a..384debb01 100644 --- a/package.json +++ b/package.json @@ -186,6 +186,7 @@ "description": "", "subPermissions": [ "ui-users.view", + "ui-users.edit", "ui-authorization-roles.users.settings.manage" ], "visible": true From 7d0fc72cae9a18bc6633662db672f6722c4149ed Mon Sep 17 00:00:00 2001 From: UladzislauKutarkin <72550466+UladzislauKutarkin@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:33:16 +0400 Subject: [PATCH 5/9] UIU-2938: Permission sets detail record view: Description text marked as heading (#2840) --- CHANGELOG.md | 1 + src/settings/permissions/PermissionSetDetails.js | 11 +++++++---- src/settings/permissions/PermissionSetForm.css | 4 ++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fca290149..61986c0ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) * Rename permission after BE changes. Refs UIU-3309. +* Permission sets detail record view: Description text marked as heading. Refs UIU-2938. ## [11.0.10](https://github.com/folio-org/ui-users/tree/v11.0.10) (2025-01-10) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.9...v11.0.10) diff --git a/src/settings/permissions/PermissionSetDetails.js b/src/settings/permissions/PermissionSetDetails.js index 676388c49..afd72df3b 100644 --- a/src/settings/permissions/PermissionSetDetails.js +++ b/src/settings/permissions/PermissionSetDetails.js @@ -16,6 +16,7 @@ import { ViewMetaData } from '@folio/stripes/smart-components'; import RenderPermissions from '../../components/RenderPermissions'; import AssignedUsers from '../../components/AssignedUsers'; +import css from './PermissionSetForm.css'; class PermissionSetDetails extends React.Component { static propTypes = { @@ -104,10 +105,12 @@ class PermissionSetDetails extends React.Component { label={} value={_.get(selectedSet, ['displayName'], untitledPermissionSetMessage)} /> - } - value={_.get(selectedSet, ['description'], '-')} - /> + + + +
+ {_.get(selectedSet, ['description'], '-')} +
diff --git a/src/settings/permissions/PermissionSetForm.css b/src/settings/permissions/PermissionSetForm.css index 31428a754..3e223ff97 100644 --- a/src/settings/permissions/PermissionSetForm.css +++ b/src/settings/permissions/PermissionSetForm.css @@ -1,3 +1,7 @@ .permSetForm { height: 100%; } + +.heading{ + font-size: 1.05rem; +} From eedb997338caf301a31adbd2d817c08224de4e79 Mon Sep 17 00:00:00 2001 From: Artem Blazhko Date: Sat, 25 Jan 2025 08:00:47 +0200 Subject: [PATCH 6/9] UIU-2701: Return appropriate error message when item for manual fee/fine can't be found (#2847) --- CHANGELOG.md | 1 + .../Accounts/ChargeFeeFine/ChargeFeeFine.js | 32 +++- .../ChargeFeeFine/ChargeFeeFine.test.js | 77 +++++++++ .../Accounts/ChargeFeeFine/ChargeForm.js | 18 ++- .../Accounts/ChargeFeeFine/ChargeForm.test.js | 3 + .../Accounts/ChargeFeeFine/ItemInfo.js | 152 ++++++++++++++++-- .../Accounts/ChargeFeeFine/ItemInfo.test.js | 149 ++++++++++++++--- src/constants.js | 5 + translations/ui-users/en.json | 1 + 9 files changed, 397 insertions(+), 41 deletions(-) create mode 100644 src/components/Accounts/ChargeFeeFine/ChargeFeeFine.test.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 61986c0ef..abd8b0dbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * Update fee/fine actions column UX for accessibility. Refs UIU-3027. * Change import of `exportToCsv` from `stripes-util` to `stripes-components`. Refs UIU-3202. * Provide `itemToString` to create unique `key` attributes. Refs UIU-3312. +* Return appropriate error message when item for manual fee/fine can't be found. Refs UIU-2701. ## [11.0.11](https://github.com/folio-org/ui-users/tree/v11.0.11) (2025-01-15) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) diff --git a/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.js b/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.js index 4093da56b..87ff31e0e 100644 --- a/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.js +++ b/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.js @@ -21,7 +21,10 @@ import { loadServicePoints, deleteOptionalActionFields, } from '../accountFunctions'; -import { SHARED_OWNER } from '../../../constants'; +import { + SHARED_OWNER, + NEW_FEE_FINE_FIELD_NAMES, +} from '../../../constants'; class ChargeFeeFine extends React.Component { static propTypes = { @@ -72,6 +75,7 @@ class ChargeFeeFine extends React.Component { showConfirmDialog: false, notify: null, paymentNotify: null, + itemBarcode: '', }; this.chargeAction = this.chargeAction.bind(this); this.payAction = this.payAction.bind(this); @@ -232,7 +236,10 @@ class ChargeFeeFine extends React.Component { onClickSelectItem(barcode) { if (barcode !== '') { - this.props.mutator.activeRecord.update({ barcode }); + this.props.mutator.activeRecord.update({ + barcode, + isBarcodeValidated: true, + }); if ((this.props.resources.activeRecord || {}).barcode === barcode) { this.setState({ lookup: true, @@ -241,7 +248,7 @@ class ChargeFeeFine extends React.Component { } } - onChangeOwner(ownerId) { + onChangeOwner(ownerId, itemBarcode = '') { const { resources, mutator, @@ -253,7 +260,11 @@ class ChargeFeeFine extends React.Component { mutator.activeRecord.update({ shared }); } mutator.activeRecord.update({ ownerId }); - this.setState({ ownerId }); + + this.setState({ + ownerId, + itemBarcode, + }); } onChangeItem(item) { @@ -395,7 +406,12 @@ class ChargeFeeFine extends React.Component { ); } - onSubmitCharge = (data) => { + onSubmitCharge = (dataToSend) => { + const data = _.cloneDeep(dataToSend); + + _.unset(data, NEW_FEE_FINE_FIELD_NAMES.ITEM_BARCODE); + _.unset(data, NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE); + if (data.pay) { delete data.pay; this.type.remaining = data.amount; @@ -433,6 +449,7 @@ class ChargeFeeFine extends React.Component { ownerId, feeFineTypeId, pay, + itemBarcode, } = this.state; this.item = _.get(resources, ['items', 'records', [0]], {}); const feefines = _.get(resources, ['allfeefines', 'records'], []); @@ -461,7 +478,7 @@ class ChargeFeeFine extends React.Component { parseFloat(selected).toFixed(2); let item; - if (this.item && (loanid || barcode)) { + if (this.item && (loanid || barcode || !resources.activeRecord?.isBarcodeValidated)) { item = { id: this.item.id || '', instance: this.item.title || '', @@ -490,7 +507,8 @@ class ChargeFeeFine extends React.Component { ownerId: initialOwnerId, notify: !!(selectedFeeFine?.chargeNoticeId || selectedOwner?.defaultChargeNoticeId), feeFineId: '', - amount: '' + amount: '', + itemBarcode, }; const initialActionValues = { diff --git a/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.test.js b/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.test.js new file mode 100644 index 000000000..73f45de87 --- /dev/null +++ b/src/components/Accounts/ChargeFeeFine/ChargeFeeFine.test.js @@ -0,0 +1,77 @@ +import { + screen, + render, +} from '@folio/jest-config-stripes/testing-library/react'; +import userEvent from '@folio/jest-config-stripes/testing-library/user-event'; + +import ChargeFeeFine from './ChargeFeeFine'; +import ChargeForm from './ChargeForm'; + +const basicProps = { + resources: { + activeRecord: { + isBarcodeValidated: true, + }, + }, + mutator: { + activeRecord: { + update: jest.fn(), + }, + }, + user: {}, + stripes: {}, + location: {}, + history: {}, + intl: {}, + match: { + params: {}, + }, + okapi: { + currentUser: {}, + }, +}; +const testIds = { + selectItem: 'selectItem', +}; +const itemBarcode = 'itemBarcode'; + +jest.mock('./ChargeForm', () => jest.fn(({ + onClickSelectItem, +}) => ( + <> + + +))); +jest.mock('./ItemLookup', () => jest.fn(() =>
)); +jest.mock('../Actions/ActionModal', () => jest.fn(() =>
)); + +describe('ChargeFeeFine', () => { + afterEach(() => { + jest.clearAllMocks(); + }); + + beforeEach(() => { + render(); + }); + + it('should trigger ChargeForm', () => { + expect(ChargeForm).toHaveBeenCalled(); + }); + + it('should update activeRecord', async () => { + const selectItemButton = screen.getByTestId(testIds.selectItem); + + await userEvent.click(selectItemButton); + + expect(basicProps.mutator.activeRecord.update).toHaveBeenCalledWith({ + barcode: itemBarcode, + isBarcodeValidated: true, + }); + }); +}); diff --git a/src/components/Accounts/ChargeFeeFine/ChargeForm.js b/src/components/Accounts/ChargeFeeFine/ChargeForm.js index 0887ee5e3..b16d0dc32 100644 --- a/src/components/Accounts/ChargeFeeFine/ChargeForm.js +++ b/src/components/Accounts/ChargeFeeFine/ChargeForm.js @@ -22,7 +22,10 @@ import { effectiveCallNumber } from '@folio/stripes/util'; import UserInfo from './UserInfo'; import FeeFineInfo from './FeeFineInfo'; import ItemInfo from './ItemInfo'; -import { SHARED_OWNER } from '../../../constants'; +import { + SHARED_OWNER, + NEW_FEE_FINE_FIELD_NAMES, +} from '../../../constants'; import { formatCurrencyAmount } from '../../util'; function showValidationErrors({ feeFineId, ownerId, amount }) { @@ -62,6 +65,7 @@ class ChargeForm extends React.Component { handleSubmit: PropTypes.func.isRequired, onClickSelectItem: PropTypes.func.isRequired, onFindShared: PropTypes.func.isRequired, + values: PropTypes.object.isRequired, pristine: PropTypes.bool, submitting: PropTypes.bool, invalid: PropTypes.bool, @@ -122,9 +126,17 @@ class ChargeForm extends React.Component { } onChangeOwner(ownerId) { - const { form: { change, reset } } = this.props; + const { + form: { + change, + reset, + }, + values, + onChangeOwner, + } = this.props; + reset(); - this.props.onChangeOwner(ownerId); + onChangeOwner(ownerId, values[NEW_FEE_FINE_FIELD_NAMES.ITEM_BARCODE]); let showNotify = false; const owner = this.props.owners.find(o => o.id === ownerId) || {}; if (owner?.defaultChargeNoticeId) { diff --git a/src/components/Accounts/ChargeFeeFine/ChargeForm.test.js b/src/components/Accounts/ChargeFeeFine/ChargeForm.test.js index 6ac81b57d..36f2f3143 100644 --- a/src/components/Accounts/ChargeFeeFine/ChargeForm.test.js +++ b/src/components/Accounts/ChargeFeeFine/ChargeForm.test.js @@ -139,6 +139,9 @@ const propData = { ownerId: '109155d9-3b60-4a3d-a6b1-066cf1b1356b', metadata: { createdDate: '2022-03-01T03:22:48.262+00:00', updatedDate: '2022-03-01T03:22:48.262+00:00' }, }], + resources: { + items: {}, + }, }; describe('ChargeForm component', () => { diff --git a/src/components/Accounts/ChargeFeeFine/ItemInfo.js b/src/components/Accounts/ChargeFeeFine/ItemInfo.js index f39676461..3e51e36e7 100644 --- a/src/components/Accounts/ChargeFeeFine/ItemInfo.js +++ b/src/components/Accounts/ChargeFeeFine/ItemInfo.js @@ -1,7 +1,9 @@ import React from 'react'; +import { Field } from 'react-final-form'; import PropTypes from 'prop-types'; import { Link } from 'react-router-dom'; import { FormattedMessage } from 'react-intl'; + import { Button, Row, @@ -9,8 +11,26 @@ import { TextField, } from '@folio/stripes/components'; +import { NEW_FEE_FINE_FIELD_NAMES } from '../../../constants'; + class ItemInfo extends React.Component { static propTypes = { + resources: PropTypes.shape({ + items: PropTypes.shape({ + records: PropTypes.arrayOf(PropTypes.object), + isPending: PropTypes.bool, + }), + activeRecord: PropTypes.shape({ + barcode: PropTypes.string, + }), + }).isRequired, + mutator: PropTypes.shape({ + activeRecord: PropTypes.shape({ + replace: PropTypes.func, + }), + }), + values: PropTypes.object.isRequired, + form: PropTypes.object.isRequired, onClickSelectItem: PropTypes.func, item: PropTypes.object, editable: PropTypes.bool, @@ -25,6 +45,29 @@ class ItemInfo extends React.Component { this.onClickSelectItem = this.onClickSelectItem.bind(this); this.onChangeSelectItem = this.onChangeSelectItem.bind(this); this.query = ''; + this.state = { + isBarcodeChangedAfterValidation: false, + }; + } + + componentDidUpdate(prevProps) { + const { + resources: { + items, + }, + } = this.props; + const { + resources: { + items: prevItems, + }, + } = prevProps; + + if (prevItems.records !== items.records && this.state.isBarcodeChangedAfterValidation) { + this.triggerItemBarcodeValidation(); + this.setState({ + isBarcodeChangedAfterValidation: false, + }); + } } onClickSelectItem(e) { @@ -33,10 +76,66 @@ class ItemInfo extends React.Component { } onChangeSelectItem(e) { - if (e) e.preventDefault(); - this.query = e.target.value; + const value = e.target.value; + const { + form, + resources, + } = this.props; + const { + isBarcodeChangedAfterValidation, + } = this.state; + + if (e) { + e.preventDefault(); + } + + if (resources.activeRecord?.barcode && resources.activeRecord?.barcode !== value) { + this.props.mutator.activeRecord.replace({ + ...resources.activeRecord, + isBarcodeValidated: false, + barcode: '', + }); + } + + if (!isBarcodeChangedAfterValidation) { + this.setState({ + isBarcodeChangedAfterValidation: true, + }); + } + + form.change(NEW_FEE_FINE_FIELD_NAMES.ITEM_BARCODE, value); + this.query = value; } + triggerItemBarcodeValidation = () => { + const { + form, + values, + } = this.props; + + form.change(NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE, values[NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE] ? 0 : 1); + }; + + validateBarcode = (barcode) => { + const { + resources: { + items, + activeRecord, + }, + } = this.props; + + if (barcode && barcode === activeRecord.barcode && items.records.length === 0) { + return ( + + ); + } + + return undefined; + }; + render() { const { item: { @@ -46,8 +145,17 @@ class ItemInfo extends React.Component { instance, barcode, id, - } + }, + values, + editable, + resources: { + items, + }, } = this.props; + const { + isBarcodeChangedAfterValidation, + } = this.state; + const isEnterButtonDisabled = !editable || items.isPending; return (
@@ -57,20 +165,42 @@ class ItemInfo extends React.Component { - {placeholder => ( - - )} + {placeholder => { + const key = values[NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE] ?? 0; + + return ( + + { + ({ input, meta }) => { + const validationError = !isBarcodeChangedAfterValidation && meta.error; + + return ( + + ); + } + } + + ); + }} diff --git a/src/components/Accounts/ChargeFeeFine/ItemInfo.test.js b/src/components/Accounts/ChargeFeeFine/ItemInfo.test.js index cf627d713..958203e14 100644 --- a/src/components/Accounts/ChargeFeeFine/ItemInfo.test.js +++ b/src/components/Accounts/ChargeFeeFine/ItemInfo.test.js @@ -1,39 +1,148 @@ -import { screen } from '@folio/jest-config-stripes/testing-library/react'; +import { + screen, + render, +} from '@folio/jest-config-stripes/testing-library/react'; import userEvent from '@folio/jest-config-stripes/testing-library/user-event'; -import renderWithRouter from 'helpers/renderWithRouter'; import ItemInfo from './ItemInfo'; +import { NEW_FEE_FINE_FIELD_NAMES } from '../../../constants'; import '__mock__/stripesCore.mock'; import '__mock__/stripesSmartComponent.mock'; jest.unmock('@folio/stripes/components'); -const renderItemInfo = (props) => renderWithRouter( +const renderItemInfo = (props) => render( ); -const selectMock = jest.fn(); - -const props = { - onClickSelectItem: selectMock, +const basicProps = { + onClickSelectItem: jest.fn(), item: {}, - editable: true + editable: true, + resources: { + items: { + records: [], + }, + activeRecord: { + barcode: 'itemBarcode', + }, + }, + mutator: { + activeRecord: { + replace: jest.fn(), + }, + }, + form: { + change: jest.fn(), + }, + values: {}, +}; +const labelIds = { + itemTitle: 'ui-users.charge.item.title', + chargeButton: 'ui-users.charge.item.button', +}; +const testIds = { + itemBarcodeField: 'itemBarcodeField', }; -describe('Item Info component', () => { - it('if it renders', () => { - renderItemInfo(props); - expect(screen.getByText('ui-users.charge.item.title')).toBeInTheDocument(); +jest.mock('react-final-form', () => ({ + Field: jest.fn(({ + children, + 'data-testid': testId, + validate, + }) => { + return children({ + meta: {}, + input: { + validate, + 'data-testid': testId, + value: '', + }, + }); + }), +})); +jest.mock('react-router-dom', () => ({ + Link: jest.fn(() =>
), +})); + +describe('ItemInfo', () => { + afterEach(() => { + jest.clearAllMocks(); }); - it('Charge Item Button', async () => { - renderItemInfo(props); - await userEvent.click(screen.getByText('ui-users.charge.item.button')); - expect(selectMock).toHaveBeenCalled(); + + describe('Initial render', () => { + beforeEach(() => { + renderItemInfo(basicProps); + }); + + it('should render item title', () => { + const itemTitle = screen.getByText(labelIds.itemTitle); + + expect(itemTitle).toBeInTheDocument(); + }); + + it('should get item information', async () => { + const chargeButton = screen.getByText(labelIds.chargeButton); + + await userEvent.click(chargeButton); + + expect(basicProps.onClickSelectItem).toHaveBeenCalled(); + }); }); - it('charge item text field', async () => { - renderItemInfo(props); - await userEvent.type(document.querySelector('[placeholder="ui-users.charge.item.placeholder"]'), 'Test'); - expect(document.querySelector('[placeholder="ui-users.charge.item.placeholder"]').value).toBe('Test'); + + describe('Component updating', () => { + const itemBarcode = 'newItemBarcode'; + const newProps = { + ...basicProps, + resources: { + ...basicProps.resources, + items: { + records: [ + { + id: 'itemId', + } + ] + } + }, + }; + + beforeEach(async () => { + const { rerender } = renderItemInfo(basicProps); + + const itemBarcodeField = screen.getByTestId(testIds.itemBarcodeField); + + await userEvent.type(itemBarcodeField, itemBarcode); + + rerender(); + }); + + it('should change "key" value of barcode field', () => { + expect(basicProps.form.change).toHaveBeenCalledWith(NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE, basicProps.values[NEW_FEE_FINE_FIELD_NAMES.KEY_OF_ITEM_BARCODE] ? 0 : 1); + }); + }); + + describe('Item barcode changing', () => { + const itemBarcode = 'newItemBarcode'; + + beforeEach(async () => { + renderItemInfo(basicProps); + + const itemBarcodeField = screen.getByTestId(testIds.itemBarcodeField); + + await userEvent.type(itemBarcodeField, itemBarcode); + }); + + it('should replace activeRecord', () => { + expect(basicProps.mutator.activeRecord.replace).toHaveBeenCalledWith({ + ...basicProps.resources.activeRecord, + isBarcodeValidated: false, + barcode: '', + }); + }); + + it('should change item barcode field', () => { + expect(basicProps.form.change).toHaveBeenCalledWith(NEW_FEE_FINE_FIELD_NAMES.ITEM_BARCODE, itemBarcode); + }); }); }); diff --git a/src/constants.js b/src/constants.js index 36ed514a2..949991aeb 100644 --- a/src/constants.js +++ b/src/constants.js @@ -401,3 +401,8 @@ export const KEYCLOAK_USER_EXISTANCE = { nonExist: 'nonExist', error: 'error', }; + +export const NEW_FEE_FINE_FIELD_NAMES = { + ITEM_BARCODE: 'itemBarcode', + KEY_OF_ITEM_BARCODE: 'keyOfItemBarcode', +}; diff --git a/translations/ui-users/en.json b/translations/ui-users/en.json index 12c6ac386..5312347ae 100644 --- a/translations/ui-users/en.json +++ b/translations/ui-users/en.json @@ -581,6 +581,7 @@ "charge.item.placeholder": "Scan or enter item barcode", "charge.item.button": "Enter", "charge.item.barcode": "Barcode", + "charge.item.barcode.error": "No item with barcode {barcode} could be found", "charge.item.instance": "Instance", "charge.item.status": "Item Status", "charge.item.callNumber": "Effective call number string", From b38d65cf0de37e75db9585658f27b1a52d26fc54 Mon Sep 17 00:00:00 2001 From: FOLIO Translations Bot <38661258+folio-translations@users.noreply.github.com> Date: Wed, 29 Jan 2025 22:29:20 -0500 Subject: [PATCH 7/9] Update translation strings --- translations/ui-users/ar.json | 3 ++- translations/ui-users/ber.json | 3 ++- translations/ui-users/ca.json | 3 ++- translations/ui-users/cs_CZ.json | 3 ++- translations/ui-users/da.json | 3 ++- translations/ui-users/de.json | 3 ++- translations/ui-users/en_GB.json | 3 ++- translations/ui-users/en_SE.json | 3 ++- translations/ui-users/en_US.json | 3 ++- translations/ui-users/es.json | 3 ++- translations/ui-users/es_419.json | 3 ++- translations/ui-users/es_ES.json | 3 ++- translations/ui-users/fr.json | 3 ++- translations/ui-users/fr_FR.json | 3 ++- translations/ui-users/he.json | 3 ++- translations/ui-users/hi_IN.json | 3 ++- translations/ui-users/hu.json | 3 ++- translations/ui-users/it_IT.json | 3 ++- translations/ui-users/ja.json | 3 ++- translations/ui-users/ko.json | 3 ++- translations/ui-users/nb.json | 3 ++- translations/ui-users/nl.json | 3 ++- translations/ui-users/nn.json | 3 ++- translations/ui-users/pl.json | 3 ++- translations/ui-users/pt_BR.json | 3 ++- translations/ui-users/pt_PT.json | 3 ++- translations/ui-users/ru.json | 3 ++- translations/ui-users/sk.json | 3 ++- translations/ui-users/sv.json | 3 ++- translations/ui-users/ur.json | 3 ++- translations/ui-users/zh_CN.json | 3 ++- translations/ui-users/zh_TW.json | 3 ++- 32 files changed, 64 insertions(+), 32 deletions(-) diff --git a/translations/ui-users/ar.json b/translations/ui-users/ar.json index 29cdea1d3..7c59a93a5 100644 --- a/translations/ui-users/ar.json +++ b/translations/ui-users/ar.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ber.json b/translations/ui-users/ber.json index 55189d2d8..f75ec8955 100644 --- a/translations/ui-users/ber.json +++ b/translations/ui-users/ber.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ca.json b/translations/ui-users/ca.json index 033732a1b..d0d33e31d 100644 --- a/translations/ui-users/ca.json +++ b/translations/ui-users/ca.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/cs_CZ.json b/translations/ui-users/cs_CZ.json index d62f5c7f3..7144b96e8 100644 --- a/translations/ui-users/cs_CZ.json +++ b/translations/ui-users/cs_CZ.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Uživatelé: Zobrazení a odstranění tiskových úloh s upozorněním pro čtenáře", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Akce", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/da.json b/translations/ui-users/da.json index 6343b5a79..4ad7c5927 100644 --- a/translations/ui-users/da.json +++ b/translations/ui-users/da.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/de.json b/translations/ui-users/de.json index 9a53b85cb..f0b0e16bb 100644 --- a/translations/ui-users/de.json +++ b/translations/ui-users/de.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Personen: Print-Jobs für Benachrichtigungen anzeigen und entfernen", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/en_GB.json b/translations/ui-users/en_GB.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/en_GB.json +++ b/translations/ui-users/en_GB.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/en_SE.json b/translations/ui-users/en_SE.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/en_SE.json +++ b/translations/ui-users/en_SE.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/en_US.json b/translations/ui-users/en_US.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/en_US.json +++ b/translations/ui-users/en_US.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/es.json b/translations/ui-users/es.json index 9e7a4f0f3..c7c89a27f 100644 --- a/translations/ui-users/es.json +++ b/translations/ui-users/es.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/es_419.json b/translations/ui-users/es_419.json index 2c732bee8..fc099f04a 100644 --- a/translations/ui-users/es_419.json +++ b/translations/ui-users/es_419.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/es_ES.json b/translations/ui-users/es_ES.json index 9e7a4f0f3..c7c89a27f 100644 --- a/translations/ui-users/es_ES.json +++ b/translations/ui-users/es_ES.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/fr.json b/translations/ui-users/fr.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/fr.json +++ b/translations/ui-users/fr.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/fr_FR.json b/translations/ui-users/fr_FR.json index fc0439047..cd1e605d1 100644 --- a/translations/ui-users/fr_FR.json +++ b/translations/ui-users/fr_FR.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/he.json b/translations/ui-users/he.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/he.json +++ b/translations/ui-users/he.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/hi_IN.json b/translations/ui-users/hi_IN.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/hi_IN.json +++ b/translations/ui-users/hi_IN.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/hu.json b/translations/ui-users/hu.json index cd0442448..03a150f8c 100644 --- a/translations/ui-users/hu.json +++ b/translations/ui-users/hu.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/it_IT.json b/translations/ui-users/it_IT.json index 551cdbf35..c54009600 100644 --- a/translations/ui-users/it_IT.json +++ b/translations/ui-users/it_IT.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ja.json b/translations/ui-users/ja.json index 885eb71e1..e7ed63de6 100644 --- a/translations/ui-users/ja.json +++ b/translations/ui-users/ja.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ko.json b/translations/ui-users/ko.json index d9cc11540..88836bf9f 100644 --- a/translations/ui-users/ko.json +++ b/translations/ui-users/ko.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/nb.json b/translations/ui-users/nb.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/nb.json +++ b/translations/ui-users/nb.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/nl.json b/translations/ui-users/nl.json index f46e732b5..d174b8afd 100644 --- a/translations/ui-users/nl.json +++ b/translations/ui-users/nl.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/nn.json b/translations/ui-users/nn.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/nn.json +++ b/translations/ui-users/nn.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/pl.json b/translations/ui-users/pl.json index 5431f6de9..7d0a5f2c6 100644 --- a/translations/ui-users/pl.json +++ b/translations/ui-users/pl.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Użytkownicy: wyświetlanie i usuwanie zadań drukowania powiadomień czytelników", "title.patronBlock.create": "Użytkownicy - utwórz nową blokadę czytelnika", "title.patronBlock.edit": "Użytkownicy - edytuj blokadę czytelnika", - "accounts.history.columns.actions": "Akcje" + "accounts.history.columns.actions": "Akcje", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/pt_BR.json b/translations/ui-users/pt_BR.json index a1fbb3fe3..906a0f328 100644 --- a/translations/ui-users/pt_BR.json +++ b/translations/ui-users/pt_BR.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Usuários: Visualizar e remover trabalhos de impressão de avisos do usuário", "title.patronBlock.create": "Usuários - Criar uma nova suspensão de usuário", "title.patronBlock.edit": "Usuários - Editar uma suspensão de usuário", - "accounts.history.columns.actions": "Ações" + "accounts.history.columns.actions": "Ações", + "charge.item.barcode.error": "Nenhum item com código de barras {barcode} foi encontrado" } \ No newline at end of file diff --git a/translations/ui-users/pt_PT.json b/translations/ui-users/pt_PT.json index 79be85ade..a2e935119 100644 --- a/translations/ui-users/pt_PT.json +++ b/translations/ui-users/pt_PT.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ru.json b/translations/ui-users/ru.json index 4c9aee381..213e68223 100644 --- a/translations/ui-users/ru.json +++ b/translations/ui-users/ru.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/sk.json b/translations/ui-users/sk.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/sk.json +++ b/translations/ui-users/sk.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/sv.json b/translations/ui-users/sv.json index 7de085c4f..44ad6b8f6 100644 --- a/translations/ui-users/sv.json +++ b/translations/ui-users/sv.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/ur.json b/translations/ui-users/ur.json index 8ead41d7f..9c8a5138a 100644 --- a/translations/ui-users/ur.json +++ b/translations/ui-users/ur.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/zh_CN.json b/translations/ui-users/zh_CN.json index 73feea7af..ff1f817b4 100644 --- a/translations/ui-users/zh_CN.json +++ b/translations/ui-users/zh_CN.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "用户:查看和删除读者通知打印任务", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file diff --git a/translations/ui-users/zh_TW.json b/translations/ui-users/zh_TW.json index 2482dfb70..75269ed37 100644 --- a/translations/ui-users/zh_TW.json +++ b/translations/ui-users/zh_TW.json @@ -1234,5 +1234,6 @@ "permission.patron-notice-print-jobs.delete": "Users: View and remove patron notice print jobs", "title.patronBlock.create": "Users - Create a new patron block", "title.patronBlock.edit": "Users - Edit a patron block", - "accounts.history.columns.actions": "Actions" + "accounts.history.columns.actions": "Actions", + "charge.item.barcode.error": "No item with barcode {barcode} could be found" } \ No newline at end of file From e816e9f37cd76844f5d472acf48e71198b3ae5ed Mon Sep 17 00:00:00 2001 From: nikolai Date: Thu, 30 Jan 2025 18:15:19 +0400 Subject: [PATCH 8/9] UIU-3119: Pronoun Field - User Record Edit (#2848) * UIU-3119: Pronoun Field - User Record Edit * adjust unit test check * convert to a breaking change --- CHANGELOG.md | 3 ++- package.json | 4 ++-- .../EditSections/EditUserInfo/EditUserInfo.js | 9 ++++++++ src/components/util/util.js | 6 ++++++ src/components/util/util.test.js | 7 +++++++ src/views/UserEdit/UserForm.css | 11 ++++++++++ src/views/UserEdit/UserForm.js | 5 ++++- src/views/UserEdit/UserForm.test.js | 21 ++++++++++++++++++- translations/ui-users/en.json | 1 + 9 files changed, 62 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abd8b0dbd..0dfab2d29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change history for ui-users -## [11.1.0] In progress +## [12.0.0] In progress * `useUserTenantRoles` supplies `tenantId` in all its queries. Refs UIU-3279. * Leverage API supported sorting of columns on pre-registrations records list. Refs UIU-3249. * Fix issue with `Proxy borrower` field value. Refs UIU-3290. @@ -12,6 +12,7 @@ * Change import of `exportToCsv` from `stripes-util` to `stripes-components`. Refs UIU-3202. * Provide `itemToString` to create unique `key` attributes. Refs UIU-3312. * Return appropriate error message when item for manual fee/fine can't be found. Refs UIU-2701. +* *BREAKING* Add `pronouns` field to user edit form. Refs UIU-3119. ## [11.0.11](https://github.com/folio-org/ui-users/tree/v11.0.11) (2025-01-15) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) diff --git a/package.json b/package.json index 384debb01..7de7389ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@folio/users", - "version": "11.0.9", + "version": "12.0.0", "description": "User management", "repository": "folio-org/ui-users", "publishConfig": { @@ -29,7 +29,7 @@ } ], "okapiInterfaces": { - "users": "16.3", + "users": "16.4", "configuration": "2.0", "permissions": "5.7", "login": "7.3", diff --git a/src/components/EditSections/EditUserInfo/EditUserInfo.js b/src/components/EditSections/EditUserInfo/EditUserInfo.js index 9cca030ee..41ccb3118 100644 --- a/src/components/EditSections/EditUserInfo/EditUserInfo.js +++ b/src/components/EditSections/EditUserInfo/EditUserInfo.js @@ -429,6 +429,15 @@ class EditUserInfo extends React.Component { + + } + name="personal.pronouns" + id="adduser_pronouns" + component={TextField} + fullWidth + /> + diff --git a/src/components/util/util.js b/src/components/util/util.js index d968dea6f..ba1244b55 100644 --- a/src/components/util/util.js +++ b/src/components/util/util.js @@ -36,6 +36,12 @@ export function getFullName(user) { return fullName; } +export function getFormattedPronouns(user) { + const pronouns = user?.personal?.pronouns; + + return pronouns ? `(${pronouns})` : undefined; +} + export const formatActionDescription = (action) => { return action.typeAction + (action.paymentMethod diff --git a/src/components/util/util.test.js b/src/components/util/util.test.js index 66f256065..a340fb3eb 100644 --- a/src/components/util/util.test.js +++ b/src/components/util/util.test.js @@ -29,6 +29,7 @@ import { isAffiliationsEnabled, isDcbItem, isAValidImageUrl, + getFormattedPronouns, } from './util'; const STRIPES = { @@ -538,3 +539,9 @@ describe('isAValidImageUrl', () => { }); }); +describe('getFormattedPronouns', () => { + it('returns formatted pronouns', () => { + expect(getFormattedPronouns({ personal: { pronouns: 'e2/e2' } })).toEqual('(e2/e2)'); + }); +}); + diff --git a/src/views/UserEdit/UserForm.css b/src/views/UserEdit/UserForm.css index c627b3850..0b9b3e4ad 100644 --- a/src/views/UserEdit/UserForm.css +++ b/src/views/UserEdit/UserForm.css @@ -6,3 +6,14 @@ .UserFormEditIcon { display: inline-block; } + +.NameContainer { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; +} + +.Pronouns { + font-weight: normal; + word-wrap: break-word; +} diff --git a/src/views/UserEdit/UserForm.js b/src/views/UserEdit/UserForm.js index 5cb0118e2..3229f3a18 100644 --- a/src/views/UserEdit/UserForm.js +++ b/src/views/UserEdit/UserForm.js @@ -36,7 +36,7 @@ import { EditReadingRoomAccess, EditUserRoles, } from '../../components/EditSections'; -import { getFullName } from '../../components/util'; +import { getFormattedPronouns, getFullName } from '../../components/util'; import RequestFeeFineBlockButtons from '../../components/RequestFeeFineBlockButtons'; import { addressTypesShape } from '../../shapes'; import getProxySponsorWarning from '../../components/util/getProxySponsorWarning'; @@ -340,6 +340,7 @@ class UserForm extends React.Component { const firstMenu = this.getAddFirstMenu(); const footer = this.getPaneFooter(); const fullName = getFullName(initialValues); + const pronouns = getFormattedPronouns(initialValues); const paneTitle = initialValues.id ? : ; @@ -373,9 +374,11 @@ class UserForm extends React.Component { {fullName} + {pronouns && {pronouns}} )} diff --git a/src/views/UserEdit/UserForm.test.js b/src/views/UserEdit/UserForm.test.js index c0ad277f7..fcb39affc 100644 --- a/src/views/UserEdit/UserForm.test.js +++ b/src/views/UserEdit/UserForm.test.js @@ -158,7 +158,7 @@ describe('UserForm', () => { }); - describe('renders accordions', () => { + describe('renders accordions and other values', () => { const props = { formData: { patronGroups: [], @@ -207,6 +207,25 @@ describe('UserForm', () => { expect(screen.queryByText('EditUserRoles accordion')).toBeInTheDocument(); }); + + it('renders pronouns', () => { + renderWithRouter( + + ); + + expect(screen.getByText('(r2/d2)')).toBeInTheDocument(); + }); }); // this fails: diff --git a/translations/ui-users/en.json b/translations/ui-users/en.json index 5312347ae..253ad921f 100644 --- a/translations/ui-users/en.json +++ b/translations/ui-users/en.json @@ -309,6 +309,7 @@ "contact.addressTypes": "Address Types", "contact.addressType": "Address Type", "contact.addresses": "Addresses", + "information.pronouns": "Pronouns", "information.userInformation": "User information", "information.userDetails": "User details", "information.name": "Name", From 9d25a90f90d438f7ef81ae04cc31070b7027ea81 Mon Sep 17 00:00:00 2001 From: nikolai Date: Fri, 31 Jan 2025 17:40:09 +0400 Subject: [PATCH 9/9] UIU-3118: Pronoun Field - User Record View (#2850) * UIU-3118: Pronoun Field - User Record View * fix field positioning * adjust css name casing * fix test --- CHANGELOG.md | 1 + src/components/UserDetailSections/UserInfo/UserInfo.js | 6 ++++++ src/views/UserDetail/UserDetail.css | 10 ++++++++++ src/views/UserDetail/UserDetail.js | 6 ++++++ src/views/UserDetail/UserDetail.test.js | 9 +++++++-- src/views/UserEdit/UserForm.css | 4 ++-- src/views/UserEdit/UserForm.js | 4 ++-- 7 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 src/views/UserDetail/UserDetail.css diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dfab2d29..2c5a906e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ * Provide `itemToString` to create unique `key` attributes. Refs UIU-3312. * Return appropriate error message when item for manual fee/fine can't be found. Refs UIU-2701. * *BREAKING* Add `pronouns` field to user edit form. Refs UIU-3119. +* Add `pronouns` field to user view form. Refs UIU-3118. ## [11.0.11](https://github.com/folio-org/ui-users/tree/v11.0.11) (2025-01-15) [Full Changelog](https://github.com/folio-org/ui-users/compare/v11.0.10...v11.0.11) diff --git a/src/components/UserDetailSections/UserInfo/UserInfo.js b/src/components/UserDetailSections/UserInfo/UserInfo.js index dfb224eef..c21cecd96 100644 --- a/src/components/UserDetailSections/UserInfo/UserInfo.js +++ b/src/components/UserDetailSections/UserInfo/UserInfo.js @@ -116,6 +116,12 @@ const UserInfo = (props) => { value={get(user, [USER_TYPE_FIELD], '')} /> + + } + value={get(user, ['personal', 'pronouns']) || } + /> + diff --git a/src/views/UserDetail/UserDetail.css b/src/views/UserDetail/UserDetail.css new file mode 100644 index 000000000..ef60752c1 --- /dev/null +++ b/src/views/UserDetail/UserDetail.css @@ -0,0 +1,10 @@ +.nameContainer { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; +} + +.pronouns { + font-weight: normal; + word-wrap: break-word; +} diff --git a/src/views/UserDetail/UserDetail.js b/src/views/UserDetail/UserDetail.js index 42f6a6284..ddc54381e 100644 --- a/src/views/UserDetail/UserDetail.js +++ b/src/views/UserDetail/UserDetail.js @@ -58,6 +58,7 @@ import { PatronBlockMessage } from '../../components/PatronBlock'; import { getFormAddressList } from '../../components/data/converters/address'; import { getFullName, + getFormattedPronouns, isAffiliationsEnabled, isDcbUser, isPatronUser, @@ -76,6 +77,8 @@ import OpenTransactionModal from './components/OpenTransactionModal'; import DeleteUserModal from './components/DeleteUserModal'; import ExportFeesFinesReportButton from './components'; +import css from './UserDetail.css'; + class UserDetail extends React.Component { static propTypes = { stripes: PropTypes.shape({ @@ -634,6 +637,7 @@ class UserDetail extends React.Component { const user = this.getUser(); const fullNameOfUser = getFullName(user); + const pronouns = getFormattedPronouns(user); const userId = match.params.id; const addressTypes = (resources.addressTypes || {}).records || []; @@ -724,8 +728,10 @@ class UserDetail extends React.Component { {getFullName(user)} + {pronouns && {pronouns}} diff --git a/src/views/UserDetail/UserDetail.test.js b/src/views/UserDetail/UserDetail.test.js index 053f4323b..30a237281 100644 --- a/src/views/UserDetail/UserDetail.test.js +++ b/src/views/UserDetail/UserDetail.test.js @@ -42,7 +42,7 @@ const resources = { patronGroup:'3684a786-6671-4268-8ed0-9db82ebca60b', departments:[], proxyFor:[], - personal:{ lastName:'psych', firstName:'rick', email:'psych@ub.example.org', addresses:[], preferredContactTypeId:'002' }, + personal:{ lastName:'psych', firstName:'rick', email:'psych@ub.example.org', addresses:[], preferredContactTypeId:'002', pronouns: 'xe/xe' }, createdDate:'2021-06-03T09:56:40.796+00:00', updatedDate:'2021-06-03T09:56:40.796+00:00', metadata:{ createdDate:'2021-05-27T11:20:51.547+00:00', updatedDate:'2021-06-03T09:56:40.779+00:00', updatedByUserId:'d88b5896-fcd2-5a3b-bc63-7749a913b786' }, @@ -57,7 +57,7 @@ const resources = { patronGroup:'3684a786-6671-4268-8ed0-9db82ebca60b', departments:[], proxyFor:[], - personal:{ lastName:'psych', firstName:'rick', email:'psych@ub.example.org', addresses:[], preferredContactTypeId:'002' }, + personal:{ lastName:'psych', firstName:'rick', email:'psych@ub.example.org', addresses:[], preferredContactTypeId:'002', pronouns: 'xe/xe' }, createdDate:'2021-06-03T09:56:40.796+00:00', updatedDate:'2021-06-03T09:56:40.796+00:00', metadata:{ createdDate:'2021-05-27T11:20:51.547+00:00', updatedDate:'2021-06-03T09:56:40.779+00:00', updatedByUserId:'d88b5896-fcd2-5a3b-bc63-7749a913b786' }, @@ -283,6 +283,11 @@ describe('UserDetail', () => { expect(screen.getAllByText('psych, rick').length).toBeGreaterThan(0); }); + test('should display user pronouns', async () => { + renderUserDetail(stripes); + expect(screen.getAllByText('(xe/xe)').length).toBeGreaterThan(0); + }); + test('should render checkDelete button in action menu ', async () => { renderUserDetail(stripes); expect(screen.getByRole('button', { name: 'ui-users.details.checkDelete' })).toBeVisible(); diff --git a/src/views/UserEdit/UserForm.css b/src/views/UserEdit/UserForm.css index 0b9b3e4ad..0d5143a42 100644 --- a/src/views/UserEdit/UserForm.css +++ b/src/views/UserEdit/UserForm.css @@ -7,13 +7,13 @@ display: inline-block; } -.NameContainer { +.nameContainer { display: flex; gap: 0.5rem; flex-wrap: wrap; } -.Pronouns { +.pronouns { font-weight: normal; word-wrap: break-word; } diff --git a/src/views/UserEdit/UserForm.js b/src/views/UserEdit/UserForm.js index 3229f3a18..773fbc5ee 100644 --- a/src/views/UserEdit/UserForm.js +++ b/src/views/UserEdit/UserForm.js @@ -374,11 +374,11 @@ class UserForm extends React.Component { {fullName} - {pronouns && {pronouns}} + {pronouns && {pronouns}} )}