mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-10-28 08:46:45 +01:00
store preset in asset:// rather than admin plugin
This commit is contained in:
@@ -615,7 +615,7 @@ class AdminPlugin extends Plugin
|
|||||||
$assets->setCssPipeline(false);
|
$assets->setCssPipeline(false);
|
||||||
|
|
||||||
// Compile a missing preset.css file
|
// Compile a missing preset.css file
|
||||||
$preset_css = 'plugin://admin/themes/grav/css-compiled/preset.css';
|
$preset_css = 'asset://admin-preset.css';
|
||||||
$preset_path = $this->grav['locator']->findResource($preset_css);
|
$preset_path = $this->grav['locator']->findResource($preset_css);
|
||||||
if (!$preset_path) {
|
if (!$preset_path) {
|
||||||
$this->grav['admin-whitebox']->compileScss($this->config->get('plugins.admin.whitebox'));
|
$this->grav['admin-whitebox']->compileScss($this->config->get('plugins.admin.whitebox'));
|
||||||
|
|||||||
@@ -2165,20 +2165,20 @@ class AdminController extends AdminBaseController
|
|||||||
|
|
||||||
$preview = $this->data['preview'] ?? false;
|
$preview = $this->data['preview'] ?? false;
|
||||||
$data = ['color_scheme' => $this->data['whitebox']['color_scheme'] ?? null];
|
$data = ['color_scheme' => $this->data['whitebox']['color_scheme'] ?? null];
|
||||||
|
$output_file = $preview ? 'admin-preset.css' : 'admin-preset__tmp.css';
|
||||||
|
|
||||||
if ($preview) {
|
$options = [
|
||||||
// send through some tmp filenames
|
'input' => 'plugin://admin/themes/grav/scss/preset.scss',
|
||||||
[$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data, ['filename' => 'preset_tmp']);
|
'output' => 'asset://' .$output_file
|
||||||
} else {
|
];
|
||||||
[$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data);
|
|
||||||
}
|
[$compile_status, $msg] = $this->grav['admin-whitebox']->compileScss($data, $options);
|
||||||
|
|
||||||
$previewSuffix = $preview ? '_tmp' : '';
|
|
||||||
$json_response = [
|
$json_response = [
|
||||||
'status' => $compile_status ? 'success' : 'error',
|
'status' => $compile_status ? 'success' : 'error',
|
||||||
'message' => ($preview ? 'Preview ' : 'SCSS ') . $msg,
|
'message' => ($preview ? 'Preview ' : 'SCSS ') . $msg,
|
||||||
'files' => [
|
'files' => [
|
||||||
'color_scheme' => $this->grav['twig']->twig_vars['base_url_relative']. "/user/plugins/admin/themes/grav/css-compiled/preset${previewSuffix}.css"
|
'color_scheme' => Utils::url($options['output'])
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
namespace Grav\Plugin\Admin;
|
namespace Grav\Plugin\Admin;
|
||||||
|
|
||||||
use Grav\Common\Grav;
|
use Grav\Common\Grav;
|
||||||
|
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
|
||||||
|
|
||||||
class Whitebox
|
class Whitebox
|
||||||
{
|
{
|
||||||
@@ -14,7 +15,10 @@ class Whitebox
|
|||||||
$this->scss = new ScssCompiler();
|
$this->scss = new ScssCompiler();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function compileScss($config, $options = ['filename' => 'preset'])
|
public function compileScss($config, $options = [
|
||||||
|
'input' => 'plugin://admin/themes/grav/scss/preset.scss',
|
||||||
|
'output' => 'asset://admin-preset.css'
|
||||||
|
])
|
||||||
{
|
{
|
||||||
if (is_array($config)) {
|
if (is_array($config)) {
|
||||||
$color_scheme = $config['color_scheme'];
|
$color_scheme = $config['color_scheme'];
|
||||||
@@ -23,17 +27,20 @@ class Whitebox
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($color_scheme) {
|
if ($color_scheme) {
|
||||||
|
/** @var UniformResourceLocator $locator */
|
||||||
$locator = $this->grav['locator'];
|
$locator = $this->grav['locator'];
|
||||||
|
|
||||||
$admin_in_base = $locator->findResource('plugin://admin/themes/grav/scss');
|
$input_scss = $locator->findResource($options['input']);
|
||||||
$custom_out_base = $locator->findResource('plugin://admin/themes/grav/css-compiled');
|
$output_css = $locator->findResource(($options['output']), true, true);
|
||||||
|
|
||||||
$preset_in_path = $admin_in_base .'/preset.scss';
|
$input_path = dirname($input_scss);
|
||||||
$preset_out_path = $custom_out_base . '/'. $options['filename'] . '.css';
|
$imports = [$locator->findResource('plugin://admin/themes/grav/scss')];
|
||||||
|
if (!in_array($input_path, $imports)) {
|
||||||
|
$imports[] = $input_path;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->compilePresetScss($color_scheme, $preset_in_path, $preset_out_path);
|
$this->compilePresetScss($color_scheme, $input_scss, $output_css, $imports);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return [false, $e->getMessage()];
|
return [false, $e->getMessage()];
|
||||||
}
|
}
|
||||||
@@ -44,12 +51,12 @@ class Whitebox
|
|||||||
return [false, ' Could not be recompiled, missing color scheme...'];
|
return [false, ' Could not be recompiled, missing color scheme...'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function compilePresetScss($colors, $in_path, $out_path)
|
public function compilePresetScss($colors, $in_path, $out_path, $imports)
|
||||||
{
|
{
|
||||||
$compiler = $this->scss->reset();
|
$compiler = $this->scss->reset();
|
||||||
|
|
||||||
$compiler->setVariables($colors['colors'] + $colors['accents']);
|
$compiler->setVariables($colors['colors'] + $colors['accents']);
|
||||||
$compiler->setImportPaths(dirname($in_path));
|
$compiler->setImportPaths($imports);
|
||||||
$compiler->compile($in_path, $out_path);
|
$compiler->compile($in_path, $out_path);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1300
themes/grav/css-compiled/preset.css
vendored
1300
themes/grav/css-compiled/preset.css
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{% do assets.addCss(theme_url~'/css-compiled/nucleus.css') %}
|
{% do assets.addCss(theme_url~'/css-compiled/nucleus.css') %}
|
||||||
{% do assets.addCss(theme_url~'/css-compiled/template.css') %}
|
{% do assets.addCss(theme_url~'/css-compiled/template.css') %}
|
||||||
{% do assets.addCss(theme_url~'/css-compiled/preset.css') %}
|
{% do assets.addCss(base_url_frontend~'/assets/admin-preset.css') %}
|
||||||
{% if config.plugins.admin.google_fonts %}
|
{% if config.plugins.admin.google_fonts %}
|
||||||
{% do assets.addCss(theme_url~'/css-compiled/fonts.css') %}
|
{% do assets.addCss(theme_url~'/css-compiled/fonts.css') %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
Reference in New Issue
Block a user