]> BookStack Code Mirror - bookstack/blob - resources/views/pages/show.blade.php
7656085e9bd1063c039b915ca1b2d9a6e7cca3e5
[bookstack] / resources / views / pages / show.blade.php
1 @extends('base')
2
3 @section('content')
4
5     <div class="faded-small">
6         <div class="container">
7             <div class="row">
8                 <div class="col-md-6 faded">
9                     <div class="breadcrumbs">
10                         <a href="{{$book->getUrl()}}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->name }}</a>
11                         @if($page->hasChapter())
12                             <span class="sep">&raquo;</span>
13                             <a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
14                                 <i class="zmdi zmdi-collection-bookmark"></i>
15                                 {{$page->chapter->name}}
16                             </a>
17                         @endif
18                     </div>
19                 </div>
20                 <div class="col-md-6 faded">
21                     <div class="action-buttons">
22                         @if($currentUser->can('page-update'))
23                             <a href="{{$page->getUrl() . '/revisions'}}" class="text-primary text-button"><i class="zmdi zmdi-replay"></i>Revisions</a>
24                             <a href="{{$page->getUrl() . '/edit'}}" class="text-primary text-button" ><i class="zmdi zmdi-edit"></i>Edit</a>
25                         @endif
26                         @if($currentUser->can('page-delete'))
27                             <a href="{{$page->getUrl() . '/delete'}}" class="text-neg text-button"><i class="zmdi zmdi-delete"></i>Delete</a>
28                         @endif
29                     </div>
30                 </div>
31             </div>
32         </div>
33     </div>
34
35
36     <div class="container">
37         <div class="row">
38             <div class="col-md-9">
39                 <div class="page-content anim fadeIn">
40                     @include('pages/page-display')
41                     <hr>
42                     <p class="text-muted small">
43                         Created {{$page->created_at->diffForHumans()}} @if($page->createdBy) by {{$page->createdBy->name}} @endif
44                         <br>
45                         Last Updated {{$page->updated_at->diffForHumans()}} @if($page->createdBy) by {{$page->updatedBy->name}} @endif
46                     </p>
47                 </div>
48             </div>
49             <div class="col-md-3">
50                 @include('pages/sidebar-tree-list', ['book' => $book])
51                 <div class="side-nav faded">
52                     <h4>Page Navigation</h4>
53                     <ul class="page-nav-list">
54                     </ul>
55                 </div>
56             </div>
57         </div>
58     </div>
59
60
61
62
63
64     <script>
65         $(document).ready(function() {
66
67             // Set up document navigation
68             var pageNav = $('.page-nav-list');
69             var pageContent = $('.page-content');
70             var headers = pageContent.find('h1, h2, h3, h4, h5, h6');
71             if(headers.length > 5) {
72                 headers.each(function() {
73                     var header = $(this);
74                     var tag = header.prop('tagName');
75                     var listElem = $('<li></li>').addClass('nav-'+tag);
76                     var link = $('<a></a>').text(header.text().trim()).attr('href', '#');
77                     listElem.append(link);
78                     pageNav.append(listElem);
79                     link.click(function(e) {
80                         e.preventDefault();
81                         header.smoothScrollTo();
82                     })
83                 });
84                 $('.side-nav').fadeIn();
85             } else {
86                 $('.side-nav').hide();
87             }
88
89
90             // Set up link hooks
91             var pageId = {{$page->id}};
92             headers.each(function() {
93                 var text = $(this).text().trim();
94                 var link = '/link/' + pageId + '#' + encodeURIComponent(text);
95                 var linkHook = $('<a class="link-hook"><i class="zmdi zmdi-link"></i></a>')
96                         .attr({"data-content": link, href: link, target: '_blank'});
97                 linkHook.click(function(e) {
98                     e.preventDefault();
99                     goToText(text);
100                 });
101                 $(this).append(linkHook);
102             });
103
104             function goToText(text) {
105                 $('.page-content').find(':contains("'+text+'")').smoothScrollTo();
106             }
107
108             if(window.location.hash) {
109                 var text = window.location.hash.replace(/\%20/g, ' ').substr(1);
110                 goToText(text);
111             }
112
113             //$('[data-toggle="popover"]').popover()
114         });
115     </script>
116
117     <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.7/styles/solarized_light.min.css">
118     <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.7/highlight.min.js"></script>
119     <script>
120         window.onload = function() {
121             var aCodes = document.getElementsByTagName('pre');
122             for (var i=0; i < aCodes.length; i++) {
123                 hljs.highlightBlock(aCodes[i]);
124             }
125         };
126     </script>
127 @stop