mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-26 12:16:07 +00:00
Extracted text from page views & standardised breadcrumbs
This commit is contained in:
parent
066adf3cea
commit
96075dee7b
@ -320,6 +320,9 @@ ul.pagination {
|
|||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
margin-top: $-xs;
|
margin-top: $-xs;
|
||||||
}
|
}
|
||||||
|
.text-muted p.text-muted {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
.page.draft .text-page {
|
.page.draft .text-page {
|
||||||
color: $color-page-draft;
|
color: $color-page-draft;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,9 @@ em, i, .italic {
|
|||||||
small, p.small, span.small, .text-small {
|
small, p.small, span.small, .text-small {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
color: lighten($text-dark, 20%);
|
color: lighten($text-dark, 20%);
|
||||||
|
small, p.small, span.small, .text-small {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sup, .superscript {
|
sup, .superscript {
|
||||||
|
@ -6,7 +6,9 @@ return [
|
|||||||
*/
|
*/
|
||||||
'cancel' => 'Cancel',
|
'cancel' => 'Cancel',
|
||||||
'confirm' => 'Confirm',
|
'confirm' => 'Confirm',
|
||||||
|
'back' => 'Back',
|
||||||
|
'save' => 'Save',
|
||||||
|
'continue' => 'Continue',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Form Labels
|
* Form Labels
|
||||||
@ -23,4 +25,10 @@ return [
|
|||||||
'create' => 'Create',
|
'create' => 'Create',
|
||||||
'update' => 'Update',
|
'update' => 'Update',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Misc
|
||||||
|
*/
|
||||||
|
'deleted_user' => 'Deleted User',
|
||||||
];
|
];
|
@ -13,6 +13,7 @@ return [
|
|||||||
'sort' => 'Sort',
|
'sort' => 'Sort',
|
||||||
'move' => 'Move',
|
'move' => 'Move',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
|
'revisions' => 'Revisions',
|
||||||
'meta_created' => 'Created :timeLength',
|
'meta_created' => 'Created :timeLength',
|
||||||
'meta_created_name' => 'Created :timeLength by :user',
|
'meta_created_name' => 'Created :timeLength by :user',
|
||||||
'meta_updated' => 'Updated :timeLength',
|
'meta_updated' => 'Updated :timeLength',
|
||||||
@ -56,6 +57,9 @@ return [
|
|||||||
'books_permissions_active' => 'Book Permissions Active',
|
'books_permissions_active' => 'Book Permissions Active',
|
||||||
'books_search_this' => 'Search this book',
|
'books_search_this' => 'Search this book',
|
||||||
'books_navigation' => 'Book Navigation',
|
'books_navigation' => 'Book Navigation',
|
||||||
|
'books_sort' => 'Sort Book Contents',
|
||||||
|
'books_sort_show_other' => 'Show Other Books',
|
||||||
|
'books_sort_save' => 'Save New Order',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chapters
|
* Chapters
|
||||||
@ -81,4 +85,68 @@ return [
|
|||||||
'pages_new' => 'New Page',
|
'pages_new' => 'New Page',
|
||||||
'pages_attachments' => 'Attachments',
|
'pages_attachments' => 'Attachments',
|
||||||
'pages_navigation' => 'Page Navigation',
|
'pages_navigation' => 'Page Navigation',
|
||||||
|
'pages_delete' => 'Delete Page',
|
||||||
|
'pages_delete_draft' => 'Delete Draft Page',
|
||||||
|
'pages_delete_confirm' => 'Are you sure you want to delete this page?',
|
||||||
|
'pages_delete_draft_confirm' => 'Are you sure you want to delete this draft page?',
|
||||||
|
'pages_edit_toggle_header' => 'Toggle header',
|
||||||
|
'pages_edit_save_draft' => 'Save Draft',
|
||||||
|
'pages_edit_delete_draft' => 'Delete Draft',
|
||||||
|
'pages_edit_discard_draft' => 'Discard Draft',
|
||||||
|
'pages_edit_set_changelog' => 'Set Changelog',
|
||||||
|
'pages_edit_enter_changelog_desc' => 'Enter a brief description of the changes you\'ve made',
|
||||||
|
'pages_edit_enter_changelog' => 'Enter Changelog',
|
||||||
|
'pages_save' => 'Save Page',
|
||||||
|
'pages_title' => 'Page Title',
|
||||||
|
'pages_name' => 'Page Name',
|
||||||
|
'pages_md_editor' => 'Editor',
|
||||||
|
'pages_md_preview' => 'Preview',
|
||||||
|
'pages_md_insert_image' => 'Insert Image',
|
||||||
|
'pages_md_insert_link' => 'Insert Entity Link',
|
||||||
|
'pages_not_in_chapter' => 'Page is not in a chapter',
|
||||||
|
'pages_move' => 'Move Page',
|
||||||
|
'pages_permissions' => 'Page Permissions',
|
||||||
|
'pages_revisions' => 'Page Revisions',
|
||||||
|
'pages_revisions_created_by' => 'Created By',
|
||||||
|
'pages_revisions_date' => 'Revision Date',
|
||||||
|
'pages_revisions_changelog' => 'Changelog',
|
||||||
|
'pages_revisions_changes' => 'Changes',
|
||||||
|
'pages_revisions_current' => 'Current Version',
|
||||||
|
'pages_revisions_preview' => 'Preview',
|
||||||
|
'pages_revisions_restore' => 'Restore',
|
||||||
|
'pages_revisions_none' => 'This page has no revisions',
|
||||||
|
'pages_export' => 'Export',
|
||||||
|
'pages_export_html' => 'Contained Web File',
|
||||||
|
'pages_export_pdf' => 'PDF File',
|
||||||
|
'pages_export_text' => 'Plain Text File',
|
||||||
|
'pages_copy_link' => 'Copy Link',
|
||||||
|
'pages_permissions_active' => 'Page Permissions Active',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Editor sidebar
|
||||||
|
*/
|
||||||
|
'page_tags' => 'Page Tags',
|
||||||
|
'tag' => 'Tag',
|
||||||
|
'tag_value' => 'Tag Value (Optional)',
|
||||||
|
'tags_explain' => "Add some tags to better categorise your content. \n You can assign a value to a tag for more in-depth organisation.",
|
||||||
|
'tags_add' => 'Add another tag',
|
||||||
|
'attachments' => 'Attachments',
|
||||||
|
'attachments_explain' => 'Upload some files or attach some link to display on your page. These are visible in the page sidebar.',
|
||||||
|
'attachments_explain_instant_save' => 'Changes here are saved instantly.',
|
||||||
|
'attachments_items' => 'Attached Items',
|
||||||
|
'attachments_upload' => 'Upload File',
|
||||||
|
'attachments_link' => 'Attach Link',
|
||||||
|
'attachments_set_link' => 'Set Link',
|
||||||
|
'attachments_delete_confirm' => 'Click delete again to confirm you want to delete this attachment.',
|
||||||
|
'attachments_no_files' => 'No files have been uploaded',
|
||||||
|
'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.',
|
||||||
|
'attachments_link_name' => 'Link Name',
|
||||||
|
'attachment_link' => 'Attachment link',
|
||||||
|
'attachments_link_url' => 'Link to file',
|
||||||
|
'attachments_link_url_hint' => 'Url of site or file',
|
||||||
|
'attach' => 'Attach',
|
||||||
|
'attachments_edit_file' => 'Edit File',
|
||||||
|
'attachments_edit_file_name' => 'File Name',
|
||||||
|
'attachments_edit_drop_upload' => 'Drop files or click here to upload and overwrite',
|
||||||
|
|
||||||
];
|
];
|
3
resources/views/books/_breadcrumbs.blade.php
Normal file
3
resources/views/books/_breadcrumbs.blade.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{$book->getUrl()}}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
||||||
|
</div>
|
@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
@include('books._breadcrumbs', ['book' => $book])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>{{ trans('entities.books_delete') }}</h1>
|
<h1>{{ trans('entities.books_delete') }}</h1>
|
||||||
<p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p>
|
<p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p>
|
||||||
|
@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
@include('books._breadcrumbs', ['book' => $book])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>{{ trans('entities.books_edit') }}</h1>
|
<h1>{{ trans('entities.books_edit') }}</h1>
|
||||||
<form action="{{ $book->getUrl() }}" method="POST">
|
<form action="{{ $book->getUrl() }}" method="POST">
|
||||||
|
@ -6,9 +6,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('books._breadcrumbs', ['book' => $book])
|
||||||
<a href="{{$book->getUrl()}}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,7 +5,10 @@
|
|||||||
<div class="faded-small toolbar">
|
<div class="faded-small toolbar">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-6 faded">
|
||||||
|
@include('books._breadcrumbs', ['book' => $book])
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
<div class="action-buttons faded">
|
<div class="action-buttons faded">
|
||||||
@if(userCan('page-create', $book))
|
@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>
|
<a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.pages_new') }}</a>
|
||||||
|
@ -6,8 +6,18 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
@include('books._breadcrumbs', ['book' => $book])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<h1>Sorting Pages & Chapters<span class="subheader">For {{ $book->name }}</span></h1>
|
<h1>{{ trans('entities.books_sort') }}</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8" id="sort-boxes">
|
<div class="col-md-8" id="sort-boxes">
|
||||||
|
|
||||||
@ -17,7 +27,7 @@
|
|||||||
|
|
||||||
@if(count($books) > 1)
|
@if(count($books) > 1)
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<h3>Show Other Books</h3>
|
<h3>{{ trans('entities.books_sort_show_other') }}</h3>
|
||||||
<div id="additional-books">
|
<div id="additional-books">
|
||||||
@foreach($books as $otherBook)
|
@foreach($books as $otherBook)
|
||||||
@if($otherBook->id !== $book->id)
|
@if($otherBook->id !== $book->id)
|
||||||
@ -37,8 +47,8 @@
|
|||||||
<input type="hidden" name="_method" value="PUT">
|
<input type="hidden" name="_method" value="PUT">
|
||||||
<input type="hidden" id="sort-tree-input" name="sort-tree">
|
<input type="hidden" id="sort-tree-input" name="sort-tree">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<a href="{{ $book->getUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ $book->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button class="button pos" type="submit">Save Order</button>
|
<button class="button pos" type="submit">{{ trans('entities.books_sort_save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
5
resources/views/chapters/_breadcrumbs.blade.php
Normal file
5
resources/views/chapters/_breadcrumbs.blade.php
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ $chapter->book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $chapter->book->getShortName() }}</a>
|
||||||
|
<span class="sep">»</span>
|
||||||
|
<a href="{{ $chapter->getUrl() }}" class="text-chapter text-button"><i class="zmdi zmdi-collection-bookmark"></i>{{$chapter->getShortName()}}</a>
|
||||||
|
</div>
|
@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
@include('chapters._breadcrumbs', ['chapter' => $chapter])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>{{ trans('entities.chapters_delete') }}</h1>
|
<h1>{{ trans('entities.chapters_delete') }}</h1>
|
||||||
<p>{{ trans('entities.chapters_delete_explain', ['chapterName' => $chapter->name]) }}</p>
|
<p>{{ trans('entities.chapters_delete_explain', ['chapterName' => $chapter->name]) }}</p>
|
||||||
|
@ -6,18 +6,14 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('chapters._breadcrumbs', ['chapter' => $chapter])
|
||||||
<a href="{{ $book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $chapter->getUrl() }}" class="text-chapter text-button"><i class="zmdi zmdi-collection-bookmark"></i>{{ $chapter->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>{{ trans('entities.chapters_move') }} <small class="subheader">{{$chapter->name}}</small></h1>
|
<h1>{{ trans('entities.chapters_move') }}</h1>
|
||||||
|
|
||||||
<form action="{{ $chapter->getUrl('/move') }}" method="POST">
|
<form action="{{ $chapter->getUrl('/move') }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
@ -6,11 +6,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('chapters._breadcrumbs', ['chapter' => $chapter])
|
||||||
<a href="{{ $chapter->book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $chapter->book->getShortName() }}</a>
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $chapter->getUrl() }}" class="text-chapter text-button"><i class="zmdi zmdi-collection-bookmark"></i>{{$chapter->getShortName()}}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,9 +6,7 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-8 faded" ng-non-bindable>
|
<div class="col-sm-8 faded" ng-non-bindable>
|
||||||
<div class="breadcrumbs">
|
@include('chapters._breadcrumbs', ['chapter' => $chapter])
|
||||||
<a href="{{ $book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 faded">
|
<div class="col-sm-4 faded">
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
|
12
resources/views/pages/_breadcrumbs.blade.php
Normal file
12
resources/views/pages/_breadcrumbs.blade.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ $page->book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $page->book->getShortName() }}</a>
|
||||||
|
@if($page->hasChapter())
|
||||||
|
<span class="sep">»</span>
|
||||||
|
<a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
|
||||||
|
<i class="zmdi zmdi-collection-bookmark"></i>
|
||||||
|
{{ $page->chapter->getShortName() }}
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
|
<span class="sep">»</span>
|
||||||
|
<a href="{{ $page->getUrl() }}" class="text-page text-button"><i class="zmdi zmdi-file"></i>{{ $page->getShortName() }}</a>
|
||||||
|
</div>
|
@ -2,15 +2,25 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
@include('pages._breadcrumbs', ['page' => $page])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Delete {{ $page->draft ? 'Draft' : '' }} Page</h1>
|
<h1>{{ $page->draft ? trans('entities.pages_delete_draft') : trans('entities.pages_delete') }}</h1>
|
||||||
<p class="text-neg">Are you sure you want to delete this {{ $page->draft ? 'draft' : '' }} page?</p>
|
<p class="text-neg">{{ $page->draft ? trans('entities.pages_delete_draft_confirm'): trans('entities.pages_delete_confirm') }}</p>
|
||||||
|
|
||||||
<form action="{{ $page->getUrl() }}" method="POST">
|
<form action="{{ $page->getUrl() }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
<input type="hidden" name="_method" value="DELETE">
|
<input type="hidden" name="_method" value="DELETE">
|
||||||
<a href="{{ $page->getUrl() }}" class="button primary">Cancel</a>
|
<a href="{{ $page->getUrl() }}" class="button primary">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button neg">Confirm</button>
|
<button type="submit" class="button neg">{{ trans('common.confirm') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -15,15 +15,11 @@
|
|||||||
<div class="col-md-8 col-md-offset-2">
|
<div class="col-md-8 col-md-offset-2">
|
||||||
<div class="page-content">
|
<div class="page-content">
|
||||||
|
|
||||||
@include('pages/page-display')
|
@include('pages.page-display')
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p class="text-muted small">
|
@include('partials.entity-meta', ['entity' => $page])
|
||||||
Created {{$page->created_at->toDayDateTimeString()}} @if($page->createdBy) by {{$page->createdBy->name}} @endif
|
|
||||||
<br>
|
|
||||||
Last Updated {{$page->updated_at->toDayDateTimeString()}} @if($page->updatedBy) by {{$page->updatedBy->name}} @endif
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,22 +3,22 @@
|
|||||||
|
|
||||||
<div class="tabs primary-background-light">
|
<div class="tabs primary-background-light">
|
||||||
<span toolbox-toggle><i class="zmdi zmdi-caret-left-circle"></i></span>
|
<span toolbox-toggle><i class="zmdi zmdi-caret-left-circle"></i></span>
|
||||||
<span toolbox-tab-button="tags" title="Page Tags" class="active"><i class="zmdi zmdi-tag"></i></span>
|
<span toolbox-tab-button="tags" title="{{ trans('entities.page_tags') }}" class="active"><i class="zmdi zmdi-tag"></i></span>
|
||||||
@if(userCan('attachment-create-all'))
|
@if(userCan('attachment-create-all'))
|
||||||
<span toolbox-tab-button="files" title="Attachments"><i class="zmdi zmdi-attachment"></i></span>
|
<span toolbox-tab-button="files" title="{{ trans('entities.attachments') }}"><i class="zmdi zmdi-attachment"></i></span>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div toolbox-tab-content="tags" ng-controller="PageTagController" page-id="{{ $page->id or 0 }}">
|
<div toolbox-tab-content="tags" ng-controller="PageTagController" page-id="{{ $page->id or 0 }}">
|
||||||
<h4>Page Tags</h4>
|
<h4>{{ trans('entities.page_tags') }}</h4>
|
||||||
<div class="padded tags">
|
<div class="padded tags">
|
||||||
<p class="muted small">Add some tags to better categorise your content. <br> You can assign a value to a tag for more in-depth organisation.</p>
|
<p class="muted small">{!! nl2br(e(trans('entities.tags_explain'))) !!}</p>
|
||||||
<table class="no-style" tag-autosuggestions style="width: 100%;">
|
<table class="no-style" tag-autosuggestions style="width: 100%;">
|
||||||
<tbody ui-sortable="sortOptions" ng-model="tags" >
|
<tbody ui-sortable="sortOptions" ng-model="tags" >
|
||||||
<tr ng-repeat="tag in tags track by $index">
|
<tr ng-repeat="tag in tags track by $index">
|
||||||
<td width="20" ><i class="handle zmdi zmdi-menu"></i></td>
|
<td width="20" ><i class="handle zmdi zmdi-menu"></i></td>
|
||||||
<td><input autosuggest="{{ baseUrl('/ajax/tags/suggest/names') }}" autosuggest-type="name" class="outline" ng-attr-name="tags[@{{$index}}][name]" type="text" ng-model="tag.name" ng-change="tagChange(tag)" ng-blur="tagBlur(tag)" placeholder="Tag"></td>
|
<td><input autosuggest="{{ baseUrl('/ajax/tags/suggest/names') }}" autosuggest-type="name" class="outline" ng-attr-name="tags[@{{$index}}][name]" type="text" ng-model="tag.name" ng-change="tagChange(tag)" ng-blur="tagBlur(tag)" placeholder="{{ trans('entities.tag') }}"></td>
|
||||||
<td><input autosuggest="{{ baseUrl('/ajax/tags/suggest/values') }}" autosuggest-type="value" class="outline" ng-attr-name="tags[@{{$index}}][value]" type="text" ng-model="tag.value" ng-change="tagChange(tag)" ng-blur="tagBlur(tag)" placeholder="Tag Value (Optional)"></td>
|
<td><input autosuggest="{{ baseUrl('/ajax/tags/suggest/values') }}" autosuggest-type="value" class="outline" ng-attr-name="tags[@{{$index}}][value]" type="text" ng-model="tag.value" ng-change="tagChange(tag)" ng-blur="tagBlur(tag)" placeholder="{{ trans('entities.tag_value') }}"></td>
|
||||||
<td width="10" ng-show="tags.length != 1" class="text-center text-neg" style="padding: 0;" ng-click="removeTag(tag)"><i class="zmdi zmdi-close"></i></td>
|
<td width="10" ng-show="tags.length != 1" class="text-center text-neg" style="padding: 0;" ng-click="removeTag(tag)"><i class="zmdi zmdi-close"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<tr class="unsortable">
|
<tr class="unsortable">
|
||||||
<td width="34"></td>
|
<td width="34"></td>
|
||||||
<td ng-click="addEmptyTag()">
|
<td ng-click="addEmptyTag()">
|
||||||
<button type="button" class="text-button">Add another tag</button>
|
<button type="button" class="text-button">{{ trans('entities.tags_add') }}</button>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,17 +39,17 @@
|
|||||||
|
|
||||||
@if(userCan('attachment-create-all'))
|
@if(userCan('attachment-create-all'))
|
||||||
<div toolbox-tab-content="files" ng-controller="PageAttachmentController" page-id="{{ $page->id or 0 }}">
|
<div toolbox-tab-content="files" ng-controller="PageAttachmentController" page-id="{{ $page->id or 0 }}">
|
||||||
<h4>Attachments</h4>
|
<h4>{{ trans('entities.attachments') }}</h4>
|
||||||
<div class="padded files">
|
<div class="padded files">
|
||||||
|
|
||||||
<div id="file-list" ng-show="!editFile">
|
<div id="file-list" ng-show="!editFile">
|
||||||
<p class="muted small">Upload some files or attach some link to display on your page. These are visible in the page sidebar. <span class="secondary">Changes here are saved instantly.</span></p>
|
<p class="muted small">{{ trans('entities.attachments_explain') }} <span class="secondary">{{ trans('entities.attachments_explain_instant_save') }}</span></p>
|
||||||
|
|
||||||
<div tab-container>
|
<div tab-container>
|
||||||
<div class="nav-tabs">
|
<div class="nav-tabs">
|
||||||
<div tab-button="list" class="tab-item">Attached Items</div>
|
<div tab-button="list" class="tab-item">{{ trans('entities.attachments_items') }}</div>
|
||||||
<div tab-button="file" class="tab-item">Upload File</div>
|
<div tab-button="file" class="tab-item">{{ trans('entities.attachments_upload') }}</div>
|
||||||
<div tab-button="link" class="tab-item">Attach Link</div>
|
<div tab-button="link" class="tab-item">{{ trans('entities.attachments_link') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div tab-content="list">
|
<div tab-content="list">
|
||||||
<table class="file-table" style="width: 100%;">
|
<table class="file-table" style="width: 100%;">
|
||||||
@ -59,9 +59,9 @@
|
|||||||
<td>
|
<td>
|
||||||
<a ng-href="@{{getFileUrl(file)}}" target="_blank" ng-bind="file.name"></a>
|
<a ng-href="@{{getFileUrl(file)}}" target="_blank" ng-bind="file.name"></a>
|
||||||
<div ng-if="file.deleting">
|
<div ng-if="file.deleting">
|
||||||
<span class="neg small">Click delete again to confirm you want to delete this attachment.</span>
|
<span class="neg small">{{ trans('entities.attachments_delete_confirm') }}</span>
|
||||||
<br>
|
<br>
|
||||||
<span class="text-primary small" ng-click="file.deleting=false;">Cancel</span>
|
<span class="text-primary small" ng-click="file.deleting=false;">{{ trans('common.cancel') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td width="10" ng-click="startEdit(file)" class="text-center text-primary" style="padding: 0;"><i class="zmdi zmdi-edit"></i></td>
|
<td width="10" ng-click="startEdit(file)" class="text-center text-primary" style="padding: 0;"><i class="zmdi zmdi-edit"></i></td>
|
||||||
@ -71,25 +71,25 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p class="small muted" ng-if="files.length == 0">
|
<p class="small muted" ng-if="files.length == 0">
|
||||||
No files have been uploaded.
|
{{ trans('entities.attachments_no_files') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div tab-content="file">
|
<div tab-content="file">
|
||||||
<drop-zone upload-url="@{{getUploadUrl()}}" uploaded-to="@{{uploadedTo}}" event-success="uploadSuccess"></drop-zone>
|
<drop-zone upload-url="@{{getUploadUrl()}}" uploaded-to="@{{uploadedTo}}" event-success="uploadSuccess"></drop-zone>
|
||||||
</div>
|
</div>
|
||||||
<div tab-content="link" sub-form="attachLinkSubmit(file)">
|
<div tab-content="link" sub-form="attachLinkSubmit(file)">
|
||||||
<p class="muted small">You can attach a link if you'd prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.</p>
|
<p class="muted small">{{ trans('entities.attachments_explain_link') }}</p>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="attachment-via-link">Link Name</label>
|
<label for="attachment-via-link">{{ trans('entities.attachments_link_name') }}</label>
|
||||||
<input type="text" placeholder="Link name" ng-model="file.name">
|
<input type="text" placeholder="{{ trans('entities.attachments_link_name') }}" ng-model="file.name">
|
||||||
<p class="small neg" ng-repeat="error in errors.link.name" ng-bind="error"></p>
|
<p class="small neg" ng-repeat="error in errors.link.name" ng-bind="error"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="attachment-via-link">Link to file</label>
|
<label for="attachment-via-link">{{ trans('entities.attachments_link_url') }}</label>
|
||||||
<input type="text" placeholder="Url of site or file" ng-model="file.link">
|
<input type="text" placeholder="{{ trans('entities.attachments_link_url_hint') }}" ng-model="file.link">
|
||||||
<p class="small neg" ng-repeat="error in errors.link.link" ng-bind="error"></p>
|
<p class="small neg" ng-repeat="error in errors.link.link" ng-bind="error"></p>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="button pos">Attach</button>
|
<button type="submit" class="button pos">{{ trans('entities.attach') }}</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -97,34 +97,34 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="file-edit" ng-if="editFile" sub-form="updateFile(editFile)">
|
<div id="file-edit" ng-if="editFile" sub-form="updateFile(editFile)">
|
||||||
<h5>Edit File</h5>
|
<h5>{{ trans('entities.attachments_edit_file') }}</h5>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="attachment-name-edit">File Name</label>
|
<label for="attachment-name-edit">{{ trans('entities.attachments_edit_file_name') }}</label>
|
||||||
<input type="text" id="attachment-name-edit" placeholder="File name" ng-model="editFile.name">
|
<input type="text" id="attachment-name-edit" placeholder="{{ trans('entities.attachments_edit_file_name') }}" ng-model="editFile.name">
|
||||||
<p class="small neg" ng-repeat="error in errors.edit.name" ng-bind="error"></p>
|
<p class="small neg" ng-repeat="error in errors.edit.name" ng-bind="error"></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div tab-container="@{{ editFile.external ? 'link' : 'file' }}">
|
<div tab-container="@{{ editFile.external ? 'link' : 'file' }}">
|
||||||
<div class="nav-tabs">
|
<div class="nav-tabs">
|
||||||
<div tab-button="file" class="tab-item">Upload File</div>
|
<div tab-button="file" class="tab-item">{{ trans('entities.attachments_upload') }}</div>
|
||||||
<div tab-button="link" class="tab-item">Set Link</div>
|
<div tab-button="link" class="tab-item">{{ trans('entities.attachments_set_link') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div tab-content="file">
|
<div tab-content="file">
|
||||||
<drop-zone upload-url="@{{getUploadUrl(editFile)}}" uploaded-to="@{{uploadedTo}}" placeholder="Drop files or click here to upload and overwrite" event-success="uploadSuccessUpdate"></drop-zone>
|
<drop-zone upload-url="@{{getUploadUrl(editFile)}}" uploaded-to="@{{uploadedTo}}" placeholder="{{ trans('entities.attachments_edit_drop_upload') }}" event-success="uploadSuccessUpdate"></drop-zone>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
<div tab-content="link">
|
<div tab-content="link">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="attachment-link-edit">Link to file</label>
|
<label for="attachment-link-edit">{{ trans('entities.attachments_link_url') }}</label>
|
||||||
<input type="text" id="attachment-link-edit" placeholder="Attachment link" ng-model="editFile.link">
|
<input type="text" id="attachment-link-edit" placeholder="{{ trans('entities.attachment_link') }}" ng-model="editFile.link">
|
||||||
<p class="small neg" ng-repeat="error in errors.edit.link" ng-bind="error"></p>
|
<p class="small neg" ng-repeat="error in errors.edit.link" ng-bind="error"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="button" class="button" ng-click="cancelEdit()">Back</button>
|
<button type="button" class="button" ng-click="cancelEdit()">{{ trans('entities.back') }}</button>
|
||||||
<button type="submit" class="button pos">Save</button>
|
<button type="submit" class="button pos">{{ trans('entities.save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4 faded">
|
<div class="col-sm-4 faded">
|
||||||
<div class="action-buttons text-left">
|
<div class="action-buttons text-left">
|
||||||
<a href="{{ back()->getTargetUrl() }}" class="text-button text-primary"><i class="zmdi zmdi-arrow-left"></i>Back</a>
|
<a href="{{ back()->getTargetUrl() }}" class="text-button text-primary"><i class="zmdi zmdi-arrow-left"></i>{{ trans('common.back') }}</a>
|
||||||
<a onclick="$('body>header').slideToggle();" class="text-button text-primary"><i class="zmdi zmdi-swap-vertical"></i>Toggle Header</a>
|
<a onclick="$('body>header').slideToggle();" class="text-button text-primary"><i class="zmdi zmdi-swap-vertical"></i>{{ trans('entities.pages_edit_toggle_header') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 faded text-center">
|
<div class="col-sm-4 faded text-center">
|
||||||
@ -20,13 +20,13 @@
|
|||||||
<i class="zmdi zmdi-check-circle text-pos draft-notification" ng-class="{visible: draftUpdated}"></i>
|
<i class="zmdi zmdi-check-circle text-pos draft-notification" ng-class="{visible: draftUpdated}"></i>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a ng-click="forceDraftSave()" class="text-pos"><i class="zmdi zmdi-save"></i>Save Draft</a>
|
<a ng-click="forceDraftSave()" class="text-pos"><i class="zmdi zmdi-save"></i>{{ trans('entities.pages_edit_save_draft') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li ng-if="isNewPageDraft">
|
<li ng-if="isNewPageDraft">
|
||||||
<a href="{{ $model->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete Draft</a>
|
<a href="{{ $model->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.pages_edit_delete_draft') }}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a type="button" ng-if="isUpdateDraft" ng-click="discardDraft()" class="text-neg"><i class="zmdi zmdi-close-circle"></i>Discard Draft</a>
|
<a type="button" ng-if="isUpdateDraft" ng-click="discardDraft()" class="text-neg"><i class="zmdi zmdi-close-circle"></i>{{ trans('entities.pages_edit_discard_draft') }}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -34,16 +34,16 @@
|
|||||||
<div class="col-sm-4 faded">
|
<div class="col-sm-4 faded">
|
||||||
<div class="action-buttons" ng-cloak>
|
<div class="action-buttons" ng-cloak>
|
||||||
<div dropdown class="dropdown-container">
|
<div dropdown class="dropdown-container">
|
||||||
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-edit"></i> @{{(changeSummary | limitTo:16) + (changeSummary.length>16?'...':'') || 'Set Changelog'}}</a>
|
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-edit"></i> <span ng-bind="(changeSummary | limitTo:16) + (changeSummary.length>16?'...':'') || '{{ trans('entities.pages_edit_set_changelog') }}'"></span></a>
|
||||||
<ul class="wide">
|
<ul class="wide">
|
||||||
<li class="padded">
|
<li class="padded">
|
||||||
<p class="text-muted">Enter a brief description of the changes you've made</p>
|
<p class="text-muted">{{ trans('entities.pages_edit_enter_changelog_desc') }}</p>
|
||||||
<input name="summary" id="summary-input" type="text" placeholder="Enter Changelog" ng-model="changeSummary" />
|
<input name="summary" id="summary-input" type="text" placeholder="{{ trans('entities.pages_edit_enter_changelog') }}" ng-model="changeSummary" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit" id="save-button" class="text-button text-pos"><i class="zmdi zmdi-floppy"></i>Save Page</button>
|
<button type="submit" id="save-button" class="text-button text-pos"><i class="zmdi zmdi-floppy"></i>{{ trans('entities.pages_save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -53,7 +53,7 @@
|
|||||||
{{--Title input--}}
|
{{--Title input--}}
|
||||||
<div class="title-input page-title clearfix" ng-non-bindable>
|
<div class="title-input page-title clearfix" ng-non-bindable>
|
||||||
<div class="input">
|
<div class="input">
|
||||||
@include('form/text', ['name' => 'name', 'placeholder' => 'Page Title'])
|
@include('form/text', ['name' => 'name', 'placeholder' => trans('entities.pages_title')])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -78,24 +78,24 @@
|
|||||||
|
|
||||||
<div class="markdown-editor-wrap">
|
<div class="markdown-editor-wrap">
|
||||||
<div class="editor-toolbar">
|
<div class="editor-toolbar">
|
||||||
<span class="float left">Editor</span>
|
<span class="float left">{{ trans('entities.pages_md_editor') }}</span>
|
||||||
<div class="float right buttons">
|
<div class="float right buttons">
|
||||||
<button class="text-button" type="button" data-action="insertImage"><i class="zmdi zmdi-image"></i>Insert Image</button>
|
<button class="text-button" type="button" data-action="insertImage"><i class="zmdi zmdi-image"></i>{{ trans('entities.pages_md_insert_image') }}</button>
|
||||||
|
|
|
|
||||||
<button class="text-button" type="button" data-action="insertEntityLink"><i class="zmdi zmdi-link"></i>Insert Entity Link</button>
|
<button class="text-button" type="button" data-action="insertEntityLink"><i class="zmdi zmdi-link"></i>{{ trans('entities.pages_md_insert_link') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div markdown-input md-change="editorChange" md-model="editContent" class="flex flex-fill">
|
<div markdown-input md-change="editorChange" md-model="editContent" class="flex flex-fill">
|
||||||
<textarea ng-non-bindable id="markdown-editor-input" name="markdown" rows="5"
|
<textarea ng-non-bindable id="markdown-editor-input" name="markdown" rows="5"
|
||||||
@if($errors->has('markdown')) class="neg" @endif>@if(isset($model) || old('markdown')){{htmlspecialchars( old('markdown') ? old('markdown') : ($model->markdown === '' ? $model->html : $model->markdown))}}@endif</textarea>
|
@if($errors->has('markdown')) class="neg" @endif>@if(isset($model) || old('markdown')){{htmlspecialchars( old('markdown') ? old('markdown') : ($model->markdown === '' ? $model->html : $model->markdown))}}@endif</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="markdown-editor-wrap">
|
<div class="markdown-editor-wrap">
|
||||||
<div class="editor-toolbar">
|
<div class="editor-toolbar">
|
||||||
<div class="">Preview</div>
|
<div class="">{{ trans('entities.pages_md_preview') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="markdown-display">
|
<div class="markdown-display">
|
||||||
<div class="page-content" ng-bind-html="displayContent"></div>
|
<div class="page-content" ng-bind-html="displayContent"></div>
|
||||||
|
@ -3,19 +3,19 @@
|
|||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Create Page</h1>
|
<h1>{{ trans('entities.pages_new') }}</h1>
|
||||||
<form action="{{ $parent->getUrl('/page/create/guest') }}" method="POST">
|
<form action="{{ $parent->getUrl('/page/create/guest') }}" method="POST">
|
||||||
|
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
<div class="form-group title-input">
|
<div class="form-group title-input">
|
||||||
<label for="name">Page Name</label>
|
<label for="name">{{ trans('entities.pages_name') }}</label>
|
||||||
@include('form/text', ['name' => 'name'])
|
@include('form/text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ $parent->getUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ $parent->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Continue</button>
|
<button type="submit" class="button pos">{{ trans('common.continue') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
@if(isset($style) && $style === 'detailed')
|
@if(isset($style) && $style === 'detailed')
|
||||||
<div class="row meta text-muted text-small">
|
<div class="row meta text-muted text-small">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
Created {{$page->created_at->diffForHumans()}} @if($page->createdBy)by {{$page->createdBy->name}}@endif <br>
|
@include('partials.entity-meta', ['entity' => $page])
|
||||||
Last updated {{ $page->updated_at->diffForHumans() }} @if($page->updatedBy)by {{$page->updatedBy->name}} @endif
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<a class="text-book" href="{{ $page->book->getUrl() }}"><i class="zmdi zmdi-book"></i>{{ $page->book->getShortName(30) }}</a>
|
<a class="text-book" href="{{ $page->book->getUrl() }}"><i class="zmdi zmdi-book"></i>{{ $page->book->getShortName(30) }}</a>
|
||||||
@ -21,7 +20,7 @@
|
|||||||
@if($page->chapter)
|
@if($page->chapter)
|
||||||
<a class="text-chapter" href="{{ $page->chapter->getUrl() }}"><i class="zmdi zmdi-collection-bookmark"></i>{{ $page->chapter->getShortName(30) }}</a>
|
<a class="text-chapter" href="{{ $page->chapter->getUrl() }}"><i class="zmdi zmdi-collection-bookmark"></i>{{ $page->chapter->getShortName(30) }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-collection-bookmark"></i> Page is not in a chapter
|
<i class="zmdi zmdi-collection-bookmark"></i> {{ trans('entities.pages_not_in_chapter') }}
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,25 +6,14 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('pages._breadcrumbs', ['page' => $page])
|
||||||
<a href="{{ $book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
|
||||||
@if($page->hasChapter())
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
|
|
||||||
<i class="zmdi zmdi-collection-bookmark"></i>
|
|
||||||
{{ $page->chapter->getShortName() }}
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->getUrl() }}" class="text-page text-button"><i class="zmdi zmdi-file-text"></i>{{ $page->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Move Page <small class="subheader">{{$page->name}}</small></h1>
|
<h1>{{ trans('entities.pages_move') }}</h1>
|
||||||
|
|
||||||
<form action="{{ $page->getUrl('/move') }}" method="POST">
|
<form action="{{ $page->getUrl('/move') }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
@ -32,8 +21,8 @@
|
|||||||
|
|
||||||
@include('partials/entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book,chapter'])
|
@include('partials/entity-selector', ['name' => 'entity_selection', 'selectorSize' => 'large', 'entityTypes' => 'book,chapter'])
|
||||||
|
|
||||||
<a href="{{ $page->getUrl() }}" class="button muted">Cancel</a>
|
<a href="{{ $page->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Move Page</button>
|
<button type="submit" class="button pos">{{ trans('entities.pages_move') }}</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="text-left heading primary-background-light">
|
<tr class="text-left heading primary-background-light">
|
||||||
<th colspan="2">Page Tags</th>
|
<th colspan="2">{{ trans('entities.page_tags') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -36,6 +36,5 @@
|
|||||||
max-width: none;
|
max-width: none;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@stop
|
@stop
|
@ -6,26 +6,15 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('pages._breadcrumbs', ['page' => $page])
|
||||||
<a href="{{ $page->book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $page->book->getShortName() }}</a>
|
|
||||||
@if($page->hasChapter())
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
|
|
||||||
<i class="zmdi zmdi-collection-bookmark"></i>
|
|
||||||
{{ $page->chapter->getShortName() }}
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->getUrl() }}" class="text-page text-button"><i class="zmdi zmdi-file"></i>{{ $page->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<h1>Page Permissions</h1>
|
<h1>{{ trans('entities.pages_permissions') }}</h1>
|
||||||
@include('form/restriction-form', ['model' => $page])
|
@include('form.restriction-form', ['model' => $page])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
@ -7,14 +7,12 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<div class="page-content anim fadeIn">
|
<div class="page-content anim fadeIn">
|
||||||
@include('pages/page-display')
|
@include('pages.page-display')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@include('partials.highlight')
|
||||||
@include('partials/highlight')
|
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
@ -6,37 +6,24 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 faded">
|
<div class="col-sm-12 faded">
|
||||||
<div class="breadcrumbs">
|
@include('pages._breadcrumbs', ['page' => $page])
|
||||||
<a href="{{ $page->book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $page->book->getShortName() }}</a>
|
|
||||||
@if($page->hasChapter())
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
|
|
||||||
<i class="zmdi zmdi-collection-bookmark"></i>
|
|
||||||
{{ $page->chapter->getShortName() }}
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->getUrl() }}" class="text-page text-button"><i class="zmdi zmdi-file"></i>{{ $page->getShortName() }}</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="container" ng-non-bindable>
|
<div class="container" ng-non-bindable>
|
||||||
<h1>Page Revisions <span class="subheader">For "{{ $page->name }}"</span></h1>
|
<h1>{{ trans('entities.pages_revisions') }}</h1>
|
||||||
|
|
||||||
@if(count($page->revisions) > 0)
|
@if(count($page->revisions) > 0)
|
||||||
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th width="23%">Name</th>
|
<th width="23%">{{ trans('entities.pages_name') }}</th>
|
||||||
<th colspan="2" width="8%">Created By</th>
|
<th colspan="2" width="8%">{{ trans('entities.pages_revisions_created_by') }}</th>
|
||||||
<th width="15%">Revision Date</th>
|
<th width="15%">{{ trans('entities.pages_revisions_date') }}</th>
|
||||||
<th width="25%">Changelog</th>
|
<th width="25%">{{ trans('entities.pages_revisions_changelog') }}</th>
|
||||||
<th width="20%">Actions</th>
|
<th width="20%">{{ trans('common.actions') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
@foreach($page->revisions as $index => $revision)
|
@foreach($page->revisions as $index => $revision)
|
||||||
<tr>
|
<tr>
|
||||||
@ -46,19 +33,19 @@
|
|||||||
<img class="avatar" src="{{ $revision->createdBy->getAvatar(30) }}" alt="{{ $revision->createdBy->name }}">
|
<img class="avatar" src="{{ $revision->createdBy->getAvatar(30) }}" alt="{{ $revision->createdBy->name }}">
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td> @if($revision->createdBy) {{ $revision->createdBy->name }} @else Deleted User @endif</td>
|
<td> @if($revision->createdBy) {{ $revision->createdBy->name }} @else {{ trans('common.deleted_user') }} @endif</td>
|
||||||
<td><small>{{ $revision->created_at->format('jS F, Y H:i:s') }} <br> ({{ $revision->created_at->diffForHumans() }})</small></td>
|
<td><small>{{ $revision->created_at->format('jS F, Y H:i:s') }} <br> ({{ $revision->created_at->diffForHumans() }})</small></td>
|
||||||
<td>{{ $revision->summary }}</td>
|
<td>{{ $revision->summary }}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ $revision->getUrl('changes') }}" target="_blank">Changes</a>
|
<a href="{{ $revision->getUrl('changes') }}" target="_blank">{{ trans('entities.pages_revisions_changes') }}</a>
|
||||||
<span class="text-muted"> | </span>
|
<span class="text-muted"> | </span>
|
||||||
|
|
||||||
@if ($index === 0)
|
@if ($index === 0)
|
||||||
<a target="_blank" href="{{ $page->getUrl() }}"><i>Current Version</i></a>
|
<a target="_blank" href="{{ $page->getUrl() }}"><i>{{ trans('entities.pages_revisions_current') }}</i></a>
|
||||||
@else
|
@else
|
||||||
<a href="{{ $revision->getUrl() }}" target="_blank">Preview</a>
|
<a href="{{ $revision->getUrl() }}" target="_blank">{{ trans('entities.pages_revisions_preview') }}</a>
|
||||||
<span class="text-muted"> | </span>
|
<span class="text-muted"> | </span>
|
||||||
<a href="{{ $revision->getUrl('restore') }}" target="_blank">Restore</a>
|
<a href="{{ $revision->getUrl('restore') }}" target="_blank">{{ trans('entities.pages_revisions_restore') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -66,7 +53,7 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
@else
|
@else
|
||||||
<p>This page has no revisions.</p>
|
<p>{{ trans('entities.pages_revisions_none') }}</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,43 +6,34 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6 faded">
|
<div class="col-sm-6 faded">
|
||||||
<div class="breadcrumbs">
|
@include('pages._breadcrumbs', ['page' => $page])
|
||||||
<a href="{{ $book->getUrl() }}" class="text-book text-button"><i class="zmdi zmdi-book"></i>{{ $book->getShortName() }}</a>
|
|
||||||
@if($page->hasChapter())
|
|
||||||
<span class="sep">»</span>
|
|
||||||
<a href="{{ $page->chapter->getUrl() }}" class="text-chapter text-button">
|
|
||||||
<i class="zmdi zmdi-collection-bookmark"></i>
|
|
||||||
{{ $page->chapter->getShortName() }}
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 faded">
|
<div class="col-sm-6 faded">
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
<span dropdown class="dropdown-container">
|
<span dropdown class="dropdown-container">
|
||||||
<div dropdown-toggle class="text-button text-primary"><i class="zmdi zmdi-open-in-new"></i>Export</div>
|
<div dropdown-toggle class="text-button text-primary"><i class="zmdi zmdi-open-in-new"></i>{{ trans('entities.pages_export') }}</div>
|
||||||
<ul class="wide">
|
<ul class="wide">
|
||||||
<li><a href="{{ $page->getUrl('/export/html') }}" target="_blank">Contained Web File <span class="text-muted float right">.html</span></a></li>
|
<li><a href="{{ $page->getUrl('/export/html') }}" target="_blank">{{ trans('entities.pages_export_html') }} <span class="text-muted float right">.html</span></a></li>
|
||||||
<li><a href="{{ $page->getUrl('/export/pdf') }}" target="_blank">PDF File <span class="text-muted float right">.pdf</span></a></li>
|
<li><a href="{{ $page->getUrl('/export/pdf') }}" target="_blank">{{ trans('entities.pages_export_pdf') }} <span class="text-muted float right">.pdf</span></a></li>
|
||||||
<li><a href="{{ $page->getUrl('/export/plaintext') }}" target="_blank">Plain Text File <span class="text-muted float right">.txt</span></a></li>
|
<li><a href="{{ $page->getUrl('/export/plaintext') }}" target="_blank">{{ trans('entities.pages_export_text') }} <span class="text-muted float right">.txt</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
@if(userCan('page-update', $page))
|
@if(userCan('page-update', $page))
|
||||||
<a href="{{ $page->getUrl('/edit') }}" class="text-primary text-button" ><i class="zmdi zmdi-edit"></i>Edit</a>
|
<a href="{{ $page->getUrl('/edit') }}" class="text-primary text-button" ><i class="zmdi zmdi-edit"></i>{{ trans('entities.edit') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('page-update', $page) || userCan('restrictions-manage', $page) || userCan('page-delete', $page))
|
@if(userCan('page-update', $page) || userCan('restrictions-manage', $page) || userCan('page-delete', $page))
|
||||||
<div dropdown class="dropdown-container">
|
<div dropdown class="dropdown-container">
|
||||||
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
<a dropdown-toggle class="text-primary text-button"><i class="zmdi zmdi-more-vert"></i></a>
|
||||||
<ul>
|
<ul>
|
||||||
@if(userCan('page-update', $page))
|
@if(userCan('page-update', $page))
|
||||||
<li><a href="{{ $page->getUrl('/move') }}" class="text-primary" ><i class="zmdi zmdi-folder"></i>Move</a></li>
|
<li><a href="{{ $page->getUrl('/move') }}" class="text-primary" ><i class="zmdi zmdi-folder"></i>{{ trans('entities.move') }}</a></li>
|
||||||
<li><a href="{{ $page->getUrl('/revisions') }}" class="text-primary"><i class="zmdi zmdi-replay"></i>Revisions</a></li>
|
<li><a href="{{ $page->getUrl('/revisions') }}" class="text-primary"><i class="zmdi zmdi-replay"></i>{{ trans('entities.revisions') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('restrictions-manage', $page))
|
@if(userCan('restrictions-manage', $page))
|
||||||
<li><a href="{{ $page->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>Permissions</a></li>
|
<li><a href="{{ $page->getUrl('/permissions') }}" class="text-primary"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.permissions') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
@if(userCan('page-delete', $page))
|
@if(userCan('page-delete', $page))
|
||||||
<li><a href="{{ $page->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a></li>
|
<li><a href="{{ $page->getUrl('/delete') }}" class="text-neg"><i class="zmdi zmdi-delete"></i>{{ trans('entities.delete') }}</a></li>
|
||||||
@endif
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -64,7 +55,7 @@
|
|||||||
<div class="pointer anim">
|
<div class="pointer anim">
|
||||||
<i class="zmdi zmdi-link"></i>
|
<i class="zmdi zmdi-link"></i>
|
||||||
<input readonly="readonly" type="text" placeholder="url">
|
<input readonly="readonly" type="text" placeholder="url">
|
||||||
<button class="button icon" title="Copy Link" data-clipboard-text=""><i class="zmdi zmdi-copy"></i></button>
|
<button class="button icon" title="{{ trans('entities.pages_copy_link') }}" data-clipboard-text=""><i class="zmdi zmdi-copy"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -84,27 +75,27 @@
|
|||||||
|
|
||||||
@if($book->restricted)
|
@if($book->restricted)
|
||||||
@if(userCan('restrictions-manage', $book))
|
@if(userCan('restrictions-manage', $book))
|
||||||
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Book Permissions Active</a>
|
<a href="{{ $book->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Book Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.books_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
<br>
|
<br>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($page->chapter && $page->chapter->restricted)
|
@if($page->chapter && $page->chapter->restricted)
|
||||||
@if(userCan('restrictions-manage', $page->chapter))
|
@if(userCan('restrictions-manage', $page->chapter))
|
||||||
<a href="{{ $page->chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active</a>
|
<a href="{{ $page->chapter->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Chapter Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.chapters_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
<br>
|
<br>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if($page->restricted)
|
@if($page->restricted)
|
||||||
@if(userCan('restrictions-manage', $page))
|
@if(userCan('restrictions-manage', $page))
|
||||||
<a href="{{ $page->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>Page Permissions Active</a>
|
<a href="{{ $page->getUrl('/permissions') }}"><i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.pages_permissions_active') }}</a>
|
||||||
@else
|
@else
|
||||||
<i class="zmdi zmdi-lock-outline"></i>Page Permissions Active
|
<i class="zmdi zmdi-lock-outline"></i>{{ trans('entities.pages_permissions_active') }}
|
||||||
@endif
|
@endif
|
||||||
<br>
|
<br>
|
||||||
@endif
|
@endif
|
||||||
|
@ -28,7 +28,7 @@ class SortTest extends TestCase
|
|||||||
$currentBook = $page->book;
|
$currentBook = $page->book;
|
||||||
$newBook = \BookStack\Book::where('id', '!=', $currentBook->id)->first();
|
$newBook = \BookStack\Book::where('id', '!=', $currentBook->id)->first();
|
||||||
$this->asAdmin()->visit($page->getUrl() . '/move')
|
$this->asAdmin()->visit($page->getUrl() . '/move')
|
||||||
->see('Move Page')->see($page->name)
|
->see('Move Page')
|
||||||
->type('book:' . $newBook->id, 'entity_selection')->press('Move Page');
|
->type('book:' . $newBook->id, 'entity_selection')->press('Move Page');
|
||||||
|
|
||||||
$page = \BookStack\Page::find($page->id);
|
$page = \BookStack\Page::find($page->id);
|
||||||
|
@ -64,7 +64,7 @@ class PublicActionTest extends TestCase
|
|||||||
$this->visit($chapter->book->getUrl());
|
$this->visit($chapter->book->getUrl());
|
||||||
$this->visit($chapter->getUrl())
|
$this->visit($chapter->getUrl())
|
||||||
->click('New Page')
|
->click('New Page')
|
||||||
->see('Create Page')
|
->see('New Page')
|
||||||
->seePageIs($chapter->getUrl('/create-page'));
|
->seePageIs($chapter->getUrl('/create-page'));
|
||||||
|
|
||||||
$this->submitForm('Continue', [
|
$this->submitForm('Continue', [
|
||||||
|
Loading…
Reference in New Issue
Block a user