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\NotFoundException;
|
||||||
use BookStack\Exceptions\PermissionsException;
|
use BookStack\Exceptions\PermissionsException;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
@ -364,7 +365,11 @@ class PageController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function showRecentlyUpdated()
|
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')
|
->orderBy('updated_at', 'desc')
|
||||||
->paginate(20)
|
->paginate(20)
|
||||||
->setPath(url('/pages/recently-updated'));
|
->setPath(url('/pages/recently-updated'));
|
||||||
@ -375,6 +380,7 @@ class PageController extends Controller
|
|||||||
'title' => trans('entities.recently_updated_pages'),
|
'title' => trans('entities.recently_updated_pages'),
|
||||||
'entities' => $pages,
|
'entities' => $pages,
|
||||||
'showUpdatedBy' => true,
|
'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);
|
$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()
|
public function test_recently_updated_pages_on_home()
|
||||||
{
|
{
|
||||||
/** @var Page $page */
|
/** @var Page $page */
|
||||||
|
Loading…
Reference in New Issue
Block a user