From 1b6476e6c432a965f87d49027fddce9fd01e8ea3 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 22 Sep 2017 16:52:00 -0700 Subject: [PATCH] CRM-21179 - visual-bundle.css - Generate custom build of dc.css --- CRM/Utils/VisualBundle.php | 29 ++++++++++++++++++++++++++++- Civi/Core/Container.php | 3 ++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/CRM/Utils/VisualBundle.php b/CRM/Utils/VisualBundle.php index 5f52b863f6..27128b1760 100644 --- a/CRM/Utils/VisualBundle.php +++ b/CRM/Utils/VisualBundle.php @@ -39,6 +39,7 @@ class CRM_Utils_VisualBundle { public static function register() { Civi::resources()->addScriptUrl(Civi::service('asset_manager')->getUrl('visual-bundle.js')); + Civi::resources()->addStyleUrl(Civi::service('asset_manager')->getUrl('visual-bundle.css')); } /** @@ -48,7 +49,7 @@ class CRM_Utils_VisualBundle { * @see CRM_Utils_hook::buildAsset() * @see \Civi\Core\AssetBuilder */ - public static function buildAsset($event) { + public static function buildAssetJs($event) { if ($event->asset !== 'visual-bundle.js') { return; } @@ -80,4 +81,30 @@ class CRM_Utils_VisualBundle { $event->content = implode("\n", $content); } + /** + * Generate asset content (when accessed via AssetBuilder). + * + * @param \Civi\Core\Event\GenericHookEvent $event + * @see CRM_Utils_hook::buildAsset() + * @see \Civi\Core\AssetBuilder + */ + public static function buildAssetCss($event) { + if ($event->asset !== 'visual-bundle.css') { + return; + } + + $files = array( + '[civicrm.bower]/dc-2.1.x/dc.min.css', + ); + + $content = array(); + foreach ($files as $file) { + $content[] = "// File: $file"; + $content[] = file_get_contents(Civi::paths()->getPath($file)); + } + + $event->mimeType = 'text/css'; + $event->content = implode("\n", $content); + } + } diff --git a/Civi/Core/Container.php b/Civi/Core/Container.php index 3adf703c9e..ffe1bfbe3b 100644 --- a/Civi/Core/Container.php +++ b/Civi/Core/Container.php @@ -298,7 +298,8 @@ class Container { $dispatcher->addListener('hook_civicrm_eventDefs', array('\Civi\API\Events', 'hookEventDefs')); $dispatcher->addListener('hook_civicrm_eventDefs', array('\Civi\Core\Event\SystemInstallEvent', 'hookEventDefs')); $dispatcher->addListener('hook_civicrm_buildAsset', array('\Civi\Angular\Page\Modules', 'buildAngularModules')); - $dispatcher->addListener('hook_civicrm_buildAsset', array('\CRM_Utils_VisualBundle', 'buildAsset')); + $dispatcher->addListener('hook_civicrm_buildAsset', array('\CRM_Utils_VisualBundle', 'buildAssetJs')); + $dispatcher->addListener('hook_civicrm_buildAsset', array('\CRM_Utils_VisualBundle', 'buildAssetCss')); $dispatcher->addListener('civi.dao.postInsert', array('\CRM_Core_BAO_RecurringEntity', 'triggerInsert')); $dispatcher->addListener('civi.dao.postUpdate', array('\CRM_Core_BAO_RecurringEntity', 'triggerUpdate')); $dispatcher->addListener('civi.dao.postDelete', array('\CRM_Core_BAO_RecurringEntity', 'triggerDelete')); -- 2.25.1