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