1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-28 17:02:04 +03:00

Finished migrated from icon-font to SVG

This commit is contained in:
Dan Brown
2018-02-17 19:49:00 +00:00
parent 5ab39bfd5a
commit 81fa021083
113 changed files with 406 additions and 1107 deletions

View File

@ -2,6 +2,7 @@
use Activity;
use BookStack\Repos\EntityRepo;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Views;
@ -88,6 +89,27 @@ class HomeController extends Controller
]);
}
/**
* Get an icon via image request.
* Can provide a 'color' parameter with hex value to color the icon.
* @param $iconName
* @param Request $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
*/
public function getIcon($iconName, Request $request)
{
$attrs = [];
if ($request->filled('color')) {
$attrs['fill'] = '#' . $request->get('color');
}
$icon = icon($iconName, $attrs);
return response($icon, 200, [
'Content-Type' => 'image/svg+xml',
'Cache-Control' => 'max-age=3600',
]);
}
/**
* Get custom head HTML, Used in ajax calls to show in editor.
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View

View File

@ -149,15 +149,18 @@ function theme_path($path = '')
* Get fetch an SVG icon as a string.
* Checks for icons defined within a custom theme before defaulting back
* to the 'resources/assets/icons' folder.
*
* Returns an empty string if icon file not found.
* @param $name
* @param array $attrs
* @return mixed
*/
function icon($name, $attrs = [])
{
$attrs = array_merge($attrs, [
'class' => 'svg-icon'
]);
$attrs = array_merge([
'class' => 'svg-icon',
'data-icon' => $name
], $attrs);
$attrString = ' ';
foreach ($attrs as $attrName => $attr) {
$attrString .= $attrName . '="' . $attr . '" ';
@ -167,6 +170,8 @@ function icon($name, $attrs = [])
$themeIconPath = theme_path('icons/' . $name . '.svg');
if ($themeIconPath && file_exists($themeIconPath)) {
$iconPath = $themeIconPath;
} else if (!file_exists($iconPath)) {
return '';
}
$fileContents = file_get_contents($iconPath);