]> BookStack Code Mirror - bookstack/commitdiff
Updated styles for auth and books views.
authorDan Brown <redacted>
Sat, 26 Aug 2017 12:24:55 +0000 (13:24 +0100)
committerDan Brown <redacted>
Sat, 26 Aug 2017 12:24:55 +0000 (13:24 +0100)
Also added sourcemaps to gulp sass build

24 files changed:
app/Http/Controllers/BookController.php
gulpfile.js
package.json
resources/assets/sass/_blocks.scss
resources/assets/sass/_buttons.scss
resources/assets/sass/_forms.scss
resources/assets/sass/_html.scss
resources/assets/sass/_lists.scss
resources/assets/sass/_text.scss
resources/assets/sass/styles.scss
resources/lang/en/entities.php
resources/views/auth/login.blade.php
resources/views/auth/register.blade.php
resources/views/books/create.blade.php
resources/views/books/delete.blade.php
resources/views/books/edit.blade.php
resources/views/books/form.blade.php
resources/views/books/index.blade.php
resources/views/books/restrictions.blade.php
resources/views/books/show.blade.php
resources/views/books/sort.blade.php
resources/views/form/restriction-form.blade.php
resources/views/home.blade.php
resources/views/public.blade.php

index 6283ac8d166d0e87410e3db9223efb4400ade0c3..5342ece6bafbc60be02d6053b1b4cbd36c14ee9f 100644 (file)
@@ -39,8 +39,14 @@ class BookController extends Controller
         $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
+        ]);
     }
 
     /**
index f851dd7d626753cf1c6623de50be48000e91fcff..c9f3f79561ca57ff7b06d987fcf2c9b234271a8b 100644 (file)
@@ -3,16 +3,20 @@
 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');
 
@@ -21,6 +25,7 @@ let isProduction = argv.production || process.env.NODE_ENV === 'production';
 
 gulp.task('styles', () => {
     let chain = gulp.src(['resources/assets/sass/**/*.scss'])
+        .pipe(sourcemaps.init())
         .pipe(plumber({
             errorHandler: function (error) {
                 console.log(error.message);
@@ -29,6 +34,7 @@ gulp.task('styles', () => {
         .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());
 });
 
index f447ec786a226cf4ee85cbce41d174ec6487333b..ed8338abbcae0e595a1b014593378cdc99d010d4 100644 (file)
@@ -36,6 +36,7 @@
     "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",
index 3eb60152d748b1a0ac7ae2a0f0a8470dabd7e99f..c5b850507b044cb9ed75b77a2e2b4fca8de03aa9 100644 (file)
     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
index 202eb935b3b2d45336d92aefb55b62d3cc7462fb..c07e6a37af8c157bc8f4bbd2655bc297ad0e7c68 100644 (file)
@@ -2,9 +2,10 @@
 @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;
   }
@@ -26,16 +27,16 @@ $button-border-radius: 2px;
   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);
 }
 
@@ -51,13 +52,39 @@ $button-border-radius: 2px;
     @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;
index d372359cc928c86d3cee5141f92478ca4e0c3681..94752f26eec03f2ac910734f9d8d5fa5aaee5750 100644 (file)
@@ -2,14 +2,13 @@
 .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;
   }
@@ -84,8 +83,9 @@ label {
   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 {
@@ -186,28 +186,15 @@ input:checked + .toggle-switch {
 }
 
 .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 {
index 9e47f43870ff0cdb1e4eadf9940584181450f2c1..65f05a71d5c69370707cca7b45b4510395ff8b05 100644 (file)
@@ -9,6 +9,9 @@ html {
   &.flexbox {
     overflow-y: hidden;
   }
+  &.shaded {
+    background-color: #F2F2F2;
+  }
 }
 
 body {
index 0cb58432cc2deebfcae54b13d5906ca6a5487dff..5d607ba16a9fe57d5eb7ba8b0f665eee91c0f6a6 100644 (file)
   .left + .right {
     margin-left: 30px + $-s;
   }
+  &:last-of-type {
+    border-bottom: 0;
+  }
 }
 
 ul.pagination {
@@ -291,9 +294,6 @@ ul.pagination {
   h4 {
     margin: 0;
   }
-  p {
-    margin: $-xs 0 0 0;
-  }
   hr {
     margin: 0;
   }
@@ -310,7 +310,7 @@ ul.pagination {
   }
 }
 
-.card .entity-list-item {
+.card .entity-list-item, .card .activity-list-item {
   padding-left: $-m;
   padding-right: $-m;
 }
@@ -323,9 +323,11 @@ ul.pagination {
   .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 {
index d38a5c5151c582c1f1f2fd62ba4219f47fa9e30b..2911a88c6ed482f266425227a22dab408a6cf34b 100644 (file)
@@ -2,7 +2,7 @@
  * Fonts
  */
 
-body, button, input, select, label {
+body, button, input, select, label, textarea {
   font-family: $text;
 }
 .Codemirror, pre, #markdown-editor-input, .editor-toolbar, .code-base {
index b912bf7ee3fcc7f1ea4e7f2c07c616af584907f0..3a6f9e06249e369e7241f541054b30031b8b162b 100644 (file)
@@ -217,22 +217,15 @@ $btt-size: 40px;
 }
 
 .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;
-  }
 }
 
 
index 43053df10f41d513561e7fef65f9c562aba52f6f..5b76559ea2ef29838ab264fa58da442517f08915 100644 (file)
@@ -73,11 +73,13 @@ return [
     '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',
index 706747b8b65eecca75056c33f85a89bcb1a7ebf4..dda7336457b184a02ef5c4aeac489ef388b8c273 100644 (file)
@@ -9,36 +9,38 @@
 @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>
 
index d5db4afa8a4987d94e28198d8e26d6edbe7e3fa5..7b319d30cc9b5d264a7eadf6e44e2c6d816347a2 100644 (file)
@@ -7,41 +7,42 @@
 @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>
 
index 2c629e699622053940849dc207121cb4a201b21d..385e6b9d7a4e868f4a5b42acf4585c287068c8cd 100644 (file)
@@ -1,12 +1,27 @@
-@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">&raquo;</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>&nbsp;</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
index 0b1e67d4acc7dc3dbd9c52dfcedf357a2c3d2444..9bcb1cfc68a63ae27db002f36f3ac108b51ee2fc 100644 (file)
@@ -1,28 +1,30 @@
-@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>&nbsp;</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
index 2419b68da807ab1a346293ee38ec694e67c1c25a..9d9c54fec6e521e909c6e5ce159c640c975dc3e5 100644 (file)
@@ -1,23 +1,24 @@
-@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>&nbsp;</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
index b1484d1296f3cf84ef6f2e59bf11d6af8a5c3c2d..84a30e7e9982a40e7e0c5ecfe9c1bf752c9693b3 100644 (file)
@@ -10,7 +10,7 @@
     @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
index 3c05f32a588b3b3ea7a1e2e8eab9b0e30ac44553..c22b4591f01c43f3efc126cf30dc40a8acc4e1d7 100644 (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')
index f558fdfce82c2952583cbfb90c9f943d79ed7fa5..f87625a67535a28ca70c0c61813394765694e754 100644 (file)
@@ -1,21 +1,20 @@
-@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
index 28cd08928ecf0c1e497dd3a9e9727a1f50749684..956dbaf164fffba4b171a5cc25933ccaf4c4ee0a 100644 (file)
@@ -71,9 +71,7 @@
     @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))
-                        &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
+                            &nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
                         @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>
index d96f502f167c9127b5ecdefaab4c8031c197dcb6..ebabb90ceae8496593e966858804a868777da544 100644 (file)
@@ -1,56 +1,59 @@
-@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>
 
index 7a1605197b7a6dd5896cd420fc8288e5b3daf686..c32fe005a087cb18384e8969e5300441b9e805a3 100644 (file)
@@ -27,6 +27,8 @@
         @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
index 6cd450a826403f2fc5e096b28937062f5ad3d76b..28be914144ac94c60eaca1a50ccc4b07eb46a84c 100644 (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',
@@ -33,7 +33,7 @@
 
             <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>
 
index ea2069b866162abdc345528295ead45234eda09c..87d4f1c88b22adeb0ae68604bba16be9c6c0c582 100644 (file)
@@ -1,5 +1,5 @@
 <!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">