mirror of
https://github.com/henrywhitaker3/Speedtest-Tracker.git
synced 2025-12-21 21:33:08 +01:00
Added setting for app name
This commit is contained in:
@@ -91,6 +91,11 @@ class SettingsHelper
|
|||||||
*/
|
*/
|
||||||
public static function settingIsEditable(string $key)
|
public static function settingIsEditable(string $key)
|
||||||
{
|
{
|
||||||
|
// Manual override for app_name
|
||||||
|
if ($key === 'app_name') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
$results = [];
|
$results = [];
|
||||||
|
|
||||||
// Try exact key
|
// Try exact key
|
||||||
@@ -139,6 +144,7 @@ class SettingsHelper
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'base' => SettingsHelper::getBase(),
|
'base' => SettingsHelper::getBase(),
|
||||||
|
'name' => SettingsHelper::get('app_name')->value,
|
||||||
'widgets' => [
|
'widgets' => [
|
||||||
'show_average' => (bool)SettingsHelper::get('show_average')->value,
|
'show_average' => (bool)SettingsHelper::get('show_average')->value,
|
||||||
'show_max' => (bool)SettingsHelper::get('show_max')->value,
|
'show_max' => (bool)SettingsHelper::get('show_max')->value,
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ class SettingsController extends Controller
|
|||||||
{
|
{
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
if((bool)SettingsHelper::get('auth')->value === true) {
|
if ((bool)SettingsHelper::get('auth')->value === true) {
|
||||||
$this->middleware('auth:api')
|
$this->middleware('auth:api')
|
||||||
->except([ 'config' ]);
|
->except(['config']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,21 +51,21 @@ class SettingsController extends Controller
|
|||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$rule = [
|
$rule = [
|
||||||
'name' => [ 'required', 'string', 'min:1' ],
|
'name' => ['required', 'string', 'min:1'],
|
||||||
];
|
];
|
||||||
if($request->name == 'schedule') {
|
if ($request->name == 'schedule') {
|
||||||
$rule['value'] = [ 'required', new Cron ];
|
$rule['value'] = ['required', new Cron];
|
||||||
}
|
}
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $rule);
|
$validator = Validator::make($request->all(), $rule);
|
||||||
if($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'method' => 'Store a setting',
|
'method' => 'Store a setting',
|
||||||
'error' => $validator->errors()
|
'error' => $validator->errors()
|
||||||
], 422);
|
], 422);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!isset($request->value)) {
|
if (!isset($request->value)) {
|
||||||
$request->value = '';
|
$request->value = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,12 +86,12 @@ class SettingsController extends Controller
|
|||||||
public function bulkStore(Request $request)
|
public function bulkStore(Request $request)
|
||||||
{
|
{
|
||||||
$rule = [
|
$rule = [
|
||||||
'data' => [ 'array', 'required' ],
|
'data' => ['array', 'required'],
|
||||||
'data.*.name' => [ 'string', 'required' ],
|
'data.*.name' => ['string', 'required'],
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), $rule);
|
$validator = Validator::make($request->all(), $rule);
|
||||||
if($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'method' => 'Bulk store a setting',
|
'method' => 'Bulk store a setting',
|
||||||
'error' => $validator->errors()
|
'error' => $validator->errors()
|
||||||
@@ -99,14 +99,14 @@ class SettingsController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$settings = [];
|
$settings = [];
|
||||||
foreach($request->data as $d) {
|
foreach ($request->data as $d) {
|
||||||
if(!isset($d['value']) || $d['value'] == null) {
|
if (!isset($d['value']) || $d['value'] == null) {
|
||||||
$d['value'] = '';
|
$d['value'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if($d['name'] == 'speedtest_overview_time') {
|
if ($d['name'] == 'speedtest_overview_time') {
|
||||||
$ok = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23' ];
|
$ok = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23'];
|
||||||
if(!in_array($d['value'], $ok)) {
|
if (!in_array($d['value'], $ok)) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'method' => 'Bulk store a setting',
|
'method' => 'Bulk store a setting',
|
||||||
'error' => 'Invalid speedtest_overview_time value'
|
'error' => 'Invalid speedtest_overview_time value'
|
||||||
@@ -116,9 +116,9 @@ class SettingsController extends Controller
|
|||||||
|
|
||||||
$setting = SettingsHelper::get($d['name']);
|
$setting = SettingsHelper::get($d['name']);
|
||||||
|
|
||||||
if($setting == false) {
|
if ($setting == false) {
|
||||||
$setting = SettingsHelper::set($d['name'], $d['value']);
|
$setting = SettingsHelper::set($d['name'], $d['value']);
|
||||||
} else if(SettingsHelper::settingIsEditable($setting->name)) {
|
} else if (SettingsHelper::settingIsEditable($setting->name)) {
|
||||||
$setting = SettingsHelper::set($d['name'], $d['value']);
|
$setting = SettingsHelper::set($d['name'], $d['value']);
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Helpers\SettingsHelper;
|
||||||
|
use App\Setting;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddAppNameSetting extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
if (!SettingsHelper::get('app_name')) {
|
||||||
|
Setting::create([
|
||||||
|
'name' => 'app_name',
|
||||||
|
'value' => 'Speedtest Tracker',
|
||||||
|
'description' => 'Set a custom app name'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Setting::whereIn('name', [
|
||||||
|
'app_name',
|
||||||
|
])->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,20 +16,20 @@ use Illuminate\Support\Facades\Route;
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::get(SettingsHelper::getBase() . 'files/{path?}', function($file) {
|
Route::get(SettingsHelper::getBase() . 'files/{path?}', function ($file) {
|
||||||
$fileP = explode('?', $file)[0];
|
$fileP = explode('?', $file)[0];
|
||||||
$fileP = public_path() . '/' . $fileP;
|
$fileP = public_path() . '/' . $fileP;
|
||||||
if(file_exists($fileP)) {
|
if (file_exists($fileP)) {
|
||||||
$contents = File::get($fileP);
|
$contents = File::get($fileP);
|
||||||
$mime = \GuzzleHttp\Psr7\mimetype_from_filename($fileP);
|
$mime = \GuzzleHttp\Psr7\mimetype_from_filename($fileP);
|
||||||
return Response::make(File::get($fileP), 200, [ 'Content-type' => $mime ]);
|
return Response::make(File::get($fileP), 200, ['Content-type' => $mime]);
|
||||||
} else {
|
} else {
|
||||||
abort(404);
|
abort(404);
|
||||||
}
|
}
|
||||||
})->where('path', '.*')
|
})->where('path', '.*')
|
||||||
->name('files');
|
->name('files');
|
||||||
|
|
||||||
Route::get('/{path?}', function() {
|
Route::get('/{path?}', function () {
|
||||||
return view('app', [ 'title' => 'Speedtest Tracker' ]);
|
return view('app', ['title' => SettingsHelper::get('app_name')->value]);
|
||||||
})->where('path', '^((?!\/api\/).)*$')
|
})->where('path', '^((?!\/api\/).)*$')
|
||||||
->name('react');
|
->name('react');
|
||||||
|
|||||||
Reference in New Issue
Block a user