diff --git a/app/Http/Controllers/BookController.php b/app/Http/Controllers/BookController.php index b5e2a4a85..95cd8bdeb 100644 --- a/app/Http/Controllers/BookController.php +++ b/app/Http/Controllers/BookController.php @@ -275,12 +275,12 @@ class BookController extends Controller * @param $bookSlug * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function showRestrict($bookSlug) + public function showPermissions($bookSlug) { $book = $this->entityRepo->getBySlug('book', $bookSlug); $this->checkOwnablePermission('restrictions-manage', $book); $roles = $this->userRepo->getRestrictableRoles(); - return view('books/restrictions', [ + return view('books.permissions', [ 'book' => $book, 'roles' => $roles ]); @@ -289,11 +289,12 @@ class BookController extends Controller /** * Set the restrictions for this book. * @param $bookSlug - * @param $bookSlug * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @throws \BookStack\Exceptions\NotFoundException + * @throws \Throwable */ - public function restrict($bookSlug, Request $request) + public function permissions($bookSlug, Request $request) { $book = $this->entityRepo->getBySlug('book', $bookSlug); $this->checkOwnablePermission('restrictions-manage', $book); diff --git a/resources/assets/sass/_blocks.scss b/resources/assets/sass/_blocks.scss index b000c7ed6..1baec7a92 100644 --- a/resources/assets/sass/_blocks.scss +++ b/resources/assets/sass/_blocks.scss @@ -175,7 +175,7 @@ background-color: #FFF; box-shadow: $bs-card; border-radius: 3px; - padding-bottom: $-xs; + border: 1px solid transparent; h3 { padding: $-m; padding-bottom: $-xs; diff --git a/resources/assets/sass/_grid.scss b/resources/assets/sass/_grid.scss index e6eb489b9..302b66707 100644 --- a/resources/assets/sass/_grid.scss +++ b/resources/assets/sass/_grid.scss @@ -57,6 +57,9 @@ body.flexbox { margin-bottom: $-xl; overflow: auto; min-height: 60vh; + &.auto-height { + min-height: 0; + } } .tri-layout-container { @@ -199,6 +202,14 @@ div[class^="col-"] img { &.third { grid-template-columns: 1fr 1fr 1fr; } + &.left-focus { + grid-template-columns: 2fr 1fr; + } + &.large-gap { + grid-column-gap: $-xl; + grid-row-gap: $-xl; + justify-items: start; + } } .grid-card { @@ -255,6 +266,9 @@ div[class^="col-"] img { .grid.third { grid-template-columns: 1fr 1fr; } + .grid.left-focus { + grid-template-columns: 1fr; + } } @include smaller-than($s) { diff --git a/resources/assets/sass/_lists.scss b/resources/assets/sass/_lists.scss index 622dd32b1..9bae934d8 100644 --- a/resources/assets/sass/_lists.scss +++ b/resources/assets/sass/_lists.scss @@ -91,6 +91,9 @@ padding-left: 1.5rem; padding-bottom: .2rem; } + .icon { + z-index: 2; + } &:after, .sub-menu:after { content: ''; display: block; @@ -100,7 +103,7 @@ bottom: 1rem; border-left: 2px solid #DDD; opacity: 0.6; - z-index: 1; + z-index: 0; } } diff --git a/resources/views/books/delete.blade.php b/resources/views/books/delete.blade.php index 0ac98e895..e50589866 100644 --- a/resources/views/books/delete.blade.php +++ b/resources/views/books/delete.blade.php @@ -1,28 +1,27 @@ @extends('simple-layout') -@section('toolbar') - <div class="col-sm-12 faded"> - @include('books._breadcrumbs', ['book' => $book]) - </div> -@stop - @section('body') <div class="container small"> - <p> </p> - <div class="card"> - <h3>@icon('delete') {{ trans('entities.books_delete') }}</h3> - <div class="body"> - <p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p> - <p class="text-neg">{{ trans('entities.books_delete_confirmation') }}</p> - <form action="{{$book->getUrl()}}" method="POST"> - {!! csrf_field() !!} - <input type="hidden" name="_method" value="DELETE"> - <a href="{{$book->getUrl()}}" class="button outline">{{ trans('common.cancel') }}</a> - <button type="submit" class="button neg">{{ trans('common.confirm') }}</button> - </form> - </div> + <div class="my-l"> + @include('partials.breadcrumbs', ['crumbs' => [ + $book, + $book->getUrl('/delete') => trans('entities.books_delete') + ]]) + </div> + + <div class="card content-wrap auto-height"> + <h1 class="list-heading">{{ trans('entities.books_delete') }}</h1> + <p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p> + <p class="text-neg"><strong>{{ trans('entities.books_delete_confirmation') }}</strong></p> + + <form action="{{$book->getUrl()}}" method="POST" class="text-right"> + {!! csrf_field() !!} + <input type="hidden" name="_method" value="DELETE"> + <a href="{{$book->getUrl()}}" class="button outline">{{ trans('common.cancel') }}</a> + <button type="submit" class="button primary">{{ trans('common.confirm') }}</button> + </form> </div> </div> diff --git a/resources/views/books/permissions.blade.php b/resources/views/books/permissions.blade.php new file mode 100644 index 000000000..b1ff3b0a8 --- /dev/null +++ b/resources/views/books/permissions.blade.php @@ -0,0 +1,20 @@ +@extends('simple-layout') + +@section('body') + + <div class="container"> + + <div class="my-l"> + @include('partials.breadcrumbs', ['crumbs' => [ + $book, + $book->getUrl('/permissions') => trans('entities.books_permissions') + ]]) + </div> + + <div class="card content-wrap"> + <h1 class="list-heading">{{ trans('entities.books_permissions') }}</h1> + @include('form.entity-permissions', ['model' => $book]) + </div> + </div> + +@stop diff --git a/resources/views/books/restrictions.blade.php b/resources/views/books/restrictions.blade.php deleted file mode 100644 index 2a6eb0bea..000000000 --- a/resources/views/books/restrictions.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('simple-layout') - -@section('toolbar') - <div class="col-sm-12 faded"> - @include('books._breadcrumbs', ['book' => $book]) - </div> -@stop - -@section('body') - - <div class="container"> - <p> </p> - <div class="card"> - <h3>@icon('lock') {{ trans('entities.books_permissions') }}</h3> - <div class="body"> - @include('form/restriction-form', ['model' => $book]) - </div> - </div> - </div> - -@stop diff --git a/resources/views/books/sort.blade.php b/resources/views/books/sort.blade.php index 77e95448f..00ab90f4f 100644 --- a/resources/views/books/sort.blade.php +++ b/resources/views/books/sort.blade.php @@ -1,53 +1,54 @@ @extends('simple-layout') -@section('toolbar') - <div class="col-sm-12 faded"> - @include('books._breadcrumbs', ['book' => $book]) - </div> -@stop - @section('body') <div class="container"> - <div class="row"> - <div class="col-md-8"> - <div class="card"> - <h3>@icon('sort') {{ trans('entities.books_sort') }}</h3> - <div class="body"> - <div id="sort-boxes"> - @include('books/sort-box', ['book' => $book, 'bookChildren' => $bookChildren]) - </div> - - <form action="{{ $book->getUrl('/sort') }}" method="POST"> - {!! csrf_field() !!} - <input type="hidden" name="_method" value="PUT"> - <input type="hidden" id="sort-tree-input" name="sort-tree"> - <div class="list"> - <a href="{{ $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> - <button class="button pos" type="submit">{{ trans('entities.books_sort_save') }}</button> - </div> - </form> - </div> - </div> - </div> - @if(count($books) > 1) - <div class="col-md-4"> - <div class="card"> - <h3>@icon('book') {{ trans('entities.books_sort_show_other') }}</h3> - <div class="body" id="additional-books"> - @foreach($books as $otherBook) - @if($otherBook->id !== $book->id) - <div> - <a href="{{ $otherBook->getUrl('/sort-item') }}" class="text-book">@icon('book'){{ $otherBook->name }}</a> - </div> - @endif - @endforeach - </div> - </div> - </div> - @endif + <div class="my-l"> + @include('partials.breadcrumbs', ['crumbs' => [ + $book, + $book->getUrl('/sort') => trans('entities.books_sort') + ]]) </div> + + <div class="grid left-focus large-gap"> + <div> + <div class="card content-wrap"> + <h1 class="list-heading">{{ trans('entities.books_sort') }}</h1> + <div id="sort-boxes"> + @include('books/sort-box', ['book' => $book, 'bookChildren' => $bookChildren]) + </div> + + <form action="{{ $book->getUrl('/sort') }}" method="POST"> + {!! csrf_field() !!} + <input type="hidden" name="_method" value="PUT"> + <input type="hidden" id="sort-tree-input" name="sort-tree"> + <div class="list text-right"> + <a href="{{ $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> + <button class="button primary" type="submit">{{ trans('entities.books_sort_save') }}</button> + </div> + </form> + </div> + </div> + + <div> + @if(count($books) > 1) + <div class="card content-wrap"> + <h2 class="list-heading">{{ trans('entities.books_sort_show_other') }}</h2> + <div id="additional-books"> + @foreach($books as $otherBook) + @if($otherBook->id !== $book->id) + <div> + <a href="{{ $otherBook->getUrl('/sort-item') }}" class="text-book">@icon('book'){{ $otherBook->name }}</a> + </div> + @endif + @endforeach + </div> + </div> + @endif + </div> + </div> + </div> @stop diff --git a/resources/views/chapters/create.blade.php b/resources/views/chapters/create.blade.php index 765756055..e8325c247 100644 --- a/resources/views/chapters/create.blade.php +++ b/resources/views/chapters/create.blade.php @@ -1,26 +1,21 @@ @extends('simple-layout') -@section('toolbar') - <div class="col-sm-12 faded"> - <div class="breadcrumbs"> - <a href="{{ $book->getUrl() }}" class="text-book text-button">@icon('book'){{ $book->getShortName() }}</a> - <span class="sep">»</span> - <a href="{{ $book->getUrl('/create-chapter')}}" class="text-button">@icon('add'){{ trans('entities.chapters_create') }}</a> - </div> - </div> -@stop - @section('body') - <div class="container small"> - <div class="card"> - <h3>@icon('add') {{ trans('entities.chapters_create') }}</h3> - <div class="body"> - <form action="{{ $book->getUrl('/create-chapter') }}" method="POST"> - @include('chapters/form') - </form> - </div> - </div> - </div> + <div class="my-l"> + @include('partials.breadcrumbs', ['crumbs' => [ + $book, + $book->getUrl('create-chapter') => trans('entities.chapters_create') + ]]) + </div> + + <div class="content-wrap card"> + <h1 class="list-heading">{{ trans('entities.chapters_create') }}</h1> + <form action="{{ $book->getUrl('/create-chapter') }}" method="POST"> + @include('chapters/form') + </form> + </div> + + </div> @stop \ No newline at end of file diff --git a/resources/views/chapters/edit.blade.php b/resources/views/chapters/edit.blade.php index 04c5aa724..8bf22dbb9 100644 --- a/resources/views/chapters/edit.blade.php +++ b/resources/views/chapters/edit.blade.php @@ -1,24 +1,25 @@ @extends('simple-layout') -@section('toolbar') - <div class="col-sm-12 faded"> - @include('chapters._breadcrumbs', ['chapter' => $chapter]) - </div> -@stop - @section('body') <div class="container small"> - <p> </p> - <div class="card"> - <h3>@icon('edit') {{ trans('entities.chapters_edit') }}</h3> - <div class="body"> - <form action="{{ $chapter->getUrl() }}" method="POST"> - <input type="hidden" name="_method" value="PUT"> - @include('chapters/form', ['model' => $chapter]) - </form> - </div> + + <div class="my-l"> + @include('partials.breadcrumbs', ['crumbs' => [ + $book, + $chapter, + $chapter->getUrl('/edit') => trans('entities.chapters_edit') + ]]) </div> + + <div class="content-wrap card"> + <h1 class="list-heading">{{ trans('entities.chapters_edit') }}</h1> + <form action="{{ $chapter->getUrl() }}" method="POST"> + <input type="hidden" name="_method" value="PUT"> + @include('chapters/form', ['model' => $chapter]) + </form> + </div> + </div> @stop \ No newline at end of file diff --git a/resources/views/chapters/form.blade.php b/resources/views/chapters/form.blade.php index fde460844..014caf2d3 100644 --- a/resources/views/chapters/form.blade.php +++ b/resources/views/chapters/form.blade.php @@ -22,5 +22,5 @@ <div class="form-group text-right"> <a href="{{ isset($chapter) ? $chapter->getUrl() : $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> - <button type="submit" class="button pos">{{ trans('entities.chapters_save') }}</button> + <button type="submit" class="button primary">{{ trans('entities.chapters_save') }}</button> </div> diff --git a/resources/views/chapters/restrictions.blade.php b/resources/views/chapters/restrictions.blade.php index 70eb224ae..cf5fa1964 100644 --- a/resources/views/chapters/restrictions.blade.php +++ b/resources/views/chapters/restrictions.blade.php @@ -13,7 +13,7 @@ <div class="card"> <h3>@icon('lock') {{ trans('entities.chapters_permissions') }}</h3> <div class="body"> - @include('form/restriction-form', ['model' => $chapter]) + @include('form.entity-permissions', ['model' => $chapter]) </div> </div> </div> diff --git a/resources/views/form/restriction-form.blade.php b/resources/views/form/entity-permissions.blade.php similarity index 93% rename from resources/views/form/restriction-form.blade.php rename to resources/views/form/entity-permissions.blade.php index c32fe005a..9dce0b59e 100644 --- a/resources/views/form/restriction-form.blade.php +++ b/resources/views/form/entity-permissions.blade.php @@ -8,7 +8,6 @@ @include('form/checkbox', ['name' => 'restricted', 'label' => trans('entities.permissions_enable')]) </div> - <table class="table"> <tr> <th>{{ trans('common.role') }}</th> @@ -29,6 +28,6 @@ <div class="text-right"> <a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> - <button type="submit" class="button pos">{{ trans('entities.permissions_save') }}</button> + <button type="submit" class="button primary">{{ trans('entities.permissions_save') }}</button> </div> </form> \ No newline at end of file diff --git a/resources/views/pages/restrictions.blade.php b/resources/views/pages/restrictions.blade.php index a7a1e18b7..2761123f6 100644 --- a/resources/views/pages/restrictions.blade.php +++ b/resources/views/pages/restrictions.blade.php @@ -12,7 +12,7 @@ <div class="card"> <h3>@icon('lock') {{ trans('entities.pages_permissions') }}</h3> <div class="body"> - @include('form.restriction-form', ['model' => $page]) + @include('form.entity-permissions', ['model' => $page]) </div> </div> </div> diff --git a/resources/views/shelves/restrictions.blade.php b/resources/views/shelves/restrictions.blade.php index 472078ad2..dbbff4bab 100644 --- a/resources/views/shelves/restrictions.blade.php +++ b/resources/views/shelves/restrictions.blade.php @@ -13,7 +13,7 @@ <div class="card"> <h3>@icon('lock') {{ trans('entities.shelves_permissions') }}</h3> <div class="body"> - @include('form/restriction-form', ['model' => $shelf]) + @include('form.entity-permissions', ['model' => $shelf]) </div> </div> diff --git a/routes/web.php b/routes/web.php index bfdd0e580..164dda4bd 100644 --- a/routes/web.php +++ b/routes/web.php @@ -40,8 +40,8 @@ Route::group(['middleware' => 'auth'], function () { Route::delete('/{id}', 'BookController@destroy'); Route::get('/{slug}/sort-item', 'BookController@getSortItem'); Route::get('/{slug}', 'BookController@show'); - Route::get('/{bookSlug}/permissions', 'BookController@showRestrict'); - Route::put('/{bookSlug}/permissions', 'BookController@restrict'); + Route::get('/{bookSlug}/permissions', 'BookController@showPermissions'); + Route::put('/{bookSlug}/permissions', 'BookController@permissions'); Route::get('/{slug}/delete', 'BookController@showDelete'); Route::get('/{bookSlug}/sort', 'BookController@sort'); Route::put('/{bookSlug}/sort', 'BookController@saveSort');