public function showCopy($bookSlug, $pageSlug)
{
$page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug);
- $this->checkOwnablePermission('page-update', $page);
+ $this->checkOwnablePermission('page-view', $page);
session()->flashInput(['name' => $page->name]);
- return view('pages/copy', [
+ return view('pages.copy', [
'book' => $page->book,
'page' => $page
]);
--- /dev/null
- @if(userCan('bookshelf-view-all') || userCan('bookshelf-view-own'))
+<header id="header" header-mobile-toggle>
+ <div class="grid break-l mx-l">
+
+ <div>
+ <a href="{{ baseUrl('/') }}" class="logo">
+ @if(setting('app-logo', '') !== 'none')
+ <img class="logo-image" src="{{ setting('app-logo', '') === '' ? baseUrl('/logo.png') : baseUrl(setting('app-logo', '')) }}" alt="Logo">
+ @endif
+ @if (setting('app-name-header'))
+ <span class="logo-text">{{ setting('app-name') }}</span>
+ @endif
+ </a>
+ <div class="mobile-menu-toggle hide-over-l">@icon('more')</div>
+ </div>
+
+ <div class="header-search hide-under-l">
+ @if (hasAppAccess())
+ <form action="{{ baseUrl('/search') }}" method="GET" class="search-box">
+ <button id="header-search-box-button" type="submit">@icon('search') </button>
+ <input id="header-search-box-input" type="text" name="term" tabindex="2" placeholder="{{ trans('common.search') }}" value="{{ isset($searchTerm) ? $searchTerm : '' }}">
+ </form>
+ @endif
+ </div>
+
+ <div class="text-right">
+ <div class="header-links">
+ <div class="links text-center">
+ @if (hasAppAccess())
+ <a class="hide-over-l" href="{{ baseUrl('/search') }}">@icon('search'){{ trans('common.search') }}</a>
++ @if(userCanOnAny('view', \BookStack\Entities\Bookshelf::class) || userCan('bookshelf-view-all') || userCan('bookshelf-view-own'))
+ <a href="{{ baseUrl('/shelves') }}">@icon('bookshelf'){{ trans('entities.shelves') }}</a>
+ @endif
+ <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
+ @if(signedInUser() && userCan('users-manage') && !userCan('settings-manage'))
+ <a href="{{ baseUrl('/settings/users') }}">@icon('users'){{ trans('settings.users') }}</a>
+ @endif
+ @endif
+
+ @if(!signedInUser())
+ @if(setting('registration-enabled', false))
+ <a href="{{ baseUrl("/register") }}">@icon('new-user') {{ trans('auth.sign_up') }}</a>
+ @endif
+ <a href="{{ baseUrl('/login') }}">@icon('login') {{ trans('auth.log_in') }}</a>
+ @endif
+ </div>
+ @if(signedInUser())
+ <?php $currentUser = user(); ?>
+ <div class="dropdown-container" dropdown>
+ <span class="user-name hide-under-l" dropdown-toggle>
+ <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
+ <span class="name">{{ $currentUser->getShortName(9) }}</span> @icon('caret-down')
+ </span>
+ <ul>
+ <li>
+ <a href="{{ baseUrl("/user/{$currentUser->id}") }}" class="text-primary">@icon('user'){{ trans('common.view_profile') }}</a>
+ </li>
+ <li>
+ <a href="{{ baseUrl("/settings/users/{$currentUser->id}") }}" class="text-primary">@icon('edit'){{ trans('common.edit_profile') }}</a>
+ </li>
+ <li>
+ <a href="{{ baseUrl('/logout') }}" class="text-neg">@icon('logout'){{ trans('auth.logout') }}</a>
+ </li>
+ </ul>
+ </div>
+ @endif
+ </div>
+ </div>
+
+ </div>
+</header>
</div>
</div>
- @include('partials/book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
-
+ @include('partials.book-tree', ['book' => $book, 'sidebarTree' => $sidebarTree])
@stop
-@section('body-wrap-classes', 'flex-fill columns')
+@section('right')
+ <div class="actions mb-xl">
+ <h5>Actions</h5>
-@section('body')
-
- <div class="page-content flex" page-display="{{ $page->id }}">
+ <div class="icon-list text-primary">
+ {{--Export--}}
+ <div dropdown class="dropdown-container block">
+ <div dropdown-toggle class="icon-list-item">
+ <span>@icon('export')</span>
+ <span>{{ trans('entities.export') }}</span>
+ </div>
+ <ul class="wide">
+ <li><a href="{{ $page->getUrl('/export/html') }}" target="_blank">{{ trans('entities.export_html') }} <span class="text-muted float right">.html</span></a></li>
+ <li><a href="{{ $page->getUrl('/export/pdf') }}" target="_blank">{{ trans('entities.export_pdf') }} <span class="text-muted float right">.pdf</span></a></li>
+ <li><a href="{{ $page->getUrl('/export/plaintext') }}" target="_blank">{{ trans('entities.export_text') }} <span class="text-muted float right">.txt</span></a></li>
+ </ul>
+ </div>
- <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>
+ {{--User Actions--}}
+ @if(userCan('page-update', $page))
+ <a href="{{ $page->getUrl('/edit') }}" class="icon-list-item">
+ <span>@icon('edit')</span>
+ <span>{{ trans('common.edit') }}</span>
+ </a>
++ @endif
++ @if(userCanOnAny('page-create'))
+ <a href="{{ $page->getUrl('/copy') }}" class="icon-list-item">
+ <span>@icon('copy')</span>
+ <span>{{ trans('common.copy') }}</span>
+ </a>
++ @endif
++ @if(userCan('page-update', $page))
+ @if(userCan('page-delete', $page))
+ <a href="{{ $page->getUrl('/move') }}" class="icon-list-item">
+ <span>@icon('folder')</span>
+ <span>{{ trans('common.move') }}</span>
+ </a>
@endif
- </div>
+ <a href="{{ $page->getUrl('/revisions') }}" class="icon-list-item">
+ <span>@icon('history')</span>
+ <span>{{ trans('entities.revisions') }}</span>
+ </a>
+ @endif
+ @if(userCan('restrictions-manage', $page))
+ <a href="{{ $page->getUrl('/permissions') }}" class="icon-list-item">
+ <span>@icon('lock')</span>
+ <span>{{ trans('entities.permissions') }}</span>
+ </a>
+ @endif
+ @if(userCan('page-delete', $page))
+ <a href="{{ $page->getUrl('/delete') }}" class="icon-list-item">
+ <span>@icon('delete')</span>
+ <span>{{ trans('common.delete') }}</span>
+ </a>
+ @endif
</div>
- @include('pages/page-display')
</div>
-
- @if ($commentsEnabled)
- <div class="container small nopad comments-container">
- @include('comments/comments', ['page' => $page])
- </div>
- @endif
@stop
@extends('simple-layout')
-@section('toolbar')
- @include('settings/navbar', ['selected' => 'users'])
-@stop
-
@section('body')
-
<div class="container small">
- <p> </p>
- <div class="card">
- <h3>@icon('edit') {{ $user->id === $currentUser->id ? trans('settings.users_edit_profile') : trans('settings.users_edit') }}</h3>
- <div class="body">
- <form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="post">
- <div class="row">
- <div class="col-sm-6">
- {!! csrf_field() !!}
- <input type="hidden" name="_method" value="put">
- @include('users.forms.' . $authMethod, ['model' => $user])
- </div>
- <div class="col-sm-6">
- <div class="form-group" id="logo-control">
- <label for="user-avatar">{{ trans('settings.users_avatar') }}</label>
- <p class="small">{{ trans('settings.users_avatar_desc') }}</p>
+ <div class="py-m">
+ @include('settings.navbar', ['selected' => 'users'])
+ </div>
- @include('components.image-picker', [
- 'resizeHeight' => '512',
- 'resizeWidth' => '512',
- 'showRemove' => false,
- 'defaultImage' => baseUrl('/user_avatar.png'),
- 'currentImage' => $user->getAvatar(80),
- 'currentId' => $user->image_id,
- 'name' => 'image_id',
- 'imageClass' => 'avatar large'
- ])
- </div>
- <div class="form-group">
- <label for="user-language">{{ trans('settings.users_preferred_language') }}</label>
- <select name="setting[language]" id="user-language">
+ <div class="card content-wrap">
+ <h1 class="list-heading">{{ $user->id === $currentUser->id ? trans('settings.users_edit_profile') : trans('settings.users_edit') }}</h1>
+ <form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="post">
+ {!! csrf_field() !!}
+ <input type="hidden" name="_method" value="PUT">
- @foreach(trans('settings.language_select') as $lang => $label)
- <option @if(setting()->getUser($user, 'language', config('app.default_locale')) === $lang) selected @endif value="{{ $lang }}">{{ $label }}</option>
- @endforeach
- </select>
- </div>
+ <div class="setting-list">
+ @include('users.form', ['model' => $user, 'authMethod' => $authMethod])
+
+ <div class="grid half large-gap">
+ <div>
+ <label for="user-avatar" class="setting-list-label">{{ trans('settings.users_avatar') }}</label>
+ <p class="small">{{ trans('settings.users_avatar_desc') }}</p>
+ </div>
+ <div>
+ @include('components.image-picker', [
+ 'resizeHeight' => '512',
+ 'resizeWidth' => '512',
+ 'showRemove' => false,
+ 'defaultImage' => baseUrl('/user_avatar.png'),
+ 'currentImage' => $user->getAvatar(80),
+ 'currentId' => $user->image_id,
+ 'name' => 'image_id',
+ 'imageClass' => 'avatar large'
+ ])
</div>
</div>
- <div class="form-group text-right">
- <a href="{{ baseUrl($currentUser->can('users-manage') ? "/settings/users" : "/") }}" class="button outline">{{ trans('common.cancel') }}</a>
- @if($authMethod !== 'system')
- <a href="{{ baseUrl("/settings/users/{$user->id}/delete") }}" class="neg button">{{ trans('settings.users_delete') }}</a>
- @endif
- <button class="button pos" type="submit">{{ trans('common.save') }}</button>
+
+ <div class="grid half large-gap v-center">
+ <div>
+ <label for="user-language" class="setting-list-label">{{ trans('settings.users_preferred_language') }}</label>
+ <p class="small">
+ {{ trans('settings.users_preferred_language_desc') }}
+ </p>
+ </div>
+ <div>
+ <select name="setting[language]" id="user-language">
+ @foreach(trans('settings.language_select') as $lang => $label)
- <option @if(setting()->getUser($user, 'language') === $lang) selected @endif value="{{ $lang }}">{{ $label }}</option>
++ <option @if(setting()->getUser($user, 'language', config('app.default_locale')) === $lang) selected @endif value="{{ $lang }}">{{ $label }}</option>
+ @endforeach
+ </select>
+ </div>
</div>
- </form>
- </div>
+
+ </div>
+
+ <div class="text-right">
+ <a href="{{ baseUrl($currentUser->can('users-manage') ? "/settings/users" : "/") }}" class="button outline">{{ trans('common.cancel') }}</a>
+ @if($authMethod !== 'system')
+ <a href="{{ baseUrl("/settings/users/{$user->id}/delete") }}" class="button outline">{{ trans('settings.users_delete') }}</a>
+ @endif
+ <button class="button primary" type="submit">{{ trans('common.save') }}</button>
+ </div>
+ </form>
</div>
@if($currentUser->id === $user->id && count($activeSocialDrivers) > 0)
</div>
</div>
@endif
-
-
</div>
- <p class="margin-top large"><br></p>
@include('components.image-manager', ['imageType' => 'user'])
--@stop
++@stop