]> BookStack Code Mirror - bookstack/commitdiff
Updated book view change to PATCH + other amends
authorDan Brown <redacted>
Fri, 29 Dec 2017 16:49:03 +0000 (16:49 +0000)
committerDan Brown <redacted>
Fri, 29 Dec 2017 16:49:03 +0000 (16:49 +0000)
Moved toggle to right of header bar and added unique text and icon for
each view type.

Removed old profile setting to keep things clean.

app/Http/Controllers/UserController.php
resources/lang/en/common.php
resources/lang/en/entities.php
resources/lang/en/settings.php
resources/views/books/index.blade.php
resources/views/users/edit.blade.php
routes/web.php

index 397bb2922b6f558a5a2ede8e12c3f6275ccdc1bc..2fe22f1e107f99e7ced4cbbff5dd344dd24444ba 100644 (file)
@@ -250,12 +250,18 @@ class UserController extends Controller
         ]);
     }
 
+    /**
+     * Update the user's preferred book-list display setting.
+     * @param $id
+     * @param Request $request
+     * @return \Illuminate\Http\RedirectResponse
+     */
     public function switchBookView($id, Request $request) {
         $this->checkPermissionOr('users-manage', function () use ($id) {
             return $this->currentUser->id == $id;
         });
-        $viewType = $request->get('book_view_type');
 
+        $viewType = $request->get('book_view_type');
         if (!in_array($viewType, ['grid', 'list'])) {
             $viewType = 'list';
         }
@@ -263,13 +269,7 @@ class UserController extends Controller
         $user = $this->user->findOrFail($id);
         setting()->putUser($user, 'books_view_type', $viewType);
 
-        $previousUrl = url()->previous();
-        if (empty($previousUrl)) {
-            // if no previous URL, redirect to settings
-            return redirect("/settings/users/$id");
-        } else {
-            // redirect to the previous page.
-            return redirect($previousUrl);
-        }
+        return redirect()->back(302, [], "/settings/users/$id");
     }
+
 }
index 7cdd7c23e527a8f8b4394bf8a906ff49185d9247..26f096327a324b21d2bd9fb3eeddeaf6990cafc2 100644 (file)
@@ -49,6 +49,8 @@ return [
     'toggle_details' => 'Toggle Details',
     'toggle_thumbnails' => 'Toggle Thumbnails',
     'details' => 'Details',
+    'grid_view' => 'Grid View',
+    'list_view' => 'List View',
 
     /**
      * Header
index 6e481d03bf8b559d5e83a1720228657145fb6830..4dc5ccc382c1a242ca4a2f13153eb8f09a0d7191 100644 (file)
@@ -99,7 +99,6 @@ return [
     'books_sort_named' => 'Sort Book :bookName',
     'books_sort_show_other' => 'Show Other Books',
     'books_sort_save' => 'Save New Order',
-    'books_toggle_view' => 'Toggle Book View',
 
     /**
      * Chapters
index f35c486ad9f6daa36f90257a3a6be50685fad528..f3e26fb4552d02a9af86b382d5d2159e754ed2ff 100755 (executable)
@@ -96,7 +96,6 @@ return [
     'users_external_auth_id' => 'External Authentication ID',
     'users_password_warning' => 'Only fill the below if you would like to change your password:',
     'users_system_public' => 'This user represents any guest users that visit your instance. It cannot be used to log in but is assigned automatically.',
-    'users_books_view_type' => 'Preferred layout for books viewing',
     'users_delete' => 'Delete User',
     'users_delete_named' => 'Delete user :userName',
     'users_delete_warning' => 'This will fully delete this user with the name \':userName\' from the system.',
index 5ca01a550e92dd52b51ecee9c906f57809d86297..2ab819327fe58b1bbfecf5caf93b7f65ed6cb9f7 100644 (file)
@@ -1,14 +1,22 @@
 @extends('sidebar-layout')
 
 @section('toolbar')
-    <div class="col-xs-1"></div>
-    <div class="col-xs-11 faded">
-        <div class="action-buttons">
+    <div class="col-xs-6">
+        <div class="action-buttons text-left">
             <form action="{{ baseUrl("/settings/users/{$currentUser->id}/switch-book-view") }}" method="POST" class="inline">
                 {!! csrf_field() !!}
+                {!! method_field('PATCH') !!}
                 <input type="hidden" value="{{ $booksViewType === 'list'? 'grid' : 'list' }}" name="book_view_type">
-                <button type="submit" class="text-pos text-button"><i class="zmdi zmdi-wrap-text"></i>{{ trans('entities.books_toggle_view') }}</button>
+                @if ($booksViewType === 'list')
+                    <button type="submit" class="text-pos text-button"><i class="zmdi zmdi-view-module"></i>{{ trans('common.grid_view') }}</button>
+                @else
+                    <button type="submit" class="text-pos text-button"><i class="zmdi zmdi-view-list"></i>{{ trans('common.list_view') }}</button>
+                @endif
             </form>
+        </div>
+    </div>
+    <div class="col-xs-6 faded">
+        <div class="action-buttons">
             @if($currentUser->can('book-create-all'))
                 <a href="{{ baseUrl("/books/create") }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.books_create') }}</a>
             @endif
index 14ab19e0e9b97a1c651d80c9605243a7b8a8d9ca..fc75593b824b7221e869437727c59768a1d42d46 100644 (file)
                                     @endforeach
                                 </select>
                             </div>
-                            <div class="form-group">
-                                <label for="books-view-type">{{ trans('settings.users_books_view_type') }}</label>
-                                <select name="setting[books_view_type]" id="books-view-type">
-                                    <option @if(setting()->getUser($user, 'books_view_type', 'list') === 'list') selected @endif value="list">List</option>
-                                    <option @if(setting()->getUser($user, 'books_view_type', 'list') === 'grid') selected @endif value="grid">Grid</option>
-                                </select>
-                            </div>
                         </div>
                     </div>
                     <div class="form-group text-right">
index 31de09737034eba8f1154691162e2cd3cdc1ed6d..5ddb3fb940a0368ee631098f082d8c22fa8adceb 100644 (file)
@@ -146,7 +146,7 @@ Route::group(['middleware' => 'auth'], function () {
         Route::get('/users', 'UserController@index');
         Route::get('/users/create', 'UserController@create');
         Route::get('/users/{id}/delete', 'UserController@delete');
-        Route::post('/users/{id}/switch-book-view', 'UserController@switchBookView');
+        Route::patch('/users/{id}/switch-book-view', 'UserController@switchBookView');
         Route::post('/users/create', 'UserController@store');
         Route::get('/users/{id}', 'UserController@edit');
         Route::put('/users/{id}', 'UserController@update');