Skip to content

Commit 4eec547

Browse files
authored
Merge pull request #1792 from yajra/patch-order-dir
[8.0] Add validation for order direction.
2 parents 34c2816 + 5430875 commit 4eec547

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

src/Utilities/Request.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function orderableColumns()
9797
$orderable = [];
9898
for ($i = 0, $c = count($this->request->input('order')); $i < $c; $i++) {
9999
$order_col = (int) $this->request->input("order.$i.column");
100-
$order_dir = $this->request->input("order.$i.dir");
100+
$order_dir = strtolower($this->request->input("order.$i.dir")) === 'asc' ? 'asc' : 'desc';
101101
if ($this->isColumnOrderable($order_col)) {
102102
$orderable[] = ['column' => $order_col, 'direction' => $order_dir];
103103
}

tests/Unit/RequestTest.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,30 @@ public function test_column_keyword()
4646
}
4747

4848
public function test_orderable_columns()
49+
{
50+
$_GET['columns'] = [];
51+
$_GET['columns'][] = [
52+
'orderable' => 'true',
53+
'search' => [
54+
'value' => 'foo',
55+
],
56+
];
57+
$_GET['order'] = [];
58+
$_GET['order'][] = [
59+
'column' => 0,
60+
'dir' => 'asc',
61+
];
62+
request()->merge($_GET);
63+
$request = $this->getRequest();
64+
$this->assertEquals([
65+
['column' => 0, 'direction' => 'asc'],
66+
], $request->orderableColumns());
67+
68+
$this->assertTrue($request->isOrderable());
69+
$this->assertTrue($request->isColumnOrderable(0));
70+
}
71+
72+
public function test_orderable_columns_will_set_descending_on_other_values()
4973
{
5074
$_GET['columns'] = [];
5175
$_GET['columns'][] = [
@@ -62,7 +86,7 @@ public function test_orderable_columns()
6286
request()->merge($_GET);
6387
$request = $this->getRequest();
6488
$this->assertEquals([
65-
['column' => 0, 'direction' => 'bar'],
89+
['column' => 0, 'direction' => 'desc'],
6690
], $request->orderableColumns());
6791

6892
$this->assertTrue($request->isOrderable());

0 commit comments

Comments
 (0)