From f7c85fedfaac8dd4b4eca4390112af9bed5d16ab Mon Sep 17 00:00:00 2001 From: SourceDoctor Date: Fri, 10 Apr 2020 14:34:44 +0200 Subject: [PATCH] Toggle visibilty of Dashboard Editor (#11321) * Toggle visibilty of Dashboard Editor * code climate * reposition Menu point * add Dashboard Menu * unclickability ob Dashboard menu * Global Settings - Alert Default Settings * Revert "Global Settings - Alert Default Settings" This reverts commit a1af62b146af3c5e352e07cfce130d642201d00a. * update to Frontend rewrite * globalize hide_dashboard_editor variable * . * . * remove legacy code * update link path to laravel routing * Travis ... * Travis ... --- app/Http/Controllers/OverviewController.php | 11 ++++++----- .../Controllers/UserPreferencesController.php | 10 +++++++++- app/Http/ViewComposers/MenuComposer.php | 8 ++++++++ resources/views/layouts/menu.blade.php | 19 +++++++++++++++++-- resources/views/overview/default.blade.php | 2 ++ routes/web.php | 5 ++++- 6 files changed, 46 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/OverviewController.php b/app/Http/Controllers/OverviewController.php index da5d6f2b0e..7844f01181 100644 --- a/app/Http/Controllers/OverviewController.php +++ b/app/Http/Controllers/OverviewController.php @@ -98,12 +98,13 @@ class OverviewController extends Controller ); } - $bare = $request->bare; - $data = serialize(json_encode($data)); - $dash_config = unserialize(stripslashes($data)); - $widgets = Widget::select('widget_id', 'widget_title')->orderBy('widget_title')->get(); + $bare = $request->bare; + $data = serialize(json_encode($data)); + $dash_config = unserialize(stripslashes($data)); + $hide_dashboard_editor = UserPref::getPref($user, 'hide_dashboard_editor'); + $widgets = Widget::select('widget_id', 'widget_title')->orderBy('widget_title')->get(); - return view('overview.default', compact('bare', 'dash_config', 'dashboard', 'user_dashboards', 'shared_dashboards', 'widgets')); + return view('overview.default', compact('bare', 'dash_config', 'dashboard', 'hide_dashboard_editor', 'user_dashboards', 'shared_dashboards', 'widgets')); } public function simple(Request $request) diff --git a/app/Http/Controllers/UserPreferencesController.php b/app/Http/Controllers/UserPreferencesController.php index 6854cc8ff2..48725e9162 100644 --- a/app/Http/Controllers/UserPreferencesController.php +++ b/app/Http/Controllers/UserPreferencesController.php @@ -73,7 +73,7 @@ class UserPreferencesController extends Controller 'site_style' => UserPref::getPref($user, 'site_style'), 'site_style_default' => $styles[$default_style] ?? $default_style, 'site_styles' => $styles, - + 'hide_dashboard_editor' => UserPref::getPref($user, 'hide_dashboard_editor') ?? 0, ]; if (Config::get('twofactor')) { @@ -110,6 +110,7 @@ class UserPreferencesController extends Controller 'required', Rule::in(array_merge(['default'], array_keys($this->getValidStyles()))), ], + 'hide_dashboard_editor' => 'required|integer', ]; $this->validate($request, [ @@ -122,6 +123,13 @@ class UserPreferencesController extends Controller return response()->json(['status' => 'success']); } + public function toggleDashboardEditor(Request $request) + { + $hide_dashboard_editor = UserPref::getPref(Auth::user(), 'hide_dashboard_editor') ? 0 : 1; + UserPref::setPref(Auth::user(), 'hide_dashboard_editor', $hide_dashboard_editor); + return redirect('overview'); + } + private function getValidLocales() { return array_reduce(glob(resource_path('lang') . '/*', GLOB_ONLYDIR), function ($locales, $locale) { diff --git a/app/Http/ViewComposers/MenuComposer.php b/app/Http/ViewComposers/MenuComposer.php index 35b73c9f95..bba3fbf08e 100644 --- a/app/Http/ViewComposers/MenuComposer.php +++ b/app/Http/ViewComposers/MenuComposer.php @@ -27,6 +27,7 @@ namespace App\Http\ViewComposers; use App\Models\AlertRule; use App\Models\BgpPeer; +use App\Models\Dashboard; use App\Models\Device; use App\Models\DeviceGroup; use App\Models\Location; @@ -56,12 +57,19 @@ class MenuComposer $user = Auth::user(); $site_style = Config::get('applied_site_style'); + //global Settings + $vars['hide_dashboard_editor'] = UserPref::getPref($user, 'hide_dashboard_editor'); + // end global Settings + //TODO: should be handled via CSS Themes $vars['navbar'] = in_array($site_style, ['mono', 'dark']) ? 'navbar-inverse' : ''; $vars['project_name'] = Config::get('project_name', 'LibreNMS'); $vars['title_image'] = Config::get('title_image', "images/librenms_logo_$site_style.svg"); + //Dashboards + $vars['dashboards'] = Dashboard::select('dashboard_id', 'dashboard_name')->allAvailable($user)->orderBy('dashboard_name')->get(); + // Device menu $vars['device_groups'] = DeviceGroup::hasAccess($user)->orderBy('name')->get(['device_groups.id', 'name', 'desc']); $vars['package_count'] = Package::hasAccess($user)->count(); diff --git a/resources/views/layouts/menu.blade.php b/resources/views/layouts/menu.blade.php index 881caf3b2d..e5e36f9b27 100644 --- a/resources/views/layouts/menu.blade.php +++ b/resources/views/layouts/menu.blade.php @@ -25,8 +25,23 @@ aria-hidden="true">