From c0a3971ca54dbb250ea29dd691e663b571a998fd Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 25 Oct 2016 17:07:56 +0300 Subject: [PATCH] Store sidebar state in localstorage --- app/Http/routes.php | 2 +- resources/views/header.blade.php | 38 ++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/Http/routes.php b/app/Http/routes.php index 8abb80884e06..dbb061e0ae29 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -129,7 +129,7 @@ Route::group(['middleware' => 'auth:user'], function() { Route::get('force_inline_pdf', 'UserController@forcePDFJS'); Route::get('account/get_search_data', ['as' => 'get_search_data', 'uses' => 'AccountController@getSearchData']); Route::get('check_invoice_number/{invoice_id?}', 'InvoiceController@checkInvoiceNumber'); - Route::get('save_sidebar_state', 'UserController@saveSidebarState'); + Route::post('save_sidebar_state', 'UserController@saveSidebarState'); Route::get('settings/user_details', 'AccountController@showUserDetails'); Route::post('settings/user_details', 'AccountController@saveUserDetails'); diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php index c1abad167b1d..34812e61c37b 100644 --- a/resources/views/header.blade.php +++ b/resources/views/header.blade.php @@ -328,22 +328,36 @@ }); // manage sidebar state - $("#left-menu-toggle").click(function(e) { - e.preventDefault(); - $("#wrapper").toggleClass("toggled-left"); + function setupSidebar(side) { + $("#" + side + "-menu-toggle").click(function(e) { + e.preventDefault(); + $("#wrapper").toggleClass("toggled-" + side); - var toggled = $("#wrapper").hasClass("toggled-left") ? '1' : '0'; - $.get('{{ url('save_sidebar_state') }}?show_left=' + toggled); - }); + var toggled = $("#wrapper").hasClass("toggled-" + side) ? '1' : '0'; + $.post('{{ url('save_sidebar_state') }}?show_' + side + '=' + toggled); - $("#right-menu-toggle").click(function(e) { - e.preventDefault(); - $("#wrapper").toggleClass("toggled-right"); + if (isStorageSupported()) { + localStorage.setItem('show_' + side + '_sidebar', toggled); + } + }); - var toggled = $("#wrapper").hasClass("toggled-right") ? '1' : '0'; - $.get('{{ url('save_sidebar_state') }}?show_right=' + toggled); - }); + if (isStorageSupported()) { + var storage = localStorage.getItem('show_' + side + '_sidebar'); + var toggled = $("#wrapper").hasClass("toggled-" + side) ? '1' : '0'; + if (storage != toggled) { + setTimeout(function() { + $("#wrapper").toggleClass("toggled-" + side); + $.post('{{ url('save_sidebar_state') }}?show_' + side + '=' + storage); + }, 100); + } + } + } + + setupSidebar('left'); + setupSidebar('right'); + + // auto select focused nav-tab if (window.location.hash) { setTimeout(function() { $('.nav-tabs a[href="' + window.location.hash + '"]').tab('show');