mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-26 04:05:57 +00:00
Extracted text for remaining views
This commit is contained in:
parent
96075dee7b
commit
0775cd09a1
@ -18,6 +18,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
'sign_up' => 'Sign up',
|
'sign_up' => 'Sign up',
|
||||||
'log_in' => 'Log in',
|
'log_in' => 'Log in',
|
||||||
|
'logout' => 'Logout',
|
||||||
|
|
||||||
'name' => 'Name',
|
'name' => 'Name',
|
||||||
'username' => 'Username',
|
'username' => 'Username',
|
||||||
|
@ -9,6 +9,7 @@ return [
|
|||||||
'back' => 'Back',
|
'back' => 'Back',
|
||||||
'save' => 'Save',
|
'save' => 'Save',
|
||||||
'continue' => 'Continue',
|
'continue' => 'Continue',
|
||||||
|
'select' => 'Select',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Form Labels
|
* Form Labels
|
||||||
@ -24,11 +25,30 @@ return [
|
|||||||
'view' => 'View',
|
'view' => 'View',
|
||||||
'create' => 'Create',
|
'create' => 'Create',
|
||||||
'update' => 'Update',
|
'update' => 'Update',
|
||||||
|
'edit' => 'Edit',
|
||||||
'delete' => 'Delete',
|
'delete' => 'Delete',
|
||||||
|
'search' => 'Search',
|
||||||
|
'search_clear' => 'Clear Search',
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Misc
|
* Misc
|
||||||
*/
|
*/
|
||||||
'deleted_user' => 'Deleted User',
|
'deleted_user' => 'Deleted User',
|
||||||
|
'no_activity' => 'No activity to show',
|
||||||
|
'no_items' => 'No items available',
|
||||||
|
'back_to_top' => 'Back to top',
|
||||||
|
'toggle_details' => 'Toggle Details',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Header
|
||||||
|
*/
|
||||||
|
'view_profile' => 'View Profile',
|
||||||
|
'edit_profile' => 'Edit Profile',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Email Content
|
||||||
|
*/
|
||||||
|
'email_action_help' => 'If you’re having trouble clicking the ":actionText" button, copy and paste the URL below into your web browser:',
|
||||||
|
'email_rights' => 'All rights reserved',
|
||||||
];
|
];
|
18
resources/lang/en/components.php
Normal file
18
resources/lang/en/components.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
return [
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Image Manager
|
||||||
|
*/
|
||||||
|
'imagem_select' => 'Image Select',
|
||||||
|
'imagem_all' => 'All',
|
||||||
|
'imagem_all_title' => 'View all images',
|
||||||
|
'imagem_book_title' => 'View images uploaded to this book',
|
||||||
|
'imagem_page_title' => 'View images uploaded to this page',
|
||||||
|
'imagem_search_hint' => 'Search by image name',
|
||||||
|
'imagem_uploaded' => 'Uploaded :uploadedDate',
|
||||||
|
'imagem_load_more' => 'Load More',
|
||||||
|
'imagem_image_name' => 'Image Name',
|
||||||
|
'imagem_delete_confirm' => 'This image is used in the pages below, Click delete again to confirm you want to delete this image.',
|
||||||
|
'imagem_select_image' => 'Select Image'
|
||||||
|
];
|
@ -5,6 +5,10 @@ return [
|
|||||||
* Shared
|
* Shared
|
||||||
*/
|
*/
|
||||||
'recently_created' => 'Recently Created',
|
'recently_created' => 'Recently Created',
|
||||||
|
'recently_created_pages' => 'Recently Created Pages',
|
||||||
|
'recently_updated_pages' => 'Recently Updated Pages',
|
||||||
|
'recently_created_chapters' => 'Recently Created Chapters',
|
||||||
|
'recently_created_books' => 'Recently Created Books',
|
||||||
'recently_update' => 'Recently Updated',
|
'recently_update' => 'Recently Updated',
|
||||||
'recently_viewed' => 'Recently Viewed',
|
'recently_viewed' => 'Recently Viewed',
|
||||||
'recent_activity' => 'Recent Activity',
|
'recent_activity' => 'Recent Activity',
|
||||||
@ -19,6 +23,13 @@ return [
|
|||||||
'meta_updated' => 'Updated :timeLength',
|
'meta_updated' => 'Updated :timeLength',
|
||||||
'meta_updated_name' => 'Updated :timeLength by :user',
|
'meta_updated_name' => 'Updated :timeLength by :user',
|
||||||
'x_pages' => ':count Pages',
|
'x_pages' => ':count Pages',
|
||||||
|
'entity_select' => 'Entity Select',
|
||||||
|
'images' => 'Images',
|
||||||
|
'my_recent_drafts' => 'My Recent Drafts',
|
||||||
|
'my_recently_viewed' => 'My Recently Viewed',
|
||||||
|
'no_pages_viewed' => 'You have not viewed any pages',
|
||||||
|
'no_pages_recently_created' => 'No pages have been recently created',
|
||||||
|
'no_pages_recently_updated' => 'No pages have been recently updated',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permissions and restrictions
|
* Permissions and restrictions
|
||||||
@ -33,13 +44,19 @@ return [
|
|||||||
*/
|
*/
|
||||||
'search_results' => 'Search Results',
|
'search_results' => 'Search Results',
|
||||||
'search_clear' => 'Clear Search',
|
'search_clear' => 'Clear Search',
|
||||||
|
'search_view_pages' => 'View all matches pages',
|
||||||
|
'search_view_chapters' => 'View all matches chapters',
|
||||||
|
'search_view_books' => 'View all matches books',
|
||||||
|
'search_no_pages' => 'No pages matched this search',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Books
|
* Books
|
||||||
*/
|
*/
|
||||||
|
'book' => 'Book',
|
||||||
'books' => 'Books',
|
'books' => 'Books',
|
||||||
'books_empty' => 'No books have been created',
|
'books_empty' => 'No books have been created',
|
||||||
'books_popular' => 'Popular Books',
|
'books_popular' => 'Popular Books',
|
||||||
|
'books_recent' => 'Recent Books',
|
||||||
'books_popular_empty' => 'The most popular books will appear here.',
|
'books_popular_empty' => 'The most popular books will appear here.',
|
||||||
'books_create' => 'Create New Book',
|
'books_create' => 'Create New Book',
|
||||||
'books_delete' => 'Delete Book',
|
'books_delete' => 'Delete Book',
|
||||||
@ -64,6 +81,7 @@ return [
|
|||||||
/**
|
/**
|
||||||
* Chapters
|
* Chapters
|
||||||
*/
|
*/
|
||||||
|
'chapter' => 'Chapter',
|
||||||
'chapters_popular' => 'Popular Chapters',
|
'chapters_popular' => 'Popular Chapters',
|
||||||
'chapters_new' => 'New Chapter',
|
'chapters_new' => 'New Chapter',
|
||||||
'chapters_create' => 'Create New Chapter',
|
'chapters_create' => 'Create New Chapter',
|
||||||
@ -81,6 +99,8 @@ return [
|
|||||||
/**
|
/**
|
||||||
* Pages
|
* Pages
|
||||||
*/
|
*/
|
||||||
|
'page' => 'Page',
|
||||||
|
'pages' => 'Pages',
|
||||||
'pages_popular' => 'Popular Pages',
|
'pages_popular' => 'Popular Pages',
|
||||||
'pages_new' => 'New Page',
|
'pages_new' => 'New Page',
|
||||||
'pages_attachments' => 'Attachments',
|
'pages_attachments' => 'Attachments',
|
||||||
@ -149,4 +169,12 @@ return [
|
|||||||
'attachments_edit_file_name' => 'File Name',
|
'attachments_edit_file_name' => 'File Name',
|
||||||
'attachments_edit_drop_upload' => 'Drop files or click here to upload and overwrite',
|
'attachments_edit_drop_upload' => 'Drop files or click here to upload and overwrite',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Profile View
|
||||||
|
*/
|
||||||
|
'profile_user_for_x' => 'User for :time',
|
||||||
|
'profile_created_content' => 'Created Content',
|
||||||
|
'profile_not_created_pages' => ':userName has not created any pages',
|
||||||
|
'profile_not_created_chapters' => ':userName has not created any chapters',
|
||||||
|
'profile_not_created_books' => ':userName has not created any books',
|
||||||
];
|
];
|
@ -11,6 +11,10 @@ return [
|
|||||||
'settings' => 'Settings',
|
'settings' => 'Settings',
|
||||||
'settings_save' => 'Save Settings',
|
'settings_save' => 'Save Settings',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App settings
|
||||||
|
*/
|
||||||
|
|
||||||
'app_settings' => 'App Settings',
|
'app_settings' => 'App Settings',
|
||||||
'app_name' => 'Application name',
|
'app_name' => 'Application name',
|
||||||
'app_name_desc' => 'This name is shown in the header and any emails.',
|
'app_name_desc' => 'This name is shown in the header and any emails.',
|
||||||
@ -27,6 +31,10 @@ return [
|
|||||||
'app_primary_color' => 'Application primary color',
|
'app_primary_color' => 'Application primary color',
|
||||||
'app_primary_color_desc' => 'This should be a hex value. <br>Leave empty to reset to the default color.',
|
'app_primary_color_desc' => 'This should be a hex value. <br>Leave empty to reset to the default color.',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registration settings
|
||||||
|
*/
|
||||||
|
|
||||||
'reg_settings' => 'Registration Settings',
|
'reg_settings' => 'Registration Settings',
|
||||||
'reg_allow' => 'Allow registration?',
|
'reg_allow' => 'Allow registration?',
|
||||||
'reg_default_role' => 'Default user role after registration',
|
'reg_default_role' => 'Default user role after registration',
|
||||||
@ -36,4 +44,86 @@ return [
|
|||||||
'reg_confirm_restrict_domain_desc' => 'Enter a comma separated list of email domains you would like to restrict registration to. Users will be sent an email to confirm their address before being allowed to interact with the application. <br> Note that users will be able to change their email addresses after successful registration.',
|
'reg_confirm_restrict_domain_desc' => 'Enter a comma separated list of email domains you would like to restrict registration to. Users will be sent an email to confirm their address before being allowed to interact with the application. <br> Note that users will be able to change their email addresses after successful registration.',
|
||||||
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
|
'reg_confirm_restrict_domain_placeholder' => 'No restriction set',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Role settings
|
||||||
|
*/
|
||||||
|
|
||||||
|
'roles' => 'Roles',
|
||||||
|
'role_user_roles' => 'User Roles',
|
||||||
|
'role_create' => 'Create New Role',
|
||||||
|
'role_delete' => 'Delete Role',
|
||||||
|
'role_delete_confirm' => 'This will delete the role with the name \':roleName\'.',
|
||||||
|
'role_delete_users_assigned' => 'This role has :userCount users assigned to it. If you would like to migrate the users from this role select a new role below.',
|
||||||
|
'role_delete_sure' => 'Are you sure you want to delete this role?',
|
||||||
|
'role_edit' => 'Edit Role',
|
||||||
|
'role_details' => 'Role Details',
|
||||||
|
'role_name' => 'Role Name',
|
||||||
|
'role_desc' => 'Short Description of Role',
|
||||||
|
'role_system' => 'System Permissions',
|
||||||
|
'role_manage_users' => 'Manage users',
|
||||||
|
'role_manage_roles' => 'Manage roles & role permissions',
|
||||||
|
'role_manage_entity_permissions' => 'Manage all book, chapter & page permissions',
|
||||||
|
'role_manage_own_entity_permissions' => 'Manage permissions on own book, chapter & pages',
|
||||||
|
'role_manage_settings' => 'Manage app settings',
|
||||||
|
'role_asset' => 'Asset Permissions',
|
||||||
|
'role_asset_desc' => 'These permissions control default access to the assets within the system. Permissions on Books, Chapters and Pages will override these permissions.',
|
||||||
|
'role_all' => 'All',
|
||||||
|
'role_own' => 'Own',
|
||||||
|
'role_controlled_by_asset' => 'Controlled by the asset they are uploaded to',
|
||||||
|
'role_save' => 'Save Role',
|
||||||
|
'role_users' => 'Users in this role',
|
||||||
|
'role_users_none' => 'No users are currently assigned to this role',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Users
|
||||||
|
*/
|
||||||
|
|
||||||
|
'users' => 'Users',
|
||||||
|
'users_add_new' => 'Add New User',
|
||||||
|
'users_search' => 'Search Users',
|
||||||
|
'users_role' => 'User Roles',
|
||||||
|
'users_external_auth_id' => 'External Authentication ID',
|
||||||
|
'users_password_warning' => 'Only fill the below if you would like to change your password:',
|
||||||
|
'users_system_public' => 'This user represents any guest users that visit your instance. It cannot be used to log in but is assigned automatically.',
|
||||||
|
'users_delete' => 'Delete User',
|
||||||
|
'users_delete_warning' => 'This will fully delete this user with the name \':userName\' from the system.',
|
||||||
|
'users_delete_confirm' => 'Are you sure you want to delete this user?',
|
||||||
|
'users_edit' => 'Edit User',
|
||||||
|
'users_edit_profile' => 'Edit Profile',
|
||||||
|
'users_avatar' => 'User Avatar',
|
||||||
|
'users_avatar_desc' => 'This image should be approx 256px square.',
|
||||||
|
'users_social_accounts' => 'Social Accounts',
|
||||||
|
'users_social_accounts_info' => 'Here you can connect your other accounts for quicker and easier login. Disconnecting an account here does not previously authorized access. Revoke access from your profile settings on the connected social account.',
|
||||||
|
'users_social_connect' => 'Connect Account',
|
||||||
|
'users_social_disconnect' => 'Disconnect Account',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,32 +53,16 @@
|
|||||||
<div class="col-lg-4 col-sm-5">
|
<div class="col-lg-4 col-sm-5">
|
||||||
<div class="float right">
|
<div class="float right">
|
||||||
<div class="links text-center">
|
<div class="links text-center">
|
||||||
<a href="{{ baseUrl('/books') }}"><i class="zmdi zmdi-book"></i>Books</a>
|
<a href="{{ baseUrl('/books') }}"><i class="zmdi zmdi-book"></i>{{ trans('entities.books') }}</a>
|
||||||
@if(isset($currentUser) && userCan('settings-manage'))
|
@if(isset($currentUser) && userCan('settings-manage'))
|
||||||
<a href="{{ baseUrl('/settings') }}"><i class="zmdi zmdi-settings"></i>Settings</a>
|
<a href="{{ baseUrl('/settings') }}"><i class="zmdi zmdi-settings"></i>{{ trans('settings.settings') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if(!isset($signedIn) || !$signedIn)
|
@if(!isset($signedIn) || !$signedIn)
|
||||||
<a href="{{ baseUrl('/login') }}"><i class="zmdi zmdi-sign-in"></i>Sign In</a>
|
<a href="{{ baseUrl('/login') }}"><i class="zmdi zmdi-sign-in"></i>{{ trans('auth.log_in') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@if(isset($signedIn) && $signedIn)
|
@if(isset($signedIn) && $signedIn)
|
||||||
<div class="dropdown-container" dropdown>
|
@include('partials._header-dropdown', ['currentUser' => $currentUser])
|
||||||
<span class="user-name" dropdown-toggle>
|
|
||||||
<img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
|
|
||||||
<span class="name" ng-non-bindable>{{ $currentUser->getShortName(9) }}</span> <i class="zmdi zmdi-caret-down"></i>
|
|
||||||
</span>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl("/user/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-account zmdi-hc-fw zmdi-hc-lg"></i>View Profile</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl("/settings/users/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-fw zmdi-hc-lg"></i>Edit Profile</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl('/logout') }}" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-fw zmdi-hc-lg"></i>Logout</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -93,7 +77,7 @@
|
|||||||
|
|
||||||
<div id="back-to-top">
|
<div id="back-to-top">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<i class="zmdi zmdi-chevron-up"></i> <span>Back to top</span>
|
<i class="zmdi zmdi-chevron-up"></i> <span>{{ trans('common.back_to_top') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@yield('bottom')
|
@yield('bottom')
|
||||||
|
@ -5,14 +5,9 @@
|
|||||||
<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-sm-4 faded">
|
<div class="col-sm-6 faded">
|
||||||
<div class="action-buttons text-left">
|
<div class="action-buttons text-left">
|
||||||
<a data-action="expand-entity-list-details" class="text-primary text-button"><i class="zmdi zmdi-wrap-text"></i>Toggle Details</a>
|
<a data-action="expand-entity-list-details" class="text-primary text-button"><i class="zmdi zmdi-wrap-text"></i>{{ trans('common.toggle_details') }}</a>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-8 faded">
|
|
||||||
<div class="action-buttons">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -25,44 +20,44 @@
|
|||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div id="recent-drafts">
|
<div id="recent-drafts">
|
||||||
@if(count($draftPages) > 0)
|
@if(count($draftPages) > 0)
|
||||||
<h4>My Recent Drafts</h4>
|
<h4>{{ trans('entities.my_recent_drafts') }}</h4>
|
||||||
@include('partials/entity-list', ['entities' => $draftPages, 'style' => 'compact'])
|
@include('partials/entity-list', ['entities' => $draftPages, 'style' => 'compact'])
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@if($signedIn)
|
@if($signedIn)
|
||||||
<h4>My Recently Viewed</h4>
|
<h4>{{ trans('entities.my_recently_viewed') }}</h4>
|
||||||
@else
|
@else
|
||||||
<h4>Recent Books</h4>
|
<h4>{{ trans('entities.books_recent') }}</h4>
|
||||||
@endif
|
@endif
|
||||||
@include('partials/entity-list', [
|
@include('partials/entity-list', [
|
||||||
'entities' => $recents,
|
'entities' => $recents,
|
||||||
'style' => 'compact',
|
'style' => 'compact',
|
||||||
'emptyText' => $signedIn ? 'You have not viewed any pages' : 'No books have been created'
|
'emptyText' => $signedIn ? trans('entities.no_pages_viewed') : trans('entities.books_empty')
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<h4><a class="no-color" href="{{ baseUrl("/pages/recently-created") }}">Recently Created Pages</a></h4>
|
<h4><a class="no-color" href="{{ baseUrl("/pages/recently-created") }}">{{ trans('entities.recently_created_pages') }}</a></h4>
|
||||||
<div id="recently-created-pages">
|
<div id="recently-created-pages">
|
||||||
@include('partials/entity-list', [
|
@include('partials/entity-list', [
|
||||||
'entities' => $recentlyCreatedPages,
|
'entities' => $recentlyCreatedPages,
|
||||||
'style' => 'compact',
|
'style' => 'compact',
|
||||||
'emptyText' => 'No pages have been recently created'
|
'emptyText' => trans('entities.no_pages_recently_created')
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4><a class="no-color" href="{{ baseUrl("/pages/recently-updated") }}">Recently Updated Pages</a></h4>
|
<h4><a class="no-color" href="{{ baseUrl("/pages/recently-updated") }}">{{ trans('entities.recently_updated_pages') }}</a></h4>
|
||||||
<div id="recently-updated-pages">
|
<div id="recently-updated-pages">
|
||||||
@include('partials/entity-list', [
|
@include('partials/entity-list', [
|
||||||
'entities' => $recentlyUpdatedPages,
|
'entities' => $recentlyUpdatedPages,
|
||||||
'style' => 'compact',
|
'style' => 'compact',
|
||||||
'emptyText' => 'No pages have been recently updated'
|
'emptyText' => trans('entites.no_pages_recently_updated')
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-4" id="recent-activity">
|
<div class="col-sm-4" id="recent-activity">
|
||||||
<h4>Recent Activity</h4>
|
<h4>{{ trans('entities.recent_activity') }}</h4>
|
||||||
@include('partials/activity-list', ['activity' => $activity])
|
@include('partials/activity-list', ['activity' => $activity])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
17
resources/views/partials/_header-dropdown.blade.php
Normal file
17
resources/views/partials/_header-dropdown.blade.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<div class="dropdown-container" dropdown>
|
||||||
|
<span class="user-name" dropdown-toggle>
|
||||||
|
<img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
|
||||||
|
<span class="name" ng-non-bindable>{{ $currentUser->getShortName(9) }}</span> <i class="zmdi zmdi-caret-down"></i>
|
||||||
|
</span>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="{{ baseUrl("/user/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-account zmdi-hc-fw zmdi-hc-lg"></i>{{ trans('common.view_profile') }}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ baseUrl("/settings/users/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-fw zmdi-hc-lg"></i>{{ trans('common.edit_profile') }}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ baseUrl('/logout') }}" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-fw zmdi-hc-lg"></i>{{ trans('auth.logout') }}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -11,7 +11,7 @@
|
|||||||
@if($activity->user)
|
@if($activity->user)
|
||||||
<a href="{{ $activity->user->getProfileUrl() }}">{{ $activity->user->name }}</a>
|
<a href="{{ $activity->user->getProfileUrl() }}">{{ $activity->user->name }}</a>
|
||||||
@else
|
@else
|
||||||
A deleted user
|
{{ trans('common.deleted_user') }}
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
{{ $activity->getText() }}
|
{{ $activity->getText() }}
|
||||||
|
@ -8,5 +8,5 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">No activity to show</p>
|
<p class="text-muted">{{ trans('common.no_activity') }}</p>
|
||||||
@endif
|
@endif
|
@ -17,7 +17,7 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<p class="text-muted empty-text">
|
<p class="text-muted empty-text">
|
||||||
{{ $emptyText or 'No items available' }}
|
{{ $emptyText or trans('common.no_items') }}
|
||||||
</p>
|
</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
@ -2,12 +2,12 @@
|
|||||||
<div class="overlay" entity-link-selector>
|
<div class="overlay" entity-link-selector>
|
||||||
<div class="popup-body small flex-child">
|
<div class="popup-body small flex-child">
|
||||||
<div class="popup-header primary-background">
|
<div class="popup-header primary-background">
|
||||||
<div class="popup-title">Entity Select</div>
|
<div class="popup-title">{{ trans('entities.entity_select') }}</div>
|
||||||
<button type="button" class="corner-button neg button popup-close">x</button>
|
<button type="button" class="corner-button neg button popup-close">x</button>
|
||||||
</div>
|
</div>
|
||||||
@include('partials/entity-selector', ['name' => 'entity-selector'])
|
@include('partials/entity-selector', ['name' => 'entity-selector'])
|
||||||
<div class="popup-footer">
|
<div class="popup-footer">
|
||||||
<button type="button" disabled="true" class="button entity-link-selector-confirm pos corner-button">Select</button>
|
<button type="button" disabled="true" class="button entity-link-selector-confirm pos corner-button">{{ trans('common.select') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div entity-selector class="entity-selector {{$selectorSize or ''}}" entity-types="{{ $entityTypes or 'book,chapter,page' }}">
|
<div entity-selector class="entity-selector {{$selectorSize or ''}}" entity-types="{{ $entityTypes or 'book,chapter,page' }}">
|
||||||
<input type="hidden" entity-selector-input name="{{$name}}" value="">
|
<input type="hidden" entity-selector-input name="{{$name}}" value="">
|
||||||
<input type="text" placeholder="Search" ng-model="search" ng-model-options="{debounce: 200}" ng-change="searchEntities()">
|
<input type="text" placeholder="{{ trans('common.search') }}" ng-model="search" ng-model-options="{debounce: 200}" ng-change="searchEntities()">
|
||||||
<div class="text-center loading" ng-show="loading">@include('partials/loading-icon')</div>
|
<div class="text-center loading" ng-show="loading">@include('partials/loading-icon')</div>
|
||||||
<div ng-show="!loading" ng-bind-html="entityResults"></div>
|
<div ng-show="!loading" ng-bind-html="entityResults"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="popup-body" ng-click="$event.stopPropagation()">
|
<div class="popup-body" ng-click="$event.stopPropagation()">
|
||||||
|
|
||||||
<div class="popup-header primary-background">
|
<div class="popup-header primary-background">
|
||||||
<div class="popup-title">Image Select</div>
|
<div class="popup-title">{{ trans('components.imagem_select') }}</div>
|
||||||
<button class="popup-close neg corner-button button">x</button>
|
<button class="popup-close neg corner-button button">x</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -12,16 +12,16 @@
|
|||||||
<div class="image-manager-content">
|
<div class="image-manager-content">
|
||||||
<div ng-if="imageType === 'gallery'" class="container">
|
<div ng-if="imageType === 'gallery'" class="container">
|
||||||
<div class="image-manager-header row faded-small nav-tabs">
|
<div class="image-manager-header row faded-small nav-tabs">
|
||||||
<div class="col-xs-4 tab-item" title="View all images" ng-class="{selected: (view=='all')}" ng-click="setView('all')"><i class="zmdi zmdi-collection-image"></i> All</div>
|
<div class="col-xs-4 tab-item" title="{{ trans('components.imagem_all_title') }}" ng-class="{selected: (view=='all')}" ng-click="setView('all')"><i class="zmdi zmdi-collection-image"></i> {{ trans('components.imagem_all') }}</div>
|
||||||
<div class="col-xs-4 tab-item" title="View images uploaded to this book" ng-class="{selected: (view=='book')}" ng-click="setView('book')"><i class="zmdi zmdi-book text-book"></i> Book</div>
|
<div class="col-xs-4 tab-item" title="{{ trans('components.imagem_book_title') }}" ng-class="{selected: (view=='book')}" ng-click="setView('book')"><i class="zmdi zmdi-book text-book"></i> {{ trans('entities.book') }}</div>
|
||||||
<div class="col-xs-4 tab-item" title="View images uploaded to this page" ng-class="{selected: (view=='page')}" ng-click="setView('page')"><i class="zmdi zmdi-file-text text-page"></i> Page</div>
|
<div class="col-xs-4 tab-item" title="{{ trans('components.imagem_page_title') }}" ng-class="{selected: (view=='page')}" ng-click="setView('page')"><i class="zmdi zmdi-file-text text-page"></i> {{ trans('entities.page') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="view === 'all'" >
|
<div ng-show="view === 'all'" >
|
||||||
<form ng-submit="searchImages()" class="contained-search-box">
|
<form ng-submit="searchImages()" class="contained-search-box">
|
||||||
<input type="text" placeholder="Search by image name" ng-model="searchTerm">
|
<input type="text" placeholder="{{ trans('components.imagem_search_hint') }}" ng-model="searchTerm">
|
||||||
<button ng-class="{active: searching}" title="Clear Search" type="button" ng-click="cancelSearch()" class="text-button cancel"><i class="zmdi zmdi-close-circle-o"></i></button>
|
<button ng-class="{active: searching}" title="{{ trans('common.search_clear') }}" type="button" ng-click="cancelSearch()" class="text-button cancel"><i class="zmdi zmdi-close-circle-o"></i></button>
|
||||||
<button title="Search" class="text-button" type="submit"><i class="zmdi zmdi-search"></i></button>
|
<button title="{{ trans('common.search') }}" class="text-button" type="submit"><i class="zmdi zmdi-search"></i></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-manager-list">
|
<div class="image-manager-list">
|
||||||
@ -31,11 +31,11 @@
|
|||||||
<img ng-src="@{{image.thumbs.gallery}}" ng-attr-alt="@{{image.title}}" ng-attr-title="@{{image.name}}">
|
<img ng-src="@{{image.thumbs.gallery}}" ng-attr-alt="@{{image.title}}" ng-attr-title="@{{image.name}}">
|
||||||
<div class="image-meta">
|
<div class="image-meta">
|
||||||
<span class="name" ng-bind="image.name"></span>
|
<span class="name" ng-bind="image.name"></span>
|
||||||
<span class="date">Uploaded @{{ getDate(image.created_at) }}</span>
|
<span class="date">{{ trans('components.imagem_uploaded', ['uploadedDate' => "{{ getDate(image.created_at) }" . "}"]) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="load-more" ng-show="hasMore" ng-click="fetchData()">Load More</div>
|
<div class="load-more" ng-show="hasMore" ng-click="fetchData()">{{ trans('components.imagem_load_more') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -51,15 +51,14 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Image Name</label>
|
<label for="name">{{ trans('components.imagem_image_name') }}</label>
|
||||||
<input type="text" id="name" name="name" ng-model="selectedImage.name">
|
<input type="text" id="name" name="name" ng-model="selectedImage.name">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div ng-show="dependantPages">
|
<div ng-show="dependantPages">
|
||||||
<p class="text-neg text-small">
|
<p class="text-neg text-small">
|
||||||
This image is used in the pages below, Click delete again to confirm you want to delete
|
{{ trans('components.imagem_delete_confirm') }}
|
||||||
this image.
|
|
||||||
</p>
|
</p>
|
||||||
<ul class="text-neg">
|
<ul class="text-neg">
|
||||||
<li ng-repeat="page in dependantPages">
|
<li ng-repeat="page in dependantPages">
|
||||||
@ -73,7 +72,7 @@
|
|||||||
<button class="button icon neg"><i class="zmdi zmdi-delete"></i></button>
|
<button class="button icon neg"><i class="zmdi zmdi-delete"></i></button>
|
||||||
</form>
|
</form>
|
||||||
<button class="button pos anim fadeIn float right" ng-show="selectedImage" ng-click="selectButtonClick()">
|
<button class="button pos anim fadeIn float right" ng-show="selectedImage" ng-click="selectButtonClick()">
|
||||||
<i class="zmdi zmdi-square-right"></i>Select Image
|
<i class="zmdi zmdi-square-right"></i>{{ trans('components.imagem_select_image') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body class="@yield('body-class')" ng-app="bookStack">
|
<body class="@yield('body-class')" ng-app="bookStack">
|
||||||
|
|
||||||
@include('partials/notifications')
|
@include('partials.notifications')
|
||||||
|
|
||||||
<header id="header">
|
<header id="header">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
@ -47,23 +47,7 @@
|
|||||||
@yield('header-buttons')
|
@yield('header-buttons')
|
||||||
</div>
|
</div>
|
||||||
@if(isset($signedIn) && $signedIn)
|
@if(isset($signedIn) && $signedIn)
|
||||||
<div class="dropdown-container" dropdown>
|
@include('partials._header-dropdown', ['currentUser' => $currentUser])
|
||||||
<span class="user-name" dropdown-toggle>
|
|
||||||
<img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
|
|
||||||
<span class="name" ng-non-bindable>{{ $currentUser->getShortName(9) }}</span> <i class="zmdi zmdi-caret-down"></i>
|
|
||||||
</span>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl("/user/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-account zmdi-hc-fw zmdi-hc-lg"></i>View Profile</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl("/settings/users/{$currentUser->id}") }}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-fw zmdi-hc-lg"></i>Edit Profile</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{{ baseUrl('/logout') }}" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-fw zmdi-hc-lg"></i>Logout</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,49 +2,55 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<div class="container anim fadeIn" ng-non-bindable>
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ baseUrl("/search/all?term={$searchTerm}") }}" class="text-button"><i class="zmdi zmdi-search"></i>{{ $searchTerm }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h1>Search Results <span class="text-muted">{{ $searchTerm }}</span></h1>
|
|
||||||
|
<div class="container" ng-non-bindable>
|
||||||
|
|
||||||
|
<h1>{{ trans('entities.search_results') }}</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
@if(count($pages) > 0)
|
@if(count($pages) > 0)
|
||||||
<a href="{{ baseUrl("/search/pages?term={$searchTerm}") }}" class="text-page"><i class="zmdi zmdi-file-text"></i>View all matched pages</a>
|
<a href="{{ baseUrl("/search/pages?term={$searchTerm}") }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.search_view_pages') }}</a>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|
||||||
@if(count($chapters) > 0)
|
@if(count($chapters) > 0)
|
||||||
|
|
||||||
<a href="{{ baseUrl("/search/chapters?term={$searchTerm}") }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>View all matched chapters</a>
|
<a href="{{ baseUrl("/search/chapters?term={$searchTerm}") }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.search_view_chapters') }}</a>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(count($books) > 0)
|
@if(count($books) > 0)
|
||||||
|
|
||||||
<a href="{{ baseUrl("/search/books?term={$searchTerm}") }}" class="text-book"><i class="zmdi zmdi-book"></i>View all matched books</a>
|
<a href="{{ baseUrl("/search/books?term={$searchTerm}") }}" class="text-book"><i class="zmdi zmdi-book"></i>{{ trans('entities.search_view_books') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</p>
|
</p>
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h3><a href="{{ baseUrl("/search/pages?term={$searchTerm}") }}" class="no-color">Matching Pages</a></h3>
|
<h3><a href="{{ baseUrl("/search/pages?term={$searchTerm}") }}" class="no-color">{{ trans('entities.pages') }}</a></h3>
|
||||||
@include('partials/entity-list', ['entities' => $pages, 'style' => 'detailed'])
|
@include('partials/entity-list', ['entities' => $pages, 'style' => 'detailed'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-5 col-md-offset-1">
|
<div class="col-md-5 col-md-offset-1">
|
||||||
|
|
||||||
@if(count($books) > 0)
|
@if(count($books) > 0)
|
||||||
<h3><a href="{{ baseUrl("/search/books?term={$searchTerm}") }}" class="no-color">Matching Books</a></h3>
|
<h3><a href="{{ baseUrl("/search/books?term={$searchTerm}") }}" class="no-color">{{ trans('entities.books') }}</a></h3>
|
||||||
@include('partials/entity-list', ['entities' => $books])
|
@include('partials/entity-list', ['entities' => $books])
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(count($chapters) > 0)
|
@if(count($chapters) > 0)
|
||||||
<h3><a href="{{ baseUrl("/search/chapters?term={$searchTerm}") }}" class="no-color">Matching Chapters</a></h3>
|
<h3><a href="{{ baseUrl("/search/chapters?term={$searchTerm}") }}" class="no-color">{{ trans('entities.chapters') }}</a></h3>
|
||||||
@include('partials/entity-list', ['entities' => $chapters])
|
@include('partials/entity-list', ['entities' => $chapters])
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">No pages matched this search</p>
|
<p class="text-muted">{{ trans('entities.search_no_pages') }}</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
No items available
|
{{ trans('common.no_items') }}
|
||||||
</p>
|
</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
@ -2,17 +2,27 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ baseUrl("/search/all?term={$searchTerm}") }}" class="text-button"><i class="zmdi zmdi-search"></i>{{ $searchTerm }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
<h1>{{ $title }} <small>{{ $searchTerm }}</small></h1>
|
<h1>{{ $title }}</h1>
|
||||||
@include('partials.entity-list', ['entities' => $entities, 'style' => 'detailed'])
|
@include('partials.entity-list', ['entities' => $entities, 'style' => 'detailed'])
|
||||||
{!! $entities->links() !!}
|
{!! $entities->links() !!}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-4 col-sm-offset-1"></div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@stop
|
@stop
|
@ -11,7 +11,7 @@
|
|||||||
<form action="{{ baseUrl("/settings") }}" method="POST" ng-cloak>
|
<form action="{{ baseUrl("/settings") }}" method="POST" ng-cloak>
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
<h3>App Settings</h3>
|
<h3>{{ trans('settings.app_settings') }}</h3>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 setting-nav nav-tabs">
|
<div class="col-md-12 setting-nav nav-tabs">
|
||||||
@if($currentUser->can('settings-manage'))
|
@if($currentUser->can('settings-manage'))
|
||||||
<a href="{{ baseUrl('/settings') }}" @if($selected == 'settings') class="selected text-button" @endif><i class="zmdi zmdi-settings"></i>Settings</a>
|
<a href="{{ baseUrl('/settings') }}" @if($selected == 'settings') class="selected text-button" @endif><i class="zmdi zmdi-settings"></i>{{ trans('settings.settings') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if($currentUser->can('users-manage'))
|
@if($currentUser->can('users-manage'))
|
||||||
<a href="{{ baseUrl('/settings/users') }}" @if($selected == 'users') class="selected text-button" @endif><i class="zmdi zmdi-accounts"></i>Users</a>
|
<a href="{{ baseUrl('/settings/users') }}" @if($selected == 'users') class="selected text-button" @endif><i class="zmdi zmdi-accounts"></i>{{ trans('settings.users') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@if($currentUser->can('user-roles-manage'))
|
@if($currentUser->can('user-roles-manage'))
|
||||||
<a href="{{ baseUrl('/settings/roles') }}" @if($selected == 'roles') class="selected text-button" @endif><i class="zmdi zmdi-lock-open"></i>Roles</a>
|
<a href="{{ baseUrl('/settings/roles') }}" @if($selected == 'roles') class="selected text-button" @endif><i class="zmdi zmdi-lock-open"></i>{{ trans('settings.roles') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
@include('settings/navbar', ['selected' => 'roles'])
|
@include('settings/navbar', ['selected' => 'roles'])
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Create New Role</h1>
|
<h1>{{ trans('settings.role_create') }}</h1>
|
||||||
|
|
||||||
<form action="{{ baseUrl("/settings/roles/new") }}" method="POST">
|
<form action="{{ baseUrl("/settings/roles/new") }}" method="POST">
|
||||||
@include('settings/roles/form')
|
@include('settings/roles/form')
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
@include('settings/navbar', ['selected' => 'roles'])
|
@include('settings/navbar', ['selected' => 'roles'])
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Delete Role</h1>
|
<h1>{{ trans('settings.role_delete') }}</h1>
|
||||||
<p>This will delete the role with the name '{{ $role->display_name }}'.</p>
|
<p>{{ trans('settings.role_delete_confirm', ['roleName' => $role->display_name]) }}</p>
|
||||||
|
|
||||||
<form action="{{ baseUrl("/settings/roles/delete/{$role->id}") }}" method="POST">
|
<form action="{{ baseUrl("/settings/roles/delete/{$role->id}") }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
@if($role->users->count() > 0)
|
@if($role->users->count() > 0)
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<p>This role has {{$role->users->count()}} users assigned to it. If you would like to migrate the users from this role select a new role below.</p>
|
<p>{{ trans('settings.role_delete_users_assigned', ['userCount' => $role->users->count()]) }}</p>
|
||||||
@include('form/role-select', ['options' => $roles, 'name' => 'migration_role_id'])
|
@include('form/role-select', ['options' => $roles, 'name' => 'migration_role_id'])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<p class="text-neg">Are you sure you want to delete this role?</p>
|
<p class="text-neg">{{ trans('settings.role_delete_sure') }}</p>
|
||||||
<a href="{{ baseUrl("/settings/roles/{$role->id}") }}" class="button">Cancel</a>
|
<a href="{{ baseUrl("/settings/roles/{$role->id}") }}" class="button muted">{{ 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>
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h1>Edit Role <small> {{ $role->display_name }}</small></h1>
|
<h1>{{ trans('settings.role_edit') }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<p></p>
|
<p></p>
|
||||||
<a href="{{ baseUrl("/settings/roles/delete/{$role->id}") }}" class="button neg float right">Delete Role</a>
|
<a href="{{ baseUrl("/settings/roles/delete/{$role->id}") }}" class="button neg float right">{{ trans('settings.role_delete') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,128 +5,126 @@
|
|||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<h3>Role Details</h3>
|
<h3>{{ trans('settings.role_details') }}</h3>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Role Name</label>
|
<label for="name">{{ trans('settings.role_name') }}</label>
|
||||||
@include('form/text', ['name' => 'display_name'])
|
@include('form/text', ['name' => 'display_name'])
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Short Role Description</label>
|
<label for="name">{{ trans('settings.role_desc') }}</label>
|
||||||
@include('form/text', ['name' => 'description'])
|
@include('form/text', ['name' => 'description'])
|
||||||
</div>
|
</div>
|
||||||
<h3>System Permissions</h3>
|
<h3>{{ trans('settings.role_system') }}</h3>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'users-manage']) Manage users</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'users-manage']) {{ trans('settings.role_manage_users') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'user-roles-manage']) Manage roles & role permissions</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'user-roles-manage']) {{ trans('settings.role_manage_roles') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'restrictions-manage-all']) Manage all Book, Chapter & Page permissions</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'restrictions-manage-all']) {{ trans('settings.role_manage_entity_permissions') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'permissions']) Manage permissions on own Book, Chapter & Pages</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'permissions']) {{ trans('settings.role_manage_own_entity_permissions') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'settings-manage']) Manage app settings</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'settings-manage']) {{ trans('settings.role_manage_settings') }}</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
|
|
||||||
<h3>Asset Permissions</h3>
|
<h3>{{ trans('settings.role_asset') }}</h3>
|
||||||
<p>
|
<p>{{ trans('settings.role_asset_desc') }}</p>
|
||||||
These permissions control default access to the assets within the system.
|
|
||||||
Permissions on Books, Chapters and Pages will override these permissions.
|
|
||||||
</p>
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th width="20%"></th>
|
<th width="20%"></th>
|
||||||
<th width="20%">Create</th>
|
<th width="20%">{{ trans('common.create') }}</th>
|
||||||
<th width="20%">View</th>
|
<th width="20%">{{ trans('common.view') }}</th>
|
||||||
<th width="20%">Edit</th>
|
<th width="20%">{{ trans('common.edit') }}</th>
|
||||||
<th width="20%">Delete</th>
|
<th width="20%">{{ trans('common.delete') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Books</td>
|
<td>{{ trans('entities.books') }}</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-create-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-create-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-view-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-view-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-view-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-view-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-update-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-update-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-update-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-update-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-delete-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-delete-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'book-delete-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'book-delete-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Chapters</td>
|
<td>{{ trans('entities.chapters') }}</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Pages</td>
|
<td>{{ trans('entities.pages') }}</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-create-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-create-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-create-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-create-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-view-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-view-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-view-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-view-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-update-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-update-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-update-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-update-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-delete-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-delete-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'page-delete-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'page-delete-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Images</td>
|
<td>{{ trans('entities.images') }}</td>
|
||||||
<td>@include('settings/roles/checkbox', ['permission' => 'image-create-all'])</td>
|
<td>@include('settings/roles/checkbox', ['permission' => 'image-create-all'])</td>
|
||||||
<td style="line-height:1.2;"><small class="faded">Controlled by the asset they are uploaded to</small></td>
|
<td style="line-height:1.2;"><small class="faded">{{ trans('settings.role_controlled_by_asset') }}</small></td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'image-update-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'image-update-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'image-update-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'image-update-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'image-delete-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'image-delete-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'image-delete-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'image-delete-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Attachments</td>
|
<td>{{ trans('entities.attachments') }}</td>
|
||||||
<td>@include('settings/roles/checkbox', ['permission' => 'attachment-create-all'])</td>
|
<td>@include('settings/roles/checkbox', ['permission' => 'attachment-create-all'])</td>
|
||||||
<td style="line-height:1.2;"><small class="faded">Controlled by the asset they are uploaded to</small></td>
|
<td style="line-height:1.2;"><small class="faded">{{ trans('settings.role_controlled_by_asset') }}</small></td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-update-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-update-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-update-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-update-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-delete-own']) Own</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-delete-own']) {{ trans('settings.role_own') }}</label>
|
||||||
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-delete-all']) All</label>
|
<label>@include('settings/roles/checkbox', ['permission' => 'attachment-delete-all']) {{ trans('settings.role_all') }}</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{ baseUrl("/settings/roles") }}" class="button muted">Cancel</a>
|
<a href="{{ baseUrl("/settings/roles") }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button type="submit" class="button pos">Save Role</button>
|
<button type="submit" class="button pos">{{ trans('settings.role_save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<h3>Users in this role</h3>
|
<h3>{{ trans('settings.role_users') }}</h3>
|
||||||
|
|
||||||
@if(isset($role) && count($role->users) > 0)
|
@if(isset($role) && count($role->users) > 0)
|
||||||
<table class="list-table">
|
<table class="list-table">
|
||||||
@ -147,7 +145,7 @@
|
|||||||
</table>
|
</table>
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
No users currently in this role.
|
{{ trans('settings.role_users_none') }}
|
||||||
</p>
|
</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@ -8,19 +8,19 @@
|
|||||||
|
|
||||||
<div class="row action-header">
|
<div class="row action-header">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<h1>User Roles</h1>
|
<h1>{{ trans('settings.role_user_roles') }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<p></p>
|
<p></p>
|
||||||
<a href="{{ baseUrl("/settings/roles/new") }}" class="button float right pos"><i class="zmdi zmdi-lock-open"></i>Add new role</a>
|
<a href="{{ baseUrl("/settings/roles/new") }}" class="button float right pos"><i class="zmdi zmdi-lock-open"></i>{{ trans('settings.role_create') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Role Name</th>
|
<th>{{ trans('settings.role_name') }}</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th class="text-right">Users</th>
|
<th class="text-right">{{ trans('settings.users') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
@foreach($roles as $role)
|
@foreach($roles as $role)
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -3,6 +3,18 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ baseUrl('/settings/users') }}" class="text-button"><i class="zmdi zmdi-accounts"></i>Users</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Create User</h1>
|
<h1>Create User</h1>
|
||||||
|
|
||||||
|
@ -2,16 +2,30 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
|
<div class="faded-small toolbar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 faded">
|
||||||
|
<div class="breadcrumbs">
|
||||||
|
<a href="{{ baseUrl("/settings/users") }}" class="text-button"><i class="zmdi zmdi-accounts"></i>Users</a>
|
||||||
|
<span class="sep">»</span>
|
||||||
|
<a href="{{ baseUrl("/settings/users/{$user->id}") }}" class="text-button"><i class="zmdi zmdi-account"></i>{{ $user->name }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<h1>Delete User</h1>
|
<h1>{{ trans('settings.users_delete') }}</h1>
|
||||||
<p>This will fully delete this user with the name '<span class="text-neg">{{ $user->name }}</span>' from the system.</p>
|
<p>{{ trans('settings.users_delete_warning', ['userName' => $user->name]) }}</p>
|
||||||
<p class="text-neg">Are you sure you want to delete this user?</p>
|
<p class="text-neg">{{ trans('settings.users_delete_confirm') }}</p>
|
||||||
|
|
||||||
<form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="POST">
|
<form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="POST">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
<input type="hidden" name="_method" value="DELETE">
|
<input type="hidden" name="_method" value="DELETE">
|
||||||
<a href="{{ baseUrl("/settings/users/{$user->id}") }}" class="button muted">Cancel</a>
|
<a href="{{ baseUrl("/settings/users/{$user->id}") }}" class="button muted">{{ 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>
|
||||||
|
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
<form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="post">
|
<form action="{{ baseUrl("/settings/users/{$user->id}") }}" method="post">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<h1>Edit {{ $user->id === $currentUser->id ? 'Profile' : 'User' }}</h1>
|
<h1>{{ $user->id === $currentUser->id ? trans('settings.users_edit_profile') : trans('settings.users_edit') }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<p></p>
|
<p></p>
|
||||||
@if($authMethod !== 'system')
|
@if($authMethod !== 'system')
|
||||||
<a href="{{ baseUrl("/settings/users/{$user->id}/delete") }}" class="neg button float right">Delete User</a>
|
<a href="{{ baseUrl("/settings/users/{$user->id}/delete") }}" class="neg button float right">{{ trans('settings.users_delete') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -29,8 +29,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group" id="logo-control">
|
<div class="form-group" id="logo-control">
|
||||||
<label for="user-avatar">User Avatar</label>
|
<label for="user-avatar">{{ trans('settings.users_avatar') }}</label>
|
||||||
<p class="small">This image should be approx 256px square.</p>
|
<p class="small">{{ trans('settings.users_avatar_desc') }}</p>
|
||||||
<image-picker resize-height="512" resize-width="512" current-image="{{ $user->getAvatar(80) }}" current-id="{{ $user->image_id }}" default-image="{{ baseUrl("/user_avatar.png") }}" name="image_id" show-remove="false" image-class="['avatar' ,'large']"></image-picker>
|
<image-picker resize-height="512" resize-width="512" current-image="{{ $user->getAvatar(80) }}" current-id="{{ $user->image_id }}" default-image="{{ baseUrl("/user_avatar.png") }}" name="image_id" show-remove="false" image-class="['avatar' ,'large']"></image-picker>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -40,20 +40,17 @@
|
|||||||
<hr class="margin-top large">
|
<hr class="margin-top large">
|
||||||
|
|
||||||
@if($currentUser->id === $user->id && count($activeSocialDrivers) > 0)
|
@if($currentUser->id === $user->id && count($activeSocialDrivers) > 0)
|
||||||
<h3>Social Accounts</h3>
|
<h3>{{ trans('settings.users_social_accounts') }}</h3>
|
||||||
<p class="text-muted">
|
<p class="text-muted">{{ trans('settings.users_social_accounts_info') }}</p>
|
||||||
Here you can connect your other accounts for quicker and easier login. <br>
|
|
||||||
Disconnecting an account here does not previously authorized access. Revoke access from your profile settings on the connected social account.
|
|
||||||
</p>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@if(isset($activeSocialDrivers['google']))
|
@if(isset($activeSocialDrivers['google']))
|
||||||
<div class="col-md-3 text-center">
|
<div class="col-md-3 text-center">
|
||||||
<div><i class="zmdi zmdi-google-plus-box zmdi-hc-4x" style="color: #DC4E41;"></i></div>
|
<div><i class="zmdi zmdi-google-plus-box zmdi-hc-4x" style="color: #DC4E41;"></i></div>
|
||||||
<div>
|
<div>
|
||||||
@if($user->hasSocialAccount('google'))
|
@if($user->hasSocialAccount('google'))
|
||||||
<a href="{{ baseUrl("/login/service/google/detach") }}" class="button neg">Disconnect Account</a>
|
<a href="{{ baseUrl("/login/service/google/detach") }}" class="button neg">{{ trans('settings.users_social_disconnect') }}</a>
|
||||||
@else
|
@else
|
||||||
<a href="{{ baseUrl("/login/service/google") }}" class="button pos">Attach Account</a>
|
<a href="{{ baseUrl("/login/service/google") }}" class="button pos">{{ trans('settings.users_social_connect') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -63,9 +60,9 @@
|
|||||||
<div><i class="zmdi zmdi-github zmdi-hc-4x" style="color: #444;"></i></div>
|
<div><i class="zmdi zmdi-github zmdi-hc-4x" style="color: #444;"></i></div>
|
||||||
<div>
|
<div>
|
||||||
@if($user->hasSocialAccount('github'))
|
@if($user->hasSocialAccount('github'))
|
||||||
<a href="{{ baseUrl("/login/service/github/detach") }}" class="button neg">Disconnect Account</a>
|
<a href="{{ baseUrl("/login/service/github/detach") }}" class="button neg">{{ trans('settings.users_social_disconnect') }}</a>
|
||||||
@else
|
@else
|
||||||
<a href="{{ baseUrl("/login/service/github") }}" class="button pos">Attach Account</a>
|
<a href="{{ baseUrl("/login/service/github") }}" class="button pos">{{ trans('settings.users_social_connect') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Name</label>
|
<label for="name">{{ trans('auth.name') }}</label>
|
||||||
@include('form.text', ['name' => 'name'])
|
@include('form.text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Email</label>
|
<label for="email">{{ trans('auth.email') }}</label>
|
||||||
@include('form.text', ['name' => 'email'])
|
@include('form.text', ['name' => 'email'])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="role">User Role</label>
|
<label for="role">{{ trans('settings.users_role') }}</label>
|
||||||
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="external_auth_id">External Authentication ID</label>
|
<label for="external_auth_id">{{ trans('settings.users_external_auth_id') }}</label>
|
||||||
@include('form.text', ['name' => 'external_auth_id'])
|
@include('form.text', ['name' => 'external_auth_id'])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ baseUrl("/settings/users") }}" class="button muted">Cancel</a>
|
<a href="{{ baseUrl("/settings/users") }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button class="button pos" type="submit">Save</button>
|
<button class="button pos" type="submit">{{ trans('common.save') }}</button>
|
||||||
</div>
|
</div>
|
@ -1,16 +1,16 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Name</label>
|
<label for="name">{{ trans('auth.name') }}</label>
|
||||||
@include('form.text', ['name' => 'name'])
|
@include('form.text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Email</label>
|
<label for="email">{{ trans('auth.email') }}</label>
|
||||||
@include('form.text', ['name' => 'email'])
|
@include('form.text', ['name' => 'email'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="role">User Role</label>
|
<label for="role">{{ trans('settings.users_role') }}</label>
|
||||||
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@ -18,23 +18,23 @@
|
|||||||
@if(isset($model))
|
@if(isset($model))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<span class="text-muted">
|
<span class="text-muted">
|
||||||
Only fill the below if you would like <br>to change your password:
|
{{ trans('settings.users_password_warning') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password">Password</label>
|
<label for="password">{{ trans('auth.password') }}</label>
|
||||||
@include('form.password', ['name' => 'password'])
|
@include('form.password', ['name' => 'password'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password-confirm">Confirm Password</label>
|
<label for="password-confirm">{{ trans('auth.password_confirm') }}</label>
|
||||||
@include('form.password', ['name' => 'password-confirm'])
|
@include('form.password', ['name' => 'password-confirm'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ baseUrl("/settings/users") }}" class="button muted">Cancel</a>
|
<a href="{{ baseUrl("/settings/users") }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button class="button pos" type="submit">Save</button>
|
<button class="button pos" type="submit">{{ trans('common.save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,25 +1,26 @@
|
|||||||
@if($user->system_name == 'public')
|
@if($user->system_name == 'public')
|
||||||
<p>This user represents any guest users that visit your instance. It cannot be used for logins but is assigned automatically.</p>
|
<p>{{ trans('settings.users_system_public') }}</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="name">Name</label>
|
<label for="name">{{ trans('auth.name') }}</label>
|
||||||
@include('form.text', ['name' => 'name'])
|
@include('form.text', ['name' => 'name'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email">Email</label>
|
<label for="email">{{ trans('auth.email') }}</label>
|
||||||
@include('form.text', ['name' => 'email'])
|
@include('form.text', ['name' => 'email'])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="role">User Role</label>
|
<label for="role">{{ trans('settings.users_role') }}</label>
|
||||||
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
@include('form/role-checkboxes', ['name' => 'roles', 'roles' => $roles])
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<a href="{{ baseUrl("/settings/users") }}" class="button muted">Cancel</a>
|
<a href="{{ baseUrl("/settings/users") }}" class="button muted">{{ trans('common.cancel') }}</a>
|
||||||
<button class="button pos" type="submit">Save</button>
|
<button class="button pos" type="submit">{{ trans('common.save') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
<div class="container small" ng-non-bindable>
|
<div class="container small" ng-non-bindable>
|
||||||
<div class="row action-header">
|
<div class="row action-header">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<h1>Users</h1>
|
<h1>{{ trans('settings.users') }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<p></p>
|
<p></p>
|
||||||
@if(userCan('users-manage'))
|
@if(userCan('users-manage'))
|
||||||
<a href="{{ baseUrl("/settings/users/create") }}" class="pos button float right"><i class="zmdi zmdi-account-add"></i>Add new user</a>
|
<a href="{{ baseUrl("/settings/users/create") }}" class="pos button float right"><i class="zmdi zmdi-account-add"></i>{{ trans('settings.users_add_new') }}</a>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -30,20 +30,17 @@
|
|||||||
@foreach(collect($listDetails)->except('search') as $name => $val)
|
@foreach(collect($listDetails)->except('search') as $name => $val)
|
||||||
<input type="hidden" name="{{ $name }}" value="{{ $val }}">
|
<input type="hidden" name="{{ $name }}" value="{{ $val }}">
|
||||||
@endforeach
|
@endforeach
|
||||||
<input type="text" name="search" placeholder="Search Users" @if($listDetails['search']) value="{{$listDetails['search']}}" @endif>
|
<input type="text" name="search" placeholder="{{ trans('settings.users_search') }}" @if($listDetails['search']) value="{{$listDetails['search']}}" @endif>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-center">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><a href="{{ sortUrl('/settings/users', $listDetails, ['sort' => 'name']) }}">Name</a></th>
|
<th><a href="{{ sortUrl('/settings/users', $listDetails, ['sort' => 'name']) }}">{{ trans('auth.name') }}</a></th>
|
||||||
<th><a href="{{ sortUrl('/settings/users', $listDetails, ['sort' => 'email']) }}">Email</a></th>
|
<th><a href="{{ sortUrl('/settings/users', $listDetails, ['sort' => 'email']) }}">{{ trans('auth.email') }}</a></th>
|
||||||
<th>User Roles</th>
|
<th>{{ trans('settings.role_user_roles') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
@foreach($users as $user)
|
@foreach($users as $user)
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -17,21 +17,21 @@
|
|||||||
<div>
|
<div>
|
||||||
<h3 style="margin-top: 0;">{{ $user->name }}</h3>
|
<h3 style="margin-top: 0;">{{ $user->name }}</h3>
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
User for {{ $user->created_at->diffForHumans(null, true) }}
|
{{ trans('entities.profile_user_for_x', ['time' => $user->created_at->diffForHumans(null, true)]) }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5 text-bigger" id="content-counts">
|
<div class="col-md-5 text-bigger" id="content-counts">
|
||||||
<div class="text-muted">Created Content</div>
|
<div class="text-muted">{{ trans('entities.profile_created_content') }}</div>
|
||||||
<div class="text-book">
|
<div class="text-book">
|
||||||
<i class="zmdi zmdi-book zmdi-hc-fw"></i> {{ $assetCounts['books'] }} {{ str_plural('Book', $assetCounts['books']) }}
|
<i class="zmdi zmdi-book zmdi-hc-fw"></i> {{ $assetCounts['books'] }} {{ str_plural(trans('entities.book'), $assetCounts['books']) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-chapter">
|
<div class="text-chapter">
|
||||||
<i class="zmdi zmdi-collection-bookmark zmdi-hc-fw"></i> {{ $assetCounts['chapters'] }} {{ str_plural('Chapter', $assetCounts['chapters']) }}
|
<i class="zmdi zmdi-collection-bookmark zmdi-hc-fw"></i> {{ $assetCounts['chapters'] }} {{ str_plural(trans('entities.chapter'), $assetCounts['chapters']) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-page">
|
<div class="text-page">
|
||||||
<i class="zmdi zmdi-file-text zmdi-hc-fw"></i> {{ $assetCounts['pages'] }} {{ str_plural('Page', $assetCounts['pages']) }}
|
<i class="zmdi zmdi-file-text zmdi-hc-fw"></i> {{ $assetCounts['pages'] }} {{ str_plural(trans('entities.page'), $assetCounts['pages']) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -39,34 +39,34 @@
|
|||||||
|
|
||||||
<hr class="even">
|
<hr class="even">
|
||||||
|
|
||||||
<h3>Recently Created Pages</h3>
|
<h3>{{ trans('entities.recently_created_pages') }}</h3>
|
||||||
@if (count($recentlyCreated['pages']) > 0)
|
@if (count($recentlyCreated['pages']) > 0)
|
||||||
@include('partials/entity-list', ['entities' => $recentlyCreated['pages']])
|
@include('partials/entity-list', ['entities' => $recentlyCreated['pages']])
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">{{ $user->name }} has not created any pages</p>
|
<p class="text-muted">{{ trans('entities.profile_not_created_pages', ['userName' => $user->name]) }}</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<hr class="even">
|
<hr class="even">
|
||||||
|
|
||||||
<h3>Recently Created Chapters</h3>
|
<h3>{{ trans('entities.recently_created_chapters') }}</h3>
|
||||||
@if (count($recentlyCreated['chapters']) > 0)
|
@if (count($recentlyCreated['chapters']) > 0)
|
||||||
@include('partials/entity-list', ['entities' => $recentlyCreated['chapters']])
|
@include('partials/entity-list', ['entities' => $recentlyCreated['chapters']])
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">{{ $user->name }} has not created any chapters</p>
|
<p class="text-muted">{{ trans('entities.profile_not_created_chapters', ['userName' => $user->name]) }}</p>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<hr class="even">
|
<hr class="even">
|
||||||
|
|
||||||
<h3>Recently Created Books</h3>
|
<h3>{{ trans('entities.recently_created_books') }}</h3>
|
||||||
@if (count($recentlyCreated['books']) > 0)
|
@if (count($recentlyCreated['books']) > 0)
|
||||||
@include('partials/entity-list', ['entities' => $recentlyCreated['books']])
|
@include('partials/entity-list', ['entities' => $recentlyCreated['books']])
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">{{ $user->name }} has not created any books</p>
|
<p class="text-muted">{{ trans('entities.profile_not_created_books', ['userName' => $user->name]) }}</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-4 col-sm-offset-1" id="recent-activity">
|
<div class="col-sm-4 col-sm-offset-1" id="recent-activity">
|
||||||
<h3>Recent Activity</h3>
|
<h3>{{ trans('entities.recent_activity') }}</h3>
|
||||||
@include('partials/activity-list', ['activity' => $activity])
|
@include('partials/activity-list', ['activity' => $activity])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -18,5 +18,5 @@ if (! empty($outroLines)) {
|
|||||||
echo implode("\n", $outroLines), "\n\n";
|
echo implode("\n", $outroLines), "\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
echo 'Regards,', "\n";
|
echo "\n";
|
||||||
echo setting('app-name'), "\n";
|
echo setting('app-name'), "\n";
|
||||||
|
@ -159,8 +159,7 @@ $style = [
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="{{ $fontFamily }}">
|
<td style="{{ $fontFamily }}">
|
||||||
<p style="{{ $style['paragraph-sub'] }}">
|
<p style="{{ $style['paragraph-sub'] }}">
|
||||||
If you’re having trouble clicking the "{{ $actionText }}" button,
|
{{ trans('common.email_action_help', ['actionText' => $actionText]) }}
|
||||||
copy and paste the URL below into your web browser:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p style="{{ $style['paragraph-sub'] }}">
|
<p style="{{ $style['paragraph-sub'] }}">
|
||||||
@ -188,7 +187,7 @@ $style = [
|
|||||||
<p style="{{ $style['paragraph-sub'] }}">
|
<p style="{{ $style['paragraph-sub'] }}">
|
||||||
© {{ date('Y') }}
|
© {{ date('Y') }}
|
||||||
<a style="{{ $style['anchor'] }}" href="{{ baseUrl('/') }}" target="_blank">{{ setting('app-name') }}</a>.
|
<a style="{{ $style['anchor'] }}" href="{{ baseUrl('/') }}" target="_blank">{{ setting('app-name') }}</a>.
|
||||||
All rights reserved.
|
{{ trans('common.email_rights') }}
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -24,7 +24,7 @@ class AuthTest extends TestCase
|
|||||||
$settings->put('app-public', 'true');
|
$settings->put('app-public', 'true');
|
||||||
$this->visit('/')
|
$this->visit('/')
|
||||||
->seePageIs('/')
|
->seePageIs('/')
|
||||||
->see('Sign In');
|
->see('Log In');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_registration_showing()
|
public function test_registration_showing()
|
||||||
@ -132,7 +132,7 @@ class AuthTest extends TestCase
|
|||||||
|
|
||||||
$this->asAdmin()
|
$this->asAdmin()
|
||||||
->visit('/settings/users')
|
->visit('/settings/users')
|
||||||
->click('Add new user')
|
->click('Add New User')
|
||||||
->type($user->name, '#name')
|
->type($user->name, '#name')
|
||||||
->type($user->email, '#email')
|
->type($user->email, '#email')
|
||||||
->check('roles[admin]')
|
->check('roles[admin]')
|
||||||
|
@ -15,8 +15,8 @@ class EntitySearchTest extends TestCase
|
|||||||
->type($page->name, 'term')
|
->type($page->name, 'term')
|
||||||
->press('header-search-box-button')
|
->press('header-search-box-button')
|
||||||
->see('Search Results')
|
->see('Search Results')
|
||||||
->see($page->name)
|
->seeInElement('.entity-list', $page->name)
|
||||||
->click($page->name)
|
->clickInElement('.entity-list', $page->name)
|
||||||
->seePageIs($page->getUrl());
|
->seePageIs($page->getUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ class SortTest extends TestCase
|
|||||||
$newBook = \BookStack\Book::where('id', '!=', $currentBook->id)->first();
|
$newBook = \BookStack\Book::where('id', '!=', $currentBook->id)->first();
|
||||||
|
|
||||||
$this->asAdmin()->visit($chapter->getUrl() . '/move')
|
$this->asAdmin()->visit($chapter->getUrl() . '/move')
|
||||||
->see('Move Chapter')->see($chapter->name)
|
->see('Move Chapter')
|
||||||
->type('book:' . $newBook->id, 'entity_selection')->press('Move Chapter');
|
->type('book:' . $newBook->id, 'entity_selection')->press('Move Chapter');
|
||||||
|
|
||||||
$chapter = \BookStack\Chapter::find($chapter->id);
|
$chapter = \BookStack\Chapter::find($chapter->id);
|
||||||
|
@ -81,7 +81,7 @@ class RolesTest extends TestCase
|
|||||||
$this->asAdmin()->visit('/settings')
|
$this->asAdmin()->visit('/settings')
|
||||||
->click('Roles')
|
->click('Roles')
|
||||||
->seePageIs('/settings/roles')
|
->seePageIs('/settings/roles')
|
||||||
->click('Add new role')
|
->click('Create New Role')
|
||||||
->type('Test Role', 'display_name')
|
->type('Test Role', 'display_name')
|
||||||
->type('A little test description', 'description')
|
->type('A little test description', 'description')
|
||||||
->press('Save Role')
|
->press('Save Role')
|
||||||
|
Loading…
Reference in New Issue
Block a user