]> BookStack Code Mirror - bookstack/blobdiff - resources/views/books/show.blade.php
Fixes #354, Adds the spellchecker option
[bookstack] / resources / views / books / show.blade.php
index b44cd850571b03d2c1f98f91e089b07355ecda77..f5e08b2f6e386808059ac04025a07df603a96fa3 100644 (file)
@@ -2,23 +2,46 @@
 
 @section('content')
 
-    <div class="faded-small">
+    <div class="faded-small toolbar">
         <div class="container">
             <div class="row">
-                <div class="col-md-12">
+                <div class="col-sm-6 faded">
+                    @include('books._breadcrumbs', ['book' => $book])
+                </div>
+                <div class="col-sm-6">
                     <div class="action-buttons faded">
-                        @if($currentUser->can('page-create'))
-                            <a href="{{$book->getUrl() . '/page/create'}}" class="text-pos"><i class="zmdi zmdi-plus"></i> New Page</a>
+                        <span dropdown class="dropdown-container">
+                            <div dropdown-toggle class="text-button text-primary"><i class="zmdi zmdi-open-in-new"></i>{{ trans('entities.export') }}</div>
+                            <ul class="wide">
+                                <li><a href="{{ $book->getUrl('/export/html') }}" target="_blank">{{ trans('entities.export_html') }} <span class="text-muted float right">.html</span></a></li>
+                                <li><a href="{{ $book->getUrl('/export/pdf') }}" target="_blank">{{ trans('entities.export_pdf') }} <span class="text-muted float right">.pdf</span></a></li>
+                                <li><a href="{{ $book->getUrl('/export/plaintext') }}" target="_blank">{{ trans('entities.export_text') }} <span class="text-muted float right">.txt</span></a></li>
+                            </ul>
+                        </span>
+                        @if(userCan('page-create', $book))
+                            <a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a>
                         @endif
-                        @if($currentUser->can('chapter-create'))
-                            <a href="{{$book->getUrl() . '/chapter/create'}}" class="text-pos"><i class="zmdi zmdi-plus"></i> New Chapter</a>
+                        @if(userCan('chapter-create', $book))
+                            <a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.chapters_new') }}</a>
                         @endif
-                        @if($currentUser->can('book-update'))
-                            <a href="{{$book->getEditUrl()}}" class="text-primary"><i class="zmdi zmdi-edit"></i>Edit</a>
-                            <a href="{{ $book->getUrl() }}/sort" class="text-primary"><i class="zmdi zmdi-sort"></i>Sort</a>
+                        @if(userCan('book-update', $book))
+                            <a href="{{$book->getEditUrl()}}" class="text-primary text-button"><i class="zmdi zmdi-edit"></i>{{ trans('common.edit') }}</a>
                         @endif
-                        @if($currentUser->can('book-delete'))
-                            <a href="{{ $book->getUrl() }}/delete" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a>
+                        @if(userCan('book-update', $book) || userCan('restrictions-manage', $book) || userCan('book-delete', $book))
+                            <div dropdown class="dropdown-container">
+                                <a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
+                                <ul>
+                                    @if(userCan('book-update', $book))
+                                        <li><a href="{{ $book->getUrl('/sort') }}" class="text-primary"><i class="zmdi zmdi-sort"></i>{{ trans('common.sort') }}</a></li>
+                                    @endif
+                                    @if(userCan('restrictions-manage', $book))
+                                        <li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li>
+                                    @endif
+                                    @if(userCan('book-delete', $book))
+                                        <li><a href="{{ $book->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('common.delete') }}</a></li>
+                                    @endif
+                                </ul>
+                            </div>
                         @endif
                     </div>
                 </div>
     </div>
 
 
-    <div class="container">
+    <div class="container" id="book-dashboard" ng-controller="BookShowController" book-id="{{ $book->id }}">
         <div class="row">
             <div class="col-md-7">
 
                 <h1>{{$book->name}}</h1>
-                <p class="text-muted">{{$book->description}}</p>
-
-                <div class="page-list">
-                    <hr>
-                    @if(count($book->children()) > 0)
-                        @foreach($book->children() as $childElement)
-                            <div class="book-child">
-                                <h3>
-                                    <a href="{{ $childElement->getUrl() }}" class="{{ $childElement->getName() }}">
-                                        <i class="zmdi {{ $childElement->isA('chapter') ? 'zmdi-collection-bookmark chapter-toggle':'zmdi-file-text'}}"></i>{{ $childElement->name }}
-                                    </a>
-                                </h3>
-                                <p class="text-muted">
-                                    {{$childElement->getExcerpt()}}
-                                </p>
+                <div class="book-content" ng-show="!searching">
+                    <p class="text-muted" ng-non-bindable>{{$book->description}}</p>
 
-                                @if($childElement->isA('chapter') && count($childElement->pages) > 0)
-                                    <div class="inset-list">
-                                        @foreach($childElement->pages as $page)
-                                            <h4><a href="{{$page->getUrl()}}"><i class="zmdi zmdi-file-text"></i>{{$page->name}}</a></h4>
-                                        @endforeach
-                                    </div>
+                    <div class="page-list" ng-non-bindable>
+                        <hr>
+                        @if(count($bookChildren) > 0)
+                            @foreach($bookChildren as $childElement)
+                                @if($childElement->isA('chapter'))
+                                    @include('chapters/list-item', ['chapter' => $childElement])
+                                @else
+                                    @include('pages/list-item', ['page' => $childElement])
                                 @endif
-                            </div>
+                                <hr>
+                            @endforeach
+                        @else
+                            <p class="text-muted">{{ trans('entities.books_empty_contents') }}</p>
+                            <p>
+                                <a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a>
+                                &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
+                                <a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.books_empty_add_chapter') }}</a>
+                            </p>
                             <hr>
-                        @endforeach
-                    @else
-                        <p class="text-muted">No pages or chapters have been created for this book.</p>
-                        <p>
-                            <a href="{{$book->getUrl() . '/page/create'}}" class="text-page"><i class="zmdi zmdi-file-text"></i>Create a new page</a>
-                             &nbsp;&nbsp;<em class="text-muted">-or-</em>&nbsp;&nbsp;&nbsp;
-                            <a href="{{$book->getUrl() . '/chapter/create'}}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>Add a chapter</a>
-                        </p>
-                        <hr>
-                    @endif
+                        @endif
+                        @include('partials.entity-meta', ['entity' => $book])
+                    </div>
+                </div>
+                <div class="search-results" ng-cloak ng-show="searching">
+                    <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">
+                        @include('partials/loading-icon')
+                    </div>
+                    <div ng-bind-html="searchResults"></div>
                 </div>
-
-                <p class="text-muted small">
-                    Created {{$book->created_at->diffForHumans()}} @if($book->createdBy) by {{$book->createdBy->name}} @endif
-                    <br>
-                    Last Updated {{$book->updated_at->diffForHumans()}} @if($book->createdBy) by {{$book->updatedBy->name}} @endif
-                </p>
 
 
             </div>
 
             <div class="col-md-4 col-md-offset-1">
-                <div class="margin-top large"><br></div>
-                <h3>Recent Activity</h3>
-                @include('partials/activity-list', ['activity' => Activity::entityActivity($book, 20, 0)])
+                <div class="margin-top large"></div>
+                @if($book->restricted)
+                    <p class="text-muted">
+                        @if(userCan('restrictions-manage', $book))
+                            <a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a>
+                        @else
+                            <i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}
+                        @endif
+                    </p>
+                @endif
+                <div class="search-box">
+                    <form ng-submit="searchBook($event)">
+                        <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 ng-if="searching" ng-click="clearSearch()" type="button"><i class="zmdi zmdi-close"></i></button>
+                    </form>
+                </div>
+                <div class="activity anim fadeIn">
+                    <h3>{{ trans('entities.recent_activity') }}</h3>
+                    @include('partials/activity-list', ['activity' => Activity::entityActivity($book, 20, 0)])
+                </div>
             </div>
         </div>
     </div>
 
-
-
-    <script>
-        $(function() {
-
-            $('.chapter-toggle').click(function(e) {
-                e.preventDefault();
-                $(this).closest('.book-child').find('.inset-list').slideToggle(180);
-            });
-
-        });
-    </script>
-
 @stop
\ No newline at end of file