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) + {{ $revision->createdBy->name }} + @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) - + @@ -29,76 +29,8 @@ - @foreach($page->revisions as $index => $revision) - - - - - - - - + @foreach($revisions as $index => $revision) + @include('pages.parts.revision-table-row', ['revision' => $revision]) @endforeach
{{ trans('entities.pages_revisions_number') }}{{ trans('entities.pages_revisions_number') }} {{ trans('entities.pages_name') }} / {{ trans('entities.pages_revisions_editor') }} {{ trans('entities.pages_revisions_changelog') }} {{ trans('common.actions') }}
{{ $revision->revision_number == 0 ? '' : $revision->revision_number }} - {{ $revision->name }} -
- ({{ $revision->markdown ? 'Markdown' : 'WYSIWYG' }}) -
- @if($revision->createdBy) - {{ $revision->createdBy->name }} - @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 -