diff --git a/app/Auth/User.php b/app/Auth/User.php
index c060d5ec8..393965e0d 100644
--- a/app/Auth/User.php
+++ b/app/Auth/User.php
@@ -80,6 +80,11 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
*/
protected ?Collection $permissions;
+ /**
+ * This holds the user's avatar URL when loaded to prevent re-calculating within the same request.
+ */
+ protected string $avatarUrl = '';
+
/**
* This holds the default user when loaded.
*
@@ -233,12 +238,17 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
return $default;
}
+ if (!empty($this->avatarUrl)) {
+ return $this->avatarUrl;
+ }
+
try {
$avatar = $this->avatar ? url($this->avatar->getThumb($size, $size, false)) : $default;
} catch (Exception $err) {
$avatar = $default;
}
+ $this->avatarUrl = $avatar;
return $avatar;
}
diff --git a/app/Http/Controllers/PageRevisionController.php b/app/Http/Controllers/PageRevisionController.php
index 086518960..ea80e13cd 100644
--- a/app/Http/Controllers/PageRevisionController.php
+++ b/app/Http/Controllers/PageRevisionController.php
@@ -11,11 +11,8 @@ use Ssddanbrown\HtmlDiff\Diff;
class PageRevisionController extends Controller
{
- protected $pageRepo;
+ protected PageRepo $pageRepo;
- /**
- * PageRevisionController constructor.
- */
public function __construct(PageRepo $pageRepo)
{
$this->pageRepo = $pageRepo;
@@ -29,11 +26,19 @@ class PageRevisionController extends Controller
public function index(string $bookSlug, string $pageSlug)
{
$page = $this->pageRepo->getBySlug($bookSlug, $pageSlug);
- $this->setPageTitle(trans('entities.pages_revisions_named', ['pageName'=>$page->getShortName()]));
+ $revisions = $page->revisions()->select([
+ 'id', 'page_id', 'name', 'created_at', 'created_by', 'updated_at',
+ 'type', 'revision_number', 'summary',
+ ])
+ ->selectRaw("IF(markdown = '', false, true) as is_markdown")
+ ->with(['page.book', 'createdBy'])
+ ->get();
+
+ $this->setPageTitle(trans('entities.pages_revisions_named', ['pageName' => $page->getShortName()]));
return view('pages.revisions', [
+ 'revisions' => $revisions,
'page' => $page,
- 'current' => $page,
]);
}
diff --git a/resources/views/pages/parts/revision-table-row.blade.php b/resources/views/pages/parts/revision-table-row.blade.php
new file mode 100644
index 000000000..bd891d6c4
--- /dev/null
+++ b/resources/views/pages/parts/revision-table-row.blade.php
@@ -0,0 +1,69 @@
+
+ {{ $revision->revision_number == 0 ? '' : $revision->revision_number }} |
+
+ {{ $revision->name }}
+
+ ({{ $revision->is_markdown ? 'Markdown' : 'WYSIWYG' }})
+ |
+
+ @if($revision->createdBy)
+
+ @endif
+ |
+
+ @if($revision->createdBy) {{ $revision->createdBy->name }} @else {{ trans('common.deleted_user') }} @endif
+
+
+ {{ $revision->created_at->formatLocalized('%e %B %Y %H:%M:%S') }}
+ ({{ $revision->created_at->diffForHumans() }})
+
+ |
+
+ {{ $revision->summary }}
+ |
+
+ {{ trans('entities.pages_revisions_changes') }}
+ |
+
+
+ @if ($index === 0)
+ {{ trans('entities.pages_revisions_current') }}
+ @else
+ {{ trans('entities.pages_revisions_preview') }}
+ |
+
+ |
+
+ @endif
+ |
+
\ No newline at end of file
diff --git a/resources/views/pages/revisions.blade.php b/resources/views/pages/revisions.blade.php
index fb9e891bb..3e7edad99 100644
--- a/resources/views/pages/revisions.blade.php
+++ b/resources/views/pages/revisions.blade.php
@@ -17,11 +17,11 @@
{{ trans('entities.pages_revisions') }}
- @if(count($page->revisions) > 0)
+ @if(count($revisions) > 0)
- {{ trans('entities.pages_revisions_number') }} |
+ {{ trans('entities.pages_revisions_number') }} |
{{ trans('entities.pages_name') }} / {{ trans('entities.pages_revisions_editor') }}
|
@@ -29,76 +29,8 @@
{{ trans('entities.pages_revisions_changelog') }} |
{{ trans('common.actions') }} |
- @foreach($page->revisions as $index => $revision)
-
- {{ $revision->revision_number == 0 ? '' : $revision->revision_number }} |
-
- {{ $revision->name }}
-
- ({{ $revision->markdown ? 'Markdown' : 'WYSIWYG' }})
- |
-
- @if($revision->createdBy)
-
- @endif
- |
-
- @if($revision->createdBy) {{ $revision->createdBy->name }} @else {{ trans('common.deleted_user') }} @endif
-
-
- {{ $revision->created_at->formatLocalized('%e %B %Y %H:%M:%S') }}
- ({{ $revision->created_at->diffForHumans() }})
-
- |
-
- {{ $revision->summary }}
- |
-
- {{ trans('entities.pages_revisions_changes') }}
- |
-
-
- @if ($index === 0)
- {{ trans('entities.pages_revisions_current') }}
- @else
- {{ trans('entities.pages_revisions_preview') }}
- |
-
- |
-
- @endif
- |
-
+ @foreach($revisions as $index => $revision)
+ @include('pages.parts.revision-table-row', ['revision' => $revision])
@endforeach