mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-05-28 19:06:39 +08:00
Changed color picker library and moved color logic to front end
Since the old library was GPLv3 i changed the color picker to tiny-color-picker which is MIT. Also extracted the styles to a shared view and move color calculation logic to javascript side.
This commit is contained in:
@ -1,18 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace BookStack\Http\Controllers;
|
||||
<?php namespace BookStack\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use BookStack\Http\Requests;
|
||||
use BookStack\Http\Controllers\Controller;
|
||||
use Setting;
|
||||
|
||||
class SettingController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the settings.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
@ -22,11 +18,9 @@ class SettingController extends Controller
|
||||
return view('settings/index');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update the specified settings in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
@ -35,12 +29,9 @@ class SettingController extends Controller
|
||||
$this->checkPermission('settings-manage');
|
||||
|
||||
// Cycles through posted settings and update them
|
||||
foreach($request->all() as $name => $value) {
|
||||
if(strpos($name, 'setting-') !== 0) continue;
|
||||
foreach ($request->all() as $name => $value) {
|
||||
if (strpos($name, 'setting-') !== 0) continue;
|
||||
$key = str_replace('setting-', '', trim($name));
|
||||
if($key == 'app-color') {
|
||||
Setting::put('app-color-rgba', $this->hex2rgba($value, 0.15));
|
||||
}
|
||||
Setting::put($key, $value);
|
||||
}
|
||||
|
||||
@ -48,51 +39,4 @@ class SettingController extends Controller
|
||||
return redirect('/settings');
|
||||
}
|
||||
|
||||
/**
|
||||
* Adapted from http://mekshq.com/how-to-convert-hexadecimal-color-code-to-rgb-or-rgba-using-php/
|
||||
* Converts a hex color code in to an RGBA string.
|
||||
*
|
||||
* @param string $color
|
||||
* @param float|boolean $opacity
|
||||
* @return boolean|string
|
||||
*/
|
||||
protected function hex2rgba($color, $opacity = false)
|
||||
{
|
||||
// Return false if no color provided
|
||||
if(empty($color)) {
|
||||
return false;
|
||||
}
|
||||
// Trim any whitespace
|
||||
$color = trim($color);
|
||||
|
||||
// Sanitize $color if "#" is provided
|
||||
if($color[0] == '#' ) {
|
||||
$color = substr($color, 1);
|
||||
}
|
||||
|
||||
// Check if color has 6 or 3 characters and get values
|
||||
if(strlen($color) == 6) {
|
||||
$hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
|
||||
} elseif( strlen( $color ) == 3 ) {
|
||||
$hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Convert hexadec to rgb
|
||||
$rgb = array_map('hexdec', $hex);
|
||||
|
||||
// Check if opacity is set(rgba or rgb)
|
||||
if($opacity) {
|
||||
if(abs($opacity) > 1)
|
||||
$opacity = 1.0;
|
||||
$output = 'rgba('.implode(",",$rgb).','.$opacity.')';
|
||||
} else {
|
||||
$output = 'rgb('.implode(",",$rgb).')';
|
||||
}
|
||||
|
||||
// Return rgb(a) color string
|
||||
return $output;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user