359 Select theme in settings (#423)
* Update composer package versions * Laravel version * Change theme in the admin settings page closes #359 * Fix comment
This commit is contained in:
parent
eff9f6fec6
commit
ec4f10d43a
4
Makefile
4
Makefile
@ -65,7 +65,9 @@ reset: clean
|
||||
|
||||
.PHONY: reload-db
|
||||
reload-db:
|
||||
@php artisan phpvms:dev-install --reset-db
|
||||
@php artisan database:create --reset
|
||||
@php artisan migrate --seed
|
||||
@echo "Done!"
|
||||
@make clean
|
||||
|
||||
.PHONY: tests
|
||||
|
@ -13,14 +13,6 @@ class DevInstall extends Command
|
||||
protected $signature = 'phpvms:dev-install {--reset-db} {--reset-configs}';
|
||||
protected $description = 'Run a developer install and run the sample migration';
|
||||
|
||||
/**
|
||||
* The YAML files with sample data to import
|
||||
*/
|
||||
protected $yaml_imports = [
|
||||
'sample.yml',
|
||||
'acars.yml',
|
||||
];
|
||||
|
||||
private $databaseSeeder;
|
||||
|
||||
public function __construct(\DatabaseSeeder $databaseSeeder)
|
||||
|
@ -1,3 +1,10 @@
|
||||
- key: general.theme
|
||||
name: 'Current Theme'
|
||||
group: general
|
||||
value: 'default'
|
||||
options: ''
|
||||
type: select
|
||||
description: 'The currently active theme'
|
||||
- key: general.start_date
|
||||
name: 'Start Date'
|
||||
group: general
|
||||
|
@ -4,14 +4,34 @@ namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Contracts\Controller;
|
||||
use App\Models\Setting;
|
||||
use Igaster\LaravelTheme\Facades\Theme;
|
||||
use Illuminate\Http\Request;
|
||||
use Log;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Class SettingsController
|
||||
*/
|
||||
class SettingsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Get a list of themes formatted for a select box
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getThemes(): array
|
||||
{
|
||||
$themes = Theme::all();
|
||||
$theme_list = [];
|
||||
foreach ($themes as $t) {
|
||||
if (!$t || !$t->name || $t->name === 'false') {
|
||||
continue;
|
||||
}
|
||||
$theme_list[] = $t->name;
|
||||
}
|
||||
|
||||
return $theme_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the settings. Group them by the setting group
|
||||
*/
|
||||
@ -22,6 +42,7 @@ class SettingsController extends Controller
|
||||
|
||||
return view('admin.settings.index', [
|
||||
'grouped_settings' => $settings,
|
||||
'themes' => $this->getThemes(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
22
app/Http/Middleware/SetActiveTheme.php
Normal file
22
app/Http/Middleware/SetActiveTheme.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Igaster\LaravelTheme\Facades\Theme;
|
||||
|
||||
/**
|
||||
* Read the current theme from the settings (set in admin), and set it
|
||||
*/
|
||||
class SetActiveTheme
|
||||
{
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
$theme = setting('general.theme');
|
||||
if (!empty($theme)) {
|
||||
Theme::set($theme);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@ -3,8 +3,11 @@
|
||||
/**
|
||||
* User doesn't need to be logged in for these
|
||||
*/
|
||||
use App\Http\Middleware\SetActiveTheme;
|
||||
|
||||
Route::group([
|
||||
'namespace' => 'Frontend', 'prefix' => '', 'as' => 'frontend.',
|
||||
'namespace' => 'Frontend', 'prefix' => '', 'as' => 'frontend.',
|
||||
'middleware' => [SetActiveTheme::class],
|
||||
], function () {
|
||||
Route::get('/', 'HomeController@index')->name('home');
|
||||
Route::get('r/{id}', 'PirepController@show')->name('pirep.show.public');
|
||||
@ -21,7 +24,7 @@ Route::group([
|
||||
*/
|
||||
Route::group([
|
||||
'namespace' => 'Frontend', 'prefix' => '', 'as' => 'frontend.',
|
||||
'middleware' => ['role:admin|user'],
|
||||
'middleware' => ['role:admin|user', SetActiveTheme::class],
|
||||
], function () {
|
||||
Route::resource('dashboard', 'DashboardController');
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
"ext-simplexml": "*",
|
||||
"ext-pdo": "*",
|
||||
"composer/composer": "~1.8.0",
|
||||
"laravel/framework": "~6.0.0",
|
||||
"laravel/framework": "~6.0",
|
||||
"akaunting/money": "^1.0",
|
||||
"anhskohbo/no-captcha": "^3.0",
|
||||
"appstract/laravel-opcache": "^2.0",
|
||||
|
539
composer.lock
generated
539
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -31,17 +31,6 @@ return [
|
||||
'currency' => 'USD',
|
||||
],
|
||||
|
||||
// This is the name of the active theme
|
||||
// Overrides config/themes.php
|
||||
'themes' => [
|
||||
'default' => 'default',
|
||||
],
|
||||
|
||||
// Overrides config/vacentral.php
|
||||
'vacentral' => [
|
||||
'api_key' => '',
|
||||
],
|
||||
|
||||
//
|
||||
// Other settings and configuration you might not need to modify
|
||||
//
|
||||
|
@ -1,63 +1,72 @@
|
||||
{{ Form::model($grouped_settings, ['route' => ['admin.settings.update'], 'method' => 'post']) }}
|
||||
@foreach($grouped_settings as $group => $settings)
|
||||
<div class="card border-blue-bottom">
|
||||
<div class="content table-responsive table-full-width">
|
||||
<table class="table table-hover" id="flights-table">
|
||||
<thead>
|
||||
<th colspan="2">
|
||||
<h5>{{ $group }}</h5>
|
||||
</th>
|
||||
</thead>
|
||||
<div class="card border-blue-bottom">
|
||||
<div class="content table-responsive table-full-width">
|
||||
<table class="table table-hover" id="flights-table">
|
||||
<thead>
|
||||
<th colspan="2">
|
||||
<h5>{{ $group }}</h5>
|
||||
</th>
|
||||
</thead>
|
||||
|
||||
@foreach($settings as $setting)
|
||||
<tr>
|
||||
<td width="70%">
|
||||
<p>{{ $setting->name }}</p>
|
||||
<p class="description">
|
||||
@component('admin.components.info')
|
||||
{{$setting->description}}
|
||||
@endcomponent
|
||||
</p></td>
|
||||
<td align="center">
|
||||
@if($setting->type === 'date')
|
||||
{{ Form::input('text', $setting->id, $setting->value, ['class' => 'form-control', 'id' => 'datepicker']) }}
|
||||
@elseif($setting->type === 'boolean' || $setting->type === 'bool')
|
||||
{{ Form::hidden($setting->id, 0) }}
|
||||
{{ Form::checkbox($setting->id, null, $setting->value) }}
|
||||
@elseif($setting->type === 'int')
|
||||
{{ Form::number($setting->id, $setting->value, ['class'=>'form-control']) }}
|
||||
@elseif($setting->type === 'number')
|
||||
{{ Form::number($setting->id, $setting->value, ['class'=>'form-control', 'step' => '0.01']) }}
|
||||
@elseif($setting->type === 'select')
|
||||
{{ Form::select(
|
||||
$setting->id,
|
||||
list_to_assoc(explode(',', $setting->options)),
|
||||
$setting->value,
|
||||
['class' => 'select2', 'style' => 'width: 100%; text-align: left;']) }}
|
||||
@else
|
||||
{{ Form::input('text', $setting->id, $setting->value, ['class' => 'form-control']) }}
|
||||
@endif
|
||||
@foreach($settings as $setting)
|
||||
<tr>
|
||||
<td width="70%">
|
||||
<p>{{ $setting->name }}</p>
|
||||
<p class="description">
|
||||
@component('admin.components.info')
|
||||
{{$setting->description}}
|
||||
@endcomponent
|
||||
</p></td>
|
||||
<td align="center">
|
||||
@if($setting->type === 'date')
|
||||
{{ Form::input('text', $setting->id, $setting->value, ['class' => 'form-control', 'id' => 'datepicker']) }}
|
||||
@elseif($setting->type === 'boolean' || $setting->type === 'bool')
|
||||
{{ Form::hidden($setting->id, 0) }}
|
||||
{{ Form::checkbox($setting->id, null, $setting->value) }}
|
||||
@elseif($setting->type === 'int')
|
||||
{{ Form::number($setting->id, $setting->value, ['class'=>'form-control']) }}
|
||||
@elseif($setting->type === 'number')
|
||||
{{ Form::number($setting->id, $setting->value, ['class'=>'form-control', 'step' => '0.01']) }}
|
||||
@elseif($setting->type === 'select')
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
@if($setting->id === 'general_theme')
|
||||
{{ Form::select(
|
||||
$setting->id,
|
||||
list_to_assoc($themes),
|
||||
$setting->value,
|
||||
['class' => 'select2', 'style' => 'width: 100%; text-align: left;']) }}
|
||||
@else
|
||||
{{ Form::select(
|
||||
$setting->id,
|
||||
list_to_assoc(explode(',', $setting->options)),
|
||||
$setting->value,
|
||||
['class' => 'select2', 'style' => 'width: 100%; text-align: left;']) }}
|
||||
@endif
|
||||
@else
|
||||
{{ Form::input('text', $setting->id, $setting->value, ['class' => 'form-control']) }}
|
||||
@endif
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
<div class="card">
|
||||
<div class="content">
|
||||
<div class="text-right">
|
||||
{{ Form::button('Save', ['type' => 'submit', 'class' => 'btn btn-success']) }}
|
||||
<a href="{{ route('admin.subfleets.index') }}" class="btn btn-default">Cancel</a>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="text-right">
|
||||
{{ Form::button('Save', ['type' => 'submit', 'class' => 'btn btn-success']) }}
|
||||
<a href="{{ route('admin.subfleets.index') }}" class="btn btn-default">Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ Form::close() }}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$(document).ready(function () {
|
||||
$('#datepicker').datetimepicker({
|
||||
format: "YYYY-MM-DD"
|
||||
format: "YYYY-MM-DD"
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user