mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 15:26:43 +08:00
Extracted text from book & chapter views
This commit is contained in:
parent
694a9459c1
commit
57dc53ceff
|
@ -22,6 +22,7 @@
|
||||||
<php>
|
<php>
|
||||||
<env name="APP_ENV" value="testing"/>
|
<env name="APP_ENV" value="testing"/>
|
||||||
<env name="APP_DEBUG" value="false"/>
|
<env name="APP_DEBUG" value="false"/>
|
||||||
|
<env name="APP_LANG" value="en"/>
|
||||||
<env name="CACHE_DRIVER" value="array"/>
|
<env name="CACHE_DRIVER" value="array"/>
|
||||||
<env name="SESSION_DRIVER" value="array"/>
|
<env name="SESSION_DRIVER" value="array"/>
|
||||||
<env name="QUEUE_DRIVER" value="sync"/>
|
<env name="QUEUE_DRIVER" value="sync"/>
|
||||||
|
|
16
resources/lang/en/common.php
Normal file
16
resources/lang/en/common.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Buttons
|
||||||
|
*/
|
||||||
|
'cancel' => 'Cancel',
|
||||||
|
'confirm' => 'Confirm',
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Form Labels
|
||||||
|
*/
|
||||||
|
'name' => 'Name',
|
||||||
|
'description' => 'Description',
|
||||||
|
];
|
75
resources/lang/en/entities.php
Normal file
75
resources/lang/en/entities.php
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared
|
||||||
|
*/
|
||||||
|
'recently_created' => 'Recently Created',
|
||||||
|
'recently_update' => 'Recently Updated',
|
||||||
|
'recently_viewed' => 'Recently Viewed',
|
||||||
|
'recent_activity' => 'Recent Activity',
|
||||||
|
'create_now' => 'Create one now',
|
||||||
|
'edit' => 'Edit',
|
||||||
|
'sort' => 'Sort',
|
||||||
|
'move' => 'Move',
|
||||||
|
'permissions' => 'Permissions',
|
||||||
|
'delete' => 'Delete',
|
||||||
|
'meta_created' => 'Created :timeLength',
|
||||||
|
'meta_created_name' => 'Created :timeLength by :user',
|
||||||
|
'meta_updated' => 'Updated :timeLength',
|
||||||
|
'meta_updated_name' => 'Updated :timeLength by :user',
|
||||||
|
'x_pages' => ':count Pages',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search
|
||||||
|
*/
|
||||||
|
'search_results' => 'Search Results',
|
||||||
|
'search_clear' => 'Clear Search',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Books
|
||||||
|
*/
|
||||||
|
'books' => 'Books',
|
||||||
|
'books_empty' => 'No books have been created',
|
||||||
|
'books_popular' => 'Popular Books',
|
||||||
|
'books_popular_empty' => 'The most popular books will appear here.',
|
||||||
|
'books_create' => 'Create New Book',
|
||||||
|
'books_delete' => 'Delete Book',
|
||||||
|
'books_delete_explain' => 'This will delete the book with the name \':bookName\', All pages and chapters will be removed.',
|
||||||
|
'books_delete_confirmation' => 'Are you sure you want to delete this book?',
|
||||||
|
'books_edit' => 'Edit Book',
|
||||||
|
'books_form_book_name' => 'Book Name',
|
||||||
|
'books_save' => 'Save Book',
|
||||||
|
'books_permissions' => 'Book Permissions',
|
||||||
|
'books_empty_contents' => 'No pages or chapters have been created for this book.',
|
||||||
|
'books_empty_create_page' => 'Create a new page',
|
||||||
|
'books_empty_or' => 'or',
|
||||||
|
'books_empty_sort_current_book' => 'Sort the current book',
|
||||||
|
'books_empty_add_chapter' => 'Add a chapter',
|
||||||
|
'books_permissions_active' => 'Book Permissions Active',
|
||||||
|
'books_search_this' => 'Search this book',
|
||||||
|
'books_navigation' => 'Book Navigation',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chapters
|
||||||
|
*/
|
||||||
|
'chapters_new' => 'New Chapter',
|
||||||
|
'chapters_create' => 'Create New Chapter',
|
||||||
|
'chapters_delete' => 'Delete Chapter',
|
||||||
|
'chapters_delete_explain' => 'This will delete the chapter with the name \':chapterName\', All pages will be removed
|
||||||
|
and added directly to the parent book.',
|
||||||
|
'chapters_delete_confirm' => 'Are you sure you want to delete this chapter?',
|
||||||
|
'chapters_edit' => 'Edit Chapter',
|
||||||
|
'chapters_save' => 'Save Chapter',
|
||||||
|
'chapters_move' => 'Move Chapter',
|
||||||
|
'chapters_permissions' => 'Chapter Permissions',
|
||||||
|
'chapters_empty' => 'No pages are currently in this chapter.',
|
||||||
|
'chapters_permissions_active' => 'Chapter Permissions Active',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pages
|
||||||
|
*/
|
||||||
|
'pages_new' => 'New Page',
|
||||||
|
'pages_attachments' => 'Attachments',
|
||||||
|
'pages_navigation' => 'Page Navigation',
|
||||||
|
];
|
|
@ -1,4 +1,4 @@
|
||||||
1@extends('public')
|
@extends('public')
|
||||||
|
|
||||||
@section('header-buttons')
|
@section('header-buttons')
|
||||||
<a href="{{ baseUrl("/login") }}"><i class="zmdi zmdi-sign-in"></i>{{ trans('auth.log_in') }}</a>
|
<a href="{{ baseUrl("/login") }}"><i class="zmdi zmdi-sign-in"></i>{{ trans('auth.log_in') }}</a>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Create New Book</h1>
|
<h1>{{ trans('entities.books_create') }}</h1>
|
||||||
<form action="{{ baseUrl("/books") }}" method="POST">
|
<form action="{{ baseUrl("/books") }}" method="POST">
|
||||||
@include('books/form')
|
@include('books/form')
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -3,15 +3,15 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Delete Book</h1>
|
<h1>{{ trans('entities.books_delete') }}</h1>
|
||||||
<p>This will delete the book with the name '{{$book->name}}', All pages and chapters will be removed.</p>
|
<p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p>
|
||||||
<p class="text-neg">Are you sure you want to delete this book?</p>
|
<p class="text-neg">{{ trans('entities.books_delete_confirmation') }}</p>
|
||||||
|
|
||||||
<form action="{{$book->getUrl()}}" method="POST">
|
<form action="{{$book->getUrl()}}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
<input type="hidden" name="_method" value="DELETE">
|
<input type="hidden" name="_method" value="DELETE">
|
||||||
<a href="{{$book->getUrl()}}" class="button">Cancel</a>
|
<a href="{{$book->getUrl()}}" class="button">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button neg">Confirm</button>
|
<button type="submit" class="button neg">{{ trans('common.confirm') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Edit Book</h1>
|
<h1>{{ trans('entities.books_edit') }}</h1>
|
||||||
<form action="{{ $book->getUrl() }}" method="POST">
|
<form action="{{ $book->getUrl() }}" method="POST">
|
||||||
<input type="hidden" name="_method" value="PUT">
|
<input type="hidden" name="_method" value="PUT">
|
||||||
@include('books/form', ['model' => $book])
|
@include('books/form', ['model' => $book])
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
|
|
||||||
{{ csrf_field() }}
|
{{ csrf_field() }}
|
||||||
<div class="form-group title-input">
|
<div class="form-group title-input">
|
||||||
<label for="name">Book Name</label>
|
<label for="name">{{ trans('common.name') }}</label>
|
||||||
@include('form/text', ['name' => 'name'])
|
@include('form/text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group description-input">
|
<div class="form-group description-input">
|
||||||
<label for="description">Description</label>
|
<label for="description">{{ trans('common.description') }}</label>
|
||||||
@include('form/textarea', ['name' => 'description'])
|
@include('form/textarea', ['name' => 'description'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ back()->getTargetUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ back()->getTargetUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Save Book</button>
|
<button type="submit" class="button pos">{{ trans('entities.books_save') }}</button>
|
||||||
</div>
|
</div>
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="col-xs-11 faded">
|
<div class="col-xs-11 faded">
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
@if($currentUser->can('book-create-all'))
|
@if($currentUser->can('book-create-all'))
|
||||||
<a href="{{ baseUrl("/books/create") }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>Add new book</a>
|
<a href="{{ baseUrl("/books/create") }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.books_create') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<h1>Books</h1>
|
<h1>{{ trans('entities.books') }}</h1>
|
||||||
@if(count($books) > 0)
|
@if(count($books) > 0)
|
||||||
@foreach($books as $book)
|
@foreach($books as $book)
|
||||||
@include('books/list-item', ['book' => $book])
|
@include('books/list-item', ['book' => $book])
|
||||||
|
@ -29,27 +29,27 @@
|
||||||
@endforeach
|
@endforeach
|
||||||
{!! $books->render() !!}
|
{!! $books->render() !!}
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">No books have been created.</p>
|
<p class="text-muted">{{ trans('entities.books_empty') }}</p>
|
||||||
@if(userCan('books-create-all'))
|
@if(userCan('books-create-all'))
|
||||||
<a href="{{ baseUrl("/books/create") }}" class="text-pos"><i class="zmdi zmdi-edit"></i>Create one now</a>
|
<a href="{{ baseUrl("/books/create") }}" class="text-pos"><i class="zmdi zmdi-edit"></i>{{ trans('entities.create_one_now') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 col-sm-offset-1">
|
<div class="col-sm-4 col-sm-offset-1">
|
||||||
<div id="recents">
|
<div id="recents">
|
||||||
@if($recents)
|
@if($recents)
|
||||||
<div class="margin-top large"> </div>
|
<div class="margin-top"> </div>
|
||||||
<h3>Recently Viewed</h3>
|
<h3>{{ trans('entities.recently_viewed') }}</h3>
|
||||||
@include('partials/entity-list', ['entities' => $recents])
|
@include('partials/entity-list', ['entities' => $recents])
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="margin-top large"> </div>
|
<div class="margin-top large"> </div>
|
||||||
<div id="popular">
|
<div id="popular">
|
||||||
<h3>Popular Books</h3>
|
<h3>{{ trans('entities.books_popular') }}</h3>
|
||||||
@if(count($popular) > 0)
|
@if(count($popular) > 0)
|
||||||
@include('partials/entity-list', ['entities' => $popular])
|
@include('partials/entity-list', ['entities' => $popular])
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">The most popular books will appear here.</p>
|
<p class="text-muted">{{ trans('entities.books_popular_empty') }}</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<h1>Book Permissions</h1>
|
<h1>{{ trans('entities.books_permissions') }}</h1>
|
||||||
@include('form/restriction-form', ['model' => $book])
|
@include('form/restriction-form', ['model' => $book])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -8,26 +8,26 @@
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="action-buttons faded">
|
<div class="action-buttons faded">
|
||||||
@if(userCan('page-create', $book))
|
@if(userCan('page-create', $book))
|
||||||
<a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i> New Page</a>
|
<a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('chapter-create', $book))
|
@if(userCan('chapter-create', $book))
|
||||||
<a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i> New Chapter</a>
|
<a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.chapters_new') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('book-update', $book))
|
@if(userCan('book-update', $book))
|
||||||
<a href="{{$book->getEditUrl()}}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>Edit</a>
|
<a href="{{$book->getEditUrl()}}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>{{ trans('entities.edit') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('book-update', $book) || userCan('restrictions-manage', $book) || userCan('book-delete', $book))
|
@if(userCan('book-update', $book) || userCan('restrictions-manage', $book) || userCan('book-delete', $book))
|
||||||
<div dropdown class="dropdown-container">
|
<div dropdown class="dropdown-container">
|
||||||
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
||||||
<ul>
|
<ul>
|
||||||
@if(userCan('book-update', $book))
|
@if(userCan('book-update', $book))
|
||||||
<li><a href="{{ $book->getUrl('/sort') }}" class="text-primary"><i class="zmdi zmdi-sort"></i>Sort</a></li>
|
<li><a href="{{ $book->getUrl('/sort') }}" class="text-primary"><i class="zmdi zmdi-sort"></i>{{ trans('entities.sort') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('restrictions-manage', $book))
|
@if(userCan('restrictions-manage', $book))
|
||||||
<li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>Permissions</a></li>
|
<li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('book-delete', $book))
|
@if(userCan('book-delete', $book))
|
||||||
<li><a href="{{ $book->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a></li>
|
<li><a href="{{ $book->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.delete') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,23 +59,19 @@
|
||||||
<hr>
|
<hr>
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">No pages or chapters have been created for this book.</p>
|
<p class="text-muted">{{ trans('entities.books_empty_contents') }}</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>Create a new page</a>
|
<a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a>
|
||||||
<em class="text-muted">-or-</em>
|
<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>
|
||||||
<a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>Add a chapter</a>
|
<a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.books_empty_add_chapter') }}</a>
|
||||||
</p>
|
</p>
|
||||||
<hr>
|
<hr>
|
||||||
@endif
|
@endif
|
||||||
<p class="text-muted small">
|
@include('partials.entity-meta', ['entity' => $book])
|
||||||
Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by <a href="{{ $book->createdBy->getProfileUrl() }}">{{$book->createdBy->name}}</a> @endif
|
|
||||||
<br>
|
|
||||||
Last Updated {{$book->updated_at->diffForHumans()}} @if($book->updatedBy) by <a href="{{ $book->updatedBy->getProfileUrl() }}">{{$book->updatedBy->name}}</a> @endif
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="search-results" ng-cloak ng-show="searching">
|
<div class="search-results" ng-cloak ng-show="searching">
|
||||||
<h3 class="text-muted">Search Results <a ng-if="searching" ng-click="clearSearch()" class="text-small"><i class="zmdi zmdi-close"></i>Clear Search</a></h3>
|
<h3 class="text-muted">{{ trans('entities.search_results') }} <a ng-if="searching" ng-click="clearSearch()" class="text-small"><i class="zmdi zmdi-close"></i>{{ trans('entities.search_clear') }}</a></h3>
|
||||||
<div ng-if="!searchResults">
|
<div ng-if="!searchResults">
|
||||||
@include('partials/loading-icon')
|
@include('partials/loading-icon')
|
||||||
</div>
|
</div>
|
||||||
|
@ -90,21 +86,21 @@
|
||||||
@if($book->restricted)
|
@if($book->restricted)
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
@if(userCan('restrictions-manage', $book))
|
@if(userCan('restrictions-manage', $book))
|
||||||
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Book Permissions Active</a>
|
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Book Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
</p>
|
</p>
|
||||||
@endif
|
@endif
|
||||||
<div class="search-box">
|
<div class="search-box">
|
||||||
<form ng-submit="searchBook($event)">
|
<form ng-submit="searchBook($event)">
|
||||||
<input ng-model="searchTerm" ng-change="checkSearchForm()" type="text" name="term" placeholder="Search This Book">
|
<input ng-model="searchTerm" ng-change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.books_search_this') }}">
|
||||||
<button type="submit"><i class="zmdi zmdi-search"></i></button>
|
<button type="submit"><i class="zmdi zmdi-search"></i></button>
|
||||||
<button ng-if="searching" ng-click="clearSearch()" type="button"><i class="zmdi zmdi-close"></i></button>
|
<button ng-if="searching" ng-click="clearSearch()" type="button"><i class="zmdi zmdi-close"></i></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="activity anim fadeIn">
|
<div class="activity anim fadeIn">
|
||||||
<h3>Recent Activity</h3>
|
<h3>{{ trans('entities.recent_activity') }}</h3>
|
||||||
@include('partials/activity-list', ['activity' => Activity::entityActivity($book, 20, 0)])
|
@include('partials/activity-list', ['activity' => Activity::entityActivity($book, 20, 0)])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Create New Chapter</h1>
|
<h1>{{ trans('entities.chapters_create') }}</h1>
|
||||||
<form action="{{ $book->getUrl('/chapter/create') }}" method="POST">
|
<form action="{{ $book->getUrl('/chapter/create') }}" method="POST">
|
||||||
@include('chapters/form')
|
@include('chapters/form')
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -3,16 +3,15 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Delete Chapter</h1>
|
<h1>{{ trans('entities.chapters_delete') }}</h1>
|
||||||
<p>This will delete the chapter with the name '{{$chapter->name}}', All pages will be removed
|
<p>{{ trans('entities.chapters_delete_explain', ['chapterName' => $chapter->name]) }}</p>
|
||||||
and added directly to the book.</p>
|
<p class="text-neg">{{ trans('entities.chapters_delete_confirm') }}</p>
|
||||||
<p class="text-neg">Are you sure you want to delete this chapter?</p>
|
|
||||||
|
|
||||||
<form action="{{ $chapter->getUrl() }}" method="POST">
|
<form action="{{ $chapter->getUrl() }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
<input type="hidden" name="_method" value="DELETE">
|
<input type="hidden" name="_method" value="DELETE">
|
||||||
<a href="{{ $chapter->getUrl() }}" class="button primary">Cancel</a>
|
<a href="{{ $chapter->getUrl() }}" class="button primary">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button neg">Confirm</button>
|
<button type="submit" class="button neg">{{ trans('common.confirm') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Edit Chapter</h1>
|
<h1>{{ trans('entities.chapters_edit') }}</h1>
|
||||||
<form action="{{ $chapter->getUrl() }}" method="POST">
|
<form action="{{ $chapter->getUrl() }}" method="POST">
|
||||||
<input type="hidden" name="_method" value="PUT">
|
<input type="hidden" name="_method" value="PUT">
|
||||||
@include('chapters/form', ['model' => $chapter])
|
@include('chapters/form', ['model' => $chapter])
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
<div class="form-group title-input">
|
<div class="form-group title-input">
|
||||||
<label for="name">Chapter Name</label>
|
<label for="name">{{ trans('common.name') }}</label>
|
||||||
@include('form/text', ['name' => 'name'])
|
@include('form/text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group description-input">
|
<div class="form-group description-input">
|
||||||
<label for="description">Description</label>
|
<label for="description">{{ trans('common.description') }}</label>
|
||||||
@include('form/textarea', ['name' => 'description'])
|
@include('form/textarea', ['name' => 'description'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ back()->getTargetUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ back()->getTargetUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Save Chapter</button>
|
<button type="submit" class="button pos">{{ trans('entities.chapters_save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(!isset($hidePages) && count($chapter->pages) > 0)
|
@if(!isset($hidePages) && count($chapter->pages) > 0)
|
||||||
<p class="text-muted chapter-toggle"><i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ count($chapter->pages) }} Pages</span></p>
|
<p class="text-muted chapter-toggle"><i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ trans('entities.x_pages', ['count' => $chapter->pages->count()]) }}</span></p>
|
||||||
<div class="inset-list">
|
<div class="inset-list">
|
||||||
@foreach($chapter->pages as $page)
|
@foreach($chapter->pages as $page)
|
||||||
<h5 class="@if($page->draft) draft @endif"><a href="{{ $page->getUrl() }}" class="text-page @if($page->draft) draft @endif"><i class="zmdi zmdi-file-text"></i>{{$page->name}}</a></h5>
|
<h5 class="@if($page->draft) draft @endif"><a href="{{ $page->getUrl() }}" class="text-page @if($page->draft) draft @endif"><i class="zmdi zmdi-file-text"></i>{{$page->name}}</a></h5>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Move Chapter <small class="subheader">{{$chapter->name}}</small></h1>
|
<h1>{{ trans('entities.chapters_move') }} <small class="subheader">{{$chapter->name}}</small></h1>
|
||||||
|
|
||||||
<form action="{{ $chapter->getUrl('/move') }}" method="POST">
|
<form action="{{ $chapter->getUrl('/move') }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
@ -25,8 +25,8 @@
|
||||||
|
|
||||||
@include('partials/entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book'])
|
@include('partials/entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book'])
|
||||||
|
|
||||||
<a href="{{ $chapter->getUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ $chapter->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Move Chapter</button>
|
<button type="submit" class="button pos">{{ trans('entities.chapters_move') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<h1>Chapter Permissions</h1>
|
<h1>{{ trans('entities.chapters_permissions') }}</h1>
|
||||||
@include('form/restriction-form', ['model' => $chapter])
|
@include('form/restriction-form', ['model' => $chapter])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -13,23 +13,23 @@
|
||||||
<div class="col-sm-4 faded">
|
<div class="col-sm-4 faded">
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
@if(userCan('page-create', $chapter))
|
@if(userCan('page-create', $chapter))
|
||||||
<a href="{{ $chapter->getUrl('/create-page') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>New Page</a>
|
<a href="{{ $chapter->getUrl('/create-page') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('chapter-update', $chapter))
|
@if(userCan('chapter-update', $chapter))
|
||||||
<a href="{{ $chapter->getUrl('/edit') }}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>Edit</a>
|
<a href="{{ $chapter->getUrl('/edit') }}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>{{ trans('entities.edit') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('chapter-update', $chapter) || userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter))
|
@if(userCan('chapter-update', $chapter) || userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter))
|
||||||
<div dropdown class="dropdown-container">
|
<div dropdown class="dropdown-container">
|
||||||
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
||||||
<ul>
|
<ul>
|
||||||
@if(userCan('chapter-update', $chapter))
|
@if(userCan('chapter-update', $chapter))
|
||||||
<li><a href="{{ $chapter->getUrl('/move') }}" class="text-primary"><i class="zmdi zmdi-folder"></i>Move</a></li>
|
<li><a href="{{ $chapter->getUrl('/move') }}" class="text-primary"><i class="zmdi zmdi-folder"></i>{{ trans('entities.move') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('restrictions-manage', $chapter))
|
@if(userCan('restrictions-manage', $chapter))
|
||||||
<li><a href="{{ $chapter->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>Permissions</a></li>
|
<li><a href="{{ $chapter->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('chapter-delete', $chapter))
|
@if(userCan('chapter-delete', $chapter))
|
||||||
<li><a href="{{ $chapter->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a></li>
|
<li><a href="{{ $chapter->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.delete') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,26 +57,22 @@
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<hr>
|
<hr>
|
||||||
<p class="text-muted">No pages are currently in this chapter.</p>
|
<p class="text-muted">{{ trans('entities.chapters_empty') }}</p>
|
||||||
<p>
|
<p>
|
||||||
@if(userCan('page-create', $chapter))
|
@if(userCan('page-create', $chapter))
|
||||||
<a href="{{ $chapter->getUrl('/create-page') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>Create a new page</a>
|
<a href="{{ $chapter->getUrl('/create-page') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('page-create', $chapter) && userCan('book-update', $book))
|
@if(userCan('page-create', $chapter) && userCan('book-update', $book))
|
||||||
<em class="text-muted">-or-</em>
|
<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('book-update', $book))
|
@if(userCan('book-update', $book))
|
||||||
<a href="{{ $book->getUrl('/sort') }}" class="text-book"><i class="zmdi zmdi-book"></i>Sort the current book</a>
|
<a href="{{ $book->getUrl('/sort') }}" class="text-book"><i class="zmdi zmdi-book"></i>{{ trans('entities.books_empty_sort_current_book') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</p>
|
</p>
|
||||||
<hr>
|
<hr>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<p class="text-muted small">
|
@include('partials.entity-meta', ['entity' => $chapter])
|
||||||
Created {{ $chapter->created_at->diffForHumans() }} @if($chapter->createdBy) by <a href="{{ $chapter->createdBy->getProfileUrl() }}">{{ $chapter->createdBy->name}}</a> @endif
|
|
||||||
<br>
|
|
||||||
Last Updated {{ $chapter->updated_at->diffForHumans() }} @if($chapter->updatedBy) by <a href="{{ $chapter->updatedBy->getProfileUrl() }}">{{ $chapter->updatedBy->name}}</a> @endif
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 col-md-offset-1">
|
<div class="col-md-3 col-md-offset-1">
|
||||||
<div class="margin-top large"></div>
|
<div class="margin-top large"></div>
|
||||||
|
@ -84,19 +80,20 @@
|
||||||
<div class="text-muted">
|
<div class="text-muted">
|
||||||
|
|
||||||
@if($book->restricted)
|
@if($book->restricted)
|
||||||
|
<p class="text-muted">
|
||||||
@if(userCan('restrictions-manage', $book))
|
@if(userCan('restrictions-manage', $book))
|
||||||
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Book Permissions Active</a>
|
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Book Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
<br>
|
</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($chapter->restricted)
|
@if($chapter->restricted)
|
||||||
@if(userCan('restrictions-manage', $chapter))
|
@if(userCan('restrictions-manage', $chapter))
|
||||||
<a href="{{ $chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active</a>
|
<a href="{{ $chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -72,11 +72,7 @@
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p class="text-muted small">
|
@include('partials.entity-meta', ['entity' => $page])
|
||||||
Created {{ $page->created_at->diffForHumans() }} @if($page->createdBy) by <a href="{{ $page->createdBy->getProfileUrl() }}">{{$page->createdBy->name}}</a> @endif
|
|
||||||
<br>
|
|
||||||
Last Updated {{ $page->updated_at->diffForHumans() }} @if($page->updatedBy) by <a href="{{ $page->updatedBy->getProfileUrl() }}">{{$page->updatedBy->name}}</a> @endif
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="book-tree" ng-non-bindable>
|
<div class="book-tree" ng-non-bindable>
|
||||||
|
|
||||||
@if (isset($page) && $page->attachments->count() > 0)
|
@if (isset($page) && $page->attachments->count() > 0)
|
||||||
<h6 class="text-muted">Attachments</h6>
|
<h6 class="text-muted">{{ trans('entities.pages_attachments') }}</h6>
|
||||||
@foreach($page->attachments as $attachment)
|
@foreach($page->attachments as $attachment)
|
||||||
<div class="attachment">
|
<div class="attachment">
|
||||||
<a href="{{ $attachment->getUrl() }}" @if($attachment->external) target="_blank" @endif><i class="zmdi zmdi-{{ $attachment->external ? 'open-in-new' : 'file' }}"></i>{{ $attachment->name }}</a>
|
<a href="{{ $attachment->getUrl() }}" @if($attachment->external) target="_blank" @endif><i class="zmdi zmdi-{{ $attachment->external ? 'open-in-new' : 'file' }}"></i>{{ $attachment->name }}</a>
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (isset($pageNav) && $pageNav)
|
@if (isset($pageNav) && $pageNav)
|
||||||
<h6 class="text-muted">Page Navigation</h6>
|
<h6 class="text-muted">{{ trans('entities.pages_navigation') }}</h6>
|
||||||
<div class="sidebar-page-nav menu">
|
<div class="sidebar-page-nav menu">
|
||||||
@foreach($pageNav as $navItem)
|
@foreach($pageNav as $navItem)
|
||||||
<li class="page-nav-item {{ $navItem['nodeName'] }}">
|
<li class="page-nav-item {{ $navItem['nodeName'] }}">
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<h6 class="text-muted">Book Navigation</h6>
|
<h6 class="text-muted">{{ trans('entities.books_navigation') }}</h6>
|
||||||
<ul class="sidebar-page-list menu">
|
<ul class="sidebar-page-list menu">
|
||||||
<li class="book-header"><a href="{{ $book->getUrl() }}" class="book {{ $current->matches($book)? 'selected' : '' }}"><i class="zmdi zmdi-book"></i>{{$book->name}}</a></li>
|
<li class="book-header"><a href="{{ $book->getUrl() }}" class="book {{ $current->matches($book)? 'selected' : '' }}"><i class="zmdi zmdi-book"></i>{{$book->name}}</a></li>
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
|
|
||||||
@if($bookChild->isA('chapter') && count($bookChild->pages) > 0)
|
@if($bookChild->isA('chapter') && count($bookChild->pages) > 0)
|
||||||
<p class="text-muted chapter-toggle @if($bookChild->matchesOrContains($current)) open @endif">
|
<p class="text-muted chapter-toggle @if($bookChild->matchesOrContains($current)) open @endif">
|
||||||
<i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ count($bookChild->pages) }} Pages</span>
|
<i class="zmdi zmdi-caret-right"></i> <i class="zmdi zmdi-file-text"></i> <span>{{ trans('entities.x_pages', ['count' => $bookChild->pages->count()]) }}</span>
|
||||||
</p>
|
</p>
|
||||||
<ul class="menu sub-menu inset-list @if($bookChild->matchesOrContains($current)) open @endif">
|
<ul class="menu sub-menu inset-list @if($bookChild->matchesOrContains($current)) open @endif">
|
||||||
@foreach($bookChild->pages as $childPage)
|
@foreach($bookChild->pages as $childPage)
|
||||||
|
|
13
resources/views/partials/entity-meta.blade.php
Normal file
13
resources/views/partials/entity-meta.blade.php
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<p class="text-muted small">
|
||||||
|
@if ($entity->createdBy)
|
||||||
|
{!! trans('entities.meta_created_name', ['timeLength' => $entity->created_at->diffForHumans(), 'user' => "<a href='{$entity->createdBy->getProfileUrl()}'>".htmlentities($entity->createdBy->name). "</a>"]) !!}
|
||||||
|
@else
|
||||||
|
{{ trans('entities.meta_created', ['timeLength' => $entity->created_at->diffForHumans()]) }}
|
||||||
|
@endif
|
||||||
|
<br>
|
||||||
|
@if ($entity->updatedBy)
|
||||||
|
{!! trans('entities.meta_updated_name', ['timeLength' => $entity->updated_at->diffForHumans(), 'user' => "<a href='{$entity->updatedBy->getProfileUrl()}'>".htmlentities($entity->updatedBy->name). "</a>"]) !!}
|
||||||
|
@else
|
||||||
|
{{ trans('entities.meta_updated', ['timeLength' => $entity->updated_at->diffForHumans()]) }}
|
||||||
|
@endif
|
||||||
|
</p>
|
|
@ -245,7 +245,7 @@ class AuthTest extends TestCase
|
||||||
{
|
{
|
||||||
$this->setSettings(['registration-enabled' => 'true']);
|
$this->setSettings(['registration-enabled' => 'true']);
|
||||||
$this->visit('/password/email')
|
$this->visit('/password/email')
|
||||||
->seeLink('Sign in')
|
->seeLink('Log in')
|
||||||
->seeLink('Sign up');
|
->seeLink('Sign up');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,6 +260,6 @@ class AuthTest extends TestCase
|
||||||
return $this->visit('/login')
|
return $this->visit('/login')
|
||||||
->type($email, '#email')
|
->type($email, '#email')
|
||||||
->type($password, '#password')
|
->type($password, '#password')
|
||||||
->press('Sign In');
|
->press('Log In');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,11 +36,11 @@ class LdapTest extends \TestCase
|
||||||
->see('Username')
|
->see('Username')
|
||||||
->type($this->mockUser->name, '#username')
|
->type($this->mockUser->name, '#username')
|
||||||
->type($this->mockUser->password, '#password')
|
->type($this->mockUser->password, '#password')
|
||||||
->press('Sign In')
|
->press('Log In')
|
||||||
->seePageIs('/login')->see('Please enter an email to use for this account.');
|
->seePageIs('/login')->see('Please enter an email to use for this account.');
|
||||||
|
|
||||||
$this->type($this->mockUser->email, '#email')
|
$this->type($this->mockUser->email, '#email')
|
||||||
->press('Sign In')
|
->press('Log In')
|
||||||
->seePageIs('/')
|
->seePageIs('/')
|
||||||
->see($this->mockUser->name)
|
->see($this->mockUser->name)
|
||||||
->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $this->mockUser->name]);
|
->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $this->mockUser->name]);
|
||||||
|
@ -64,7 +64,7 @@ class LdapTest extends \TestCase
|
||||||
->see('Username')
|
->see('Username')
|
||||||
->type($this->mockUser->name, '#username')
|
->type($this->mockUser->name, '#username')
|
||||||
->type($this->mockUser->password, '#password')
|
->type($this->mockUser->password, '#password')
|
||||||
->press('Sign In')
|
->press('Log In')
|
||||||
->seePageIs('/')
|
->seePageIs('/')
|
||||||
->see($this->mockUser->name)
|
->see($this->mockUser->name)
|
||||||
->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $ldapDn]);
|
->seeInDatabase('users', ['email' => $this->mockUser->email, 'email_confirmed' => false, 'external_auth_id' => $ldapDn]);
|
||||||
|
@ -87,7 +87,7 @@ class LdapTest extends \TestCase
|
||||||
->see('Username')
|
->see('Username')
|
||||||
->type($this->mockUser->name, '#username')
|
->type($this->mockUser->name, '#username')
|
||||||
->type($this->mockUser->password, '#password')
|
->type($this->mockUser->password, '#password')
|
||||||
->press('Sign In')
|
->press('Log In')
|
||||||
->seePageIs('/login')->see('These credentials do not match our records.')
|
->seePageIs('/login')->see('These credentials do not match our records.')
|
||||||
->dontSeeInDatabase('users', ['external_auth_id' => $this->mockUser->name]);
|
->dontSeeInDatabase('users', ['external_auth_id' => $this->mockUser->name]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ class EntityTest extends TestCase
|
||||||
$this->asAdmin()
|
$this->asAdmin()
|
||||||
->visit('/books')
|
->visit('/books')
|
||||||
// Choose to create a book
|
// Choose to create a book
|
||||||
->click('Add new book')
|
->click('Create New Book')
|
||||||
->seePageIs('/books/create')
|
->seePageIs('/books/create')
|
||||||
// Fill out form & save
|
// Fill out form & save
|
||||||
->type($book->name, '#name')
|
->type($book->name, '#name')
|
||||||
|
|
|
@ -211,7 +211,7 @@ class RolesTest extends TestCase
|
||||||
$this->checkAccessPermission('book-create-all', [
|
$this->checkAccessPermission('book-create-all', [
|
||||||
'/books/create'
|
'/books/create'
|
||||||
], [
|
], [
|
||||||
'/books' => 'Add new book'
|
'/books' => 'Create New Book'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->visit('/books/create')
|
$this->visit('/books/create')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user