$books = $this->entityRepo->getAllPaginated('book', 20);
$recents = $this->signedIn ? $this->entityRepo->getRecentlyViewed('book', 4, 0) : false;
$popular = $this->entityRepo->getPopular('book', 4, 0);
+ $new = $this->entityRepo->getRecentlyCreated('book', 4, 0);
$this->setPageTitle('Books');
- return view('books/index', ['books' => $books, 'recents' => $recents, 'popular' => $popular]);
+ return view('books/index', [
+ 'books' => $books,
+ 'recents' => $recents,
+ 'popular' => $popular,
+ 'new' => $new
+ ]);
}
/**
const argv = require('yargs').argv;
const gulp = require('gulp'),
plumber = require('gulp-plumber');
+
const autoprefixer = require('gulp-autoprefixer');
-const uglify = require('gulp-uglify');
const minifycss = require('gulp-clean-css');
const sass = require('gulp-sass');
+const sourcemaps = require('gulp-sourcemaps');
+
const browserify = require("browserify");
const source = require('vinyl-source-stream');
const buffer = require('vinyl-buffer');
const babelify = require("babelify");
const watchify = require("watchify");
const envify = require("envify");
+const uglify = require('gulp-uglify');
+
const gutil = require("gulp-util");
const liveReload = require('gulp-livereload');
gulp.task('styles', () => {
let chain = gulp.src(['resources/assets/sass/**/*.scss'])
+ .pipe(sourcemaps.init())
.pipe(plumber({
errorHandler: function (error) {
console.log(error.message);
.pipe(sass())
.pipe(autoprefixer('last 2 versions'));
if (isProduction) chain = chain.pipe(minifycss());
+ chain = chain.pipe(sourcemaps.write());
return chain.pipe(gulp.dest('public/css/')).pipe(liveReload());
});
"clipboard": "^1.7.1",
"codemirror": "^5.26.0",
"dropzone": "^4.0.1",
+ "gulp-sourcemaps": "^2.6.1",
"gulp-util": "^3.0.8",
"markdown-it": "^8.3.1",
"markdown-it-task-lists": "^2.0.0",
font-weight: 400;
text-transform: uppercase;
}
- .body {
+ .body, p.empty-text {
padding: $-m;
}
+}
+
+.well {
+ background-color: #F8F8F8;
+ padding: $-m;
+ border: 1px solid #DDD;
}
\ No newline at end of file
@mixin generate-button-colors($textColor, $backgroundColor) {
background-color: $backgroundColor;
color: $textColor;
+ text-transform: uppercase;
&:hover {
background-color: lighten($backgroundColor, 8%);
- box-shadow: $bs-med;
+ //box-shadow: $bs-med;
text-decoration: none;
color: $textColor;
}
text-decoration: none;
font-size: $fs-m;
line-height: 1.4em;
- padding: $-xs $-m;
+ padding: $-xs*1.3 $-m;
margin: $-xs $-xs $-xs 0;
display: inline-block;
border: none;
- font-weight: 500;
+ font-weight: 400;
outline: 0;
border-radius: $button-border-radius;
cursor: pointer;
transition: all ease-in-out 120ms;
- box-shadow: 0 0.5px 1.5px 0 rgba(0, 0, 0, 0.21);
+ box-shadow: 0;
@include generate-button-colors(#EEE, $primary);
}
@include generate-button-colors(#EEE, $secondary);
}
&.muted {
- @include generate-button-colors(#EEE, #888);
+ @include generate-button-colors(#EEE, #AAA);
}
&.muted-light {
@include generate-button-colors(#666, #e4e4e4);
}
}
+.button.outline {
+ background-color: transparent;
+ color: #888;
+ border: 1px solid #DDD;
+ &:hover, &:focus, &:active {
+ box-shadow: none;
+ background-color: #EEE;
+ }
+ &.page {
+ border-color: $color-page;
+ color: $color-page;
+ &:hover, &:focus, &:active {
+ background-color: $color-page;
+ color: #FFF;
+ }
+ }
+ &.chapter {
+ border-color: $color-chapter;
+ color: $color-chapter;
+ &:hover, &:focus, &:active {
+ background-color: $color-chapter;
+ color: #FFF;
+ }
+ }
+}
+
.text-button {
@extend .link;
background-color: transparent;
.input-base {
background-color: #FFF;
border-radius: 3px;
- border: 1px solid #CCC;
+ border: 1px solid #D4D4D4;
display: inline-block;
font-size: $fs-s;
- padding: $-xs;
- color: #222;
+ padding: $-xs*1.5;
+ color: #666;
width: 250px;
max-width: 100%;
- //-webkit-appearance:none;
&.neg, &.invalid {
border: 1px solid $negative;
}
display: block;
line-height: 1.4em;
font-size: 0.94em;
- font-weight: 500;
- color: #666;
+ font-weight: 400;
+ color: #999;
+ text-transform: uppercase;
padding-bottom: 2px;
margin-bottom: 0.2em;
&.inline {
}
.inline-input-style {
- border: 2px dotted #BBB;
display: block;
width: 100%;
- padding: $-xs $-s;
-}
-
-.title-input .input {
- width: 100%;
-}
-
-.title-input label, .description-input label{
- margin-top: $-m;
- color: #666;
+ padding: $-s;
}
.title-input input[type="text"] {
- @extend h1;
@extend .inline-input-style;
margin-top: 0;
- padding-right: 0;
- width: 100%;
- color: #444;
+ font-size: 2em;
}
.title-input.page-title {
&.flexbox {
overflow-y: hidden;
}
+ &.shaded {
+ background-color: #F2F2F2;
+ }
}
body {
.left + .right {
margin-left: 30px + $-s;
}
+ &:last-of-type {
+ border-bottom: 0;
+ }
}
ul.pagination {
h4 {
margin: 0;
}
- p {
- margin: $-xs 0 0 0;
- }
hr {
margin: 0;
}
}
}
-.card .entity-list-item {
+.card .entity-list-item, .card .activity-list-item {
padding-left: $-m;
padding-right: $-m;
}
.entity-item-snippet {
display: none;
}
- p {
+ .entity-list-item p {
font-size: $fs-m * 0.8;
padding-top: $-xs;
+ }
+ p {
margin: 0;
}
> p.empty-text {
* Fonts
*/
-body, button, input, select, label {
+body, button, input, select, label, textarea {
font-family: $text;
}
.Codemirror, pre, #markdown-editor-input, .editor-toolbar, .code-base {
}
.center-box {
- margin: $-xl auto 0 auto;
- padding: $-m $-xxl $-xl $-xxl;
+ margin: $-xxl auto 0 auto;
width: 420px;
max-width: 100%;
display: inline-block;
text-align: left;
vertical-align: top;
- //border: 1px solid #DDD;
input {
width: 100%;
}
- &.login {
- background-color: #EEE;
- box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.1);
- border: 1px solid #DDD;
- }
}
'books_empty' => 'No books have been created',
'books_popular' => 'Popular Books',
'books_recent' => 'Recent Books',
+ 'books_new' => 'New Books',
'books_popular_empty' => 'The most popular books will appear here.',
+ 'books_new_empty' => 'The most recently created books will appear here.',
'books_create' => 'Create New Book',
'books_delete' => 'Delete Book',
'books_delete_named' => 'Delete Book :bookName',
- 'books_delete_explain' => 'This will delete the book with the name \':bookName\', All pages and chapters will be removed.',
+ 'books_delete_explain' => 'This will delete the book with the name \':bookName\'. All pages and chapters will be removed.',
'books_delete_confirmation' => 'Are you sure you want to delete this book?',
'books_edit' => 'Edit Book',
'books_edit_named' => 'Edit Book :bookName',
@section('content')
<div class="text-center">
- <div class="center-box">
- <h1>{{ title_case(trans('auth.log_in')) }}</h1>
-
- <form action="{{ baseUrl("/login") }}" method="POST" id="login-form">
- {!! csrf_field() !!}
-
-
- @include('auth/forms/login/' . $authMethod)
-
- <div class="form-group">
- <label for="remember" class="inline">{{ trans('auth.remember_me') }}</label>
- <input type="checkbox" id="remember" name="remember" class="toggle-switch-checkbox">
- <label for="remember" class="toggle-switch"></label>
- </div>
-
-
- <div class="from-group">
- <button class="button block pos" tabindex="3"><i class="zmdi zmdi-sign-in"></i> {{ title_case(trans('auth.log_in')) }}</button>
- </div>
- </form>
-
- @if(count($socialDrivers) > 0)
- <hr class="margin-top">
- @foreach($socialDrivers as $driver => $name)
- <a id="social-login-{{$driver}}" class="button block muted-light svg text-left" href="{{ baseUrl("/login/service/" . $driver) }}">
- @icon($driver)
- {{ trans('auth.log_in_with', ['socialDriver' => $name]) }}
- </a>
- @endforeach
- @endif
+ <div class="card center-box">
+ <h3><i class="zmdi zmdi-sign-in"></i> {{ title_case(trans('auth.log_in')) }}</h3>
+
+ <div class="body">
+ <form action="{{ baseUrl("/login") }}" method="POST" id="login-form">
+ {!! csrf_field() !!}
+
+
+ @include('auth/forms/login/' . $authMethod)
+
+ <div class="form-group">
+ <label for="remember" class="inline">{{ trans('auth.remember_me') }}</label>
+ <input type="checkbox" id="remember" name="remember" class="toggle-switch-checkbox">
+ <label for="remember" class="toggle-switch"></label>
+ </div>
+
+
+ <div class="from-group">
+ <button class="button block pos" tabindex="3"><i class="zmdi zmdi-sign-in"></i> {{ title_case(trans('auth.log_in')) }}</button>
+ </div>
+ </form>
+
+ @if(count($socialDrivers) > 0)
+ <hr class="margin-top">
+ @foreach($socialDrivers as $driver => $name)
+ <a id="social-login-{{$driver}}" class="button block muted-light svg text-left" href="{{ baseUrl("/login/service/" . $driver) }}">
+ @icon($driver)
+ {{ trans('auth.log_in_with', ['socialDriver' => $name]) }}
+ </a>
+ @endforeach
+ @endif
+ </div>
</div>
</div>
@section('content')
<div class="text-center">
- <div class="center-box">
- <h1>{{ title_case(trans('auth.sign_up')) }}</h1>
-
- <form action="{{ baseUrl("/register") }}" method="POST">
- {!! csrf_field() !!}
-
- <div class="form-group">
- <label for="email">{{ trans('auth.name') }}</label>
- @include('form/text', ['name' => 'name'])
- </div>
-
- <div class="form-group">
- <label for="email">{{ trans('auth.email') }}</label>
- @include('form/text', ['name' => 'email'])
- </div>
-
- <div class="form-group">
- <label for="password">{{ trans('auth.password') }}</label>
- @include('form/password', ['name' => 'password', 'placeholder' => trans('auth.password_hint')])
- </div>
-
- <div class="from-group">
- <button class="button block pos">{{ trans('auth.create_account') }}</button>
- </div>
- </form>
-
- @if(count($socialDrivers) > 0)
- <hr class="margin-top">
- @foreach($socialDrivers as $driver => $name)
- <a id="social-register-{{$driver}}" class="button block muted-light svg text-left" href="{{ baseUrl("/register/service/" . $driver) }}">
- @icon($driver)
- {{ trans('auth.sign_up_with', ['socialDriver' => $name]) }}
- </a>
- @endforeach
- @endif
+ <div class="card center-box">
+ <h3><i class="zmdi zmdi-account-add"></i> {{ title_case(trans('auth.sign_up')) }}</h3>
+ <div class="body">
+ <form action="{{ baseUrl("/register") }}" method="POST">
+ {!! csrf_field() !!}
+
+ <div class="form-group">
+ <label for="email">{{ trans('auth.name') }}</label>
+ @include('form/text', ['name' => 'name'])
+ </div>
+
+ <div class="form-group">
+ <label for="email">{{ trans('auth.email') }}</label>
+ @include('form/text', ['name' => 'email'])
+ </div>
+
+ <div class="form-group">
+ <label for="password">{{ trans('auth.password') }}</label>
+ @include('form/password', ['name' => 'password', 'placeholder' => trans('auth.password_hint')])
+ </div>
+
+ <div class="from-group">
+ <button class="button block pos">{{ trans('auth.create_account') }}</button>
+ </div>
+ </form>
+
+ @if(count($socialDrivers) > 0)
+ <hr class="margin-top">
+ @foreach($socialDrivers as $driver => $name)
+ <a id="social-register-{{$driver}}" class="button block muted-light svg text-left" href="{{ baseUrl("/register/service/" . $driver) }}">
+ @icon($driver)
+ {{ trans('auth.sign_up_with', ['socialDriver' => $name]) }}
+ </a>
+ @endforeach
+ @endif
+ </div>
</div>
</div>
-@extends('base')
+@extends('simple-layout')
-@section('content')
+@section('toolbar')
+ <div class="col-sm-8 faded">
+ <div class="breadcrumbs">
+ <a href="{{ baseUrl('/books') }}" class="text-button"><i class="zmdi zmdi-book"></i>{{ trans('entities.books') }}</a>
+ <span class="sep">»</span>
+ <a href="{{ baseUrl('/books/create') }}" class="text-button"><i class="zmdi zmdi-plus"></i>{{ trans('entities.books_create') }}</a>
+ </div>
+ </div>
+@stop
-<div class="container small" ng-non-bindable>
- <h1>{{ trans('entities.books_create') }}</h1>
- <form action="{{ baseUrl("/books") }}" method="POST">
- @include('books/form')
- </form>
+@section('body')
+
+<div ng-non-bindable class="container small">
+ <p> </p>
+ <div class="card">
+ <h3><i class="zmdi zmdi-plus"></i> {{ trans('entities.books_create') }}</h3>
+ <div class="body">
+ <form action="{{ baseUrl("/books") }}" method="POST">
+ @include('books/form')
+ </form>
+ </div>
+ </div>
</div>
@stop
\ No newline at end of file
-@extends('base')
+@extends('simple-layout')
-@section('content')
-
- <div class="faded-small toolbar">
- <div class="container">
- <div class="row">
- <div class="col-sm-12 faded">
- @include('books._breadcrumbs', ['book' => $book])
- </div>
- </div>
- </div>
+@section('toolbar')
+ <div class="col-sm-12 faded">
+ @include('books._breadcrumbs', ['book' => $book])
</div>
+@stop
+
+@section('body')
<div class="container small" ng-non-bindable>
- <h1>{{ trans('entities.books_delete') }}</h1>
- <p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p>
- <p class="text-neg">{{ trans('entities.books_delete_confirmation') }}</p>
+ <p> </p>
+ <div class="card">
+ <h3><i class="zmdi zmdi-delete"></i> {{ trans('entities.books_delete') }}</h3>
+ <div class="body">
+ <p>{{ trans('entities.books_delete_explain', ['bookName' => $book->name]) }}</p>
+ <p class="text-neg">{{ trans('entities.books_delete_confirmation') }}</p>
+
+ <form action="{{$book->getUrl()}}" method="POST">
+ {!! csrf_field() !!}
+ <input type="hidden" name="_method" value="DELETE">
+ <a href="{{$book->getUrl()}}" class="button outline">{{ trans('common.cancel') }}</a>
+ <button type="submit" class="button neg">{{ trans('common.confirm') }}</button>
+ </form>
+ </div>
+ </div>
- <form action="{{$book->getUrl()}}" method="POST">
- {!! csrf_field() !!}
- <input type="hidden" name="_method" value="DELETE">
- <a href="{{$book->getUrl()}}" class="button">{{ trans('common.cancel') }}</a>
- <button type="submit" class="button neg">{{ trans('common.confirm') }}</button>
- </form>
</div>
@stop
\ No newline at end of file
-@extends('base')
+@extends('simple-layout')
-@section('content')
-
- <div class="faded-small toolbar">
- <div class="container">
- <div class="row">
- <div class="col-sm-12 faded">
- @include('books._breadcrumbs', ['book' => $book])
- </div>
- </div>
- </div>
+@section('toolbar')
+ <div class="col-sm-12 faded">
+ @include('books._breadcrumbs', ['book' => $book])
</div>
+@stop
+
+@section('body')
<div class="container small" ng-non-bindable>
- <h1>{{ trans('entities.books_edit') }}</h1>
- <form action="{{ $book->getUrl() }}" method="POST">
- <input type="hidden" name="_method" value="PUT">
- @include('books/form', ['model' => $book])
- </form>
+ <p> </p>
+ <div class="card">
+ <h3><i class="zmdi zmdi-edit"></i> {{ trans('entities.books_edit') }}</h3>
+ <div class="body">
+ <form action="{{ $book->getUrl() }}" method="POST">
+ <input type="hidden" name="_method" value="PUT">
+ @include('books/form', ['model' => $book])
+ </form>
+ </div>
+ </div>
</div>
@stop
\ No newline at end of file
@include('form/textarea', ['name' => 'description'])
</div>
-<div class="form-group">
- <a href="{{ isset($book) ? $book->getUrl() : baseUrl('/books') }}" class="button muted">{{ trans('common.cancel') }}</a>
+<div class="form-group text-right">
+ <a href="{{ isset($book) ? $book->getUrl() : baseUrl('/books') }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button pos">{{ trans('entities.books_save') }}</button>
</div>
\ No newline at end of file
<div class="body text-muted">{{ trans('entities.books_popular_empty') }}</div>
@endif
</div>
+
+ <div id="new" class="card">
+ <h3><i class="zmdi zmdi-star-circle"></i> {{ trans('entities.books_new') }}</h3>
+ @if(count($popular) > 0)
+ @include('partials/entity-list', ['entities' => $new, 'style' => 'compact'])
+ @else
+ <div class="body text-muted">{{ trans('entities.books_new_empty') }}</div>
+ @endif
+ </div>
@stop
@section('body')
-@extends('base')
+@extends('simple-layout')
-@section('content')
-
- <div class="faded-small toolbar">
- <div class="container">
- <div class="row">
- <div class="col-sm-12 faded">
- @include('books._breadcrumbs', ['book' => $book])
- </div>
- </div>
- </div>
+@section('toolbar')
+ <div class="col-sm-12 faded">
+ @include('books._breadcrumbs', ['book' => $book])
</div>
+@stop
+@section('body')
<div class="container" ng-non-bindable>
- <h1>{{ trans('entities.books_permissions') }}</h1>
- @include('form/restriction-form', ['model' => $book])
+ <div class="card">
+ <h3>{{ trans('entities.books_permissions') }}</h3>
+ <div class="body">
+ @include('form/restriction-form', ['model' => $book])
+ </div>
+ </div>
</div>
@stop
@if(count($activity) > 0)
<div class="activity card">
<h3><i class="zmdi zmdi-time"></i> {{ trans('entities.recent_activity') }}</h3>
- <div class="body">
- @include('partials/activity-list', ['activity' => $activity])
- </div>
+ @include('partials/activity-list', ['activity' => $activity])
</div>
@endif
<h1>{{$book->name}}</h1>
<div class="book-content" v-show="!searching">
<p class="text-muted" v-pre>{!! nl2br(e($book->description)) !!}</p>
-
+ @if(count($bookChildren) > 0)
<div class="page-list" v-pre>
<hr>
- @if(count($bookChildren) > 0)
- @foreach($bookChildren as $childElement)
- @if($childElement->isA('chapter'))
- @include('chapters/list-item', ['chapter' => $childElement])
- @else
- @include('pages/list-item', ['page' => $childElement])
- @endif
- <hr>
- @endforeach
- @else
- <p class="text-muted">{{ trans('entities.books_empty_contents') }}</p>
- <p>
+ @foreach($bookChildren as $childElement)
+ @if($childElement->isA('chapter'))
+ @include('chapters/list-item', ['chapter' => $childElement])
+ @else
+ @include('pages/list-item', ['page' => $childElement])
+ @endif
+ <hr>
+ @endforeach
+ </div>
+ @else
+ <div class="well">
+ <p class="text-muted italic">{{ trans('entities.books_empty_contents') }}</p>
@if(userCan('page-create', $book))
- <a href="{{ $book->getUrl('/page/create') }}" class="text-page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a>
+ <a href="{{ $book->getUrl('/page/create') }}" class="button outline page"><i class="zmdi zmdi-file-text"></i>{{ trans('entities.books_empty_create_page') }}</a>
@endif
@if(userCan('page-create', $book) && userCan('chapter-create', $book))
- <em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>
+ <em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>
@endif
@if(userCan('chapter-create', $book))
- <a href="{{ $book->getUrl('/chapter/create') }}" class="text-chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.books_empty_add_chapter') }}</a>
+ <a href="{{ $book->getUrl('/chapter/create') }}" class="button outline chapter"><i class="zmdi zmdi-collection-bookmark"></i>{{ trans('entities.books_empty_add_chapter') }}</a>
@endif
- </p>
- <hr>
- @endif
- </div>
+ </div>
+ @endif
+
</div>
<div class="search-results" v-cloak v-show="searching">
<h3 class="text-muted">{{ trans('entities.search_results') }} <a v-if="searching" v-on:click="clearSearch()" class="text-small"><i class="zmdi zmdi-close"></i>{{ trans('entities.search_clear') }}</a></h3>
-@extends('base')
+@extends('simple-layout')
@section('head')
<script src="{{ baseUrl("/libs/jquery-sortable/jquery-sortable.min.js") }}"></script>
@stop
-@section('content')
-
- <div class="faded-small toolbar">
- <div class="container">
- <div class="row">
- <div class="col-sm-12 faded">
- @include('books._breadcrumbs', ['book' => $book])
- </div>
- </div>
- </div>
+@section('toolbar')
+ <div class="col-sm-12 faded">
+ @include('books._breadcrumbs', ['book' => $book])
</div>
+@stop
+
+@section('body')
<div class="container" ng-non-bindable>
- <h1>{{ trans('entities.books_sort') }}</h1>
- <div class="row">
- <div class="col-md-8" id="sort-boxes">
- @include('books/sort-box', ['book' => $book, 'bookChildren' => $bookChildren])
+ <div class="row">
+ <div class="col-md-8">
+ <div class="card">
+ <h3><i class="zmdi zmdi-sort"></i> {{ trans('entities.books_sort') }}</h3>
+ <div class="body">
+ <div id="sort-boxes">
+ @include('books/sort-box', ['book' => $book, 'bookChildren' => $bookChildren])
+ </div>
+ <form action="{{ $book->getUrl('/sort') }}" method="POST">
+ {!! csrf_field() !!}
+ <input type="hidden" name="_method" value="PUT">
+ <input type="hidden" id="sort-tree-input" name="sort-tree">
+ <div class="list">
+ <a href="{{ $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
+ <button class="button pos" type="submit">{{ trans('entities.books_sort_save') }}</button>
+ </div>
+ </form>
+ </div>
+ </div>
</div>
-
@if(count($books) > 1)
- <div class="col-md-4">
- <h3>{{ trans('entities.books_sort_show_other') }}</h3>
- <div id="additional-books">
- @foreach($books as $otherBook)
- @if($otherBook->id !== $book->id)
- <div>
- <a href="{{ $otherBook->getUrl('/sort-item') }}" class="text-book"><i class="zmdi zmdi-book"></i>{{ $otherBook->name }}</a>
- </div>
- @endif
- @endforeach
+ <div class="col-md-4">
+ <div class="card">
+ <h3><i class="zmdi zmdi-book"></i> {{ trans('entities.books_sort_show_other') }}</h3>
+ <div class="body" id="additional-books">
+ @foreach($books as $otherBook)
+ @if($otherBook->id !== $book->id)
+ <div>
+ <a href="{{ $otherBook->getUrl('/sort-item') }}" class="text-book"><i class="zmdi zmdi-book"></i>{{ $otherBook->name }}</a>
+ </div>
+ @endif
+ @endforeach
</div>
</div>
+ </div>
@endif
-
</div>
- <form action="{{ $book->getUrl('/sort') }}" method="POST">
- {!! csrf_field() !!}
- <input type="hidden" name="_method" value="PUT">
- <input type="hidden" id="sort-tree-input" name="sort-tree">
- <div class="list">
- <a href="{{ $book->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
- <button class="button pos" type="submit">{{ trans('entities.books_sort_save') }}</button>
- </div>
- </form>
+
</div>
@endforeach
</table>
- <a href="{{ $model->getUrl() }}" class="button muted">{{ trans('common.cancel') }}</a>
- <button type="submit" class="button pos">{{ trans('entities.permissions_save') }}</button>
+ <div class="text-right">
+ <a href="{{ $model->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
+ <button type="submit" class="button pos">{{ trans('entities.permissions_save') }}</button>
+ </div>
</form>
\ No newline at end of file
<div class="col-sm-4">
@if(count($draftPages) > 0)
<div id="recent-drafts" class="card">
- <h3>{{ trans('entities.my_recent_drafts') }}</h3>
+ <h3><i class="zmdi zmdi-edit"></i> {{ trans('entities.my_recent_drafts') }}</h3>
@include('partials/entity-list', ['entities' => $draftPages, 'style' => 'compact'])
</div>
@endif
<div class="card">
- <h3>{{ trans('entities.' . ($signedIn ? 'my_recently_viewed' : 'books_recent')) }}</h3>
+ <h3><i class="zmdi zmdi-{{ $signedIn ? 'eye' : 'star-circle' }}"></i> {{ trans('entities.' . ($signedIn ? 'my_recently_viewed' : 'books_recent')) }}</h3>
@include('partials/entity-list', [
'entities' => $recents,
'style' => 'compact',
<div class="col-sm-4">
<div class="card">
- <h3><a class="no-color" href="{{ baseUrl("/pages/recently-updated") }}">{{ trans('entities.recently_updated_pages') }}</a></h3>
+ <h3><i class="zmdi zmdi-file"></i> <a class="no-color" href="{{ baseUrl("/pages/recently-updated") }}">{{ trans('entities.recently_updated_pages') }}</a></h3>
<div id="recently-updated-pages">
@include('partials/entity-list', [
'entities' => $recentlyUpdatedPages,
<div class="col-sm-4" id="recent-activity">
<div class="card">
- <h3>{{ trans('entities.recent_activity') }}</h3>
- <div class="body">
- @include('partials/activity-list', ['activity' => $activity])
- </div>
+ <h3><i class="zmdi zmdi-time"></i> {{ trans('entities.recent_activity') }}</h3>
+ @include('partials/activity-list', ['activity' => $activity])
</div>
</div>
<!DOCTYPE html>
-<html>
+<html class="shaded">
<head>
<title>{{ setting('app-name') }}</title>
{!! setting('app-custom-head') !!}
@endif
</head>
-<body class="@yield('body-class')" ng-app="bookStack">
+<body class="@yield('body-class')">
@include('partials.notifications')
<header id="header">
- <div class="container">
+ <div class="container fluid">
<div class="row">
<div class="col-sm-6">