]> BookStack Code Mirror - bookstack/commitdiff
Converted more views to new layout and made breadcrumbs more flexible
authorDan Brown <redacted>
Sun, 13 Jan 2019 15:54:55 +0000 (15:54 +0000)
committerDan Brown <redacted>
Sun, 13 Jan 2019 15:54:55 +0000 (15:54 +0000)
15 files changed:
app/Http/Controllers/UserController.php
resources/assets/sass/_grid.scss
resources/assets/sass/_lists.scss
resources/views/books/create.blade.php
resources/views/books/edit.blade.php
resources/views/books/index.blade.php
resources/views/books/show.blade.php
resources/views/chapters/_breadcrumbs.blade.php
resources/views/chapters/list-item.blade.php
resources/views/chapters/show.blade.php
resources/views/pages/_breadcrumbs.blade.php
resources/views/pages/list-item.blade.php
resources/views/pages/show.blade.php
resources/views/partials/breadcrumbs.blade.php
resources/views/tri-layout.blade.php

index 933b3d59411667d6eeb47e6c7550cfd65e276b77..fc0431e94ca90bc8a735990cbe8b64568e6d9577 100644 (file)
@@ -281,7 +281,7 @@ class UserController extends Controller
             $viewType = 'list';
         }
 
-        $user = $this->userRepo->getById($id);
+        $user = $this->userRepo->getById($userId);
         $key = $listName . '_view_type';
         setting()->putUser($user, $key, $viewType);
 
index f326b2acf76f7eb7d700eba9c84938aaac1f0876..e6eb489b92b8ca92d713b121a5ad9490b6dccb68 100644 (file)
@@ -56,6 +56,7 @@ body.flexbox {
   margin-right: auto;
   margin-bottom: $-xl;
   overflow: auto;
+  min-height: 60vh;
 }
 
 .tri-layout-container {
@@ -63,8 +64,11 @@ body.flexbox {
   grid-template-columns: 1fr minmax(auto, 940px) 1fr;
   grid-template-areas: "a b c";
   .tri-layout-right-contents, .tri-layout-left-contents {
-    padding-right: $-xl;
-    padding-left: $-xl;
+    padding-right: 3vw;
+    padding-left: 3vw;
+    max-width: 460px;
+    margin-left: auto;
+    margin-right: auto;
   }
   .tri-layout-right {
     grid-area: c;
@@ -113,7 +117,7 @@ body.flexbox {
       padding-left: $-m;
       padding-right: $-m;
     }
-    .tri-layout-right, .tri-layout-left {
+    .tri-layout-right-contents > div, .tri-layout-left-contents > div {
       opacity: 0.6;
       z-index: 0;
     }
@@ -146,8 +150,8 @@ body.flexbox {
   }
 }
 
-.tri-layout-left, .tri-layout-right {
-  opacity: 0.7;
+.tri-layout-left-contents > div, .tri-layout-right-contents > div {
+  opacity: 0.6;
   transition: opacity ease-in-out 120ms;
   &:hover {
     opacity: 1;
index d26997c8f59a21ac088ac09f8f75fbc7be3e213f..622dd32b168b8ec5ba9961b75253717e9f986b33 100644 (file)
@@ -1,63 +1,17 @@
-.page-list {
-  h4 {
-    margin: $-l 0 $-xs 0;
-    font-size: 1.666em;
+
+.book-contents .entity-list-item {
+  .icon {
+    margin-top: $-xs;
   }
-  a.chapter {
-    color: $color-chapter;
+  p {
+    margin-bottom: 0;
+  }
+  .inner-page {
+    padding-top: 0;
+    padding-bottom: 0;
   }
   .inset-list {
     display: none;
-    overflow: hidden;
-  }
-  h5 {
-    display: block;
-    margin: $-s 0 0 0;
-    border-left: 5px solid $color-page;
-    padding: $-xs 0 $-xs $-m;
-    font-size: 1.1em;
-    font-weight: normal;
-    &.draft {
-      border-left-color: $color-page-draft;
-    }
-  }
-  .entity-list-item {
-    margin-bottom: $-m;
-  }
-  hr {
-    margin-top: 0;
-  }
-  .page, .chapter, .book {
-    padding-left: $-l;
-  }
-  .page {
-    border-left: 5px solid $color-page;
-  }
-  .page.draft {
-    border-left: 5px solid $color-page-draft;
-    .text-page {
-      color: $color-page-draft;
-      fill: $color-page-draft;
-    }
-  }
-  .chapter {
-    border-left: 5px solid $color-chapter;
-  }
-  .book {
-    border-left: 5px solid $color-book;
-  }
-  .meta {
-    margin-top: -$-m;
-    font-size: 0.95em;
-  }
-  .meta span {
-    margin-right: $-s;
-  }
-}
-
-@include smaller-than($s) {
-  .page-list h4 {
-    font-size: 1.333em;
   }
 }
 
 }
 
 .activity-list-item {
-  padding: $-s $-m;
+  padding: $-s 0;
   display: grid;
   grid-template-columns: min-content 1fr;
   grid-column-gap: $-m;
   fill: #888;
   font-size: 0.9em;
 }
+.card .activity-list-item {
+  padding: $-s $-m;
+}
 
 ul.pagination {
   display: inline-block;
@@ -298,9 +255,12 @@ ul.pagination {
   }
 }
 
-.card a.entity-list-item:hover {
+.card .entity-list-item:hover {
   background-color: #F2F2F2;
 }
+.card .entity-list-item .entity-list-item:hover {
+  background-color: #EEEEEE;
+}
 
 .entity-list-item-image {
   width: 140px;
index b21fb3012396c77535f915540f1fae47eca1aefe..4915d64cf4e99dff1ebcda6737672e178789eefd 100644 (file)
@@ -2,14 +2,11 @@
 
 @section('body')
     <div class="container small">
-        <div class="breadcrumbs my-l">
-            <a href="{{  baseUrl('/books')  }}" class="">
-                @icon('book'){{ trans('entities.books') }}
-            </a>
-            <div class="separator">@icon('chevron-right')</div>
-            <a href="{{  baseUrl('/create-book')  }}" class="">
-                @icon('add'){{ trans('entities.books_create') }}
-            </a>
+        <div class="my-l">
+            @include('partials.breadcrumbs', ['crumbs' => [
+                '/books' => trans('entities.books'),
+                '/create-book' => trans('entities.books_create')
+            ]])
         </div>
 
         <div class="content-wrap card">
index cb1ffc461035eab044f670583b196a0dbe4dbfbb..351f8884501a4d0820cd2742dfb391bbf6774be2 100644 (file)
@@ -1,24 +1,24 @@
 @extends('simple-layout')
 
-@section('toolbar')
-    <div class="col-sm-12 faded">
-        @include('books._breadcrumbs', ['book' => $book])
-    </div>
-@stop
-
 @section('body')
 
     <div class="container small">
-        <p>&nbsp;</p>
-        <div class="card">
-            <h3>@icon('edit') {{ trans('entities.books_edit') }}</h3>
-            <div class="body">
-                <form action="{{ $book->getUrl() }}" method="POST">
-                    <input type="hidden" name="_method" value="PUT">
-                    @include('books/form', ['model' => $book])
-                </form>
-            </div>
+
+        <div class="my-l">
+            @include('partials.breadcrumbs', ['crumbs' => [
+                $book,
+                $book->getUrl() => trans('entities.books_edit')
+            ]])
+        </div>
+
+        <div class="content-wrap card">
+            <h1 class="list-heading">{{ trans('entities.books_edit') }}</h1>
+            <form action="{{ $book->getUrl() }}" method="POST">
+                <input type="hidden" name="_method" value="PUT">
+                @include('books/form', ['model' => $book])
+            </form>
         </div>
     </div>
-@include('components.image-manager', ['imageType' => 'cover'])
+
+    @include('components.image-manager', ['imageType' => 'cover'])
 @stop
\ No newline at end of file
index fcf9cb4bb8fef819b7a79f84f1cab8f3673a5a38..0c2eea88bc4a64828204451b577a7d28999991e1 100644 (file)
@@ -36,7 +36,7 @@
 @section('right')
 
     <div class="actions mb-xl">
-        <h5>Actions</h5>
+        <h5>{{ trans('common.actions') }}</h5>
         <div class="icon-list text-primary">
             @if($currentUser->can('book-create-all'))
                 <a href="{{ baseUrl("/create-book") }}" class="icon-list-item">
index e5845b4956ba0b9db8a3349dd613f5342f8d83e8..75b8a9e4180e27dc5303d2c2d25c10fc4cbdec93 100644 (file)
-@extends('sidebar-layout')
+@extends('tri-layout')
 
-@section('toolbar')
-    <div class="col-sm-6 col-xs-1  faded">
-        @include('books._breadcrumbs', ['book' => $book])
+@section('container-attrs')
+    id="entity-dashboard"
+    entity-id="{{ $book->id }}"
+    entity-type="book"
+@stop
+
+@section('body')
+
+    <div class="content-wrap card">
+        <h1 class="break-text" v-pre>{{$book->name}}</h1>
+        <div class="book-content" v-show="!searching">
+            <p class="text-muted" v-pre>{!! nl2br(e($book->description)) !!}</p>
+            @if(count($bookChildren) > 0)
+                <div class="entity-list book-contents" v-pre>
+                    @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="well">
+                    {{--TODO--}}
+                    <p class="text-muted italic">{{ trans('entities.books_empty_contents') }}</p>
+                    @if(userCan('page-create', $book))
+                        <a href="{{ $book->getUrl('/create-page') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
+                    @endif
+                    @if(userCan('page-create', $book) && userCan('chapter-create', $book))
+                        &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
+                    @endif
+                    @if(userCan('chapter-create', $book))
+                        <a href="{{ $book->getUrl('/create-chapter') }}" class="button outline chapter">@icon('chapter'){{ trans('entities.books_empty_add_chapter') }}</a>
+                    @endif
+                </div>
+            @endif
+        </div>
+
+        <div class="search-results" v-cloak v-show="searching">
+            {{--TODO--}}
+            <h3 class="text-muted">{{ trans('entities.search_results') }} <a v-if="searching" v-on:click="clearSearch()" class="text-small">@icon('close'){{ trans('entities.search_clear') }}</a></h3>
+            <div v-if="!searchResults">
+                @include('partials/loading-icon')
+            </div>
+            <div v-html="searchResults"></div>
+        </div>
     </div>
-    <div class="col-sm-6 col-xs-11">
-        <div class="action-buttons faded">
-            <span dropdown class="dropdown-container">
-                <div dropdown-toggle class="text-button text-primary">@icon('export'){{ trans('entities.export') }}</div>
+
+@stop
+
+
+@section('right')
+
+    <div class="actions mb-xl">
+        <h5>{{ trans('common.actions') }}</h5>
+        <div class="icon-list text-primary">
+            <div dropdown class="dropdown-container">
+                <div dropdown-toggle class="icon-list-item">
+                    <span class="icon">@icon('export')</span>
+                    <span>{{ trans('entities.export') }}</span>
+                </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>
+            </div>
+
             @if(userCan('page-create', $book))
-                <a href="{{ $book->getUrl('/create-page') }}" class="text-pos text-button">@icon('add'){{ trans('entities.pages_new') }}</a>
+                <a href="{{ $book->getUrl('/create-page') }}" class="icon-list-item">
+                    <span class="icon">@icon('add')</span>
+                    <span>{{ trans('entities.pages_new') }}</span>
+                </a>
             @endif
             @if(userCan('chapter-create', $book))
-                <a href="{{ $book->getUrl('/create-chapter') }}" class="text-pos text-button">@icon('add'){{ trans('entities.chapters_new') }}</a>
+                <a href="{{ $book->getUrl('/create-chapter') }}" class="icon-list-item">
+                    <span class="icon">@icon('add')</span>
+                    <span>{{ trans('entities.chapters_new') }}</span>
+                </a>
             @endif
-            @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">@icon('more'){{ trans('common.more') }}</a>
-                    <ul>
-                        @if(userCan('book-update', $book))
-                            <li><a href="{{ $book->getUrl('/edit') }}" class="text-primary">@icon('edit'){{ trans('common.edit') }}</a></li>
-                            <li><a href="{{ $book->getUrl('/sort') }}" class="text-primary">@icon('sort'){{ trans('common.sort') }}</a></li>
-                        @endif
-                        @if(userCan('restrictions-manage', $book))
-                            <li><a href="{{ $book->getUrl('/permissions') }}" class="text-primary">@icon('lock'){{ trans('entities.permissions') }}</a></li>
-                        @endif
-                        @if(userCan('book-delete', $book))
-                            <li><a href="{{ $book->getUrl('/delete') }}" class="text-neg">@icon('delete'){{ trans('common.delete') }}</a></li>
-                        @endif
-                    </ul>
-                </div>
+            @if(userCan('book-update', $book))
+                <a href="{{ $book->getUrl('/edit') }}" class="icon-list-item">
+                    <span class="icon">@icon('edit')</span>
+                    <span>{{ trans('common.edit') }}</span>
+                </a>
+                <a href="{{ $book->getUrl('/sort') }}" class="icon-list-item">
+                    <span class="icon">@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 class="icon">@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 class="icon">@icon('delete')</span>
+                    <span>{{ trans('common.delete') }}</span>
+                </a>
             @endif
         </div>
     </div>
+
 @stop
 
-@section('sidebar')
+@section('left')
 
     @if($book->tags->count() > 0)
-        <section>
+        <div class="mb-xl">
             @include('components.tag-list', ['entity' => $book])
-        </section>
+        </div>
     @endif
 
-    <div class="card">
-        <div class="body">
-            <form v-on:submit.prevent="searchBook" class="search-box">
-                <input v-model="searchTerm" v-on:change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.books_search_this') }}">
-                <button type="submit">@icon('search')</button>
-                <button v-if="searching" v-cloak class="text-neg" v-on:click="clearSearch()" type="button">@icon('close')</button>
-            </form>
-        </div>
+    <div class="mb-xl">
+        <form v-on:submit.prevent="searchBook" class="search-box">
+            <input v-model="searchTerm" v-on:change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.books_search_this') }}">
+            <button type="submit">@icon('search')</button>
+            <button v-if="searching" v-cloak class="text-neg" v-on:click="clearSearch()" type="button">@icon('close')</button>
+        </form>
     </div>
 
-    <div class="card entity-details">
-        <h3>@icon('info') {{ trans('common.details') }}</h3>
-        <div class="body text-small text-muted blended-links">
+    <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">
     </div>
 
     @if(count($activity) > 0)
-        <div class="activity card">
-            <h3>@icon('time') {{ trans('entities.recent_activity') }}</h3>
+        <div class="mb-xl">
+            <h5>{{ trans('entities.recent_activity') }}</h5>
             @include('partials/activity-list', ['activity' => $activity])
         </div>
     @endif
 @stop
 
-@section('container-attrs')
-    id="entity-dashboard"
-    entity-id="{{ $book->id }}"
-    entity-type="book"
-@stop
-
-@section('body')
-
-    <div class="container small nopad">
-        <h1 class="break-text" v-pre>{{$book->name}}</h1>
-        <div class="book-content" v-show="!searching">
-            <p class="text-muted" v-pre>{!! nl2br(e($book->description)) !!}</p>
-            @if(count($bookChildren) > 0)
-            <div class="page-list" v-pre>
-                <hr>
-                @foreach($bookChildren as $childElement)
-                    @if($childElement->isA('chapter'))
-                        @include('chapters/list-item', ['chapter' => $childElement])
-                    @else
-                        @include('pages/list-item', ['page' => $childElement])
-                    @endif
-                    <hr>
-                @endforeach
-            </div>
-            @else
-                <div class="well">
-                    <p class="text-muted italic">{{ trans('entities.books_empty_contents') }}</p>
-                        @if(userCan('page-create', $book))
-                            <a href="{{ $book->getUrl('/create-page') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
-                        @endif
-                        @if(userCan('page-create', $book) && userCan('chapter-create', $book))
-                            &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
-                        @endif
-                        @if(userCan('chapter-create', $book))
-                            <a href="{{ $book->getUrl('/create-chapter') }}" class="button outline chapter">@icon('chapter'){{ trans('entities.books_empty_add_chapter') }}</a>
-                        @endif
-                </div>
-            @endif
-
-        </div>
-        <div class="search-results" v-cloak v-show="searching">
-            <h3 class="text-muted">{{ trans('entities.search_results') }} <a v-if="searching" v-on:click="clearSearch()" class="text-small">@icon('close'){{ trans('entities.search_clear') }}</a></h3>
-            <div v-if="!searchResults">
-                @include('partials/loading-icon')
-            </div>
-            <div v-html="searchResults"></div>
-        </div>
-    </div>
-
-@stop
index 279f1c1a49c185b072d465e4c7bf7ab42344ce50..81e270694ced4ab23b731a54a5c6ea6966d4c90c 100644 (file)
@@ -1,7 +1,4 @@
-<div class="breadcrumbs">
-    @if (userCan('view', $chapter->book))
-    <a href="{{ $chapter->book->getUrl() }}" class="text-book text-button">@icon('book'){{ $chapter->book->getShortName() }}</a>
-    <span class="sep">&raquo;</span>
-    @endif
-    <a href="{{ $chapter->getUrl() }}" class="text-chapter text-button">@icon('chapter'){{$chapter->getShortName()}}</a>
-</div>
\ No newline at end of file
+@include('partials.breadcrumbs', ['crumbs' => [
+        $chapter->book,
+        $chapter,
+]])
\ No newline at end of file
index e5d8b207c85d76797d06c8f000a3c72910dea8ce..62864e7adc4bc338d89a74d1da04dda492c487b5 100644 (file)
@@ -1,31 +1,29 @@
-<div class="chapter entity-list-item" data-entity-type="chapter" data-entity-id="{{$chapter->id}}">
-    <h4>
-        @if (isset($showPath) && $showPath)
-            <a href="{{ $chapter->book->getUrl() }}" class="text-book">
-                @icon('book'){{ $chapter->book->getShortName() }}
-            </a>
-            <span class="text-muted">&nbsp;&nbsp;&raquo;&nbsp;&nbsp;</span>
-        @endif
-        <a href="{{ $chapter->getUrl() }}" class="text-chapter entity-list-item-link">
-            @icon('chapter')<span class="entity-list-item-name break-text">{{ $chapter->name }}</span>
-        </a>
-    </h4>
+<div class="chapter entity-list-item"
+   data-entity-type="chapter" data-entity-id="{{$chapter->id}}">
+    <div class="icon text-chapter">@icon('chapter')</div>
+    <div class="content">
+        <a href="{{ $chapter->getUrl() }}" ><h4 class="entity-list-item-name break-text">{{ $chapter->name }}</h4></a>
+        <div>
 
-    <div class="entity-item-snippet">
-        @if(isset($chapter->searchSnippet))
-            <p class="text-muted break-text">{!! $chapter->searchSnippet !!}</p>
-        @else
-            <p class="text-muted break-text">{{ $chapter->getExcerpt() }}</p>
-        @endif
-    </div>
+            <div class="entity-item-snippet">
+                <p class="text-muted break-text">{{ $chapter->getExcerpt() }}</p>
+            </div>
 
+            @if(count($chapter->pages) > 0)
+                <p chapter-toggle class="text-muted">@icon('caret-right') @icon('page') <span>{{ trans_choice('entities.x_pages', $chapter->pages->count()) }}</span></p>
+                <div class="inset-list">
+                    @foreach($chapter->pages as $page)
+                        <a href="{{ $page->getUrl() }}" class="inner-page {{$page->draft ? 'draft' : ''}} entity-list-item">
+                            <div class="icon text-page">@icon('page')</div>
+                            <div class="content">
+                                <h6 class="entity-list-item-name break-text">{{ $page->name }}</h6>
+                                {{ $slot ?? '' }}
+                            </div>
+                        </a>
+                    @endforeach
+                </div>
+            @endif
 
-    @if(!isset($hidePages) && count($chapter->pages) > 0)
-        <p chapter-toggle class="text-muted">@icon('caret-right') @icon('page') <span>{{ trans_choice('entities.x_pages', $chapter->pages->count()) }}</span></p>
-        <div class="inset-list">
-            @foreach($chapter->pages as $page)
-                <h5 class="@if($page->draft) draft @endif"><a href="{{ $page->getUrl() }}" class="text-page @if($page->draft) draft @endif">@icon('page'){{$page->name}}</a></h5>
-            @endforeach
         </div>
-    @endif
+    </div>
 </div>
\ No newline at end of file
index f5f9901450fc6aa41f2f4c4ed5558b5e2c242617..43248df5f61f224021ab7c8f5b12605536e2b507 100644 (file)
-@extends('sidebar-layout')
+@extends('tri-layout')
 
-@section('toolbar')
-    <div class="col-sm-6 col-xs-3 faded" v-pre>
+@section('container-attrs')
+    id="entity-dashboard"
+    entity-id="{{ $chapter->id }}"
+    entity-type="chapter"
+@stop
+
+@section('body')
+
+    <div class="mb-m">
         @include('chapters._breadcrumbs', ['chapter' => $chapter])
     </div>
-    <div class="col-sm-6 col-xs-9 faded">
-        <div class="action-buttons">
-            <span dropdown class="dropdown-container">
-                <div dropdown-toggle class="text-button text-primary">@icon('export'){{ trans('entities.export') }}</div>
+
+    <div class="content-wrap card">
+        <h1 class="break-text" v-pre>{{ $chapter->name }}</h1>
+        <div class="chapter-content" v-show="!searching">
+            <p v-pre class="text-muted break-text">{!! nl2br(e($chapter->description)) !!}</p>
+            @if(count($pages) > 0)
+                <div v-pre class="entity-list book-contents">
+                    @foreach($pages as $page)
+                        @include('pages.list-item', ['page' => $page])
+                    @endforeach
+                </div>
+            @else
+                {{--TODO--}}
+                <div v-pre class="well">
+                    <p class="text-muted italic">{{ trans('entities.chapters_empty') }}</p>
+                    <p>
+                        @if(userCan('page-create', $chapter))
+                            <a href="{{ $chapter->getUrl('/create-page') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
+                        @endif
+                        @if(userCan('page-create', $chapter) && userCan('book-update', $book))
+                            &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp; &nbsp;
+                        @endif
+                        @if(userCan('book-update', $book))
+                            <a href="{{ $book->getUrl('/sort') }}" class="button outline book">@icon('book'){{ trans('entities.books_empty_sort_current_book') }}</a>
+                        @endif
+                    </p>
+                </div>
+            @endif
+        </div>
+
+        <div class="search-results" v-cloak v-show="searching">
+            {{--TODO--}}
+            <h3 class="text-muted">{{ trans('entities.search_results') }} <a v-if="searching" @click="clearSearch()" class="text-small">@icon('close'){{ trans('entities.search_clear') }}</a></h3>
+            <div v-if="!searchResults">
+                @include('partials/loading-icon')
+            </div>
+            <div v-html="searchResults"></div>
+        </div>
+    </div>
+
+@stop
+
+@section('right')
+
+    <div class="actions mb-xl">
+        <h5>{{ trans('common.actions') }}</h5>
+        <div class="icon-list text-primary">
+
+            <div dropdown class="dropdown-container">
+                <div dropdown-toggle class="icon-list-item">
+                    <span class="icon">@icon('export')</span>
+                    <span>{{ trans('entities.export') }}</span>
+                </div>
                 <ul class="wide">
                     <li><a href="{{ $chapter->getUrl('/export/html') }}" target="_blank">{{ trans('entities.export_html') }} <span class="text-muted float right">.html</span></a></li>
                     <li><a href="{{ $chapter->getUrl('/export/pdf') }}" target="_blank">{{ trans('entities.export_pdf') }} <span class="text-muted float right">.pdf</span></a></li>
                     <li><a href="{{ $chapter->getUrl('/export/plaintext') }}" target="_blank">{{ trans('entities.export_text') }} <span class="text-muted float right">.txt</span></a></li>
                 </ul>
-            </span>
+            </div>
+
             @if(userCan('page-create', $chapter))
-                <a href="{{ $chapter->getUrl('/create-page') }}" class="text-pos text-button">@icon('add'){{ trans('entities.pages_new') }}</a>
+                <a href="{{ $chapter->getUrl('/create-page') }}" class="icon-list-item">
+                    <span class="icon">@icon('add')</span>
+                    <span>{{ trans('entities.pages_new') }}</span>
+                </a>
             @endif
             @if(userCan('chapter-update', $chapter))
-                <a href="{{ $chapter->getUrl('/edit') }}" class="text-primary text-button">@icon('edit'){{ trans('common.edit') }}</a>
+                <a href="{{ $chapter->getUrl('/edit') }}" class="icon-list-item">
+                    <span class="icon">@icon('edit')</span>
+                    <span>{{ trans('common.edit') }}</span>
+                </a>
             @endif
-            @if((userCan('chapter-update', $chapter) && userCan('chapter-delete', $chapter) )|| userCan('restrictions-manage', $chapter) || userCan('chapter-delete', $chapter))
-                <div dropdown class="dropdown-container">
-                    <a dropdown-toggle class="text-primary text-button">@icon('more') {{ trans('common.more') }}</a>
-                    <ul>
-                        @if(userCan('chapter-update', $chapter) && userCan('chapter-delete', $chapter))
-                            <li><a href="{{ $chapter->getUrl('/move') }}" class="text-primary">@icon('folder'){{ trans('common.move') }}</a></li>
-                        @endif
-                        @if(userCan('restrictions-manage', $chapter))
-                            <li><a href="{{ $chapter->getUrl('/permissions') }}" class="text-primary">@icon('lock'){{ trans('entities.permissions') }}</a></li>
-                        @endif
-                        @if(userCan('chapter-delete', $chapter))
-                            <li><a href="{{ $chapter->getUrl('/delete') }}" class="text-neg">@icon('delete'){{ trans('common.delete') }}</a></li>
-                        @endif
-                    </ul>
-                </div>
+            @if(userCan('chapter-update', $chapter) && userCan('chapter-delete', $chapter))
+                <a href="{{ $chapter->getUrl('/move') }}" class="icon-list-item">
+                    <span class="icon">@icon('folder')</span>
+                    <span>{{ trans('common.move') }}</span>
+                </a>
+            @endif
+            @if(userCan('restrictions-manage', $chapter))
+                <a href="{{ $chapter->getUrl('/permissions') }}" class="icon-list-item">
+                    <span class="icon">@icon('lock')</span>
+                    <span>{{ trans('entities.permissions') }}</span>
+                </a>
             @endif
+            @if(userCan('chapter-delete', $chapter))
+                <a href="{{ $chapter->getUrl('/delete') }}" class="icon-list-item">
+                    <span class="icon">@icon('delete')</span>
+                    <span>{{ trans('common.delete') }}</span>
+                </a>
+            @endif
+
+            {{--@if(userCan('page-create', $book))--}}
+                {{--<a href="{{ $book->getUrl('/create-page') }}" class="icon-list-item">--}}
+                    {{--<span class="icon">@icon('add')</span>--}}
+                    {{--<span>{{ trans('entities.pages_new') }}</span>--}}
+                {{--</a>--}}
+            {{--@endif--}}
         </div>
     </div>
-@stop
 
-@section('container-attrs')
-    id="entity-dashboard"
-    entity-id="{{ $chapter->id }}"
-    entity-type="chapter"
+    <div class="col-sm-6 col-xs-9 faded">
+        <div class="action-buttons">
+
+        </div>
+    </div>
 @stop
 
-@section('sidebar')
+
+
+@section('left')
 
     @if($chapter->tags->count() > 0)
-        <section>
+        <div class="mb-xl">
             @include('components.tag-list', ['entity' => $chapter])
-        </section>
+        </div>
     @endif
 
-    <div class="card">
-        <div class="body">
-            <form @submit.prevent="searchBook" class="search-box">
-                <input v-model="searchTerm" @change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.chapters_search_this') }}">
-                <button type="submit">@icon('search')</button>
-                <button v-if="searching" v-cloak class="text-neg" @click="clearSearch()" type="button">@icon('close')</button>
-            </form>
-        </div>
+    <div class="mb-xl">
+        <form @submit.prevent="searchBook" class="search-box">
+            <input v-model="searchTerm" @change="checkSearchForm()" type="text" name="term" placeholder="{{ trans('entities.chapters_search_this') }}">
+            <button type="submit">@icon('search')</button>
+            <button v-if="searching" v-cloak class="text-neg" @click="clearSearch()" type="button">@icon('close')</button>
+        </form>
     </div>
 
-    <div class="card entity-details">
-        <h3>@icon('info') {{ trans('common.details') }}</h3>
-        <div class="body blended-links text-small text-muted">
+    <div class="mb-xl">
+        <h5>{{ trans('common.details') }}</h5>
+        <div class="blended-links text-small text-muted">
             @include('partials.entity-meta', ['entity' => $chapter])
 
             @if($book->restricted)
     @include('partials/book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
 @stop
 
-@section('body')
-
-    <div class="container small nopad">
-        <h1 class="break-text" v-pre>{{ $chapter->name }}</h1>
-        <div class="chapter-content" v-show="!searching">
-            <p v-pre class="text-muted break-text">{!! nl2br(e($chapter->description)) !!}</p>
 
-            @if(count($pages) > 0)
-                <div v-pre class="page-list">
-                    <hr>
-                    @foreach($pages as $page)
-                        @include('pages/list-item', ['page' => $page])
-                        <hr>
-                    @endforeach
-                </div>
-            @else
-                <div v-pre class="well">
-                    <p class="text-muted italic">{{ trans('entities.chapters_empty') }}</p>
-                    <p>
-                        @if(userCan('page-create', $chapter))
-                            <a href="{{ $chapter->getUrl('/create-page') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
-                        @endif
-                        @if(userCan('page-create', $chapter) && userCan('book-update', $book))
-                            &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp; &nbsp;
-                        @endif
-                        @if(userCan('book-update', $book))
-                            <a href="{{ $book->getUrl('/sort') }}" class="button outline book">@icon('book'){{ trans('entities.books_empty_sort_current_book') }}</a>
-                        @endif
-                    </p>
-                </div>
-            @endif
-        </div>
-
-        <div class="search-results" v-cloak v-show="searching">
-            <h3 class="text-muted">{{ trans('entities.search_results') }} <a v-if="searching" @click="clearSearch()" class="text-small">@icon('close'){{ trans('entities.search_clear') }}</a></h3>
-            <div v-if="!searchResults">
-                @include('partials/loading-icon')
-            </div>
-            <div v-html="searchResults"></div>
-        </div>
-    </div>
-
-@stop
index f10f7ebe8bc48d9a71febc3fc7edd7aab3480522..f28bb464acd4fd21d8aa4e60e85ac7cb54abac8a 100644 (file)
@@ -1,5 +1,5 @@
-@include('partials.breadcrumbs', [
-        'page' => $page,
-        'chapter' => $page->hasChapter() ? $page->chapter : null,
-        'book' => $page->book,
-])
\ No newline at end of file
+@include('partials.breadcrumbs', ['crumbs' => [
+        $page->book,
+        $page->hasChapter() ? $page->chapter : null,
+        $page,
+]])
\ No newline at end of file
index f3c79791a792a647df9a8a1005357625b3aa8cf4..1e26cf1d546227566cd2798cd2f305ebbfab8148 100644 (file)
@@ -1,51 +1,5 @@
-<div class="page {{$page->draft ? 'draft' : ''}} entity-list-item" data-entity-type="page" data-entity-id="{{$page->id}}">
-    <div class="entity-icon text-page">@icon('page')</div>
-    <div class="content">
-
-        <h4>
-            @if (isset($showPath) && $showPath)
-                <a href="{{ $page->book->getUrl() }}" class="text-book">
-                    @icon('book'){{ $page->book->getShortName() }}
-                </a>
-                <span class="text-muted">&nbsp;&nbsp;&raquo;&nbsp;&nbsp;</span>
-                @if($page->chapter)
-                    <a href="{{ $page->chapter->getUrl() }}" class="text-chapter">
-                        @icon('chapter'){{ $page->chapter->getShortName() }}
-                    </a>
-                    <span class="text-muted">&nbsp;&nbsp;&raquo;&nbsp;&nbsp;</span>
-                @endif
-            @endif
-            <a href="{{ $page->getUrl() }}" class="entity-list-item-link"><span class="entity-list-item-name break-text">{{ $page->name }}</span></a>
-        </h4>
-
-
-        <div class="entity-item-snippet">
-            @if(isset($page->searchSnippet))
-                <p class="text-muted break-text">{!! $page->searchSnippet !!}</p>
-            @else
-                <p class="text-muted break-text">{{ $page->getExcerpt() }}</p>
-            @endif
-        </div>
-
-        @if(isset($style) && $style === 'detailed')
-            <div class="row meta text-muted text-small">
-                <div class="col-md-6">
-                    @include('partials.entity-meta', ['entity' => $page])
-                </div>
-                <div class="col-md-6">
-                    <a class="text-book" href="{{ $page->book->getUrl() }}">@icon('book'){{ $page->book->getShortName(30) }}</a>
-                    <br>
-                    @if($page->chapter)
-                        <a class="text-chapter" href="{{ $page->chapter->getUrl() }}">@icon('chapter'){{ $page->chapter->getShortName(30) }}</a>
-                    @else
-                        @icon('chapter') {{ trans('entities.pages_not_in_chapter') }}
-                    @endif
-                </div>
-            </div>
-        @endif
-
+@component('partials.entity-list-item-basic', ['entity' => $page])
+    <div class="entity-item-snippet">
+        <p class="text-muted break-text">{{ $page->getExcerpt() }}</p>
     </div>
-
-
-
-</div>
\ No newline at end of file
+@endcomponent
\ No newline at end of file
index f7f8e2cf23f7d8f7b893b1af190c9138bf7a6207..773d74a1ea02f47873717c2c63b7de51078db71b 100644 (file)
@@ -1,5 +1,39 @@
 @extends('tri-layout')
-@section('container-classes', 'mt-xl')
+
+@section('body')
+
+    <div class="mb-m">
+        @include('pages._breadcrumbs', ['page' => $page])
+    </div>
+
+    <div class="content-wrap card">
+        <div class="page-content flex" page-display="{{ $page->id }}">
+
+            <div class="pointer-container" id="pointer">
+                <div class="pointer anim {{ userCan('page-update', $page) ? 'is-page-editable' : ''}}" >
+                    <span class="icon text-primary">@icon('link') @icon('include', ['style' => 'display:none;'])</span>
+                    <span class="input-group">
+                    <input readonly="readonly" type="text" id="pointer-url" placeholder="url">
+                    <button class="button icon" data-clipboard-target="#pointer-url" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button>
+                </span>
+                    @if(userCan('page-update', $page))
+                        <a href="{{ $page->getUrl('/edit') }}" id="pointer-edit" data-edit-href="{{ $page->getUrl('/edit') }}"
+                           class="button icon heading-edit-icon" title="{{ trans('entities.pages_edit_content_link')}}">@icon('edit')</a>
+                    @endif
+                </div>
+            </div>
+
+            @include('pages.page-display')
+        </div>
+    </div>
+
+    @if ($commentsEnabled)
+        <div class="container small nopad comments-container mb-l">
+            @include('comments.comments', ['page' => $page])
+            <div class="clearfix"></div>
+        </div>
+    @endif
+@stop
 
 @section('left')
 
     @include('partials.book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
 @stop
 
-@section('body')
-
-    <div class="mb-m">
-        @include('pages._breadcrumbs', ['page' => $page])
-    </div>
-
-    <div class="content-wrap card">
-        <div class="page-content flex" page-display="{{ $page->id }}">
-
-            <div class="pointer-container" id="pointer">
-                <div class="pointer anim {{ userCan('page-update', $page) ? 'is-page-editable' : ''}}" >
-                    <span class="icon text-primary">@icon('link') @icon('include', ['style' => 'display:none;'])</span>
-                    <span class="input-group">
-                    <input readonly="readonly" type="text" id="pointer-url" placeholder="url">
-                    <button class="button icon" data-clipboard-target="#pointer-url" type="button" title="{{ trans('entities.pages_copy_link') }}">@icon('copy')</button>
-                </span>
-                    @if(userCan('page-update', $page))
-                        <a href="{{ $page->getUrl('/edit') }}" id="pointer-edit" data-edit-href="{{ $page->getUrl('/edit') }}"
-                           class="button icon heading-edit-icon" title="{{ trans('entities.pages_edit_content_link')}}">@icon('edit')</a>
-                    @endif
-                </div>
-            </div>
-
-            @include('pages.page-display')
-        </div>
-    </div>
-
-    @if ($commentsEnabled)
-      <div class="container small nopad comments-container mb-l">
-          @include('comments.comments', ['page' => $page])
-          <div class="clearfix"></div>
-      </div>
-    @endif
-@stop
-
 @section('right')
     <div class="actions mb-xl">
         <h5>Actions</h5>
index cda9e504718ae5c1597480c8a7c4074c9bccc5e7..d30712530332a35ba66cbb1fe4f60ad8bdcb270b 100644 (file)
@@ -1,19 +1,42 @@
 <div class="breadcrumbs text-center">
-    @if (isset($book) && userCan('view', $book))
-        <a href="{{ $book->getUrl() }}" class="text-book">
-            @icon('book'){{ $book->getShortName() }}
-        </a>
-        <div class="separator">@icon('chevron-right')</div>
-    @endif
-    @if(isset($chapter) && userCan('view', $chapter))
-        <a href="{{ $chapter->getUrl() }}" class="text-chapter">
-            @icon('chapter'){{ $chapter->getShortName() }}
-        </a>
-        <div class="separator">@icon('chevron-right')</div>
-    @endif
-    @if(isset($page) && userCan('view', $page))
-        <a href="{{ $page->getUrl() }}" class="text-page">
-            @icon('page'){{ $page->getShortName() }}
-        </a>
-    @endif
+    <?php $breadcrumbCount = 0; ?>
+    @foreach($crumbs as $key => $crumb)
+        @if (is_null($crumb))
+            <?php continue; ?>
+        @endif
+        @if ($breadcrumbCount !== 0)
+            <div class="separator">@icon('chevron-right')</div>
+        @endif
+
+        @if (is_string($crumb))
+            <a href="{{  baseUrl($key)  }}">
+                {{ $crumb }}
+            </a>
+        @else
+            <a href="{{ $crumb->getUrl() }}" class="text-{{$crumb->getType()}}">
+                @icon($crumb->getType()){{ $crumb->getShortName() }}
+            </a>
+        @endif
+        <?php $breadcrumbCount++; ?>
+    @endforeach
+
+    {{--@if (isset($book) && userCan('view', $book))--}}
+        {{--<a href="{{ $book->getUrl() }}" class="text-book">--}}
+            {{--@icon('book'){{ $book->getShortName() }}--}}
+        {{--</a>--}}
+        {{--<div class="separator">@icon('chevron-right')</div>--}}
+    {{--@endif--}}
+    {{--@if(isset($chapter) && userCan('view', $chapter))--}}
+        {{--<a href="{{ $chapter->getUrl() }}" class="text-chapter">--}}
+            {{--@icon('chapter'){{ $chapter->getShortName() }}--}}
+        {{--</a>--}}
+        {{--@if (isset($page))--}}
+            {{--<div class="separator">@icon('chevron-right')</div>--}}
+        {{--@endif--}}
+    {{--@endif--}}
+    {{--@if(isset($page) && userCan('view', $page))--}}
+        {{--<a href="{{ $page->getUrl() }}" class="text-page">--}}
+            {{--@icon('page'){{ $page->getShortName() }}--}}
+        {{--</a>--}}
+    {{--@endif--}}
 </div>
\ No newline at end of file
index 9ae65b037ce9d9a3afae799a038324123dab5552..1eeaf970aedc61d7b7baeccb7bee575eeedfa858 100644 (file)
@@ -4,11 +4,11 @@
 
 @section('content')
 
-    <div class="toolbar px-xl">
-        @yield('toolbar')
-    </div>
+    {{--<div class="toolbar px-xl">--}}
+        {{--@yield('toolbar')--}}
+    {{--</div>--}}
 
-    <div class="tri-layout-container @yield('container-classes')" tri-layout @yield('container-attrs') >
+    <div class="tri-layout-container mt-xl" tri-layout @yield('container-attrs') >
 
         <div class="tri-layout-left print-hidden " id="sidebar">
             <div class="tri-layout-left-contents">