From 3fea8372615e2b6835f1c12144107b9995897e3a Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Tue, 20 Jan 2026 11:44:08 -0500 Subject: [PATCH 1/7] Add EIS badges to Person Canvas (CFM-417) --- app/src/Controller/PeopleController.php | 23 +++++++++++++ app/templates/element/mveaJs.php | 3 +- app/webroot/css/co-base.css | 1 + .../js/comanage/components/mvea/mvea-item.js | 32 +++++++++++++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/app/src/Controller/PeopleController.php b/app/src/Controller/PeopleController.php index 42cb3eb77..5b234fbf9 100644 --- a/app/src/Controller/PeopleController.php +++ b/app/src/Controller/PeopleController.php @@ -90,6 +90,29 @@ public function beforeRender(\Cake\Event\EventInterface $event) { $this->set('vv_default_name_type', $settings->default_name_type_id); } + if(!$this->request->is('restful') && $this->request->getParam('action') == 'edit') { + // Get the external identity sources for this person + $externalIdentitySources = $this->fetchTable('ExternalIdentities') + ->find() + ->where(['ExternalIdentities.person_id' => $this->request->getParam('pass.0')]) + ->contain([ + 'ExtIdentitySourceRecords' => [ + 'ExternalIdentitySources' + ] + ]) + ->all(); + + // Create a lookup table for badging EIS descriptions on Person Canvas MVEAS + $eisLookupTable = []; + foreach ($externalIdentitySources as $extIdentity) { + if (!empty($extIdentity->ext_identity_source_record) && + !empty($extIdentity->ext_identity_source_record->external_identity_source)) { + $eisLookupTable[$extIdentity->id] = $extIdentity->ext_identity_source_record->external_identity_source->description; + } + } + + $this->set('vv_external_identity_sources', $eisLookupTable); + } return parent::beforeRender($event); } } \ No newline at end of file diff --git a/app/templates/element/mveaJs.php b/app/templates/element/mveaJs.php index ec33c7be2..7baa5f9d9 100644 --- a/app/templates/element/mveaJs.php +++ b/app/templates/element/mveaJs.php @@ -64,7 +64,8 @@ mveaController: '', mveaTitle: '', webroot: 'request->getAttribute('webroot') ?>', - action: '' + action: '', + externalIdentitySources: }, txt: JSON.parse('locales()) ?>'), isLoading: true, diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css index c07b7a294..2b9e39341 100644 --- a/app/webroot/css/co-base.css +++ b/app/webroot/css/co-base.css @@ -2703,6 +2703,7 @@ html.dark-mode .btn-default:active { margin-top: auto; margin-bottom: auto; line-height: 1.2em; + border: 1px solid var(--cmg-color-bg-006); } .bg-light { color: var(--cmg-color-highlight-005); diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index 91098c540..08201704c 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -59,6 +59,9 @@ export default { var componentReference = 'mvea' + this.core.mveaType; this.$parent.$parent.launchModal(this.core.mveaTitle, this.mveaLink, componentReference); }); + }, + getEisDescription(externalIdentityId) { + return externalIdentityId ? this.core?.externalIdentitySources[externalIdentityId] : null; } }, mounted() { @@ -106,6 +109,7 @@ export default { {{ this.txt['field.primary'] }} {{ this.mvea.type.display_name }} {{ calcLangHR(this.mvea.language) }} + @@ -133,6 +137,10 @@ export default {
{{ this.txt['field.unverified'] }} {{ this.mvea.type.display_name }} + + {{ getEisDescription(this.mvea?.source_email_address?.external_identity_id) }} +
@@ -148,6 +156,10 @@ export default { {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} {{ this.txt['field.login'] }} {{ this.mvea.type.display_name }} + + {{ getEisDescription(mvea?.source_identifier?.external_identity_id) }} + @@ -162,6 +174,10 @@ export default {
{{ this.mvea.tag }} + + {{ getEisDescription(this.mvea?.source_ad_hoc_attribute?.external_identity_id) }} +
@@ -185,6 +201,10 @@ export default {
{{ this.mvea.type.display_name }} + + {{ getEisDescription(mvea?.source_address?.external_identity_id) }} +
@@ -198,6 +218,10 @@ export default {
{{ this.mvea.type.display_name }} + + {{ getEisDescription(mvea?.source_telephone_number?.external_identity_id) }} +
@@ -212,6 +236,10 @@ export default {
{{ this.mvea.type.display_name }} + + {{ getEisDescription(mvea?.source_url?.external_identity_id) }} +
@@ -225,6 +253,10 @@ export default {
{{ this.mvea.type.display_name }} + + {{ getEisDescription(mvea?.source_pronoun?.external_identity_id) }} +
` From 918f5049bc798b7bc6316df7dd8f7872ad60c5c8 Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Wed, 28 Jan 2026 08:40:24 -0500 Subject: [PATCH 2/7] Add EIS badges to person canvas Names MVEAs (CFM-417) --- app/webroot/js/comanage/components/mvea/mvea-item.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index 08201704c..0193fd060 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -109,7 +109,10 @@ export default { {{ this.txt['field.primary'] }} {{ this.mvea.type.display_name }} {{ calcLangHR(this.mvea.language) }} - + + {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} + From 6dcd77b3feb5ba79995bba98bb34e15d90470c11 Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Fri, 30 Jan 2026 11:33:59 -0500 Subject: [PATCH 3/7] Enhance style of EIS badges on person canvas (CFM-417) --- app/webroot/css/co-base.css | 3 +++ app/webroot/css/co-color.css | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css index 2b9e39341..af2698b1a 100644 --- a/app/webroot/css/co-base.css +++ b/app/webroot/css/co-base.css @@ -2725,6 +2725,9 @@ html.dark-mode .btn-default:active { .bg-secondary { background-color: var(--cmg-color-btn-bg-003); } +.badge-eis { + box-shadow: var(--cmg-color-shadow-01); +} /* Bootstrap bg-outline */ .bg-outline-primary { color: var(--cmg-color-link); diff --git a/app/webroot/css/co-color.css b/app/webroot/css/co-color.css index cd6ab939e..09e5131ce 100644 --- a/app/webroot/css/co-color.css +++ b/app/webroot/css/co-color.css @@ -89,6 +89,8 @@ --cmg-color-highlight-017: #cee6f8; /* alert: info border color (blue) */ --cmg-color-highlight-018: yellow; /* autocomplete highlight for query text */ + + --cmg-color-shadow-01: 0px 0px 2px 0px rgba(13,69,115,0.6); /* RGBA box-shadow color based on --cmg-color-btn-bg-001 */ /* Fonts */ --cmg-font-regular: 'open_sansregular','Trebuchet MS',Arial,Helvetica,sans-serif; @@ -172,6 +174,8 @@ html.dark-mode { --cmg-color-highlight-017: #333; /* alert: info border color (blue) */ --cmg-color-highlight-018: #cc0; /* autocomplete highlight for query text */ + --cmg-color-shadow-01: 0px 0px 2px 0px rgba(13,69,115,0.8); /* RGBA box-shadow color based on --cmg-color-btn-bg-001 */ + /* Bootstrap Overrides for Dark Mode */ --bs-light-rgb: #151515; } From 063d49181a1deb80365f687e56a510bbc652dd6b Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Tue, 17 Feb 2026 14:04:45 -0500 Subject: [PATCH 4/7] Improve query that returns EIS lookup table for Person canvas JavaScript components (CFM-417) --- app/src/Controller/PeopleController.php | 37 +++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/app/src/Controller/PeopleController.php b/app/src/Controller/PeopleController.php index 5b234fbf9..c37e1ca81 100644 --- a/app/src/Controller/PeopleController.php +++ b/app/src/Controller/PeopleController.php @@ -91,28 +91,29 @@ public function beforeRender(\Cake\Event\EventInterface $event) { } if(!$this->request->is('restful') && $this->request->getParam('action') == 'edit') { - // Get the external identity sources for this person - $externalIdentitySources = $this->fetchTable('ExternalIdentities') - ->find() - ->where(['ExternalIdentities.person_id' => $this->request->getParam('pass.0')]) - ->contain([ - 'ExtIdentitySourceRecords' => [ - 'ExternalIdentitySources' - ] + // Create a lookup table for badging External Identity Source descriptions on Person Canvas MVEAS. + // This will be passed to the view and made available to the JavaScript components. + $extIdentities = TableRegistry::getTableLocator()->get('ExternalIdentities'); + $personId = $this->request->getParam('pass.0'); + $eisLookupTable = $extIdentities + ->find('list', [ + 'keyField' => 'id', + 'valueField' => 'description', ]) - ->all(); - - // Create a lookup table for badging EIS descriptions on Person Canvas MVEAS - $eisLookupTable = []; - foreach ($externalIdentitySources as $extIdentity) { - if (!empty($extIdentity->ext_identity_source_record) && - !empty($extIdentity->ext_identity_source_record->external_identity_source)) { - $eisLookupTable[$extIdentity->id] = $extIdentity->ext_identity_source_record->external_identity_source->description; - } - } + ->select([ + 'id' => 'ExternalIdentities.id', + 'description' => 'ExternalIdentitySources.description', + ]) + ->innerJoinWith('ExtIdentitySourceRecords.ExternalIdentitySources') + ->where([ + 'ExternalIdentities.person_id' => $personId, + ]) + ->enableHydration(false) + ->toArray(); $this->set('vv_external_identity_sources', $eisLookupTable); } + return parent::beforeRender($event); } } \ No newline at end of file From 9da9e57b2a29199c3a2c2933282e6adafc8c457c Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Tue, 17 Feb 2026 15:12:37 -0500 Subject: [PATCH 5/7] Move EIS badges to center column on Person Canvas MVEAs (CFM-417) --- app/webroot/css/co-responsive.css | 9 +++ .../js/comanage/components/mvea/mvea-item.js | 62 ++++++++++++------- .../js/comanage/components/mvea/mveas.js | 7 ++- 3 files changed, 56 insertions(+), 22 deletions(-) diff --git a/app/webroot/css/co-responsive.css b/app/webroot/css/co-responsive.css index cc5aa9ad2..cd479c248 100644 --- a/app/webroot/css/co-responsive.css +++ b/app/webroot/css/co-responsive.css @@ -117,6 +117,15 @@ align-items: center; min-height: 2.5em; } + .co-cards .cm-mvea-with-eis .field-data-container { + grid-template-columns: 2fr 100px 1fr; + } + .co-cards .field-data.data-eis { + padding: 0.25em 0; + } + .co-cards .field-data.data-eis .badge { + margin: 0; + } #mvea-canvas-roles .field-data-container { grid-template-columns: 1fr 1fr 2fr auto; } diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index 0193fd060..eccc3056e 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -60,6 +60,10 @@ export default { this.$parent.$parent.launchModal(this.core.mveaTitle, this.mveaLink, componentReference); }); }, + hasEis() { + return this.core?.externalIdentitySources && + Object.keys(this.core.externalIdentitySources).length > 0; + }, getEisDescription(externalIdentityId) { return externalIdentityId ? this.core?.externalIdentitySources[externalIdentityId] : null; } @@ -104,15 +108,17 @@ export default { :valueToCopy="this.mvea.honorific + ' ' + this.mvea.given + ' ' + this.mvea.middle + ' ' + this.mvea.family + ' ' + this.mvea.suffix"> +
+ + {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} + +
{{ this.txt['field.primary'] }} {{ this.mvea.type.display_name }} {{ calcLangHR(this.mvea.language) }} - - {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} -
@@ -137,14 +143,16 @@ export default { :valueToCopy="this.mvea.mail">
-
- {{ this.txt['field.unverified'] }} - {{ this.mvea.type.display_name }} +
{{ getEisDescription(this.mvea?.source_email_address?.external_identity_id) }}
+
+ {{ this.txt['field.unverified'] }} + {{ this.mvea.type.display_name }} +
  • @@ -155,15 +163,17 @@ export default { :valueToCopy="this.mvea.identifier">
  • -
    - {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} - - {{ this.mvea.type.display_name }} +
    {{ getEisDescription(mvea?.source_identifier?.external_identity_id) }}
    +
    + {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} + + {{ this.mvea.type.display_name }} +
  • @@ -175,13 +185,15 @@ export default { :valueToCopy="this.mvea.value">
  • -
    - {{ this.mvea.tag }} +
    {{ getEisDescription(this.mvea?.source_ad_hoc_attribute?.external_identity_id) }}
    +
    + {{ this.mvea.tag }} +
  • @@ -202,13 +214,15 @@ export default { :valueToCopy="this.mveaAddress">
  • -
    - {{ this.mvea.type.display_name }} +
    {{ getEisDescription(mvea?.source_address?.external_identity_id) }}
    +
    + {{ this.mvea.type.display_name }} +
  • @@ -219,13 +233,15 @@ export default { :valueToCopy="this.mvea.country_code+this.mvea.area_code+this.mvea.number">
  • -
    - {{ this.mvea.type.display_name }} +
    {{ getEisDescription(mvea?.source_telephone_number?.external_identity_id) }}
    +
    + {{ this.mvea.type.display_name }} +
  • @@ -237,13 +253,15 @@ export default { :valueToCopy="this.mvea.url">
  • -
    - {{ this.mvea.type.display_name }} +
    {{ getEisDescription(mvea?.source_url?.external_identity_id) }}
    +
    + {{ this.mvea.type.display_name }} +
  • @@ -254,13 +272,15 @@ export default { :valueToCopy="this.mvea.pronouns">
  • -
    - {{ this.mvea.type.display_name }} +
    {{ getEisDescription(mvea?.source_pronoun?.external_identity_id) }}
    +
    + {{ 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 0f50bac7c..908c32e77 100644 --- a/app/webroot/js/comanage/components/mvea/mveas.js +++ b/app/webroot/js/comanage/components/mvea/mveas.js @@ -46,6 +46,10 @@ export default { computed: { mveaModel: function() { return this.mveas?.[camelize(this.core.mveaType)] + }, + hasEis() { + return this.core?.externalIdentitySources && + Object.keys(this.core.externalIdentitySources).length > 0; } }, methods: { @@ -54,7 +58,8 @@ export default { } }, template: ` -
      +
        Date: Fri, 20 Feb 2026 10:37:11 -0500 Subject: [PATCH 6/7] Convert MVEA cards into tables (CFM-417) --- app/webroot/css/co-base.css | 6 + app/webroot/css/co-responsive.css | 19 +- .../js/comanage/components/mvea/mvea-item.js | 176 +++++++++--------- .../js/comanage/components/mvea/mveas.js | 19 +- 4 files changed, 120 insertions(+), 100 deletions(-) diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css index af2698b1a..71795e41e 100644 --- a/app/webroot/css/co-base.css +++ b/app/webroot/css/co-base.css @@ -1374,6 +1374,12 @@ h2.card-title a { #main h2.card-title a:hover { text-decoration: none; } +table.cm-mvea td { + width: 25%; +} +table.cm-mvea td:first-child { + width: 50%; +} .field-data-container .id-col { text-align: right; padding-right: 1em; diff --git a/app/webroot/css/co-responsive.css b/app/webroot/css/co-responsive.css index cd479c248..9b2e3a21e 100644 --- a/app/webroot/css/co-responsive.css +++ b/app/webroot/css/co-responsive.css @@ -112,22 +112,27 @@ } /* PERSON CANVAS / CARDS */ .co-cards .field-data-container { - display: grid; - grid-template-columns: 1fr 1fr; - align-items: center; - min-height: 2.5em; + vertical-align: center; + /*display: grid;*/ + /*grid-template-columns: 1fr 1fr;*/ + /*align-items: center;*/ + /*min-height: 2.5em;*/ + } + .co-cards th { + font-size: 0.8rem; + padding: 0.25rem 0.75rem; } .co-cards .cm-mvea-with-eis .field-data-container { - grid-template-columns: 2fr 100px 1fr; + /*grid-template-columns: 2fr 100px 1fr;*/ } .co-cards .field-data.data-eis { - padding: 0.25em 0; + /*padding: 0.25em 0;*/ } .co-cards .field-data.data-eis .badge { margin: 0; } #mvea-canvas-roles .field-data-container { - grid-template-columns: 1fr 1fr 2fr auto; + /*grid-template-columns: 1fr 1fr 2fr auto;*/ } /* PAGINATION */ #pagination { diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index eccc3056e..30e74acd1 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -73,8 +73,8 @@ export default { }, template: ` -
      • -
        + + -
        -
        + + + class="mvea-eis"> {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} -
        -
        -
        - {{ this.txt['field.primary'] }} - {{ this.mvea.type.display_name }} - {{ calcLangHR(this.mvea.language) }} -
        + + + {{ this.mvea.type.display_name }} -
        -
      • + + -
      • -
        + + {{ this.mvea.mail }} + {{ this.txt['field.unverified'] }} -
        -
        + + + class="mvea-eis"> {{ getEisDescription(this.mvea?.source_email_address?.external_identity_id) }} -
        -
        - {{ this.txt['field.unverified'] }} - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ this.mvea.type.display_name }} + + -
      • -
        - {{ this.mvea.identifier }} + + + {{ this.mvea.identifier }} + {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} + -
        -
        + + + class="mvea-eis"> {{ getEisDescription(mvea?.source_identifier?.external_identity_id) }} -
        -
        - {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} - - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ this.mvea.type.display_name }} + + -
      • - -
        + + + class="mvea-eis"> {{ getEisDescription(this.mvea?.source_ad_hoc_attribute?.external_identity_id) }} -
        -
        - {{ this.mvea.tag }} -
        -
      • + + + {{ this.mvea.tag }} + + -
      • - -
        + + + class="mvea-eis"> {{ getEisDescription(mvea?.source_address?.external_identity_id) }} -
        -
        - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ this.mvea.type.display_name }} + + -
      • - -
        + + + class="mvea-eis"> {{ getEisDescription(mvea?.source_telephone_number?.external_identity_id) }} -
        -
        - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ this.mvea.type.display_name }} + + -
      • - -
        + + + class="mvea-eis"> {{ getEisDescription(mvea?.source_url?.external_identity_id) }} -
        -
        - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ this.mvea.type.display_name }} + + -
      • - -
        + + + class="mvea-eis"> {{ getEisDescription(mvea?.source_pronoun?.external_identity_id) }} -
        -
        - {{ this.mvea.type.display_name }} -
        -
      • + + + {{ 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 908c32e77..b2f96ceb5 100644 --- a/app/webroot/js/comanage/components/mvea/mveas.js +++ b/app/webroot/js/comanage/components/mvea/mveas.js @@ -58,7 +58,7 @@ export default { } }, template: ` -
          -
        • -
          {{ this.txt['information.global.attributes.none'] }}
          -
        • -
        + + + + + + + + + + {{ this.txt['information.global.attributes.none'] }} + + + ` } \ No newline at end of file From 5d75b968e02dd3591d98b432aae129d29601b6c4 Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Wed, 11 Mar 2026 15:38:08 -0400 Subject: [PATCH 7/7] Improve MVEA table layout (CFM-417) --- app/resources/locales/en_US/field.po | 3 + app/src/View/Helper/VueHelper.php | 6 +- app/templates/element/mveaCanvas.php | 2 +- app/webroot/css/co-base.css | 10 +- app/webroot/css/co-responsive.css | 14 +- .../js/comanage/components/mvea/mvea-item.js | 283 +++++++++--------- .../js/comanage/components/mvea/mveas.js | 14 +- 7 files changed, 174 insertions(+), 158 deletions(-) diff --git a/app/resources/locales/en_US/field.po b/app/resources/locales/en_US/field.po index 5afbfafcb..61fdcbf3b 100644 --- a/app/resources/locales/en_US/field.po +++ b/app/resources/locales/en_US/field.po @@ -197,6 +197,9 @@ msgstr "Full Name" msgid "hostname" msgstr "Hostname" +msgid "key" +msgstr "Key" + msgid "language" msgstr "Language" diff --git a/app/src/View/Helper/VueHelper.php b/app/src/View/Helper/VueHelper.php index 3e5043d3f..d8ea9b672 100644 --- a/app/src/View/Helper/VueHelper.php +++ b/app/src/View/Helper/VueHelper.php @@ -53,13 +53,17 @@ class VueHelper extends Helper { ], 'field' => [ 'email', + 'key', 'login', 'primary', 'datepicker.chooseTime', 'datepicker.hour', 'datepicker.minute', + 'source', 'status', + 'type', 'unverified', + 'value' ], 'information' => [ 'global.attributes.none', @@ -98,7 +102,7 @@ class VueHelper extends Helper { ]; /** - * Helper which will produce an array of configured locales + * Helper which will produce an array of configured locales from the locales_list above. * * @param string $lang The language of the locale * diff --git a/app/templates/element/mveaCanvas.php b/app/templates/element/mveaCanvas.php index 48c6474cd..9da27119e 100644 --- a/app/templates/element/mveaCanvas.php +++ b/app/templates/element/mveaCanvas.php @@ -92,7 +92,7 @@ } ?>
        -
        +
        diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css index 71795e41e..fdfcfd962 100644 --- a/app/webroot/css/co-base.css +++ b/app/webroot/css/co-base.css @@ -1375,9 +1375,15 @@ h2.card-title a { text-decoration: none; } table.cm-mvea td { - width: 25%; + width: 30%; } table.cm-mvea td:first-child { + width: 70%; +} +table.cm-mvea.cm-mvea-with-eis td { + width: 25%; +} +table.cm-mvea.cm-mvea-with-eis td:first-child { width: 50%; } .field-data-container .id-col { @@ -2417,7 +2423,7 @@ code.source-record { align-items: center; } button.cm-copy-value-button { - display: flex; + display: none; /* turn on at 576px */ align-items: center; gap: 0.1em; padding: 0 0.5em 0.2em; diff --git a/app/webroot/css/co-responsive.css b/app/webroot/css/co-responsive.css index 9b2e3a21e..5564640e5 100644 --- a/app/webroot/css/co-responsive.css +++ b/app/webroot/css/co-responsive.css @@ -113,26 +113,16 @@ /* PERSON CANVAS / CARDS */ .co-cards .field-data-container { vertical-align: center; - /*display: grid;*/ - /*grid-template-columns: 1fr 1fr;*/ - /*align-items: center;*/ - /*min-height: 2.5em;*/ } .co-cards th { font-size: 0.8rem; padding: 0.25rem 0.75rem; } - .co-cards .cm-mvea-with-eis .field-data-container { - /*grid-template-columns: 2fr 100px 1fr;*/ - } - .co-cards .field-data.data-eis { - /*padding: 0.25em 0;*/ - } .co-cards .field-data.data-eis .badge { margin: 0; } - #mvea-canvas-roles .field-data-container { - /*grid-template-columns: 1fr 1fr 2fr auto;*/ + button.cm-copy-value-button { + display: flex; } /* PAGINATION */ #pagination { diff --git a/app/webroot/js/comanage/components/mvea/mvea-item.js b/app/webroot/js/comanage/components/mvea/mvea-item.js index 30e74acd1..d60aa44a7 100644 --- a/app/webroot/js/comanage/components/mvea/mvea-item.js +++ b/app/webroot/js/comanage/components/mvea/mvea-item.js @@ -47,6 +47,9 @@ export default { }, mveaAddress: function() { return this.mvea.room + ' ' + this.mvea.street + ' ' + this.mvea.locality + ' ' + this.mvea.state + ' ' + this.mvea.postal_code + ' ' + this.mvea.country; + }, + hasEis: function() { + return this.core?.externalIdentitySources && Object.keys(this.core.externalIdentitySources).length > 0; } }, methods: { @@ -60,10 +63,6 @@ export default { this.$parent.$parent.launchModal(this.core.mveaTitle, this.mveaLink, componentReference); }); }, - hasEis() { - return this.core?.externalIdentitySources && - Object.keys(this.core.externalIdentitySources).length > 0; - }, getEisDescription(externalIdentityId) { return externalIdentityId ? this.core?.externalIdentitySources[externalIdentityId] : null; } @@ -74,75 +73,96 @@ export default { template: ` - - - - - {{ this.mvea.display_name }} - - - {{ this.mvea.family }} {{ this.mvea.given }} - - - {{ this.mvea.honorific }} {{ this.mvea.given }} {{ this.mvea.middle }} {{ this.mvea.family }} {{ this.mvea.suffix }} - - -
        - {{ this.txt['field.primary'] }} - {{ calcLangHR(this.mvea.language) }} + + + + +
        + {{ this.mvea.type.display_name }} + + + +
        - - - - - - - - - {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} - - - - {{ this.mvea.type.display_name }} - - - - +
        + + {{ getEisDescription(this.mvea?.source_name?.external_identity_id) }} + + + +
        - - {{ this.mvea.mail }} - {{ this.txt['field.unverified'] }} - - + +
        + {{ this.mvea.mail }} + {{ this.txt['field.unverified'] }} + + +
        + + + {{ this.mvea.type.display_name }} - - {{ this.mvea.type.display_name }} - - - {{ this.mvea.identifier }} - {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} - - - + +
        + {{ this.mvea.identifier }} {{ this.txt['enumeration.SuspendableStatusEnum.S'] }} + + +
        + + + {{ this.mvea.type.display_name }} - - {{ this.mvea.type.display_name }} - - - {{ this.mvea.value != '' ? this.mvea.value : this.txt['information.global.value.none'] }} - - + + + + + {{ this.mvea.tag }} - - {{ this.mvea.tag }} - - -
        - - {{ this.mvea.room }} {{ this.mvea.street }} - + +
        + +
        + + + {{ this.mvea.type.display_name }} - - {{ this.mvea.type.display_name }} - - - {{ this.mvea.country_code }} {{ this.mvea.area_code }} {{ this.mvea.number }} - - + + + + + {{ this.mvea.type.display_name }} - - {{ this.mvea.type.display_name }} - - - {{ this.mvea.description != '' && this.mvea.description != null ? this.mvea.description : this.mvea.url }} - open_in_new - - + + + + + {{ this.mvea.type.display_name }} - - {{ this.mvea.type.display_name }} - - - {{ this.mvea.pronouns }} - - + + + + + {{ this.mvea.type.display_name }} - - {{ 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 b2f96ceb5..6f3b1f997 100644 --- a/app/webroot/js/comanage/components/mvea/mveas.js +++ b/app/webroot/js/comanage/components/mvea/mveas.js @@ -66,13 +66,13 @@ export default { v-for='mvea in mveaModel' :mvea="mvea"> - - - - - - - + + + {{ this.txt['field.value'] }} + {{ this.core.mveaType == 'ad_hoc_attributes' ? this.txt['field.key'] : this.txt['field.type'] }} + {{ this.txt['field.source'] }} + + {{ this.txt['information.global.attributes.none'] }}