feat: ✨ Send all settings in their groups to frontend -> show tabs
This commit is contained in:
parent
a9619be8d0
commit
e9fec445ff
|
@ -18,33 +18,24 @@ class SettingsController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
//Get all tabs as laravel view paths
|
||||
$tabs = [];
|
||||
if(file_exists(Theme::getViewPaths()[0] . '/admin/settings/tabs/')){
|
||||
$tabspath = glob(Theme::getViewPaths()[0] . '/admin/settings/tabs/*.blade.php');
|
||||
}else{
|
||||
$tabspath = glob(Theme::path('views', 'default').'/admin/settings/tabs/*.blade.php');
|
||||
}
|
||||
|
||||
foreach ($tabspath as $filename) {
|
||||
$tabs[] = 'admin.settings.tabs.'.basename($filename, '.blade.php');
|
||||
// get all other settings in app/Settings directory
|
||||
// group items by file name like $categories
|
||||
$settings = collect();
|
||||
foreach (scandir(app_path('Settings')) as $file) {
|
||||
if (in_array($file, ['.', '..'])) {
|
||||
continue;
|
||||
}
|
||||
$className = 'App\\Settings\\' . str_replace('.php', '', $file);
|
||||
$settings[str_replace('Settings.php', '', $file)] = (new $className())->toCollection()->all();
|
||||
}
|
||||
$settings->sort();
|
||||
|
||||
//Generate a html list item for each tab based on tabs file basename, set first tab as active
|
||||
$tabListItems = [];
|
||||
foreach ($tabs as $tab) {
|
||||
$tabName = str_replace('admin.settings.tabs.', '', $tab);
|
||||
$tabListItems[] = '<li class="nav-item">
|
||||
<a class="nav-link '.(empty($tabListItems) ? 'active' : '').'" data-toggle="pill" href="#'.$tabName.'">
|
||||
'.__(ucfirst($tabName)).'
|
||||
</a></li>';
|
||||
}
|
||||
|
||||
$themes = array_diff(scandir(base_path('themes')), array('..', '.'));
|
||||
|
||||
return view('admin.settings.index', [
|
||||
'tabs' => $tabs,
|
||||
'tabListItems' => $tabListItems,
|
||||
'settings' => $settings->all(),
|
||||
'themes' => $themes,
|
||||
'active_theme' => Theme::active(),
|
||||
]);
|
||||
|
|
|
@ -19,11 +19,12 @@
|
|||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
@if(!file_exists(base_path()."/install.lock"))
|
||||
@if (!file_exists(base_path() . '/install.lock'))
|
||||
<div class="callout callout-danger">
|
||||
<h4>{{ __('The installer is not locked!') }}</h4>
|
||||
<p>{{ __('please create a file called "install.lock" in your dashboard Root directory. Otherwise no settings will be loaded!') }}</p>
|
||||
<a href="/install?step=7"><button class="btn btn-outline-danger">{{__('or click here')}}</button></a>
|
||||
<p>{{ __('please create a file called "install.lock" in your dashboard Root directory. Otherwise no settings will be loaded!') }}
|
||||
</p>
|
||||
<a href="/install?step=7"><button class="btn btn-outline-danger">{{ __('or click here') }}</button></a>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
|
@ -37,98 +38,35 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<aside class="d-flex" style="">
|
||||
<div class="sidebar d-flex flex-column" style="height: fit-content">
|
||||
<nav class="container">
|
||||
<ul class="row nav nav-pills nav-sidebar flex-column" style="width: fit-content" data-widget="treeview" role="menu" data-accordion="false">
|
||||
<li class="nav-item col">
|
||||
<a href="#general"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('General') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#system"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('System') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#mail"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Mail') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#discord"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Discord') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#invoices"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Invoices') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#locales"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Locales') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#pterodactyl"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Pterodactyl') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#referral"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Referral') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#servers"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Servers') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#tickets"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Tickets') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#users"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Users') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item col">
|
||||
<a href="#website"
|
||||
class="nav-link @if (Request::routeIs('home')) active @endif">
|
||||
<p>{{ __('Website') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="d-flex justify-content-around w-100">
|
||||
<div class="d-flex" style="height: fit-content;">
|
||||
Ptero API
|
||||
</div>
|
||||
<div class="d-flex" style="height: fit-content;">
|
||||
<input type="text" name="text" id="#general">
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<!-- Sidebar Menu -->
|
||||
<nav class="mt-2 max-w-30">
|
||||
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu"
|
||||
data-accordion="false">
|
||||
@foreach ($settings as $key => $setting)
|
||||
<li class="nav-item border-bottom-0">
|
||||
<a href="#{{ $key }}" class="nav-link {{ $loop->first ? 'active' : '' }}"
|
||||
data-toggle="tab">
|
||||
<i class="nav-icon fas fa-cog"></i>
|
||||
<p>
|
||||
{{ $key }}
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- /.sidebar-menu -->
|
||||
<!-- Content in $settings -->
|
||||
<div class="tab-content">
|
||||
|
||||
@foreach ($settings as $key => $value)
|
||||
<
|
||||
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -159,6 +97,4 @@
|
|||
$('html,body').scrollTop(scrollmem);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@endsection
|
||||
|
|
Loading…
Reference in a new issue