diff --git a/app/Http/Controllers/BookController.php b/app/Http/Controllers/BookController.php
index 3390b41c0..7f743db41 100644
--- a/app/Http/Controllers/BookController.php
+++ b/app/Http/Controllers/BookController.php
@@ -1,13 +1,9 @@
-<?php
-
-namespace BookStack\Http\Controllers;
+<?php namespace BookStack\Http\Controllers;
 
 use Activity;
 use BookStack\Repos\UserRepo;
 use Illuminate\Http\Request;
-
 use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Str;
 use BookStack\Http\Requests;
 use BookStack\Repos\BookRepo;
 use BookStack\Repos\ChapterRepo;
@@ -40,7 +36,6 @@ class BookController extends Controller
 
     /**
      * Display a listing of the book.
-     *
      * @return Response
      */
     public function index()
@@ -54,7 +49,6 @@ class BookController extends Controller
 
     /**
      * Show the form for creating a new book.
-     *
      * @return Response
      */
     public function create()
@@ -88,7 +82,6 @@ class BookController extends Controller
 
     /**
      * Display the specified book.
-     *
      * @param $slug
      * @return Response
      */
@@ -103,7 +96,6 @@ class BookController extends Controller
 
     /**
      * Show the form for editing the specified book.
-     *
      * @param $slug
      * @return Response
      */
@@ -117,7 +109,6 @@ class BookController extends Controller
 
     /**
      * Update the specified book in storage.
-     *
      * @param  Request $request
      * @param          $slug
      * @return Response
diff --git a/app/Repos/EntityRepo.php b/app/Repos/EntityRepo.php
index 1a798e53b..cb3dd6674 100644
--- a/app/Repos/EntityRepo.php
+++ b/app/Repos/EntityRepo.php
@@ -84,7 +84,7 @@ class EntityRepo
         if ($additionalQuery !== false && is_callable($additionalQuery)) {
             $additionalQuery($query);
         }
-        return $query->skip($page * $count)->take($count)->get();
+        return $query->with('book')->skip($page * $count)->take($count)->get();
     }
 
     /**
@@ -114,7 +114,7 @@ class EntityRepo
     {
         return $this->restrictionService->enforcePageRestrictions($this->page)
             ->where('draft', '=', false)
-            ->orderBy('updated_at', 'desc')->skip($page * $count)->take($count)->get();
+            ->orderBy('updated_at', 'desc')->with('book')->skip($page * $count)->take($count)->get();
     }
 
     /**
diff --git a/app/Services/ViewService.php b/app/Services/ViewService.php
index 75ffd21dc..6b50e90de 100644
--- a/app/Services/ViewService.php
+++ b/app/Services/ViewService.php
@@ -1,6 +1,5 @@
 <?php namespace BookStack\Services;
 
-
 use BookStack\Entity;
 use BookStack\View;
 
@@ -47,7 +46,6 @@ class ViewService
         return 1;
     }
 
-
     /**
      * Get the entities with the most views.
      * @param int $count
@@ -58,17 +56,13 @@ class ViewService
     {
         $skipCount = $count * $page;
         $query = $this->restrictionService->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type')
-            ->select('id', 'viewable_id', 'viewable_type', \DB::raw('SUM(views) as view_count'))
+            ->select('*', 'viewable_id', 'viewable_type', \DB::raw('SUM(views) as view_count'))
             ->groupBy('viewable_id', 'viewable_type')
             ->orderBy('view_count', 'desc');
 
         if ($filterModel) $query->where('viewable_type', '=', get_class($filterModel));
 
-        $views = $query->with('viewable')->skip($skipCount)->take($count)->get();
-        $viewedEntities = $views->map(function ($item) {
-            return $item->viewable()->getResults();
-        });
-        return $viewedEntities;
+        return $query->with('viewable')->skip($skipCount)->take($count)->get()->pluck('viewable');
     }
 
     /**
@@ -81,21 +75,18 @@ class ViewService
     public function getUserRecentlyViewed($count = 10, $page = 0, $filterModel = false)
     {
         if ($this->user === null) return collect();
-        $skipCount = $count * $page;
+
         $query = $this->restrictionService
             ->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type');
 
         if ($filterModel) $query = $query->where('viewable_type', '=', get_class($filterModel));
         $query = $query->where('user_id', '=', auth()->user()->id);
 
-        $views = $query->with('viewable')->orderBy('updated_at', 'desc')->skip($skipCount)->take($count)->get();
-        $viewedEntities = $views->map(function ($item) {
-            return $item->viewable;
-        });
-        return $viewedEntities;
+        $viewables = $query->with('viewable')->orderBy('updated_at', 'desc')
+            ->skip($count * $page)->take($count)->get()->pluck('viewable');
+        return $viewables;
     }
 
-
     /**
      * Reset all view counts by deleting all views.
      */
@@ -104,5 +95,4 @@ class ViewService
         $this->view->truncate();
     }
 
-
 }
\ No newline at end of file
diff --git a/resources/assets/js/controllers.js b/resources/assets/js/controllers.js
index 340a0f1a1..8b3d952be 100644
--- a/resources/assets/js/controllers.js
+++ b/resources/assets/js/controllers.js
@@ -370,7 +370,7 @@ module.exports = function (ngApp, events) {
 
             $http.put('/ajax/page/' + pageId + '/save-draft', data).then((responseData) => {
                 var updateTime = moment.utc(moment.unix(responseData.data.timestamp)).toDate();
-                $scope.draftText = responseData.data.message + moment(updateTime).format('H:m');
+                $scope.draftText = responseData.data.message + moment(updateTime).format('HH:mm');
                 if (!$scope.isNewPageDraft) $scope.isUpdateDraft = true;
             });
         }