265f5db03f
For review of meta tag additions as per PR #2393. This commit removes any image guesswork and only uses images that have been set by the author for the specific content. This also adds tests to cover the expected OG tags.
161 lines
5.9 KiB
PHP
161 lines
5.9 KiB
PHP
@extends('tri-layout')
|
|
|
|
@section('container-attrs')
|
|
component="entity-search"
|
|
option:entity-search:entity-id="{{ $book->id }}"
|
|
option:entity-search:entity-type="book"
|
|
@stop
|
|
|
|
@push('social-meta')
|
|
<meta property="og:description" content="{{ Str::limit($book->description, 100, '...') }}">
|
|
@if($book->cover)
|
|
<meta property="og:image" content="{{ $book->getBookCover() }}">
|
|
@endif
|
|
@endpush
|
|
|
|
@section('body')
|
|
|
|
<div class="mb-s">
|
|
@include('partials.breadcrumbs', ['crumbs' => [
|
|
$book,
|
|
]])
|
|
</div>
|
|
|
|
<main class="content-wrap card">
|
|
<h1 class="break-text">{{$book->name}}</h1>
|
|
<div refs="entity-search@contentView" class="book-content">
|
|
<p class="text-muted">{!! nl2br(e($book->description)) !!}</p>
|
|
@if(count($bookChildren) > 0)
|
|
<div class="entity-list book-contents">
|
|
@foreach($bookChildren as $childElement)
|
|
@if($childElement->isA('chapter'))
|
|
@include('chapters.list-item', ['chapter' => $childElement])
|
|
@else
|
|
@include('pages.list-item', ['page' => $childElement])
|
|
@endif
|
|
@endforeach
|
|
</div>
|
|
@else
|
|
<div class="mt-xl">
|
|
<hr>
|
|
<p class="text-muted italic mb-m mt-xl">{{ trans('entities.books_empty_contents') }}</p>
|
|
|
|
<div class="icon-list block inline">
|
|
@if(userCan('page-create', $book))
|
|
<a href="{{ $book->getUrl('/create-page') }}" class="icon-list-item text-page">
|
|
<span class="icon">@icon('page')</span>
|
|
<span>{{ trans('entities.books_empty_create_page') }}</span>
|
|
</a>
|
|
@endif
|
|
@if(userCan('chapter-create', $book))
|
|
<a href="{{ $book->getUrl('/create-chapter') }}" class="icon-list-item text-chapter">
|
|
<span class="icon">@icon('chapter')</span>
|
|
<span>{{ trans('entities.books_empty_add_chapter') }}</span>
|
|
</a>
|
|
@endif
|
|
</div>
|
|
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
@include('partials.entity-search-results')
|
|
</main>
|
|
|
|
@stop
|
|
|
|
@section('right')
|
|
<div class="mb-xl">
|
|
<h5>{{ trans('common.details') }}</h5>
|
|
<div class="text-small text-muted blended-links">
|
|
@include('partials.entity-meta', ['entity' => $book])
|
|
@if($book->restricted)
|
|
<div class="active-restriction">
|
|
@if(userCan('restrictions-manage', $book))
|
|
<a href="{{ $book->getUrl('/permissions') }}">@icon('lock'){{ trans('entities.books_permissions_active') }}</a>
|
|
@else
|
|
@icon('lock'){{ trans('entities.books_permissions_active') }}
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions mb-xl">
|
|
<h5>{{ trans('common.actions') }}</h5>
|
|
<div class="icon-list text-primary">
|
|
|
|
@if(userCan('page-create', $book))
|
|
<a href="{{ $book->getUrl('/create-page') }}" class="icon-list-item">
|
|
<span>@icon('add')</span>
|
|
<span>{{ trans('entities.pages_new') }}</span>
|
|
</a>
|
|
@endif
|
|
@if(userCan('chapter-create', $book))
|
|
<a href="{{ $book->getUrl('/create-chapter') }}" class="icon-list-item">
|
|
<span>@icon('add')</span>
|
|
<span>{{ trans('entities.chapters_new') }}</span>
|
|
</a>
|
|
@endif
|
|
|
|
<hr class="primary-background">
|
|
|
|
@if(userCan('book-update', $book))
|
|
<a href="{{ $book->getUrl('/edit') }}" class="icon-list-item">
|
|
<span>@icon('edit')</span>
|
|
<span>{{ trans('common.edit') }}</span>
|
|
</a>
|
|
<a href="{{ $book->getUrl('/sort') }}" class="icon-list-item">
|
|
<span>@icon('sort')</span>
|
|
<span>{{ trans('common.sort') }}</span>
|
|
</a>
|
|
@endif
|
|
@if(userCan('restrictions-manage', $book))
|
|
<a href="{{ $book->getUrl('/permissions') }}" class="icon-list-item">
|
|
<span>@icon('lock')</span>
|
|
<span>{{ trans('entities.permissions') }}</span>
|
|
</a>
|
|
@endif
|
|
@if(userCan('book-delete', $book))
|
|
<a href="{{ $book->getUrl('/delete') }}" class="icon-list-item">
|
|
<span>@icon('delete')</span>
|
|
<span>{{ trans('common.delete') }}</span>
|
|
</a>
|
|
@endif
|
|
|
|
<hr class="primary-background">
|
|
|
|
@if(signedInUser())
|
|
@include('partials.entity-favourite-action', ['entity' => $book])
|
|
@endif
|
|
@include('partials.entity-export-menu', ['entity' => $book])
|
|
</div>
|
|
</div>
|
|
|
|
@stop
|
|
|
|
@section('left')
|
|
|
|
@include('partials.entity-search-form', ['label' => trans('entities.books_search_this')])
|
|
|
|
@if($book->tags->count() > 0)
|
|
<div class="mb-xl">
|
|
@include('components.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'])
|
|
</div>
|
|
@endif
|
|
|
|
@if(count($activity) > 0)
|
|
<div class="mb-xl">
|
|
<h5>{{ trans('entities.recent_activity') }}</h5>
|
|
@include('partials.activity-list', ['activity' => $activity])
|
|
</div>
|
|
@endif
|
|
@stop
|
|
|