BookStack/resources/views/books/show.blade.php
Dan Brown 265f5db03f
Reviewed #2393, Removed image guessing and added testing
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.
2021-06-23 20:42:48 +01:00

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