From 99da477a9eef7553af5a3f73ebb474537ba12e8e Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Wed, 22 Feb 2023 14:46:29 +0200 Subject: [PATCH 1/3] Dynamically calculate mvea Model name --- .../js/comanage/components/mvea/mveas.js | 33 +++---------------- .../js/comanage/components/utils/helpers.js | 8 ++++- 2 files changed, 12 insertions(+), 29 deletions(-) diff --git a/app/webroot/js/comanage/components/mvea/mveas.js b/app/webroot/js/comanage/components/mvea/mveas.js index 6e60fc271..878488970 100644 --- a/app/webroot/js/comanage/components/mvea/mveas.js +++ b/app/webroot/js/comanage/components/mvea/mveas.js @@ -25,6 +25,9 @@ */ import MveaItem from './mvea-item.js'; +import { + camelize +} from '../utils/helpers.js'; export default { props: { @@ -42,32 +45,7 @@ export default { }, computed: { mveaModel: function() { - switch(this.core.mveaType) { - case 'names': - return this.mveas.Names; - break; - case 'email_addresses': - return this.mveas.EmailAddresses; - break; - case 'identifiers': - return this.mveas.Identifiers; - break; - case 'ad_hoc_attributes': - return this.mveas.AdHocAttributes; - break; - case 'addresses': - return this.mveas.Addresses; - break; - case 'telephone_numbers': - return this.mveas.TelephoneNumbers; - break; - case 'urls': - return this.mveas.Urls; - break; - case 'pronouns': - return this.mveas.Pronouns; - break; - } + return this.mveas?.[camelize(this.core.mveaType)] } }, template: ` @@ -75,8 +53,7 @@ export default { + v-for='mvea in mveaModel' :mvea="mvea"> ` diff --git a/app/webroot/js/comanage/components/utils/helpers.js b/app/webroot/js/comanage/components/utils/helpers.js index 299cf2888..aeed98b1e 100644 --- a/app/webroot/js/comanage/components/utils/helpers.js +++ b/app/webroot/js/comanage/components/utils/helpers.js @@ -44,6 +44,12 @@ const constructLanguageString = (abbreviation) => { return `${regionNameEngish.of(abbreviation)} (${regionNameLocale.of(abbreviation)})`; } +// Snake case to Camel case +const camelize = (word) => { + return word.split("_").map(word => (word[0].toUpperCase() + word.slice(1))).join('') +} + export { - constructLanguageString + constructLanguageString, + camelize } \ No newline at end of file From 06930ed60c99663811c439510e4b1e181df04488 Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Wed, 22 Feb 2023 18:42:00 +0200 Subject: [PATCH 2/3] Localizations load from CAKEPHP helper --- app/src/View/Helper/VueHelper.php | 74 +++++++++++++++++++++++++++++++ app/templates/element/mveaJs.php | 12 ++--- 2 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 app/src/View/Helper/VueHelper.php diff --git a/app/src/View/Helper/VueHelper.php b/app/src/View/Helper/VueHelper.php new file mode 100644 index 000000000..7230ba524 --- /dev/null +++ b/app/src/View/Helper/VueHelper.php @@ -0,0 +1,74 @@ + [ + 'login', + 'primary', + 'datepicker.hour', + 'unverified' + ], + 'information' => [ + 'global.value.none', + 'datepicker.hour' + ] + ]; + + /** + * Helper which will produce an array of configured locales + * + * @param string $lang The language of the locale + * + * @return array [] + * @since COmanage Registry v5.0.0 + */ + + public function locales(string $lang = 'en_US'): array { + + I18n::setLocale($lang); + + $locales = []; + foreach ($this->locales_list as $domain => $key_list) { + foreach ($key_list as $key) { + $locales[$key] = __d($domain, $key); + } + } + + return $locales; + } + +} \ No newline at end of file diff --git a/app/templates/element/mveaJs.php b/app/templates/element/mveaJs.php index 3d5e43e57..517e777e7 100644 --- a/app/templates/element/mveaJs.php +++ b/app/templates/element/mveaJs.php @@ -37,6 +37,9 @@ // Get the CSRF Token in JavaScript $token = $this->request->getAttribute('csrfToken'); +// Load my helper functions +$vueHelper = $this->loadHelper('Vue'); + // Create an MVEA component - typically this is represented as a card on a canvas page ?> @@ -59,14 +62,7 @@ mveaController: '', webroot: 'request->getAttribute('webroot') ?>' }, - txt: { - login: '', - none: '', - primary: '', - status: '', - unverified: '', - visit: '' - }, + txt: JSON.parse('locales()) ?>'), isLoading: true } }, From 49bb4d5b0eca8cb1f820039aec3c97e1c97f6f11 Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Wed, 22 Feb 2023 18:51:54 +0200 Subject: [PATCH 3/3] Update access to txt lexicals --- app/webroot/js/comanage/components/mvea/mvea-item.js | 4 ++-- app/webroot/js/comanage/components/mvea/mveas.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index f504aca29..ff0fccfc6 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -90,7 +90,7 @@ export default {
  • {{ this.mvea.tag }} @@ -126,7 +126,7 @@ export default {
  • {{ this.mvea.type.display_name }} diff --git a/app/webroot/js/comanage/components/mvea/mveas.js b/app/webroot/js/comanage/components/mvea/mveas.js index 878488970..2b98a5292 100644 --- a/app/webroot/js/comanage/components/mvea/mveas.js +++ b/app/webroot/js/comanage/components/mvea/mveas.js @@ -53,7 +53,8 @@ export default { + v-for='mvea in mveaModel' + :mvea="mvea"> `