Reorgranised blade view files to form a convention

- Primarily moved and re-organised view files.
- Included readme within views to document the convention.
- Fixed some issues with page field select list in previous commit.
- Tweaked some route names while going through.
- Split some views out further.

Closes #2805
This commit is contained in:
Dan Brown 2021-08-22 13:15:58 +01:00
parent 2036618fbd
commit a61c9c5e98
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
192 changed files with 647 additions and 605 deletions

View File

@ -25,8 +25,8 @@ use Permissions;
*/
class Page extends BookChild
{
public static $listAttributes = ['name', 'id', 'slug', 'book_id', 'text', 'created_at', 'updated_at'];
public static $contentAttributes = ['name', 'id', 'slug', 'book_id', 'html', 'text', 'created_at', 'updated_at'];
public static $listAttributes = ['name', 'id', 'slug', 'book_id', 'chapter_id', 'draft', 'template', 'text', 'created_at', 'updated_at'];
public static $contentAttributes = ['name', 'id', 'slug', 'book_id', 'chapter_id', 'draft', 'template', 'html', 'text', 'created_at', 'updated_at'];
protected $fillable = ['name', 'priority', 'markdown'];

View File

@ -45,7 +45,7 @@ class BookContents
*/
public function getTree(bool $showDrafts = false, bool $renderPages = false): Collection
{
$pages = $this->getPages($showDrafts);
$pages = $this->getPages($showDrafts, $renderPages);
$chapters = Chapter::visible()->where('book_id', '=', $this->book->id)->get();
$all = collect()->concat($pages)->concat($chapters);
$chapterMap = $chapters->keyBy('id');

View File

@ -223,7 +223,7 @@ class PageContent
*/
public function render(bool $blankIncludes = false): string
{
$content = $this->page->html;
$content = $this->page->html ?? '';
if (!config('app.allow_content_scripts')) {
$content = HtmlContentFilter::removeScripts($content);

View File

@ -43,7 +43,7 @@ class BookSortController extends Controller
$book = $this->bookRepo->getBySlug($bookSlug);
$bookChildren = (new BookContents($book))->getTree();
return view('books.sort-box', ['book' => $book, 'bookChildren' => $bookChildren]);
return view('books.parts.sort-box', ['book' => $book, 'bookChildren' => $bookChildren]);
}
/**

View File

@ -82,7 +82,7 @@ class HomeController extends Controller
$shelves = app(BookshelfRepo::class)->getAllPaginated(18, $commonData['sort'], $commonData['order']);
$data = array_merge($commonData, ['shelves' => $shelves]);
return view('common.home-shelves', $data);
return view('home.shelves', $data);
}
if ($homepageOption === 'books') {
@ -90,7 +90,7 @@ class HomeController extends Controller
$books = $bookRepo->getAllPaginated(18, $commonData['sort'], $commonData['order']);
$data = array_merge($commonData, ['books' => $books]);
return view('common.home-book', $data);
return view('home.books', $data);
}
if ($homepageOption === 'page') {
@ -100,26 +100,24 @@ class HomeController extends Controller
$pageContent = new PageContent($customHomepage);
$customHomepage->html = $pageContent->render(true);
return view('common.home-custom', array_merge($commonData, ['customHomepage' => $customHomepage]));
return view('home.specific-page', array_merge($commonData, ['customHomepage' => $customHomepage]));
}
return view('common.home', $commonData);
return view('home.default', $commonData);
}
/**
* Get custom head HTML, Used in ajax calls to show in editor.
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function customHeadContent()
{
return view('partials.custom-head');
return view('common.custom-head');
}
/**
* Show the view for /robots.txt.
*/
public function getRobots()
public function robots()
{
$sitePublic = setting('app-public', false);
$allowRobots = config('app.allow_robots');
@ -129,14 +127,14 @@ class HomeController extends Controller
}
return response()
->view('common.robots', ['allowRobots' => $allowRobots])
->view('misc.robots', ['allowRobots' => $allowRobots])
->header('Content-Type', 'text/plain');
}
/**
* Show the route for 404 responses.
*/
public function getNotFound()
public function notFound()
{
return response()->view('errors.404', [], 404);
}

View File

@ -30,7 +30,7 @@ class DrawioImageController extends Controller
$imgData = $this->imageRepo->getEntityFiltered('drawio', $parentTypeFilter, $page, 24, $uploadedToFilter, $searchTerm);
return view('components.image-manager-list', [
return view('pages.parts.image-manager-list', [
'images' => $imgData['images'],
'hasMore' => $imgData['has_more'],
]);

View File

@ -33,7 +33,7 @@ class GalleryImageController extends Controller
$imgData = $this->imageRepo->getEntityFiltered('gallery', $parentTypeFilter, $page, 24, $uploadedToFilter, $searchTerm);
return view('components.image-manager-list', [
return view('pages.parts.image-manager-list', [
'images' => $imgData['images'],
'hasMore' => $imgData['has_more'],
]);

View File

@ -65,7 +65,7 @@ class ImageController extends Controller
$this->imageRepo->loadThumbs($image);
return view('components.image-manager-form', [
return view('pages.parts.image-manager-form', [
'image' => $image,
'dependantPages' => null,
]);
@ -87,7 +87,7 @@ class ImageController extends Controller
$this->imageRepo->loadThumbs($image);
return view('components.image-manager-form', [
return view('pages.parts.image-manager-form', [
'image' => $image,
'dependantPages' => $dependantPages ?? null,
]);

View File

@ -31,7 +31,7 @@ class PageTemplateController extends Controller
$templates->appends(['search' => $search]);
}
return view('pages.template-manager-list', [
return view('pages.parts.template-manager-list', [
'templates' => $templates,
]);
}

View File

@ -54,7 +54,7 @@ class SearchController extends Controller
$term = $request->get('term', '');
$results = $this->searchRunner->searchBook($bookId, $term);
return view('partials.entity-list', ['entities' => $results]);
return view('entities.list', ['entities' => $results]);
}
/**
@ -65,7 +65,7 @@ class SearchController extends Controller
$term = $request->get('term', '');
$results = $this->searchRunner->searchChapter($chapterId, $term);
return view('partials.entity-list', ['entities' => $results]);
return view('entities.list', ['entities' => $results]);
}
/**
@ -86,7 +86,7 @@ class SearchController extends Controller
$entities = (new Popular())->run(20, 0, $entityTypes, $permission);
}
return view('search.entity-ajax-list', ['entities' => $entities]);
return view('search.parts.entity-ajax-list', ['entities' => $entities]);
}
/**
@ -99,6 +99,6 @@ class SearchController extends Controller
$entities = (new SiblingFetcher())->fetch($type, $id);
return view('partials.entity-list-basic', ['entities' => $entities, 'style' => 'compact']);
return view('entities.list-basic', ['entities' => $entities, 'style' => 'compact']);
}
}

View File

@ -27,6 +27,6 @@ class UserSearchController extends Controller
$users = $query->get();
return view('components.user-select-list', compact('users'));
return view('form.user-select-list', compact('users'));
}
}

View File

@ -54,7 +54,7 @@ class AppServiceProvider extends ServiceProvider
]);
// View Composers
View::composer('partials.breadcrumbs', BreadcrumbsViewComposer::class);
View::composer('entities.breadcrumbs', BreadcrumbsViewComposer::class);
}
/**

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
@ -37,148 +37,7 @@
<div style="overflow: auto;">
<section code-highlighter class="card content-wrap auto-height">
<h1 class="list-heading text-capitals mb-l">Getting Started</h1>
<h5 id="authentication" class="text-mono mb-m">Authentication</h5>
<p>
To access the API a user has to have the <em>"Access System API"</em> permission enabled on one of their assigned roles.
Permissions to content accessed via the API is limited by the roles & permissions assigned to the user that's used to access the API.
</p>
<p>Authentication to use the API is primarily done using API Tokens. Once the <em>"Access System API"</em> permission has been assigned to a user, a "API Tokens" section should be visible when editing their user profile. Choose "Create Token" and enter an appropriate name and expiry date, relevant for your API usage then press "Save". A "Token ID" and "Token Secret" will be immediately displayed. These values should be used as a header in API HTTP requests in the following format:</p>
<pre><code class="language-css">Authorization: Token &lt;token_id&gt;:&lt;token_secret&gt;</code></pre>
<p>Here's an example of an authorized cURL request to list books in the system:</p>
<pre><code class="language-shell">curl --request GET \
--url https://example.com/api/books \
--header 'Authorization: Token C6mdvEQTGnebsmVn3sFNeeuelGEBjyQp:NOvD3VlzuSVuBPNaf1xWHmy7nIRlaj22'</code></pre>
<p>If already logged into the system within the browser, via a user account with permission to access the API, the system will also accept an existing session meaning you can browse API endpoints directly in the browser or use the browser devtools to play with the API.</p>
<hr>
<h5 id="request-format" class="text-mono mb-m">Request Format</h5>
<p>The API is primarily design to be interfaced using JSON so the majority of API endpoints, that accept data, will read JSON request data although <code>application/x-www-form-urlencoded</code> request data is also accepted. Endpoints that receive file data will need data sent in a <code>multipart/form-data</code> format although this will be highlighted in the documentation for such endpoints.</p>
<p>For endpoints in this documentation that accept data, a "Body Parameters" table will be available showing the parameters that will accepted in the request. Any rules for the values of such parameters, such as the data-type or if they're required, will be shown alongside the parameter name.</p>
<hr>
<h5 id="listing-endpoints" class="text-mono mb-m">Listing Endpoints</h5>
<p>Some endpoints will return a list of data models. These endpoints will return an array of the model data under a <code>data</code> property along with a numeric <code>total</code> property to indicate the total number of records found for the query within the system. Here's an example of a listing response:</p>
<pre><code class="language-json">{
"data": [
{
"id": 1,
"name": "BookStack User Guide",
"slug": "bookstack-user-guide",
"description": "This is a general guide on using BookStack on a day-to-day basis.",
"created_at": "2019-05-05 21:48:46",
"updated_at": "2019-12-11 20:57:31",
"created_by": 1,
"updated_by": 1,
"image_id": 3
}
],
"total": 16
}</code></pre>
<p>
There are a number of standard URL parameters that can be supplied to manipulate and page through the results returned from a listing endpoint:
</p>
<table class="table">
<tr>
<th>Parameter</th>
<th>Details</th>
<th width="30%">Examples</th>
</tr>
<tr>
<td>count</td>
<td>
Specify how many records will be returned in the response. <br>
(Default: {{ config('api.default_item_count') }}, Max: {{ config('api.max_item_count') }})
</td>
<td>Limit the count to 50<br><code>?count=50</code></td>
</tr>
<tr>
<td>offset</td>
<td>
Specify how many records to skip over in the response. <br>
(Default: 0)
</td>
<td>Skip over the first 100 records<br><code>?offset=100</code></td>
</tr>
<tr>
<td>sort</td>
<td>
Specify what field is used to sort the data and the direction of the sort (Ascending or Descending).<br>
Value is the name of a field, A <code>+</code> or <code>-</code> prefix dictates ordering. <br>
Direction defaults to ascending. <br>
Can use most fields shown in the response.
</td>
<td>
Sort by name ascending<br><code>?sort=+name</code> <br> <br>
Sort by "Created At" date descending<br><code>?sort=-created_at</code>
</td>
</tr>
<tr>
<td>filter[&lt;field&gt;]</td>
<td>
Specify a filter to be applied to the query. Can use most fields shown in the response. <br>
By default a filter will apply a "where equals" query but the below operations are available using the format filter[&lt;field&gt;:&lt;operation&gt;] <br>
<table>
<tr>
<td>eq</td>
<td>Where <code>&lt;field&gt;</code> equals the filter value.</td>
</tr>
<tr>
<td>ne</td>
<td>Where <code>&lt;field&gt;</code> does not equal the filter value.</td>
</tr>
<tr>
<td>gt</td>
<td>Where <code>&lt;field&gt;</code> is greater than the filter value.</td>
</tr>
<tr>
<td>lt</td>
<td>Where <code>&lt;field&gt;</code> is less than the filter value.</td>
</tr>
<tr>
<td>gte</td>
<td>Where <code>&lt;field&gt;</code> is greater than or equal to the filter value.</td>
</tr>
<tr>
<td>lte</td>
<td>Where <code>&lt;field&gt;</code> is less than or equal to the filter value.</td>
</tr>
<tr>
<td>like</td>
<td>
Where <code>&lt;field&gt;</code> is "like" the filter value. <br>
<code>%</code> symbols can be used as wildcards.
</td>
</tr>
</table>
</td>
<td>
Filter where id is 5: <br><code>?filter[id]=5</code><br><br>
Filter where id is not 5: <br><code>?filter[id:ne]=5</code><br><br>
Filter where name contains "cat": <br><code>?filter[name:like]=%cat%</code><br><br>
Filter where created after 2020-01-01: <br><code>?filter[created_at:gt]=2020-01-01</code>
</td>
</tr>
</table>
<hr>
<h5 id="error-handling" class="text-mono mb-m">Error Handling</h5>
<p>
Successful responses will return a 200 or 204 HTTP response code. Errors will return a 4xx or a 5xx HTTP response code depending on the type of error. Errors follow a standard format as shown below. The message provided may be translated depending on the configured language of the system in addition to the API users' language preference. The code provided in the JSON response will match the HTTP response code.
</p>
<pre><code class="language-json">{
"error": {
"code": 401,
"message": "No authorization token found on the request"
}
}
</code></pre>
@include('api-docs.parts.getting-started')
</section>
@foreach($docs as $model => $endpoints)
@ -186,52 +45,7 @@
<h1 class="list-heading text-capitals">{{ $model }}</h1>
@foreach($endpoints as $endpoint)
<h6 class="text-uppercase text-muted float right">{{ $endpoint['controller_method_kebab'] }}</h6>
<h5 id="{{ $endpoint['name'] }}" class="text-mono mb-m">
<span class="api-method" data-method="{{ $endpoint['method'] }}">{{ $endpoint['method'] }}</span>
@if($endpoint['controller_method_kebab'] === 'list')
<a style="color: inherit;" target="_blank" rel="noopener" href="{{ url($endpoint['uri']) }}">{{ url($endpoint['uri']) }}</a>
@else
{{ url($endpoint['uri']) }}
@endif
</h5>
<p class="mb-m">{{ $endpoint['description'] ?? '' }}</p>
@if($endpoint['body_params'] ?? false)
<details class="mb-m">
<summary class="text-muted">Body Parameters</summary>
<table class="table">
<tr>
<th>Param Name</th>
<th>Value Rules</th>
</tr>
@foreach($endpoint['body_params'] as $paramName => $rules)
<tr>
<td>{{ $paramName }}</td>
<td>
@foreach($rules as $rule)
<code class="mr-xs">{{ $rule }}</code>
@endforeach
</td>
</tr>
@endforeach
</table>
</details>
@endif
@if($endpoint['example_request'] ?? false)
<details details-highlighter class="mb-m">
<summary class="text-muted">Example Request</summary>
<pre><code class="language-json">{{ $endpoint['example_request'] }}</code></pre>
</details>
@endif
@if($endpoint['example_response'] ?? false)
<details details-highlighter class="mb-m">
<summary class="text-muted">Example Response</summary>
<pre><code class="language-json">{{ $endpoint['example_response'] }}</code></pre>
</details>
@endif
@if(!$loop->last)
<hr>
@endif
@include('api-docs.parts.endpoint', ['endpoint' => $endpoint, 'loop' => $loop])
@endforeach
</section>
@endforeach

View File

@ -0,0 +1,52 @@
<h6 class="text-uppercase text-muted float right">{{ $endpoint['controller_method_kebab'] }}</h6>
<h5 id="{{ $endpoint['name'] }}" class="text-mono mb-m">
<span class="api-method" data-method="{{ $endpoint['method'] }}">{{ $endpoint['method'] }}</span>
@if($endpoint['controller_method_kebab'] === 'list')
<a style="color: inherit;" target="_blank" rel="noopener" href="{{ url($endpoint['uri']) }}">{{ url($endpoint['uri']) }}</a>
@else
{{ url($endpoint['uri']) }}
@endif
</h5>
<p class="mb-m">{{ $endpoint['description'] ?? '' }}</p>
@if($endpoint['body_params'] ?? false)
<details class="mb-m">
<summary class="text-muted">Body Parameters</summary>
<table class="table">
<tr>
<th>Param Name</th>
<th>Value Rules</th>
</tr>
@foreach($endpoint['body_params'] as $paramName => $rules)
<tr>
<td>{{ $paramName }}</td>
<td>
@foreach($rules as $rule)
<code class="mr-xs">{{ $rule }}</code>
@endforeach
</td>
</tr>
@endforeach
</table>
</details>
@endif
@if($endpoint['example_request'] ?? false)
<details details-highlighter class="mb-m">
<summary class="text-muted">Example Request</summary>
<pre><code class="language-json">{{ $endpoint['example_request'] }}</code></pre>
</details>
@endif
@if($endpoint['example_response'] ?? false)
<details details-highlighter class="mb-m">
<summary class="text-muted">Example Response</summary>
<pre><code class="language-json">{{ $endpoint['example_response'] }}</code></pre>
</details>
@endif
@if(!$loop->last)
<hr>
@endif

View File

@ -0,0 +1,141 @@
<h1 class="list-heading text-capitals mb-l">Getting Started</h1>
<h5 id="authentication" class="text-mono mb-m">Authentication</h5>
<p>
To access the API a user has to have the <em>"Access System API"</em> permission enabled on one of their assigned roles.
Permissions to content accessed via the API is limited by the roles & permissions assigned to the user that's used to access the API.
</p>
<p>Authentication to use the API is primarily done using API Tokens. Once the <em>"Access System API"</em> permission has been assigned to a user, a "API Tokens" section should be visible when editing their user profile. Choose "Create Token" and enter an appropriate name and expiry date, relevant for your API usage then press "Save". A "Token ID" and "Token Secret" will be immediately displayed. These values should be used as a header in API HTTP requests in the following format:</p>
<pre><code class="language-css">Authorization: Token &lt;token_id&gt;:&lt;token_secret&gt;</code></pre>
<p>Here's an example of an authorized cURL request to list books in the system:</p>
<pre><code class="language-shell">curl --request GET \
--url https://example.com/api/books \
--header 'Authorization: Token C6mdvEQTGnebsmVn3sFNeeuelGEBjyQp:NOvD3VlzuSVuBPNaf1xWHmy7nIRlaj22'</code></pre>
<p>If already logged into the system within the browser, via a user account with permission to access the API, the system will also accept an existing session meaning you can browse API endpoints directly in the browser or use the browser devtools to play with the API.</p>
<hr>
<h5 id="request-format" class="text-mono mb-m">Request Format</h5>
<p>The API is primarily design to be interfaced using JSON so the majority of API endpoints, that accept data, will read JSON request data although <code>application/x-www-form-urlencoded</code> request data is also accepted. Endpoints that receive file data will need data sent in a <code>multipart/form-data</code> format although this will be highlighted in the documentation for such endpoints.</p>
<p>For endpoints in this documentation that accept data, a "Body Parameters" table will be available showing the parameters that will accepted in the request. Any rules for the values of such parameters, such as the data-type or if they're required, will be shown alongside the parameter name.</p>
<hr>
<h5 id="listing-endpoints" class="text-mono mb-m">Listing Endpoints</h5>
<p>Some endpoints will return a list of data models. These endpoints will return an array of the model data under a <code>data</code> property along with a numeric <code>total</code> property to indicate the total number of records found for the query within the system. Here's an example of a listing response:</p>
<pre><code class="language-json">{
"data": [
{
"id": 1,
"name": "BookStack User Guide",
"slug": "bookstack-user-guide",
"description": "This is a general guide on using BookStack on a day-to-day basis.",
"created_at": "2019-05-05 21:48:46",
"updated_at": "2019-12-11 20:57:31",
"created_by": 1,
"updated_by": 1,
"image_id": 3
}
],
"total": 16
}</code></pre>
<p>
There are a number of standard URL parameters that can be supplied to manipulate and page through the results returned from a listing endpoint:
</p>
<table class="table">
<tr>
<th>Parameter</th>
<th>Details</th>
<th width="30%">Examples</th>
</tr>
<tr>
<td>count</td>
<td>
Specify how many records will be returned in the response. <br>
(Default: {{ config('api.default_item_count') }}, Max: {{ config('api.max_item_count') }})
</td>
<td>Limit the count to 50<br><code>?count=50</code></td>
</tr>
<tr>
<td>offset</td>
<td>
Specify how many records to skip over in the response. <br>
(Default: 0)
</td>
<td>Skip over the first 100 records<br><code>?offset=100</code></td>
</tr>
<tr>
<td>sort</td>
<td>
Specify what field is used to sort the data and the direction of the sort (Ascending or Descending).<br>
Value is the name of a field, A <code>+</code> or <code>-</code> prefix dictates ordering. <br>
Direction defaults to ascending. <br>
Can use most fields shown in the response.
</td>
<td>
Sort by name ascending<br><code>?sort=+name</code> <br> <br>
Sort by "Created At" date descending<br><code>?sort=-created_at</code>
</td>
</tr>
<tr>
<td>filter[&lt;field&gt;]</td>
<td>
Specify a filter to be applied to the query. Can use most fields shown in the response. <br>
By default a filter will apply a "where equals" query but the below operations are available using the format filter[&lt;field&gt;:&lt;operation&gt;] <br>
<table>
<tr>
<td>eq</td>
<td>Where <code>&lt;field&gt;</code> equals the filter value.</td>
</tr>
<tr>
<td>ne</td>
<td>Where <code>&lt;field&gt;</code> does not equal the filter value.</td>
</tr>
<tr>
<td>gt</td>
<td>Where <code>&lt;field&gt;</code> is greater than the filter value.</td>
</tr>
<tr>
<td>lt</td>
<td>Where <code>&lt;field&gt;</code> is less than the filter value.</td>
</tr>
<tr>
<td>gte</td>
<td>Where <code>&lt;field&gt;</code> is greater than or equal to the filter value.</td>
</tr>
<tr>
<td>lte</td>
<td>Where <code>&lt;field&gt;</code> is less than or equal to the filter value.</td>
</tr>
<tr>
<td>like</td>
<td>
Where <code>&lt;field&gt;</code> is "like" the filter value. <br>
<code>%</code> symbols can be used as wildcards.
</td>
</tr>
</table>
</td>
<td>
Filter where id is 5: <br><code>?filter[id]=5</code><br><br>
Filter where id is not 5: <br><code>?filter[id:ne]=5</code><br><br>
Filter where name contains "cat": <br><code>?filter[name:like]=%cat%</code><br><br>
Filter where created after 2020-01-01: <br><code>?filter[created_at:gt]=2020-01-01</code>
</td>
</tr>
</table>
<hr>
<h5 id="error-handling" class="text-mono mb-m">Error Handling</h5>
<p>
Successful responses will return a 200 or 204 HTTP response code. Errors will return a 4xx or a 5xx HTTP response code depending on the type of error. Errors follow a standard format as shown below. The message provided may be translated depending on the configured language of the system in addition to the API users' language preference. The code provided in the JSON response will match the HTTP response code.
</p>
<pre><code class="language-json">{
"error": {
"code": 401,
"message": "No authorization token found on the request"
}
}
</code></pre>

View File

@ -22,7 +22,7 @@
<button refs="tabs@toggleLink" type="button" class="tab-item {{ $attachment->external ? 'selected' : '' }}">{{ trans('entities.attachments_set_link') }}</button>
</div>
<div refs="tabs@contentFile" class="mb-m {{ $attachment->external ? 'hidden' : '' }}">
@include('components.dropzone', [
@include('form.dropzone', [
'placeholder' => trans('entities.attachments_edit_drop_upload'),
'url' => url('/attachments/upload/' . $attachment->id),
'successMessage' => trans('entities.attachments_file_updated'),

View File

@ -18,7 +18,7 @@
@include('attachments.manager-list', ['attachments' => $page->attachments->all()])
</div>
<div refs="tabs@contentUpload" class="hidden">
@include('components.dropzone', [
@include('form.dropzone', [
'placeholder' => trans('entities.attachments_dropzone'),
'url' => url('/attachments/upload?uploaded_to=' . $page->id),
'successMessage' => trans('entities.attachments_file_uploaded'),

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')
@ -9,7 +9,7 @@
<div class="card content-wrap auto-height">
<h1 class="list-heading">{{ Str::title(trans('auth.log_in')) }}</h1>
@include('auth.forms.login.' . $authMethod)
@include('auth.parts.login-form-' . $authMethod)
@if(count($socialDrivers) > 0)
<hr class="my-l">

View File

@ -18,7 +18,7 @@
<div class="grid half collapse-xs gap-xl v-center">
<div class="text-left ml-xxs">
@include('components.custom-checkbox', [
@include('form.custom-checkbox', [
'name' => 'remember',
'checked' => false,
'value' => 'on',

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')
<div class="container very-small mt-xl">

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')
<div class="container very-small">

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')

View File

@ -1,3 +0,0 @@
<div class="breadcrumbs">
<a href="{{$book->getUrl()}}" class="text-book text-button">@icon('book'){{ $book->getShortName() }}</a>
</div>

View File

@ -1,10 +1,10 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@if (isset($bookshelf))
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$bookshelf,
$bookshelf->getUrl('/create-book') => [
'text' => trans('entities.books_create'),
@ -12,7 +12,7 @@
]
]])
@else
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
'/books' => [
'text' => trans('entities.books'),
'icon' => 'book'
@ -28,7 +28,7 @@
<main class="content-wrap card">
<h1 class="list-heading">{{ trans('entities.books_create') }}</h1>
<form action="{{ isset($bookshelf) ? $bookshelf->getUrl('/create-book') : url('/books') }}" method="POST" enctype="multipart/form-data">
@include('books.form', ['returnLocation' => isset($bookshelf) ? $bookshelf->getUrl() : url('/books')])
@include('books.parts.form', ['returnLocation' => isset($bookshelf) ? $bookshelf->getUrl() : url('/books')])
</form>
</main>
</div>

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$book->getUrl('/delete') => [
'text' => trans('entities.books_delete'),

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$book->getUrl('/edit') => [
'text' => trans('entities.books_edit'),
@ -18,7 +18,7 @@
<h1 class="list-heading">{{ trans('entities.books_edit') }}</h1>
<form action="{{ $book->getUrl() }}" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_method" value="PUT">
@include('books.form', ['model' => $book, 'returnLocation' => $book->getUrl()])
@include('books.parts.form', ['model' => $book, 'returnLocation' => $book->getUrl()])
</form>
</main>
</div>

View File

@ -1,4 +1,4 @@
@extends('export-layout')
@extends('layouts.export')
@section('title', $book->name)

View File

@ -1,21 +1,21 @@
@extends('tri-layout')
@extends('layouts.tri')
@section('body')
@include('books.list', ['books' => $books, 'view' => $view])
@include('books.parts.list', ['books' => $books, 'view' => $view])
@stop
@section('left')
@if($recents)
<div id="recents" class="mb-xl">
<h5>{{ trans('entities.recently_viewed') }}</h5>
@include('partials.entity-list', ['entities' => $recents, 'style' => 'compact'])
@include('entities.list', ['entities' => $recents, 'style' => 'compact'])
</div>
@endif
<div id="popular" class="mb-xl">
<h5>{{ trans('entities.books_popular') }}</h5>
@if(count($popular) > 0)
@include('partials.entity-list', ['entities' => $popular, 'style' => 'compact'])
@include('entities.list', ['entities' => $popular, 'style' => 'compact'])
@else
<div class="body text-muted">{{ trans('entities.books_popular_empty') }}</div>
@endif
@ -24,7 +24,7 @@
<div id="new" class="mb-xl">
<h5>{{ trans('entities.books_new') }}</h5>
@if(count($popular) > 0)
@include('partials.entity-list', ['entities' => $new, 'style' => 'compact'])
@include('entities.list', ['entities' => $new, 'style' => 'compact'])
@else
<div class="body text-muted">{{ trans('entities.books_new_empty') }}</div>
@endif
@ -43,7 +43,7 @@
</a>
@endif
@include('partials.view-toggle', ['view' => $view, 'type' => 'books'])
@include('entities.view-toggle', ['view' => $view, 'type' => 'books'])
</div>
</div>

View File

@ -17,7 +17,7 @@
<div class="collapse-content" collapsible-content>
<p class="small">{{ trans('common.cover_image_description') }}</p>
@include('components.image-picker', [
@include('form.image-picker', [
'defaultImage' => url('/book_default_cover.png'),
'currentImage' => (isset($model) && $model->cover) ? $model->getBookCover() : url('/book_default_cover.png') ,
'name' => 'image',
@ -31,7 +31,7 @@
<label for="tag-manager">{{ trans('entities.book_tags') }}</label>
</button>
<div class="collapse-content" collapsible-content>
@include('components.tag-manager', ['entity' => $book ?? null])
@include('entities.tag-manager', ['entity' => $book ?? null])
</div>
</div>

View File

@ -3,7 +3,7 @@
<h1 class="list-heading">{{ trans('entities.books') }}</h1>
<div class="text-m-right my-m">
@include('partials.sort', ['options' => [
@include('entities.sort', ['options' => [
'name' => trans('common.sort_name'),
'created_at' => trans('common.sort_created_at'),
'updated_at' => trans('common.sort_updated_at'),
@ -15,13 +15,13 @@
@if($view === 'list')
<div class="entity-list">
@foreach($books as $book)
@include('books.list-item', ['book' => $book])
@include('books.parts.list-item', ['book' => $book])
@endforeach
</div>
@else
<div class="grid third">
@foreach($books as $key => $book)
@include('partials.entity-grid-item', ['entity' => $book])
@include('entities.grid-item', ['entity' => $book])
@endforeach
</div>
@endif

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$book->getUrl('/permissions') => [
'text' => trans('entities.books_permissions'),

View File

@ -1,4 +1,4 @@
@extends('tri-layout')
@extends('layouts.tri')
@section('container-attrs')
component="entity-search"
@ -16,7 +16,7 @@
@section('body')
<div class="mb-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
]])
</div>
@ -29,9 +29,9 @@
<div class="entity-list book-contents">
@foreach($bookChildren as $childElement)
@if($childElement->isA('chapter'))
@include('chapters.list-item', ['chapter' => $childElement])
@include('chapters.parts.list-item', ['chapter' => $childElement])
@else
@include('pages.list-item', ['page' => $childElement])
@include('pages.parts.list-item', ['page' => $childElement])
@endif
@endforeach
</div>
@ -59,7 +59,7 @@
@endif
</div>
@include('partials.entity-search-results')
@include('entities.search-results')
</main>
@stop
@ -68,7 +68,7 @@
<div class="mb-xl">
<h5>{{ trans('common.details') }}</h5>
<div class="text-small text-muted blended-links">
@include('partials.entity-meta', ['entity' => $book])
@include('entities.meta', ['entity' => $book])
@if($book->restricted)
<div class="active-restriction">
@if(userCan('restrictions-manage', $book))
@ -126,9 +126,9 @@
<hr class="primary-background">
@if(signedInUser())
@include('partials.entity-favourite-action', ['entity' => $book])
@include('entities.favourite-action', ['entity' => $book])
@endif
@include('partials.entity-export-menu', ['entity' => $book])
@include('entities.export-menu', ['entity' => $book])
</div>
</div>
@ -136,25 +136,25 @@
@section('left')
@include('partials.entity-search-form', ['label' => trans('entities.books_search_this')])
@include('entities.search-form', ['label' => trans('entities.books_search_this')])
@if($book->tags->count() > 0)
<div class="mb-xl">
@include('components.tag-list', ['entity' => $book])
@include('entities.tag-list', ['entity' => $book])
</div>
@endif
@if(count($bookParentShelves) > 0)
<div class="actions mb-xl">
<h5>{{ trans('entities.shelves_long') }}</h5>
@include('partials.entity-list', ['entities' => $bookParentShelves, 'style' => 'compact'])
@include('entities.list', ['entities' => $bookParentShelves, 'style' => 'compact'])
</div>
@endif
@if(count($activity) > 0)
<div class="mb-xl">
<h5>{{ trans('entities.recent_activity') }}</h5>
@include('partials.activity-list', ['activity' => $activity])
@include('common.activity-list', ['activity' => $activity])
</div>
@endif
@stop

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$book->getUrl('/sort') => [
'text' => trans('entities.books_sort'),
@ -19,7 +19,7 @@
<div book-sort class="card content-wrap">
<h1 class="list-heading mb-l">{{ trans('entities.books_sort') }}</h1>
<div book-sort-boxes>
@include('books.sort-box', ['book' => $book, 'bookChildren' => $bookChildren])
@include('books.parts.sort-box', ['book' => $book, 'bookChildren' => $bookChildren])
</div>
<form action="{{ $book->getUrl('/sort') }}" method="POST">
@ -38,7 +38,7 @@
<main class="card content-wrap">
<h2 class="list-heading mb-m">{{ trans('entities.books_sort_show_other') }}</h2>
@include('components.entity-selector', ['name' => 'books_list', 'selectorSize' => 'compact', 'entityTypes' => 'book', 'entityPermission' => 'update', 'showAdd' => true])
@include('entities.selector', ['name' => 'books_list', 'selectorSize' => 'compact', 'entityTypes' => 'book', 'entityPermission' => 'update', 'showAdd' => true])
</main>
</div>

View File

@ -1,10 +1,10 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$book->getUrl('create-chapter') => [
'text' => trans('entities.chapters_create'),
@ -16,7 +16,7 @@
<main class="content-wrap card">
<h1 class="list-heading">{{ trans('entities.chapters_create') }}</h1>
<form action="{{ $book->getUrl('/create-chapter') }}" method="POST">
@include('chapters.form')
@include('chapters.parts.form')
</form>
</main>

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$chapter->book,
$chapter,
$chapter->getUrl('/delete') => [

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$book,
$chapter,
$chapter->getUrl('/edit') => [
@ -19,7 +19,7 @@
<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])
@include('chapters.parts.form', ['model' => $chapter])
</form>
</main>

View File

@ -1,4 +1,4 @@
@extends('export-layout')
@extends('layouts.export')
@section('title', $chapter->name)

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$chapter->book,
$chapter,
$chapter->getUrl('/move') => [
@ -23,7 +23,7 @@
{!! csrf_field() !!}
<input type="hidden" name="_method" value="PUT">
@include('components.entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book', 'entityPermission' => 'chapter-create'])
@include('entities.selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book', 'entityPermission' => 'chapter-create'])
<div class="form-group text-right">
<a href="{{ $chapter->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>

View File

@ -6,7 +6,7 @@
<ul class="sub-menu inset-list @if($isOpen) open @endif" @if($isOpen) style="display: block;" @endif role="menu">
@foreach($bookChild->visible_pages as $childPage)
<li class="list-item-page {{ $childPage->isA('page') && $childPage->draft ? 'draft' : '' }}" role="presentation">
@include('partials.entity-list-item-basic', ['entity' => $childPage, 'classes' => $current->matches($childPage)? 'selected' : '' ])
@include('entities.list-item-basic', ['entity' => $childPage, 'classes' => $current->matches($childPage)? 'selected' : '' ])
</li>
@endforeach
</ul>

View File

@ -16,7 +16,7 @@
<label for="tags">{{ trans('entities.chapter_tags') }}</label>
</button>
<div class="collapse-content" collapsible-content>
@include('components.tag-manager', ['entity' => $chapter ?? null])
@include('entities.tag-manager', ['entity' => $chapter ?? null])
</div>
</div>

View File

@ -18,7 +18,7 @@
class="text-muted chapter-expansion-toggle">@icon('caret-right') <span>{{ trans_choice('entities.x_pages', $chapter->visible_pages->count()) }}</span></button>
<div class="inset-list">
<div class="entity-list-item-children">
@include('partials.entity-list', ['entities' => $chapter->visible_pages])
@include('entities.list', ['entities' => $chapter->visible_pages])
</div>
</div>
</div>

View File

@ -1,11 +1,11 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container">
<div class="my-s">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$chapter->book,
$chapter,
$chapter->getUrl('/permissions') => [

View File

@ -1,4 +1,4 @@
@extends('tri-layout')
@extends('layouts.tri')
@section('container-attrs')
component="entity-search"
@ -13,7 +13,7 @@
@section('body')
<div class="mb-m print-hidden">
@include('partials.breadcrumbs', ['crumbs' => [
@include('entities.breadcrumbs', ['crumbs' => [
$chapter->book,
$chapter,
]])
@ -26,7 +26,7 @@
@if(count($pages) > 0)
<div class="entity-list book-contents">
@foreach($pages as $page)
@include('pages.list-item', ['page' => $page])
@include('pages.parts.list-item', ['page' => $page])
@endforeach
</div>
@else
@ -53,10 +53,10 @@
@endif
</div>
@include('partials.entity-search-results')
@include('entities.search-results')
</main>
@include('partials.entity-sibling-navigation', ['next' => $next, 'previous' => $previous])
@include('entities.sibling-navigation', ['next' => $next, 'previous' => $previous])
@stop
@ -65,7 +65,7 @@
<div class="mb-xl">
<h5>{{ trans('common.details') }}</h5>
<div class="blended-links text-small text-muted">
@include('partials.entity-meta', ['entity' => $chapter])
@include('entities.meta', ['entity' => $chapter])
@if($book->restricted)
<div class="active-restriction">
@ -130,24 +130,24 @@
<hr class="primary-background"/>
@if(signedInUser())
@include('partials.entity-favourite-action', ['entity' => $chapter])
@include('entities.favourite-action', ['entity' => $chapter])
@endif
@include('partials.entity-export-menu', ['entity' => $chapter])
@include('entities.export-menu', ['entity' => $chapter])
</div>
</div>
@stop
@section('left')
@include('partials.entity-search-form', ['label' => trans('entities.chapters_search_this')])
@include('entities.search-form', ['label' => trans('entities.chapters_search_this')])
@if($chapter->tags->count() > 0)
<div class="mb-xl">
@include('components.tag-list', ['entity' => $chapter])
@include('entities.tag-list', ['entity' => $chapter])
</div>
@endif
@include('partials.book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
@include('entities.book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
@stop

View File

@ -48,7 +48,7 @@
<div comment-content class="content px-s pb-s">
<div class="form-group loading" style="display: none;">
@include('partials.loading-icon', ['text' => trans('entities.comment_deleting')])
@include('common.loading-icon', ['text' => trans('entities.comment_deleting')])
</div>
{!! $comment->html !!}
</div>
@ -64,7 +64,7 @@
<button type="submit" class="button">{{ trans('entities.comment_save') }}</button>
</div>
<div class="form-group loading" style="display: none;">
@include('partials.loading-icon', ['text' => trans('entities.comment_saving')])
@include('common.loading-icon', ['text' => trans('entities.comment_saving')])
</div>
</form>
</div>

View File

@ -24,7 +24,7 @@
<button type="submit" class="button">{{ trans('entities.comment_save') }}</button>
</div>
<div class="form-group loading" style="display: none;">
@include('partials.loading-icon', ['text' => trans('entities.comment_saving')])
@include('common.loading-icon', ['text' => trans('entities.comment_saving')])
</div>
</form>
</div>

View File

@ -3,7 +3,7 @@
<div class="activity-list">
@foreach($activity as $activityItem)
<div class="activity-list-item">
@include('partials.activity-item', ['activity' => $activityItem])
@include('common.activity-item', ['activity' => $activityItem])
</div>
@endforeach
</div>

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small pt-xl">
@ -6,7 +6,7 @@
<h1 class="list-heading">{{ $title }}</h1>
<div class="book-contents">
@include('partials.entity-list', ['entities' => $entities, 'style' => 'detailed'])
@include('entities.list', ['entities' => $entities, 'style' => 'detailed'])
</div>
<div class="text-center">

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('body')
<div class="container small pt-xl">
@ -6,7 +6,7 @@
<h1 class="list-heading">{{ $title }}</h1>
<div class="book-contents">
@include('partials.entity-list', ['entities' => $entities, 'style' => 'detailed'])
@include('entities.list', ['entities' => $entities, 'style' => 'detailed'])
</div>
<div class="text-right">

View File

@ -79,7 +79,7 @@
</li>
<li><hr></li>
<li>
@include('partials.dark-mode-toggle')
@include('common.dark-mode-toggle')
</li>
</ul>
</div>

View File

@ -7,19 +7,19 @@
<ul class="sidebar-page-list mt-xs menu entity-list">
@if (userCan('view', $book))
<li class="list-item-book book">
@include('partials.entity-list-item-basic', ['entity' => $book, 'classes' => ($current->matches($book)? 'selected' : '')])
@include('entities.list-item-basic', ['entity' => $book, 'classes' => ($current->matches($book)? 'selected' : '')])
</li>
@endif
@foreach($sidebarTree as $bookChild)
<li class="list-item-{{ $bookChild->getType() }} {{ $bookChild->getType() }} {{ $bookChild->isA('page') && $bookChild->draft ? 'draft' : '' }}">
@include('partials.entity-list-item-basic', ['entity' => $bookChild, 'classes' => $current->matches($bookChild)? 'selected' : ''])
@include('entities.list-item-basic', ['entity' => $bookChild, 'classes' => $current->matches($bookChild)? 'selected' : ''])
@if($bookChild->isA('chapter') && count($bookChild->visible_pages) > 0)
<div class="entity-list-item no-hover">
<span role="presentation" class="icon text-chapter"></span>
<div class="content">
@include('chapters.child-menu', [
@include('chapters.parts.child-menu', [
'chapter' => $bookChild,
'current' => $current,
'isOpen' => $bookChild->matchesOrContains($current)

View File

@ -16,7 +16,7 @@
type="text">
</div>
<div refs="dropdown-search@loading">
@include('partials.loading-icon')
@include('common.loading-icon')
</div>
<div refs="dropdown-search@listContainer" class="dropdown-search-list px-m"></div>
</div>

View File

@ -40,7 +40,7 @@
</a>
@elseif($isEntity && userCan('view', $crumb))
@if($breadcrumbCount > 0)
@include('partials.breadcrumb-listing', ['entity' => $crumb])
@include('entities.breadcrumb-listing', ['entity' => $crumb])
@endif
<a href="{{ $crumb->getUrl() }}" class="text-{{$crumb->getType()}} icon-list-item outline-hover">
<span>@icon($crumb->getType())</span>

View File

@ -1,7 +1,7 @@
<div class="entity-list {{ $style ?? '' }}">
@if(count($entities) > 0)
@foreach($entities as $index => $entity)
@include('partials.entity-list-item-basic', ['entity' => $entity])
@include('entities.list-item-basic', ['entity' => $entity])
@endforeach
@else
<p class="text-muted empty-text">

View File

@ -1,4 +1,4 @@
@component('partials.entity-list-item-basic', ['entity' => $entity])
@component('entities.list-item-basic', ['entity' => $entity])
<div class="entity-item-snippet">
@ -16,7 +16,7 @@
@if(($showTags ?? false) && $entity->tags->count() > 0)
<div class="entity-item-tags mt-xs">
@include('components.tag-list', ['entity' => $entity, 'linked' => false ])
@include('entities.tag-list', ['entity' => $entity, 'linked' => false ])
</div>
@endif

View File

@ -1,7 +1,7 @@
@if(count($entities) > 0)
<div class="entity-list {{ $style ?? '' }}">
@foreach($entities as $index => $entity)
@include('partials.entity-list-item', ['entity' => $entity, 'showPath' => $showPath ?? false, 'showTags' => $showTags ?? false])
@include('entities.list-item', ['entity' => $entity, 'showPath' => $showPath ?? false, 'showTags' => $showTags ?? false])
@endforeach
</div>
@else

View File

@ -9,7 +9,7 @@
</div>
<div refs="entity-search@loadingBlock">
@include('partials.loading-icon')
@include('common.loading-icon')
</div>
<div class="book-contents" refs="entity-search@searchResults"></div>
</div>

View File

@ -5,7 +5,7 @@
<div class="popup-title">{{ trans('entities.entity_select') }}</div>
<button refs="popup@hide" type="button" class="popup-header-close">x</button>
</div>
@include('components.entity-selector', ['name' => 'entity-selector'])
@include('entities.selector', ['name' => 'entity-selector'])
<div class="popup-footer">
<button refs="entity-selector-popup@select" type="button" disabled="true" class="button corner-button">{{ trans('common.select') }}</button>
</div>

View File

@ -5,7 +5,7 @@
option:entity-selector:entity-permission="{{ $entityPermission ?? 'view' }}">
<input refs="entity-selector@input" type="hidden" name="{{$name}}" value="">
<input type="text" placeholder="{{ trans('common.search') }}" @if($autofocus ?? false) autofocus @endif refs="entity-selector@search">
<div class="text-center loading" refs="entity-selector@loading">@include('partials.loading-icon')</div>
<div class="text-center loading" refs="entity-selector@loading">@include('common.loading-icon')</div>
<div refs="entity-selector@results"></div>
@if($showAdd ?? false)
<div class="entity-selector-add">

View File

@ -9,7 +9,7 @@
<div component="sortable-list"
option:sortable-list:handle-selector=".handle">
@include('components.tag-manager-list', ['tags' => $entity ? $entity->tags->all() : []])
@include('entities.tag-manager-list', ['tags' => $entity ? $entity->tags->all() : []])
</div>
<button refs="add-remove-rows@add" type="button" class="text-button">{{ trans('entities.tags_add') }}</button>

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')
<div class="container mt-l">
@ -28,7 +28,7 @@
<div class="card mb-xl">
<h3 class="card-title">{{ trans('entities.pages_popular') }}</h3>
<div class="px-m">
@include('partials.entity-list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['page']), 'style' => 'compact'])
@include('entities.list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['page']), 'style' => 'compact'])
</div>
</div>
</div>
@ -36,7 +36,7 @@
<div class="card mb-xl">
<h3 class="card-title">{{ trans('entities.books_popular') }}</h3>
<div class="px-m">
@include('partials.entity-list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['book']), 'style' => 'compact'])
@include('entities.list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['book']), 'style' => 'compact'])
</div>
</div>
</div>
@ -44,7 +44,7 @@
<div class="card mb-xl">
<h3 class="card-title">{{ trans('entities.chapters_popular') }}</h3>
<div class="px-m">
@include('partials.entity-list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['chapter']), 'style' => 'compact'])
@include('entities.list', ['entities' => (new \BookStack\Entities\Queries\Popular)->run(10, 0, ['chapter']), 'style' => 'compact'])
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
@extends('base')
@extends('layouts.base')
@section('content')

View File

@ -1,4 +1,4 @@
@extends('simple-layout')
@extends('layouts.simple')
@section('content')

View File

@ -4,7 +4,7 @@ $label
$errors?
$model?
--}}
@include('components.custom-checkbox', [
@include('form.custom-checkbox', [
'name' => $name,
'label' => $label,
'value' => 'true',

View File

@ -15,7 +15,7 @@
<div>
<div class="form-group">
<label for="owner">{{ trans('entities.permissions_owner') }}</label>
@include('components.user-select', ['user' => $model->ownedBy, 'name' => 'owned_by', 'compact' => false])
@include('form.user-select', ['user' => $model->ownedBy, 'name' => 'owned_by', 'compact' => false])
</div>
</div>
</div>

View File

@ -5,7 +5,7 @@ $role
$action
$model?
--}}
@include('components.custom-checkbox', [
@include('form.custom-checkbox', [
'name' => $name . '[' . $role->id . '][' . $action . ']',
'label' => $label,
'value' => 'true',

View File

@ -2,7 +2,7 @@
<div class="toggle-switch-list dual-column-content">
@foreach($roles as $role)
<div>
@include('components.custom-checkbox', [
@include('form.custom-checkbox', [
'name' => $name . '[' . strval($role->id) . ']',
'label' => $role->display_name,
'value' => $role->id,

View File

@ -27,7 +27,7 @@
type="text">
</div>
<div refs="dropdown-search@loading" class="text-center">
@include('partials.loading-icon')
@include('common.loading-icon')
</div>
<div refs="dropdown-search@listContainer" class="dropdown-search-list"></div>
</div>

Some files were not shown because too many files have changed in this diff Show More