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; }); }