Skip to content

Commit 4684437

Browse files
[9.x] Fix error on listing page when using model attribute as first column in blueprint (#793)
Co-authored-by: Duncan McClean <duncan@duncanmcclean.com>
1 parent e42266e commit 4684437

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

resources/js/pages/Index.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ const props = defineProps({
2222
createUrl: { type: String, required: true },
2323
createLabel: { type: String, required: true },
2424
columns: { type: Array, required: true },
25+
sortColumn: { type: String, required: true },
26+
sortDirection: { type: String, required: true },
2527
filters: { type: Array, required: true },
2628
actions: { type: Array, required: true },
2729
actionUrl: { type: String, required: true },
@@ -87,6 +89,8 @@ function requestComplete({ items: newItems, parameters }) {
8789
ref="listing"
8890
:url="requestUrl"
8991
:columns
92+
:sortColumn="props.sortColumn"
93+
:sortDirection="props.sortDirection"
9094
:action-url="modelsActionUrl"
9195
:action-context="{ resource }"
9296
:preferences-prefix

src/Http/Controllers/CP/ResourceController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public function index(IndexRequest $request, Resource $resource)
4848
'createUrl' => cp_route('runway.create', ['resource' => $resource->handle()]),
4949
'createLabel' => __('Create :resource', ['resource' => $resource->singular()]),
5050
'columns' => $columns,
51+
'sortColumn' => $resource->orderBy(),
52+
'sortDirection' => $resource->orderByDirection(),
5153
'filters' => Scope::filters('runway', ['resource' => $resource->handle()]),
5254
'actions' => Action::for($resource, ['view' => 'form']),
5355
'actionUrl' => cp_route('runway.actions.run', ['resource' => $resource->handle()]),

tests/Http/Controllers/CP/ResourceControllerTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,30 @@ public function get_model_index()
3333
->has('filters')
3434
->has('columns')
3535
->has('actionUrl')
36+
->has('sortColumn')
37+
->has('sortDirection')
38+
);
39+
}
40+
41+
#[Test]
42+
public function uses_sort_column_and_direction_from_resource_config()
43+
{
44+
Config::set('runway.resources.StatamicRadPack\Runway\Tests\Fixtures\Models\Author.order_by', 'name');
45+
Config::set('runway.resources.StatamicRadPack\Runway\Tests\Fixtures\Models\Author.order_by_direction', 'desc');
46+
47+
Runway::discoverResources();
48+
49+
Author::factory()->count(2)->create();
50+
$user = User::make()->makeSuper()->save();
51+
52+
$this
53+
->actingAs($user)
54+
->get(cp_route('runway.index', ['resource' => 'author']))
55+
->assertOk()
56+
->assertInertia(fn (Assert $page) => $page
57+
->component('runway::Index')
58+
->where('sortColumn', 'name')
59+
->where('sortDirection', 'desc')
3660
);
3761
}
3862

0 commit comments

Comments
 (0)