mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-08-09 10:22:51 +03:00
Added experimental breadcrumb traversal
This commit is contained in:
@@ -38,13 +38,13 @@
|
||||
<div class="actions mb-xl">
|
||||
<h5>{{ trans('common.actions') }}</h5>
|
||||
<div class="icon-list text-primary">
|
||||
@include('partials.view-toggle', ['view' => $view, 'type' => 'book'])
|
||||
@if($currentUser->can('book-create-all'))
|
||||
<a href="{{ baseUrl("/create-book") }}" class="icon-list-item">
|
||||
<span>@icon('add')</span>
|
||||
<span>{{ trans('entities.books_create') }}</span>
|
||||
</a>
|
||||
@endif
|
||||
@include('partials.view-toggle', ['view' => $view, 'type' => 'book'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -8,6 +8,12 @@
|
||||
|
||||
@section('body')
|
||||
|
||||
<div class="mb-s">
|
||||
@include('partials.breadcrumbs', ['crumbs' => [
|
||||
$book,
|
||||
]])
|
||||
</div>
|
||||
|
||||
<div class="content-wrap card">
|
||||
<h1 class="break-text" v-pre>{{$book->name}}</h1>
|
||||
<div class="book-content" v-show="!searching">
|
||||
|
@@ -30,7 +30,7 @@
|
||||
@if(userCan('bookshelf-view-all') || userCan('bookshelf-view-own'))
|
||||
<a href="{{ baseUrl('/shelves') }}">@icon('bookshelf'){{ trans('entities.shelves') }}</a>
|
||||
@endif
|
||||
<a href="{{ baseUrl('/books') }}">@icon('book'){{ trans('entities.books') }}</a>
|
||||
<a href="{{ baseUrl('/books') }}">@icon('books'){{ trans('entities.books') }}</a>
|
||||
@if(signedInUser() && userCan('settings-manage'))
|
||||
<a href="{{ baseUrl('/settings') }}">@icon('settings'){{ trans('settings.settings') }}</a>
|
||||
@endif
|
||||
|
13
resources/views/partials/breadcrumb-listing.blade.php
Normal file
13
resources/views/partials/breadcrumb-listing.blade.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="breadcrumb-listing" dropdown breadcrumb-listing="{{ $entity->getType() }}:{{ $entity->id }}">
|
||||
<div class="breadcrumb-listing-toggle" dropdown-toggle>
|
||||
<div class="separator">@icon('chevron-right')</div>
|
||||
</div>
|
||||
<div dropdown-menu class="breadcrumb-listing-dropdown card">
|
||||
<div class="breadcrumb-listing-search">
|
||||
@icon('search')
|
||||
<input autocomplete="off" type="text" name="entity-search">
|
||||
</div>
|
||||
@include('partials.loading-icon')
|
||||
<div class="breadcrumb-listing-entity-list px-m"></div>
|
||||
</div>
|
||||
</div>
|
@@ -1,10 +1,22 @@
|
||||
<div class="breadcrumbs text-center">
|
||||
<?php $breadcrumbCount = 0; ?>
|
||||
|
||||
{{--Show top level item--}}
|
||||
@if (count($crumbs) > 0 && $crumbs[0] instanceof \BookStack\Entities\Book)
|
||||
<a href="{{ baseUrl('/books') }}" class="icon-list-item">
|
||||
<span>@icon('books')</span>
|
||||
<span>{{ trans('entities.books') }}</span>
|
||||
</a>
|
||||
<?php $breadcrumbCount++; ?>
|
||||
@endif
|
||||
|
||||
@foreach($crumbs as $key => $crumb)
|
||||
<?php $isEntity = ($crumb instanceof \BookStack\Entities\Entity); ?>
|
||||
|
||||
@if (is_null($crumb))
|
||||
<?php continue; ?>
|
||||
@endif
|
||||
@if ($breadcrumbCount !== 0)
|
||||
@if ($breadcrumbCount !== 0 && !$isEntity)
|
||||
<div class="separator">@icon('chevron-right')</div>
|
||||
@endif
|
||||
|
||||
@@ -17,10 +29,15 @@
|
||||
<span>@icon($crumb['icon'])</span>
|
||||
<span>{{ $crumb['text'] }}</span>
|
||||
</a>
|
||||
@elseif($crumb instanceof \BookStack\Entities\Entity)
|
||||
@elseif($isEntity && userCan('view', $crumb))
|
||||
@if($breadcrumbCount > 0)
|
||||
@include('partials.breadcrumb-listing', ['entity' => $crumb])
|
||||
@endif
|
||||
<a href="{{ $crumb->getUrl() }}" class="text-{{$crumb->getType()}} icon-list-item">
|
||||
<span>@icon($crumb->getType())</span>
|
||||
<span>{{ $crumb->getShortName() }}</span>
|
||||
<span>
|
||||
{{ $crumb->getShortName() }}
|
||||
</span>
|
||||
</a>
|
||||
@endif
|
||||
<?php $breadcrumbCount++; ?>
|
||||
|
11
resources/views/partials/entity-list-basic.blade.php
Normal file
11
resources/views/partials/entity-list-basic.blade.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="entity-list {{ $style ?? '' }}">
|
||||
@if(count($entities) > 0)
|
||||
@foreach($entities as $index => $entity)
|
||||
@include('partials.entity-list-item-basic', ['entity' => $entity])
|
||||
@endforeach
|
||||
@else
|
||||
<p class="text-muted empty-text">
|
||||
{{ $emptyText ?? trans('common.no_items') }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
@@ -7,6 +7,7 @@
|
||||
{{--<div class="toolbar px-xl">--}}
|
||||
{{--@yield('toolbar')--}}
|
||||
{{--</div>--}}
|
||||
{{--TODO - Cleanup toolbar usage--}}
|
||||
|
||||
<div class="tri-layout-container mt-m" tri-layout @yield('container-attrs') >
|
||||
|
||||
|
Reference in New Issue
Block a user