mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-25 01:45:54 +08:00
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.
162 lines
5.9 KiB
PHP
162 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
|
|
|