mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Added parent context to recently updated items
- Includes tests to cover For #3183
This commit is contained in:
parent
585bd0cc45
commit
7b4086107c
@ -14,6 +14,7 @@ use BookStack\Entities\Tools\PermissionsUpdater;
|
||||
use BookStack\Exceptions\NotFoundException;
|
||||
use BookStack\Exceptions\PermissionsException;
|
||||
use Exception;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Throwable;
|
||||
@ -364,7 +365,11 @@ class PageController extends Controller
|
||||
*/
|
||||
public function showRecentlyUpdated()
|
||||
{
|
||||
$pages = Page::visible()->with('updatedBy')
|
||||
$visibleBelongsScope = function (BelongsTo $query) {
|
||||
$query->scopes('visible');
|
||||
};
|
||||
|
||||
$pages = Page::visible()->with(['updatedBy', 'book' => $visibleBelongsScope, 'chapter' => $visibleBelongsScope])
|
||||
->orderBy('updated_at', 'desc')
|
||||
->paginate(20)
|
||||
->setPath(url('/pages/recently-updated'));
|
||||
@ -375,6 +380,7 @@ class PageController extends Controller
|
||||
'title' => trans('entities.recently_updated_pages'),
|
||||
'entities' => $pages,
|
||||
'showUpdatedBy' => true,
|
||||
'showPath' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -276,6 +276,42 @@ class PageTest extends TestCase
|
||||
$resp->assertElementContains('.entity-list .page:nth-child(1)', 'Updated 1 second ago by ' . $user->name);
|
||||
}
|
||||
|
||||
public function test_recently_updated_pages_view_shows_parent_chain()
|
||||
{
|
||||
$user = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->whereNotNull('chapter_id')->first();
|
||||
|
||||
$this->actingAs($user)->put($page->getUrl(), [
|
||||
'name' => 'Updated title',
|
||||
'html' => '<p>Updated content</p>',
|
||||
]);
|
||||
|
||||
$resp = $this->asAdmin()->get('/pages/recently-updated');
|
||||
$resp->assertElementContains('.entity-list .page:nth-child(1)', $page->chapter->getShortName(42));
|
||||
$resp->assertElementContains('.entity-list .page:nth-child(1)', $page->book->getShortName(42));
|
||||
}
|
||||
|
||||
public function test_recently_updated_pages_view_does_not_show_parent_if_not_visible()
|
||||
{
|
||||
$user = $this->getEditor();
|
||||
/** @var Page $page */
|
||||
$page = Page::query()->whereNotNull('chapter_id')->first();
|
||||
|
||||
$this->actingAs($user)->put($page->getUrl(), [
|
||||
'name' => 'Updated title',
|
||||
'html' => '<p>Updated content</p>',
|
||||
]);
|
||||
|
||||
$this->setEntityRestrictions($page->book);
|
||||
$this->setEntityRestrictions($page, ['view'], [$user->roles->first()]);
|
||||
|
||||
$resp = $this->get('/pages/recently-updated');
|
||||
$resp->assertDontSee($page->book->getShortName(42));
|
||||
$resp->assertDontSee($page->chapter->getShortName(42));
|
||||
$resp->assertElementContains('.entity-list .page:nth-child(1)', 'Updated title');
|
||||
}
|
||||
|
||||
public function test_recently_updated_pages_on_home()
|
||||
{
|
||||
/** @var Page $page */
|
||||
|
Loading…
Reference in New Issue
Block a user