diff --git a/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php b/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php index ff9fad33c23383669b16995e6d9044f604e793b6..31a4017d4c686a405e7d1a21c8662820dec00f73 100644 --- a/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php +++ b/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php @@ -53,10 +53,10 @@ class LayoutClass extends \VuFind\View\Helper\AbstractLayoutClass { switch ($class) { case 'mainbody': - return $this->left ? 'col-md-9 col-md-pull-3' : 'col-md-9'; + return $this->left ? 'col-md-9 col-md-push-3' : 'col-md-9'; case 'sidebar': return $this->left - ? 'sidebar col-md-3 col-md-push-9 hidden-print' + ? 'sidebar col-md-3 col-md-pull-9 hidden-print' : 'sidebar col-md-3 hidden-print'; } } diff --git a/module/VuFindTheme/src/VuFindTheme/Initializer.php b/module/VuFindTheme/src/VuFindTheme/Initializer.php index 36035ee24811f89ca92ef9bcb024423d8398bf9c..a0185b7b495bcb8f2d3912eafff208d8c25d3340 100644 --- a/module/VuFindTheme/src/VuFindTheme/Initializer.php +++ b/module/VuFindTheme/src/VuFindTheme/Initializer.php @@ -341,7 +341,7 @@ class Initializer $resources->addLessCss($currentThemeInfo['less']); } if (isset($currentThemeInfo['scss'])) { - $resources->addSassCss($currentThemeInfo['scss']); + $resources->addScssCss($currentThemeInfo['scss']); } if (isset($currentThemeInfo['css'])) { $resources->addCss($currentThemeInfo['css']); diff --git a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php index 213e491e2a0f5d211d9c97113a5b44aef8f2de89..9a06ac11646ee8b32f21b21c0671f441a8b339ac 100644 --- a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php +++ b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php @@ -44,13 +44,25 @@ class ResourceContainer * @var array */ protected $less = array(); - /** - * Sass CSS files + * Less CSS active boolean * * @var array */ - protected $sass = array(); + protected $lessActive = false; + + /** + * scss CSS files + * + * @var array + */ + protected $scss = array(); + /** + * SCSS CSS active boolean + * + * @var array + */ + protected $scssActive = false; /** * CSS files @@ -99,25 +111,35 @@ class ResourceContainer if (!is_array($less) && !is_a($less, 'Traversable')) { $less = array($less); } - foreach ($less as $current) { - $this->less[] = $current; + $this->lessActive = !isset($less['active']) || $less['active'] === true; + if ($this->lessActive) { + unset($less['active']); + foreach ($less as $index=>$current) { + $this->less[$index] = $current; + $this->removeCSS($current); + } } } /** - * Add a Sass CSS file. + * Add a scss CSS file. * - * @param array|string $sass Sass CSS file (or array of Sass CSS files) to add + * @param array|string $scss scss CSS file (or array of scss CSS files) to add * * @return void */ - public function addSassCss($sass) + public function addScssCss($scss) { - if (!is_array($sass) && !is_a($sass, 'Traversable')) { - $sass = array($sass); + if (!is_array($scss) && !is_a($scss, 'Traversable')) { + $scss = array($scss); } - foreach ($sass as $current) { - $this->sass[] = $current; + $this->scssActive = !isset($scss['active']) || $scss['active'] === true; + if ($this->scssActive) { + unset($scss['active']); + foreach ($scss as $index=>$current) { + $this->scss[$index] = $current; + $this->removeCSS($current); + } } } @@ -135,7 +157,9 @@ class ResourceContainer $css = array($css); } foreach ($css as $current) { - $this->css[] = $current; + if (!$this->activeInLess($current) && !$this->activeInScss($current)) { + $this->css[] = $current; + } } } @@ -167,13 +191,13 @@ class ResourceContainer return array_unique($this->less); } /** - * Get Sass CSS files. + * Get SCSS CSS files. * * @return array */ - public function getSassCss() + public function getScssCss() { - return array_unique($this->sass); + return array_unique($this->scss); } /** @@ -261,4 +285,46 @@ class ResourceContainer { return $this->generator; } + + /** + * Check if a CSS file is being dynamically compiled in LESS + * + * @return boolean + */ + private function activeInLess($file) + { + if (empty($this->less) || $this->lessActive === false) { + return false; + } + list($lessFile,) = explode('.', $file); + $lessFile .= '.less'; + return in_array($lessFile, $this->less, true) ? true : false; + } + + /** + * Check if a CSS file is being dynamically compiled in SCSS + * + * @return boolean + */ + private function activeInScss($file) + { + if (empty($this->scss) || $this->scssActive === false) { + return false; + } + list($scssFile,) = explode('.', $file); + $scssFile .= '.scss'; + return in_array($scssFile, $this->scss, true) ? true : false; + } + + /** + * Check if a CSS file is being dynamically compiled in SCSS + * + * @return boolean + */ + private function removeCSS($file) + { + list($name, ) = explode('.', $file); + $name .= '.css'; + unset($this->css[array_search($name, $this->css)]); + } } diff --git a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php index 8e274faf5184ab908f5bf56a384d060b03df15b0..3500a2fa4c62b3fb1847ac1b35fdd5bcaf7b33eb 100644 --- a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php +++ b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php @@ -87,7 +87,7 @@ class HeadThemeResources extends \Zend\View\Helper\AbstractHelper isset($parts[2]) ? trim($parts[2]) : false ); } - + // Compile and load LESS (make sure we prepend them in the appropriate order // theme resources should load before extras added by individual templates): foreach (array_reverse($this->container->getLessCss()) as $current) { @@ -96,8 +96,8 @@ class HeadThemeResources extends \Zend\View\Helper\AbstractHelper // Compile and load SASS (make sure we prepend them in the appropriate order // theme resources should load before extras added by individual templates): - foreach (array_reverse($this->container->getSassCss()) as $current) { - $headLink()->addSassStylesheet($current); + foreach (array_reverse($this->container->getScssCss()) as $current) { + $headLink()->addScssStylesheet($current); } // Load Javascript (same ordering considerations as CSS, above): diff --git a/themes/bootprint3/less/icons.less b/themes/bootprint3/less/icons.less index 7b47d305f12dbe8e3997772bf335105bd2da8d28..b424c63a9279465bd89f1913484f2f53274bf20f 100644 --- a/themes/bootprint3/less/icons.less +++ b/themes/bootprint3/less/icons.less @@ -14,7 +14,7 @@ .fa-x {background-image:url('../../images/icons/page_white.png'); &:extend(.bp-icon);} i.fa-archive {background-image:url('../../images/icons/package.png'); &:extend(.bp-icon);} i.fa-asterisk {background-image:url('../../images/icons/list.png'); &:extend(.bp-icon);} -i.fa-atlas {background-image:url('../../images/icons/map.png'); &:extend(.bp-icon);} +i.fa-atlas {background-image:url('../../images/icons/map.png'); &:extend(.bp-icon);} i.fa-bell {background-image:url('../../images/icons/bell.png'); &:extend(.bp-icon);} i.fa-book {background-image:url('../../images/icons/book.png'); &:extend(.bp-icon);} i.fa-bookbag-add {background-image:url('../../images/icons/bookbag_add.png'); &:extend(.bp-icon);} diff --git a/themes/bootstrap3/less/bootstrap.less b/themes/bootstrap3/less/bootstrap.less index 0be356a5bd6dbf9a3852c6d48387972aa48b3a6a..6aee9ca1eaa226cec3a3dcd6d0f4b4090fdd8184 100644 --- a/themes/bootstrap3/less/bootstrap.less +++ b/themes/bootstrap3/less/bootstrap.less @@ -138,6 +138,11 @@ label.list-group-item {border-radius:0;font-weight:normal;margin-top:0;padding-l } } } +.list-group-item.active, .badge { + i.fa { + cursor:inherit; + } +} /* --- Slider accessibility --- */ .slider { diff --git a/themes/bootstrap3/theme.config.php b/themes/bootstrap3/theme.config.php index d7469ac25a4d229e74034f6630ed7f5d1ad80169..c6421cc660f62d911403e4bac4b9e82721d6dc69 100644 --- a/themes/bootstrap3/theme.config.php +++ b/themes/bootstrap3/theme.config.php @@ -20,10 +20,12 @@ return array( 'lightbox.js', ), 'less' => array( - //'compiled.less' + 'active' => true, + 'compiled.less' ), 'scss' => array( - //'compiled.scss' + 'active' => false, + 'compiled.scss' ), 'favicon' => 'vufind-favicon.ico', 'helpers' => array(