]> BookStack Code Mirror - bookstack/commitdiff
Rolled out redesign across application
authorDan Brown <redacted>
Mon, 31 Aug 2015 10:43:28 +0000 (11:43 +0100)
committerDan Brown <redacted>
Mon, 31 Aug 2015 10:43:28 +0000 (11:43 +0100)
22 files changed:
app/Entity.php
public/images/bg-books.jpg [deleted file]
resources/assets/sass/_animations.scss
resources/assets/sass/_forms.scss
resources/assets/sass/_html.scss
resources/assets/sass/_text.scss
resources/assets/sass/_tinymce.scss
resources/assets/sass/_variables.scss
resources/assets/sass/styles.scss
resources/views/auth/login.blade.php
resources/views/base.blade.php
resources/views/books/index.blade.php
resources/views/books/show.blade.php
resources/views/chapters/show.blade.php
resources/views/pages/create.blade.php
resources/views/pages/edit.blade.php
resources/views/pages/form.blade.php
resources/views/pages/revisions.blade.php
resources/views/pages/show.blade.php
resources/views/pages/sidebar-tree-list.blade.php
resources/views/pages/sort.blade.php
resources/views/users/edit.blade.php

index 2e047cbdb90daed28558d5f41fd9d35d71e19e64..7c08cee905d5c0d8d89a4a2883b867b2f2c0db0f 100644 (file)
@@ -44,4 +44,21 @@ class Entity extends Model
         return $this->morphMany('Oxbow\Activity', 'entity')->orderBy('created_at', 'desc');
     }
 
+    /**
+     * Allows checking of the exact class, Used to check entity type.
+     * Cleaner method for is_a.
+     * @param $type
+     * @return bool
+     */
+    public function isA($type)
+    {
+        return $this->getName() === strtolower($type);
+    }
+
+    public function getName()
+    {
+        $fullClassName = get_class($this);
+        return strtolower(array_slice(explode('\\', $fullClassName), -1, 1)[0]);
+    }
+
 }
diff --git a/public/images/bg-books.jpg b/public/images/bg-books.jpg
deleted file mode 100644 (file)
index dbf77c6..0000000
Binary files a/public/images/bg-books.jpg and /dev/null differ
index 5d7c64562f8dea4dcae5af0a5723e6ab550c99f9..8d3336489e155354043a11a807260c0290a05ac6 100644 (file)
   100% {
     transform: translate3d(580px, 0, 0);
   }
+}
+
+@keyframes menuIn {
+  from { opacity: 0;transform: scale3d(0, 0, 1);}
+
+  to { opacity: 1; transform: scale3d(1, 1, 1);}
+}
+
+.anim.menuIn {
+  transform-origin: 0% 0%;
+  animation-name: menuIn;
+  animation-duration: 120ms;
+  animation-delay: 0s;
+  animation-timing-function: cubic-bezier(.62,.28,.23,.99);
 }
\ No newline at end of file
index 1fb24cb4a1439e62014a67c57229f24279ec0fdf..49716154fe6704e4bfd0a732fb5aaa746b52bb10 100644 (file)
@@ -80,7 +80,7 @@ input[type="text"], input[type="number"], input[type="email"], input[type="searc
 .title-input.page-title {
   font-size: 0.8em;
   .input {
-    border: 1px solid #BBB;
+    border: 0;
     margin-bottom: -1px;
   }
   input[type="text"] {
index d8587aaf1ecb3d36f8d0dda53c6df77e111d5668..0eb945e1cdab52e2f0b5d19231514785e427efec 100644 (file)
@@ -1,15 +1,16 @@
 * {
-       box-sizing: border-box;
+  box-sizing: border-box;
 }
 html {
-       background-color: #FFFFFF;
+  background-color: #FFFFFF;
+  height: 100%;
 }
 body {
-       font-family: $text;
-       font-size: $fs-m;
-       line-height: 1.6;
-       color: #616161;
-       -webkit-font-smoothing: antialiased;
+  font-family: $text;
+  font-size: $fs-m;
+  line-height: 1.6;
+  color: #616161;
+  -webkit-font-smoothing: antialiased;
 }
 
 table {
index c9eabf79209f917a75ae368083abecd561b690ba..6a63f1e5e33b45a449752d046332a274bd93565d 100644 (file)
@@ -192,6 +192,25 @@ p.secondary, p .secondary, span.secondary, .text-secondary {
   }
 }
 
+.text-book {
+  color: $color-book;
+  &:hover {
+    color: $color-book;
+  }
+}
+.text-page {
+  color: $color-page;
+  &:hover {
+    color: $color-page;
+  }
+}
+.text-chapter {
+  color: $color-chapter;
+  &:hover {
+    color: $color-chapter;
+  }
+}
+
 /*
  * Lists
  */
index 8a19f24ea8ab7cdfb5e14e0c5185f8fa82fc3528..44fb44c5628c7f2185568c1309b54be4391f321f 100644 (file)
 }
 
 
-
-.edit-area {
-  height: 100%;
-}
-
-.page-style.editor {
-  height: 100%;
-}
-
 .mce-tinymce {
   .mce-panel {
     background-color: #FFF;
   .mce-btn {
     background-color: #FFF;
   }
+}
+.mce-tinymce.mce-container.mce-panel {
+  height: 100%;
+  max-height: 100%;
+  flex: 1;
+  display: flex !important;
+  flex-direction: column;
+  align-items: stretch;
+  margin: 0 -1px;
+  > .mce-container-body {
+    flex: 1;
+    display: flex !important;
+    flex-direction: column;
+    align-items: stretch;
+    > .mce-edit-area {
+      flex: 1;
+      display: flex !important;
+      flex-direction: column;
+      align-items: stretch;
+      iframe {
+        flex: 1;
+      }
+    }
+  }
 }
\ No newline at end of file
index d886dcfca37f7165954127283a9db7cac7924808..d3b75cd11a24879baff4d5ef12f37ff877bcf3b8 100644 (file)
@@ -36,6 +36,11 @@ $secondary: #e27b41;
 $positive: #52A256;
 $negative: #D32F2F;
 
+// Item Colors
+$color-book: #009688;
+$color-chapter: #EF6C00;
+$color-page: $primary;
+
 // Text colours
 $text-dark: #444;
 $text-light: #EEE;
index 62d0e7ad1fccf1bc360667bafe4fb9db60a17d44..33b82e006e1734888f0c23df0f878b4b023138d0 100644 (file)
@@ -23,6 +23,11 @@ header {
   }
   border-bottom: 1px solid #DDD;
   //margin-bottom: $-l;
+  .links {
+    display: inline-block;
+    vertical-align: top;
+    margin-right: $-xl;
+  }
   .links a {
     display: inline-block;
     padding: $-l;
@@ -38,12 +43,19 @@ header {
     display: inline-block;
   }
   .avatar {
-    margin-top: $-l*0.8;
+    margin-top: (45px/2);
+    width: 30px;
+    height: 30px;
   }
   .user-name {
     vertical-align: top;
-    padding-top: $-l*1.1;
+    padding-top: 25.5px;
     padding-left: $-m;
+    display: inline-block;
+    cursor: pointer;
+    i {
+      padding-left: $-xs;
+    }
   }
 }
 
@@ -52,6 +64,40 @@ header {
   position: relative;
 }
 
+body.flexbox {
+  display: flex;
+  flex-direction: column;
+  align-items: stretch;
+  height: 100%;
+  min-height: 100%;
+  max-height: 100%;
+  overflow: hidden;
+  #content {
+    flex: 1;
+    display: flex;
+  }
+}
+
+.flex-fill {
+  display: flex;
+  align-items: stretch;
+  .flex, &.flex {
+    flex: 1;
+  }
+}
+
+.page-editor {
+  display: flex;
+  flex-direction: column;
+  align-items: stretch;
+  .faded-small {
+    height: auto;
+  }
+  .edit-area {
+    flex: 1;
+    flex-direction: column;
+  }
+}
 
 .logo {
   display: inline-block;
@@ -101,6 +147,9 @@ header {
   h3 {
     margin: $-l 0;
   }
+  a.chapter {
+    color: $color-chapter;
+  }
   .inset-list {
     display: block;
     overflow: hidden;
@@ -203,15 +252,9 @@ h1, h2, h3, h4, h5, h6 {
   }
 }
 
-.breadcrumbs {
-  margin-top: $-s;
-  i {
-    padding-right: 4px;
-  }
-  span.sep {
-    color: #aaa;
-    padding: 0 $-xs;
-  }
+.breadcrumbs span.sep {
+  color: #aaa;
+  padding: 0 $-xs;
 }
 
 .faded {
@@ -235,13 +278,20 @@ h1, h2, h3, h4, h5, h6 {
   }
 }
 
+.breadcrumbs a, .action-buttons a {
+  display: inline-block;
+  padding: $-s;
+  &:last-child {
+    padding-right: 0;
+  }
+}
 .action-buttons {
   text-align: right;
-  a {
-    display: inline-block;
-    padding: $-s;
-    &:last-child {
-      padding-right: 0;
+  &.text-left {
+    text-align: left;
+    a {
+      padding-right: $-m;
+      padding-left: 0;
     }
   }
 }
@@ -253,15 +303,19 @@ h1, h2, h3, h4, h5, h6 {
     padding-right: $-s;
   }
 }
+
+
 // Sidebar list
 .book-tree .sidebar-page-list {
   list-style: none;
   margin: 0;
   margin-top: $-xl;
-  border-left: 5px solid #7BD06E;
+  border-left: 5px solid $color-book;
   li a {
     display: block;
     border-bottom: none;
+    padding-left: $-s;
+    padding: $-xs 0 $-xs $-s;
     &:hover {
       background-color: rgba(255, 255, 255, 0.2);
       text-decoration: none;
@@ -277,23 +331,20 @@ h1, h2, h3, h4, h5, h6 {
     list-style: none;
     margin: 0;
   }
-  ul li a {
-    padding-left: $-xl;
-  }
   .book {
-    color: #7BD06E !important;
+    color: $color-book !important;
     &.selected {
-      background-color: rgba(123, 208, 110, 0.29);
+      background-color: rgba($color-book, 0.29);
     }
   }
   .chapter {
-    color: #D2A64B !important;
+    color: $color-chapter !important;
     &.selected {
-      background-color: rgba(239, 169, 42, 0.27);
+      background-color: rgba($color-chapter, 0.12);
     }
   }
   .list-item-chapter {
-    border-left: 5px solid #D2A64B;
+    border-left: 5px solid $color-chapter;
     margin: 10px 10px;
     display: block;
   }
@@ -301,35 +352,42 @@ h1, h2, h3, h4, h5, h6 {
     border-bottom: none;
   }
   .page {
-    color: #4599DC !important;
-    border-left: 5px solid #4599DC;
+    color: $color-page !important;
+    border-left: 5px solid $color-page;
     margin: 10px 10px;
     border-bottom: none;
     &.selected {
-      background-color: rgba(118, 164, 202, 0.41);
+      background-color: rgba($color-page, 0.1);
     }
   }
 }
 
+// Sortable Lists
 .sortable-page-list, .sortable-page-list ul {
   list-style: none;
-  //background-color: rgba(0, 0, 0, 0.04);
 }
 .sortable-page-list {
   margin-left: 0;
+  box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1);
   ul {
     margin-bottom: 0;
     margin-top: 0;
+    box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1);
   }
   li {
-    border-bottom: 1px solid #BBB;
-    border-left: 1px solid #BBB;
-    border-right: 1px solid #BBB;
+    border: 1px solid #DDD;
     padding: $-xs $-s;
+    margin-top: -1px;
+    min-height: 38px;
+    &.text-chapter {
+      border-left: 2px solid $color-chapter;
+    }
+    &.text-page {
+      border-left: 2px solid $color-page;
+    }
   }
   li:first-child {
     margin-top: $-xs;
-    border-top: 1px solid #BBB;
   }
 }
 
@@ -351,61 +409,14 @@ body.dragging, body.dragging * {
   position: absolute;
 }
 
-.image-cover {
-  height: 100vh;
-  width: 100%;
-  overflow: hidden;
-  background-size: cover;
-  &.login {
-    background-image: url('/images/bg-books.jpg');
-  }
-}
-
-.sidebar-bg {
-  background-image: url('/images/bg-books.jpg');
-  background-size: cover;
-  background-position: 50% 50%;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  z-index: -1;
-  &:after{
-    content: '';
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    z-index: -1;
-    background-color: rgba(0,0,0,0.85);
-    display: block;
-  }
-}
-
-.image-cover #sidebar {
-  width: auto;
-  border: 0;
-  background-color: rgba(0, 0, 0, 0.38);
-}
-
 .center-box {
-  margin-top: 15vh;
+  margin: 15vh auto 0 auto;
   padding: $-m $-xxl $-xl*2 $-xxl;
   max-width: 346px;
-  h1, label {
-    color: #EEE;
-  }
-  h1 {
-    margin-bottom: $-m;
-  }
-  .button {
-    margin-top: $-xl;
-  }
-  input {
-    background-color: transparent;
-    color: #EEE;
+  &.login {
+    background-color: #EEE;
+    box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.1);
+    border: 1px solid #DDD;
   }
 }
 
@@ -470,4 +481,44 @@ body.dragging, body.dragging * {
       border-bottom: 2px solid $primary;
     }
   }
+}
+
+.dropdown-container {
+  display: inline-block;
+  vertical-align: top;
+  position: relative;
+}
+ul.dropdown {
+  display: none;
+  position: absolute;
+  z-index: 999;
+  top: 0;
+  left: 0;
+  margin: $-m 0;
+  background-color: #FFFFFF;
+  list-style: none;
+  box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.1);
+  border-radius: 1px;
+  border: 1px solid #EEE;
+  min-width: 180px;
+  padding: $-xs 0;
+  color: #555;
+  a {
+    display: block;
+    padding: $-xs $-m;
+    color: #555;
+    &:hover {
+      text-decoration: none;
+      background-color: #EEE;
+    }
+    i {
+      margin-right: $-m;
+      padding-right: 0;
+      display: inline;
+      width: 22px;
+    }
+  }
+  li.border-bottom {
+    border-bottom: 1px solid #DDD;
+  }
 }
\ No newline at end of file
index dbf6db87b241666e99eeee47872a4575c4b54841..5d738a7adc4d17cd9488a4c31e36026fcbcbd6d3 100644 (file)
@@ -1,42 +1,28 @@
 @extends('public')
 
-@section('body-class', 'image-cover login')
-
 @section('sidebar')
 
+    <div class="center-box">
+        <h1>Log In</h1>
 
-    {{--<div class="row faded-small">--}}
-        {{--<div class="col-md-6"></div>--}}
-        {{--<div class="col-md-6 faded">--}}
-            {{--<div class="action-buttons">--}}
-                {{--<a href="/books/create" class="text-pos"><i class="zmdi zmdi-plus"></i>Add new book</a>--}}
-            {{--</div>--}}
-        {{--</div>--}}
-    {{--</div>--}}
-
-    <div class="text-center">
-        <div class="center-box text-left">
-            <h1>Login</h1>
-
-            <form action="/login" method="POST">
-                {!! csrf_field() !!}
+        <form action="/login" method="POST">
+            {!! csrf_field() !!}
 
-                <div class="form-group">
-                    <label for="email">Email</label>
-                    @include('form/text', ['name' => 'email'])
-                </div>
+            <div class="form-group">
+                <label for="email">Email</label>
+                @include('form/text', ['name' => 'email'])
+            </div>
 
-                <div class="form-group">
-                    <label for="password">Password</label>
-                    @include('form/password', ['name' => 'password'])
-                    <span class="block small"><a href="/password/email">Forgot Password?</a></span>
-                </div>
+            <div class="form-group">
+                <label for="password">Password</label>
+                @include('form/password', ['name' => 'password'])
+                <span class="block small"><a href="/password/email">Forgot Password?</a></span>
+            </div>
 
-                <div class="from-group">
-                    <button class="button block pos">Login</button>
-                </div>
-            </form>
-        </div>
+            <div class="from-group">
+                <button class="button block pos">Sign In</button>
+            </div>
+        </form>
     </div>
 
 @stop
\ No newline at end of file
index 0e787d2ca768b3bcc8947e1040723f99b9502bfc..242c5b5120913c084d35b5e936db0440e3cfff4b 100644 (file)
@@ -35,7 +35,7 @@
 
     @yield('head')
 </head>
-<body>
+<body class="@yield('body-class')">
 
     @if(Session::has('success'))
         <div class="notification anim pos">
     <header id="header">
         <div class="container">
             <div class="row">
-                <div class="col-md-4">
-                    <a href="/" class="logo">{{ Setting::get('app-name', 'BookStack') }}</a>
-                </div>
                 <div class="col-md-3">
-                    <div class="search-box text-center" style="display: none">
-                        <form action="/pages/search/all" id="search-form" method="GET" style="display: none;">
-                            <input type="text" placeholder="Search all pages..." name="term" id="search-input">
-                        </form>
-                    </div>
-                    <img class="avatar" src="{{Auth::user()->getAvatar(30)}}" alt="{{ Auth::user()->name }}">
-                <span class="user-name">
-                    {{ Auth::user()->name }}
-                </span>
+                    <a href="/" class="logo">{{ Setting::get('app-name', 'BookStack') }}</a>
                 </div>
-                <div class="col-md-5">
-                    <div class="float right links">
-                        <a href="/search"><i class="zmdi zmdi-search"></i></a>
-                        <a href="/books"><i class="zmdi zmdi-book"></i>Books</a>
-                        <a href="/users"><i class="zmdi zmdi-accounts"></i>Users</a>
-                        <a href="/logout"><i class="zmdi zmdi-run zmdi-hc-flip-horizontal"></i>Logout</a>
+                <div class="col-md-9">
+                    <div class="float right">
+                        <div class="links text-center">
+                            <a href="/search"><i class="zmdi zmdi-search"></i></a>
+                            <a href="/books"><i class="zmdi zmdi-book"></i>Books</a>
+                            @if($currentUser->can('settings-update'))
+                                <a href="/settings"><i class="zmdi zmdi-settings"></i>Settings</a>
+                            @endif
+                        </div>
+                        <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
+                        <div class="dropdown-container" data-dropdown>
+                            <span class="user-name" data-dropdown-toggle>
+                                {{ $currentUser->name }} <i class="zmdi zmdi-caret-down"></i>
+                            </span>
+                            <ul class="dropdown">
+                                <li>
+                                    <a href="/users/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-lg"></i>Edit Profile</a>
+                                </li>
+                                <li>
+                                    <a href="/logout" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-lg"></i>Logout</a>
+                                </li>
+                            </ul>
+                        </div>
+
                     </div>
                 </div>
             </div>
         </div>
-        {{--@if(isset($book) && isset($current) && !isset($books))--}}
-            {{--<div class="book-tree">--}}
-                {{--@include('pages/sidebar-tree-list', ['book' => $book])--}}
-            {{--</div>--}}
-        {{--@endif--}}
-        @yield('sidebar')
     </header>
 
     <section id="content">
 
 @yield('bottom')
     <script>
-        $('.notification').click(function() {
-            $(this).fadeOut(100);
+        $(function() {
+
+            $('.notification').click(function() {
+                $(this).fadeOut(100);
+            });
+
+            // Dropdown toggles
+            $('[data-dropdown-toggle]').click(function() {
+                var toggleButton = $(this);
+                var container = toggleButton.closest('[data-dropdown]');
+                var dropdown = container.find('.dropdown');
+                dropdown.show().addClass('anim menuIn');
+
+                container.mouseleave(function() {
+                   dropdown.hide();
+                    dropdown.removeClass('anim menuIn');
+                });
+            });
+
         });
     </script>
 </body>
index e0b110f4f2bc91777362ab11c46215f80ac6707d..aec475a51d3cd639f2b7455d560b299c5d6e418e 100644 (file)
@@ -2,32 +2,32 @@
 
 @section('content')
 
-
-<div class="row faded-small">
-    <div class="col-md-6"></div>
-    <div class="col-md-6 faded">
-        <div class="action-buttons">
-            @if($currentUser->can('book-create'))
-                <a href="/books/create" class="text-pos"><i class="zmdi zmdi-plus"></i>Add new book</a>
-            @endif
+    <div class="faded-small">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-6"></div>
+                <div class="col-md-6 faded">
+                    <div class="action-buttons">
+                        @if($currentUser->can('book-create'))
+                            <a href="/books/create" class="text-pos"><i class="zmdi zmdi-plus"></i>Add new book</a>
+                        @endif
+                    </div>
+                </div>
+            </div>
         </div>
     </div>
-</div>
-
-
-<div class="page-content">
-    <h1>Books</h1>
-    @foreach($books as $book)
-        <div class="book">
-            <h3><a href="{{$book->getUrl()}}">{{$book->name}}</a></h3>
-            <p class="text-muted">{{$book->description}}</p>
-        </div>
-        <hr>
-    @endforeach
-</div>
-
 
 
 
+    <div class="page-content">
+        <h1>Books</h1>
+        @foreach($books as $book)
+            <div class="book">
+                <h3><a href="{{$book->getUrl()}}">{{$book->name}}</a></h3>
+                <p class="text-muted">{{$book->description}}</p>
+            </div>
+            <hr>
+        @endforeach
+    </div>
 
 @stop
\ No newline at end of file
index 88db4b18de741d10480e414f7667f905ddaa9091..cc915f39c7110bd7e6bff8cb4c2cc989b6769833 100644 (file)
                     @foreach($book->children() as $childElement)
                         <div class="book-child">
                             <h3>
-                                <a href="{{ $childElement->getUrl() }}">
-                                    @if(is_a($childElement, 'Oxbow\Chapter'))
-                                        <i class="zmdi zmdi-collection-bookmark chapter-toggle"></i>
-                                    @else
-                                        <i class="zmdi zmdi-file-text"></i>
-                                    @endif
-                                    {{ $childElement->name }}
+                                <a href="{{ $childElement->getUrl() }}" class="{{ $childElement->getName() }}">
+                                    <i class="zmdi {{ $childElement->isA('chapter') ? 'zmdi-collection-bookmark chapter-toggle':'zmdi-file-text'}}"></i>{{ $childElement->name }}
                                 </a>
                             </h3>
                             <p class="text-muted">
                                 {{$childElement->getExcerpt()}}
                             </p>
 
-                            @if(is_a($childElement, 'Oxbow\Chapter') && count($childElement->pages) > 0)
+                            @if($childElement->isA('chapter') && count($childElement->pages) > 0)
                                 <div class="inset-list">
                                     @foreach($childElement->pages as $page)
                                         <h4><a href="{{$page->getUrl()}}"><i class="zmdi zmdi-file-text"></i>{{$page->name}}</a></h4>
index 6abc95e5c0f63685f05255c19b6a75558ae7f92c..56b94649722fb0b3e968720c1b930a3db83f263d 100644 (file)
@@ -2,59 +2,74 @@
 
 @section('content')
 
-    <div class="row faded-small">
-        <div class="col-md-6 faded">
-            <div class="breadcrumbs padded-horizontal">
-                <a href="{{$book->getUrl()}}"><i class="zmdi zmdi-book"></i>{{ $book->name }}</a>
-            </div>
-        </div>
-        <div class="col-md-6 faded">
-            <div class="action-buttons">
-                @if($currentUser->can('chapter-create'))
-                    <a href="{{$chapter->getUrl() . '/create-page'}}" class="text-pos"><i class="zmdi zmdi-plus"></i>New Page</a>
-                @endif
-                @if($currentUser->can('chapter-update'))
-                    <a href="{{$chapter->getUrl() . '/edit'}}" class="text-primary"><i class="zmdi zmdi-edit"></i>Edit</a>
-                @endif
-                @if($currentUser->can('chapter-delete'))
-                    <a href="{{$chapter->getUrl() . '/delete'}}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a>
-                @endif
+    <div class="faded-small">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-4 faded">
+                    <div class="breadcrumbs">
+                        <a href="{{$book->getUrl()}}"><i class="zmdi zmdi-book"></i>{{ $book->name }}</a>
+                    </div>
+                </div>
+                <div class="col-md-8 faded">
+                    <div class="action-buttons">
+                        @if($currentUser->can('chapter-create'))
+                            <a href="{{$chapter->getUrl() . '/create-page'}}" class="text-pos"><i class="zmdi zmdi-plus"></i>New Page</a>
+                        @endif
+                        @if($currentUser->can('chapter-update'))
+                            <a href="{{$chapter->getUrl() . '/edit'}}" class="text-primary"><i class="zmdi zmdi-edit"></i>Edit</a>
+                        @endif
+                        @if($currentUser->can('chapter-delete'))
+                            <a href="{{$chapter->getUrl() . '/delete'}}" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete</a>
+                        @endif
+                    </div>
+                </div>
             </div>
         </div>
     </div>
 
 
-    <div class="page-content">
-        <h1>{{ $chapter->name }}</h1>
-        <p class="text-muted">{{ $chapter->description }}</p>
-
-        @if(count($chapter->pages) > 0)
-            <div class="page-list">
-                <hr>
-                @foreach($chapter->pages as $page)
-                    <div >
-                        <h3>
-                            <a href="{{ $page->getUrl() }}">
-                                <i class="zmdi zmdi-file-text"></i>{{ $page->name }}
-                            </a>
-                        </h3>
-                        <p class="text-muted">
-                            {{$page->getExcerpt(180)}}
-                        </p>
-                    </div>
-                    <hr>
-                @endforeach
+    <div class="container">
+        <div class="row">
+            <div class="col-md-3">
+                @include('pages/sidebar-tree-list', ['book' => $book])
             </div>
-        @else
-            <p class="text-muted">No pages are in this chapter</p>
-        @endif
-
-        <p class="text-muted small">
-            Created {{$chapter->created_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->createdBy->name}} @endif
-            <br>
-            Last Updated {{$chapter->updated_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->updatedBy->name}} @endif
-        </p>
+            <div class="col-md-9">
+                <div class="page-content">
+                    <h1>{{ $chapter->name }}</h1>
+                    <p class="text-muted">{{ $chapter->description }}</p>
+
+                    @if(count($chapter->pages) > 0)
+                        <div class="page-list">
+                            <hr>
+                            @foreach($chapter->pages as $page)
+                                <div >
+                                    <h3>
+                                        <a href="{{ $page->getUrl() }}">
+                                            <i class="zmdi zmdi-file-text"></i>{{ $page->name }}
+                                        </a>
+                                    </h3>
+                                    <p class="text-muted">
+                                        {{$page->getExcerpt(180)}}
+                                    </p>
+                                </div>
+                                <hr>
+                            @endforeach
+                        </div>
+                    @else
+                        <p class="text-muted">No pages are in this chapter</p>
+                    @endif
+
+                    <p class="text-muted small">
+                        Created {{$chapter->created_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->createdBy->name}} @endif
+                        <br>
+                        Last Updated {{$chapter->updated_at->diffForHumans()}} @if($chapter->createdBy) by {{$chapter->updatedBy->name}} @endif
+                    </p>
+                </div>
+            </div>
+        </div>
     </div>
 
 
+
+
 @stop
index 4d1443fcae7e54442a4fc424a363a8066223424d..619eadfa6433b7f9826dbe54b073379e8436b1c4 100644 (file)
@@ -4,13 +4,18 @@
     <script src="/bower/tinymce-dist/tinymce.jquery.min.js"></script>
 @stop
 
+@section('body-class', 'flexbox')
+
 @section('content')
-    <form action="{{$book->getUrl() . '/page'}}" method="POST">
-        @include('pages/form')
-        @if($chapter)
-            <input type="hidden" name="chapter" value="{{$chapter->id}}">
-        @endif
-    </form>
+
+    <div class="flex-fill flex">
+        <form action="{{$book->getUrl() . '/page'}}" method="POST" class="flex flex-fill">
+            @include('pages/form')
+            @if($chapter)
+                <input type="hidden" name="chapter" value="{{$chapter->id}}">
+            @endif
+        </form>
+    </div>
 @stop
 
 @section('bottom')
index 987456e34639cdfcd4f1941bd905b20a1b615bd8..c69df7d0253c9a2c806cb458a6ed58e801a8c704 100644 (file)
@@ -4,12 +4,16 @@
     <script src="/bower/tinymce-dist/tinymce.jquery.min.js"></script>
 @stop
 
+@section('body-class', 'flexbox')
+
 @section('content')
 
-    <form action="{{$page->getUrl()}}" method="POST">
-        <input type="hidden" name="_method" value="PUT">
-        @include('pages/form', ['model' => $page])
-    </form>
+    <div class="flex-fill flex">
+        <form action="{{$page->getUrl()}}" method="POST" class="flex flex-fill">
+            <input type="hidden" name="_method" value="PUT">
+            @include('pages/form', ['model' => $page])
+        </form>
+    </div>
 
 @stop
 
index d81b2a2c4dcc6fc9eef1fabc6596ceecb0d9db0f..ed23a9fc2901be05688f84235d58aefd9e3719c7 100644 (file)
@@ -1,25 +1,39 @@
 
 
 
-<div class="page-style editor">
+<div class="page-editor flex-fill flex">
 
     {{ csrf_field() }}
+    <div class="faded-small">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-4 faded">
+                    <div class="action-buttons text-left">
+                        <a onclick="$('body>header').slideToggle();" class="text-primary"><i class="zmdi zmdi-swap-vertical"></i>Toggle Header</a>
+                    </div>
+                </div>
+                <div class="col-md-8 faded">
+                    <div class="action-buttons">
+                        <a onclick="window.history.back();" class="text-primary"><i class="zmdi zmdi-close"></i>Cancel</a>
+                        <a onclick="$(this).closest('form').submit();" type="submit" class="text-pos"><i class="zmdi zmdi-floppy"></i>Save Page</a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
     <div class="title-input page-title clearfix">
         <div class="input">
             @include('form/text', ['name' => 'name', 'placeholder' => 'Page Title'])
         </div>
     </div>
-    <div class="edit-area">
+    <div class="edit-area flex-fill flex">
         <textarea id="html" name="html" rows="5"
                   @if($errors->has('html')) class="neg" @endif>@if(isset($model) || old('html')){{htmlspecialchars( old('html') ? old('html') : $model->html)}}@endif</textarea>
         @if($errors->has('html'))
             <div class="text-neg text-small">{{ $errors->first('html') }}</div>
         @endif
     </div>
-    <div class="margin-top large">
-        <a onclick="window.history.back();" class="button muted">Cancel</a>
-        <button type="submit" class="button pos">Save Page</button>
-    </div>
 </div>
 
 
@@ -40,7 +54,7 @@
             relative_urls: false,
             statusbar: false,
             menubar: false,
-            height: 700,
+            //height: 700,
             extended_valid_elements: 'pre[*]',
             plugins: "image table textcolor paste link imagetools fullscreen code",
             toolbar: "code undo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | table image link | fullscreen",
index 74e66f5e21493160ce8e53c101e4daab3f69998a..ac34906f10ac7d57deac3170a24e613396e8491b 100644 (file)
@@ -2,16 +2,21 @@
 
 @section('content')
 
-    <div class="row faded-small">
-        <div class="col-md-6 faded">
-            <div class="breadcrumbs padded-horizontal">
-                <a href="{{$page->getUrl()}}" class="text-primary"><i class="zmdi zmdi-arrow-left"></i>Back to page</a>
+    <div class="faded-small">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-6 faded">
+                    <div class="breadcrumbs">
+                        <a href="{{$page->getUrl()}}" class="text-primary"><i class="zmdi zmdi-arrow-left"></i>Back to page</a>
+                    </div>
+                </div>
+                <div class="col-md-6 faded">
+                </div>
             </div>
         </div>
-        <div class="col-md-6 faded">
-        </div>
     </div>
 
+
     <div class="page-content">
         <h1>Page Revisions <span class="subheader">For "{{ $page->name }}"</span></h1>
 
index 93387384dbfa51e57c820e1d200c4fbccec45b8a..46bd1714ca8d595804923464c659f900c8d414b6 100644 (file)
@@ -7,10 +7,10 @@
             <div class="row">
                 <div class="col-md-6 faded">
                     <div class="breadcrumbs">
-                        <a href="{{$book->getUrl()}}"><i class="zmdi zmdi-book"></i>{{ $book->name }}</a>
+                        <a href="{{$book->getUrl()}}" class="text-book"><i class="zmdi zmdi-book"></i>{{ $book->name }}</a>
                         @if($page->hasChapter())
                             <span class="sep">&raquo;</span>
-                            <a href="{{ $page->chapter->getUrl() }}">
+                            <a href="{{ $page->chapter->getUrl() }}" class="text-chapter">
                                 <i class="zmdi zmdi-collection-bookmark"></i>
                                 {{$page->chapter->name}}
                             </a>
     </div>
 
 
-    <div class="side-nav faded">
-        <h4>Page Navigation</h4>
-        <ul class="page-nav-list">
-        </ul>
+    <div class="container">
+        <div class="row">
+            <div class="col-md-3">
+                @include('pages/sidebar-tree-list', ['book' => $book])
+                <div class="side-nav faded">
+                    <h4>Page Navigation</h4>
+                    <ul class="page-nav-list">
+                    </ul>
+                </div>
+            </div>
+            <div class="col-md-9">
+                <div class="page-content">
+                    @include('pages/page-display')
+                    <hr>
+                    <p class="text-muted small">
+                        Created {{$page->created_at->diffForHumans()}} @if($page->createdBy) by {{$page->createdBy->name}} @endif
+                        <br>
+                        Last Updated {{$page->updated_at->diffForHumans()}} @if($page->createdBy) by {{$page->updatedBy->name}} @endif
+                    </p>
+                </div>
+            </div>
+        </div>
     </div>
 
 
-    <div class="page-content">
-        @include('pages/page-display')
-        <hr>
-        <p class="text-muted small">
-            Created {{$page->created_at->diffForHumans()}} @if($page->createdBy) by {{$page->createdBy->name}} @endif
-            <br>
-            Last Updated {{$page->updated_at->diffForHumans()}} @if($page->createdBy) by {{$page->updatedBy->name}} @endif
-        </p>
-    </div>
+
 
 
     <script>
index 505d916d5e89edcee1beced5066ba3e7abdde41a..7783431d67ca541a9f52217045f785d95433b043 100644 (file)
@@ -1,28 +1,25 @@
 
-<ul class="sidebar-page-list menu">
-    <li class="book-header"><a href="{{$book->getUrl()}}" class="book {{ $current->matches($book)? 'selected' : '' }}"><i class="zmdi zmdi-book"></i>{{$book->name}}</a></li>
-    @foreach($book->children() as $bookChild)
-        <li class="list-item-{{is_a($bookChild, 'Oxbow\Chapter') ? 'chapter' : 'page' }}">
-            <a href="{{$bookChild->getUrl()}}" class="{{is_a($bookChild, 'Oxbow\Chapter') ? 'chapter' : 'page' }} {{ $current->matches($bookChild)? 'selected' : '' }}">
-                @if(is_a($bookChild, 'Oxbow\Chapter'))
-                    <i class="zmdi zmdi-collection-bookmark chapter-toggle"></i>
-                @else
-                    <i class="zmdi zmdi-file-text"></i>
-                @endif
-                {{ $bookChild->name }}
-            </a>
+<div class="book-tree">
+    <ul class="sidebar-page-list menu">
+        <li class="book-header"><a href="{{$book->getUrl()}}" class="book {{ $current->matches($book)? 'selected' : '' }}"><i class="zmdi zmdi-book"></i>{{$book->name}}</a></li>
+        @foreach($book->children() as $bookChild)
+            <li class="list-item-{{ $bookChild->getName() }}">
+                <a href="{{$bookChild->getUrl()}}" class="{{ $bookChild->getName() }} {{ $current->matches($bookChild)? 'selected' : '' }}">
+                    @if($bookChild->isA('chapter'))<i class="zmdi zmdi-collection-bookmark chapter-toggle"></i>@else <i class="zmdi zmdi-file-text"></i>@endif{{ $bookChild->name }}
+                </a>
 
-            @if(is_a($bookChild, 'Oxbow\Chapter') && count($bookChild->pages) > 0)
-                <ul class="menu">
-                    @foreach($bookChild->pages as $childPage)
-                        <li class="list-item-page">
-                            <a href="{{$childPage->getUrl()}}" class="page {{ $current->matches($childPage)? 'selected' : '' }}">
-                                <i class="zmdi zmdi-file-text"></i> {{ $childPage->name }}
-                            </a>
-                        </li>
-                    @endforeach
-                </ul>
-            @endif
-        </li>
-    @endforeach
-</ul>
\ No newline at end of file
+                @if($bookChild->isA('chapter') && count($bookChild->pages) > 0)
+                    <ul class="menu">
+                        @foreach($bookChild->pages as $childPage)
+                            <li class="list-item-page">
+                                <a href="{{$childPage->getUrl()}}" class="page {{ $current->matches($childPage)? 'selected' : '' }}">
+                                    <i class="zmdi zmdi-file-text"></i> {{ $childPage->name }}
+                                </a>
+                            </li>
+                        @endforeach
+                    </ul>
+                @endif
+            </li>
+        @endforeach
+    </ul>
+</div>
index 4511a8508acc25e1293a26ddfed61f56284cdaff..0a3e1ccccd0e99b68895b58f4bac369ffc816ea2 100644 (file)
@@ -3,16 +3,17 @@
 @section('content')
 
     <div class="page-content">
-        <h1>{{ $book->name }} <span class="subheader">Sort Pages</span></h1>
+        <h1>Sorting Pages & Chapters<span class="subheader">For {{ $book->name }}</span></h1>
 
         <ul class="sortable-page-list" id="sort-list">
             @foreach($book->children() as $bookChild)
-                <li data-id="{{$bookChild->id}}" data-type="{{ is_a($bookChild, 'Oxbow\Chapter') ? 'chapter' : 'page' }}">
-                    {{ $bookChild->name }}
-                    @if(is_a($bookChild, 'Oxbow\Chapter'))
+                <li data-id="{{$bookChild->id}}" data-type="{{ $bookChild->getName() }}" class="text-{{ $bookChild->getName() }}">
+                    <i class="zmdi {{ $bookChild->isA('chapter') ? 'zmdi-collection-bookmark':'zmdi-file-text'}}"></i>{{ $bookChild->name }}
+                    @if($bookChild->isA('chapter'))
                         <ul>
                             @foreach($bookChild->pages as $page)
-                                <li data-id="{{$page->id}}" data-type="page">
+                                <li data-id="{{$page->id}}" class="text-page" data-type="page">
+                                    <i class="zmdi zmdi-file-text"></i>
                                     {{ $page->name }}
                                 </li>
                             @endforeach
@@ -28,7 +29,7 @@
             <input type="hidden" id="sort-tree-input" name="sort-tree">
             <div class="list">
                 <a href="{{$book->getUrl()}}" class="button muted">Cancel</a>
-                <button class="button pos" type="submit">Save Ordering</button>
+                <button class="button pos" type="submit">Save Order</button>
             </div>
         </form>
 
index a94582b889f5864830e753bad64b3ede95eb0605..79ad4e0fc2f457134f7db64a8ea47198848e0a1c 100644 (file)
@@ -3,56 +3,60 @@
 
 @section('content')
 
-    <div class="row faded-small">
-        <div class="col-md-6"></div>
-        <div class="col-md-6 faded">
-            <div class="action-buttons">
-                <a href="/users/{{$user->id}}/delete" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete User</a>
+    <div class="faded-small">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-6"></div>
+                <div class="col-md-6 faded">
+                    <div class="action-buttons">
+                        <a href="/users/{{$user->id}}/delete" class="text-neg"><i class="zmdi zmdi-delete"></i>Delete User</a>
+                    </div>
+                </div>
             </div>
         </div>
     </div>
 
-    <div class="row">
-        <div class="page-content">
 
-            <div class="row">
-                <div class="col-md-6">
-                    <h1>Edit {{ $user->id === $currentUser->id ? 'Profile' : 'User' }}</h1>
-                    <form action="/users/{{$user->id}}" method="post">
-                        {!! csrf_field() !!}
-                        <input type="hidden" name="_method" value="put">
-                        @include('users/form', ['model' => $user])
-                    </form>
-                </div>
-                <div class="col-md-6">
-                    <h1>&nbsp;</h1>
-                    <div class="shaded padded margin-top">
-                        <p>
-                            <img class="avatar" src="{{ $user->getAvatar(80) }}" alt="{{ $user->name }}">
-                        </p>
-                        <p class="text-muted">You can change your profile picture at <a href="http://en.gravatar.com/">Gravatar</a>.</p>
-                    </div>
+
+    <div class="page-content">
+
+        <div class="row">
+            <div class="col-md-6">
+                <h1>Edit {{ $user->id === $currentUser->id ? 'Profile' : 'User' }}</h1>
+                <form action="/users/{{$user->id}}" method="post">
+                    {!! csrf_field() !!}
+                    <input type="hidden" name="_method" value="put">
+                    @include('users/form', ['model' => $user])
+                </form>
+            </div>
+            <div class="col-md-6">
+                <h1>&nbsp;</h1>
+                <div class="shaded padded margin-top">
+                    <p>
+                        <img class="avatar" src="{{ $user->getAvatar(80) }}" alt="{{ $user->name }}">
+                    </p>
+                    <p class="text-muted">You can change your profile picture at <a href="http://en.gravatar.com/">Gravatar</a>.</p>
                 </div>
             </div>
+        </div>
 
-            <hr class="margin-top large">
+        <hr class="margin-top large">
 
-            <div class="row">
-                <div class="col-md-12">
-                    <h3>Permissions</h3>
-                    <p>User Role: <strong>{{$user->role->display_name}}</strong>.</p>
-                    <ul class="text-muted">
-                        @foreach($user->role->permissions as $permission)
-                            <li>
-                                {{ $permission->display_name }}
-                            </li>
-                        @endforeach
-                    </ul>
+        <div class="row">
+            <div class="col-md-12">
+                <h3>Permissions</h3>
+                <p>User Role: <strong>{{$user->role->display_name}}</strong>.</p>
+                <ul class="text-muted">
+                    @foreach($user->role->permissions as $permission)
+                        <li>
+                            {{ $permission->display_name }}
+                        </li>
+                    @endforeach
+                </ul>
 
-                </div>
             </div>
-
         </div>
+
     </div>