Updated a bunch of book views

This commit is contained in:
Dan Brown 2019-01-31 20:37:12 +00:00
parent 0efed43389
commit 32603362a6
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
16 changed files with 144 additions and 132 deletions

View File

@ -275,12 +275,12 @@ class BookController extends Controller
* @param $bookSlug * @param $bookSlug
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/ */
public function showRestrict($bookSlug) public function showPermissions($bookSlug)
{ {
$book = $this->entityRepo->getBySlug('book', $bookSlug); $book = $this->entityRepo->getBySlug('book', $bookSlug);
$this->checkOwnablePermission('restrictions-manage', $book); $this->checkOwnablePermission('restrictions-manage', $book);
$roles = $this->userRepo->getRestrictableRoles(); $roles = $this->userRepo->getRestrictableRoles();
return view('books/restrictions', [ return view('books.permissions', [
'book' => $book, 'book' => $book,
'roles' => $roles 'roles' => $roles
]); ]);
@ -289,11 +289,12 @@ class BookController extends Controller
/** /**
* Set the restrictions for this book. * Set the restrictions for this book.
* @param $bookSlug * @param $bookSlug
* @param $bookSlug
* @param Request $request * @param Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector * @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); $book = $this->entityRepo->getBySlug('book', $bookSlug);
$this->checkOwnablePermission('restrictions-manage', $book); $this->checkOwnablePermission('restrictions-manage', $book);

View File

@ -175,7 +175,7 @@
background-color: #FFF; background-color: #FFF;
box-shadow: $bs-card; box-shadow: $bs-card;
border-radius: 3px; border-radius: 3px;
padding-bottom: $-xs; border: 1px solid transparent;
h3 { h3 {
padding: $-m; padding: $-m;
padding-bottom: $-xs; padding-bottom: $-xs;

View File

@ -57,6 +57,9 @@ body.flexbox {
margin-bottom: $-xl; margin-bottom: $-xl;
overflow: auto; overflow: auto;
min-height: 60vh; min-height: 60vh;
&.auto-height {
min-height: 0;
}
} }
.tri-layout-container { .tri-layout-container {
@ -199,6 +202,14 @@ div[class^="col-"] img {
&.third { &.third {
grid-template-columns: 1fr 1fr 1fr; 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 { .grid-card {
@ -255,6 +266,9 @@ div[class^="col-"] img {
.grid.third { .grid.third {
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
} }
.grid.left-focus {
grid-template-columns: 1fr;
}
} }
@include smaller-than($s) { @include smaller-than($s) {

View File

@ -91,6 +91,9 @@
padding-left: 1.5rem; padding-left: 1.5rem;
padding-bottom: .2rem; padding-bottom: .2rem;
} }
.icon {
z-index: 2;
}
&:after, .sub-menu:after { &:after, .sub-menu:after {
content: ''; content: '';
display: block; display: block;
@ -100,7 +103,7 @@
bottom: 1rem; bottom: 1rem;
border-left: 2px solid #DDD; border-left: 2px solid #DDD;
opacity: 0.6; opacity: 0.6;
z-index: 1; z-index: 0;
} }
} }

View File

@ -1,28 +1,27 @@
@extends('simple-layout') @extends('simple-layout')
@section('toolbar')
<div class="col-sm-12 faded">
@include('books._breadcrumbs', ['book' => $book])
</div>
@stop
@section('body') @section('body')
<div class="container small"> <div class="container small">
<p>&nbsp;</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"> <div class="my-l">
{!! csrf_field() !!} @include('partials.breadcrumbs', ['crumbs' => [
<input type="hidden" name="_method" value="DELETE"> $book,
<a href="{{$book->getUrl()}}" class="button outline">{{ trans('common.cancel') }}</a> $book->getUrl('/delete') => trans('entities.books_delete')
<button type="submit" class="button neg">{{ trans('common.confirm') }}</button> ]])
</form> </div>
</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>
</div> </div>

View File

@ -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

View File

@ -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>&nbsp;</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

View File

@ -1,53 +1,54 @@
@extends('simple-layout') @extends('simple-layout')
@section('toolbar')
<div class="col-sm-12 faded">
@include('books._breadcrumbs', ['book' => $book])
</div>
@stop
@section('body') @section('body')
<div class="container"> <div class="container">
<div class="row"> <div class="my-l">
<div class="col-md-8"> @include('partials.breadcrumbs', ['crumbs' => [
<div class="card"> $book,
<h3>@icon('sort') {{ trans('entities.books_sort') }}</h3> $book->getUrl('/sort') => trans('entities.books_sort')
<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> </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> </div>
@stop @stop

View File

@ -1,26 +1,21 @@
@extends('simple-layout') @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">&raquo;</span>
<a href="{{ $book->getUrl('/create-chapter')}}" class="text-button">@icon('add'){{ trans('entities.chapters_create') }}</a>
</div>
</div>
@stop
@section('body') @section('body')
<div class="container small"> <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 @stop

View File

@ -1,24 +1,25 @@
@extends('simple-layout') @extends('simple-layout')
@section('toolbar')
<div class="col-sm-12 faded">
@include('chapters._breadcrumbs', ['chapter' => $chapter])
</div>
@stop
@section('body') @section('body')
<div class="container small"> <div class="container small">
<p>&nbsp;</p>
<div class="card"> <div class="my-l">
<h3>@icon('edit') {{ trans('entities.chapters_edit') }}</h3> @include('partials.breadcrumbs', ['crumbs' => [
<div class="body"> $book,
<form action="{{ $chapter->getUrl() }}" method="POST"> $chapter,
<input type="hidden" name="_method" value="PUT"> $chapter->getUrl('/edit') => trans('entities.chapters_edit')
@include('chapters/form', ['model' => $chapter]) ]])
</form>
</div>
</div> </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> </div>
@stop @stop

View File

@ -22,5 +22,5 @@
<div class="form-group text-right"> <div class="form-group text-right">
<a href="{{ isset($chapter) ? $chapter->getUrl() : $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> <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> </div>

View File

@ -13,7 +13,7 @@
<div class="card"> <div class="card">
<h3>@icon('lock') {{ trans('entities.chapters_permissions') }}</h3> <h3>@icon('lock') {{ trans('entities.chapters_permissions') }}</h3>
<div class="body"> <div class="body">
@include('form/restriction-form', ['model' => $chapter]) @include('form.entity-permissions', ['model' => $chapter])
</div> </div>
</div> </div>
</div> </div>

View File

@ -8,7 +8,6 @@
@include('form/checkbox', ['name' => 'restricted', 'label' => trans('entities.permissions_enable')]) @include('form/checkbox', ['name' => 'restricted', 'label' => trans('entities.permissions_enable')])
</div> </div>
<table class="table"> <table class="table">
<tr> <tr>
<th>{{ trans('common.role') }}</th> <th>{{ trans('common.role') }}</th>
@ -29,6 +28,6 @@
<div class="text-right"> <div class="text-right">
<a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a> <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> </div>
</form> </form>

View File

@ -12,7 +12,7 @@
<div class="card"> <div class="card">
<h3>@icon('lock') {{ trans('entities.pages_permissions') }}</h3> <h3>@icon('lock') {{ trans('entities.pages_permissions') }}</h3>
<div class="body"> <div class="body">
@include('form.restriction-form', ['model' => $page]) @include('form.entity-permissions', ['model' => $page])
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
<div class="card"> <div class="card">
<h3>@icon('lock') {{ trans('entities.shelves_permissions') }}</h3> <h3>@icon('lock') {{ trans('entities.shelves_permissions') }}</h3>
<div class="body"> <div class="body">
@include('form/restriction-form', ['model' => $shelf]) @include('form.entity-permissions', ['model' => $shelf])
</div> </div>
</div> </div>

View File

@ -40,8 +40,8 @@ Route::group(['middleware' => 'auth'], function () {
Route::delete('/{id}', 'BookController@destroy'); Route::delete('/{id}', 'BookController@destroy');
Route::get('/{slug}/sort-item', 'BookController@getSortItem'); Route::get('/{slug}/sort-item', 'BookController@getSortItem');
Route::get('/{slug}', 'BookController@show'); Route::get('/{slug}', 'BookController@show');
Route::get('/{bookSlug}/permissions', 'BookController@showRestrict'); Route::get('/{bookSlug}/permissions', 'BookController@showPermissions');
Route::put('/{bookSlug}/permissions', 'BookController@restrict'); Route::put('/{bookSlug}/permissions', 'BookController@permissions');
Route::get('/{slug}/delete', 'BookController@showDelete'); Route::get('/{slug}/delete', 'BookController@showDelete');
Route::get('/{bookSlug}/sort', 'BookController@sort'); Route::get('/{bookSlug}/sort', 'BookController@sort');
Route::put('/{bookSlug}/sort', 'BookController@saveSort'); Route::put('/{bookSlug}/sort', 'BookController@saveSort');