From 9e5974b711fe0f167a23e90ce7f6e4e4de73ea91 Mon Sep 17 00:00:00 2001 From: Arlen Johnson Date: Tue, 4 Apr 2023 14:34:49 -0400 Subject: [PATCH 01/18] Provide modal add/edit for person canvas vuejs components (CFM-249) --- app/src/Controller/MVEAController.php | 6 + app/src/View/Helper/VueHelper.php | 3 + app/templates/element/javascript.php | 11 ++ app/templates/element/menuAction.php | 12 +- app/templates/element/mveaJs.php | 16 +- app/templates/element/mveaModal.php | 110 ++++++++++++++ app/templates/layout/iframe.php | 137 ++++++++++++++++++ app/webroot/css/co-base.css | 30 ++++ .../js/comanage/components/mvea/mvea-item.js | 7 +- .../js/comanage/components/mvea/mvea-modal.js | 49 +++++++ .../js/comanage/components/mvea/mveas.js | 5 + 11 files changed, 378 insertions(+), 8 deletions(-) create mode 100644 app/templates/element/mveaModal.php create mode 100644 app/templates/layout/iframe.php create mode 100644 app/webroot/js/comanage/components/mvea/mvea-modal.js diff --git a/app/src/Controller/MVEAController.php b/app/src/Controller/MVEAController.php index 7a5fb97f0..aaa648ec6 100644 --- a/app/src/Controller/MVEAController.php +++ b/app/src/Controller/MVEAController.php @@ -121,6 +121,12 @@ public function beforeRender(\Cake\Event\EventInterface $event) { $this->set('vv_default_type', $settings->$defaultTypeField); } } + + // Check to see if we're in iframe mode + $isIframe = $this->request->getQuery('iframe',false); + if($isIframe){ + $this->viewBuilder()->setLayout('iframe'); + } return parent::beforeRender($event); } diff --git a/app/src/View/Helper/VueHelper.php b/app/src/View/Helper/VueHelper.php index 7230ba524..37672e4f6 100644 --- a/app/src/View/Helper/VueHelper.php +++ b/app/src/View/Helper/VueHelper.php @@ -45,6 +45,9 @@ class VueHelper extends Helper { 'information' => [ 'global.value.none', 'datepicker.hour' + ], + 'operation' => [ + 'close' ] ]; diff --git a/app/templates/element/javascript.php b/app/templates/element/javascript.php index 248eb605d..65f23bb54 100644 --- a/app/templates/element/javascript.php +++ b/app/templates/element/javascript.php @@ -204,6 +204,17 @@ }); } }); + + // Person canvas "Add" links + // Launch the MVEA modal window, load the Add url, and refresh the appropriate component when done. + $('#person-actions .person-actions-add-menu ul a').click(function(e) { + e.preventDefault(); + e.stopPropagation(); + var title = $(this).find('.action-link-text').text(); + var url = $(this).prop('href'); + var componentRef = 'mvea' + $(this).data('cm-mveatype'); + window.cmMveaModal.launch(title,url,componentRef); + }); // Bulk edit switch $('#bulk-edit-switch').click(function() { diff --git a/app/templates/element/menuAction.php b/app/templates/element/menuAction.php index ee4549b6d..b712d81e9 100644 --- a/app/templates/element/menuAction.php +++ b/app/templates/element/menuAction.php @@ -61,10 +61,18 @@ class=""> ?>