FIXED sorting
This commit is contained in:
parent
3486d9f169
commit
28f3ffca07
@ -55,12 +55,32 @@ public function dataTable(QueryBuilder $query): EloquentDataTable
|
||||
|
||||
$this->applyFilters($dataTable);
|
||||
|
||||
$orderColumns = [];
|
||||
$sorted = $this->getSortColumns();
|
||||
$columns = $this->getColumns();
|
||||
foreach ($sorted as $item) {
|
||||
$orderColumns[] = $columns[(int) $item['column']]['data'];
|
||||
/*
|
||||
switch ((int) $item['column']) {
|
||||
case 0:
|
||||
$orderColumns[] = WorklistColumn::Priority->value;
|
||||
break;
|
||||
case 8:
|
||||
$orderColumns[] = WorklistColumn::StudyDate->value;
|
||||
break;
|
||||
case 9:
|
||||
$orderColumns[] = WorklistColumn::ReceiveDate->value;
|
||||
break;
|
||||
case 10:
|
||||
$orderColumns[] = WorklistColumn::StudyDescription->value;
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
$dataTable = $dataTable
|
||||
->rawColumns($rawColumns)
|
||||
->orderColumns([
|
||||
WorklistColumn::Priority->value,
|
||||
WorklistColumn::StudyDate->value,
|
||||
], ':column $1')
|
||||
->orderColumns($orderColumns, ':column $1')
|
||||
->setRowId('id');
|
||||
|
||||
return $dataTable;
|
||||
@ -80,6 +100,8 @@ public function query(Study $model): QueryBuilder
|
||||
*/
|
||||
public function html(): HtmlBuilder
|
||||
{
|
||||
$order = $this->getSortColumns();
|
||||
|
||||
return $this
|
||||
->builder()
|
||||
->setTableId('worklist-table')
|
||||
@ -99,10 +121,7 @@ public function html(): HtmlBuilder
|
||||
// 'reset',
|
||||
// 'reload',
|
||||
],
|
||||
'order' => [
|
||||
[0, 'desc'],
|
||||
[8, 'desc'],
|
||||
],
|
||||
'order' => $order,
|
||||
])
|
||||
->pageLength(15)
|
||||
->lengthMenu([15, 25, 50, 100, 250]);
|
||||
@ -159,33 +178,32 @@ public function getColumns(): array
|
||||
|
||||
case WorklistColumn::StudyDate:
|
||||
$columns[] = Column::make($col->value)
|
||||
->orderable(true)
|
||||
->searchable(false)
|
||||
->title('Scanned');
|
||||
break;
|
||||
|
||||
case WorklistColumn::ReceiveDate:
|
||||
$columns[] = Column::make($col->value)
|
||||
->orderable(true)
|
||||
->searchable(false)
|
||||
->title('Received');
|
||||
break;
|
||||
|
||||
case WorklistColumn::ReportDate:
|
||||
$columns[] = Column::make($col->value)
|
||||
->orderable(true)
|
||||
->searchable(false)
|
||||
->title('Read At');
|
||||
break;
|
||||
|
||||
case WorklistColumn::AssignedPhysician:
|
||||
$columns[] = Column::make($col->value)
|
||||
->orderable(false)
|
||||
->searchable(false)
|
||||
->title('Rad');
|
||||
break;
|
||||
|
||||
case WorklistColumn::ReadingPhysician:
|
||||
$columns[] = Column::make($col->value)
|
||||
->orderable(false)
|
||||
->searchable(false)
|
||||
->title('Rad');
|
||||
break;
|
||||
@ -215,6 +233,10 @@ public function getColumns(): array
|
||||
$columns[] = Column::make($col->value)->title('Study');
|
||||
break;
|
||||
|
||||
case WorklistColumn::Series:
|
||||
$columns[] = Column::make($col->value)->orderable(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
// dd(Str::slug($col->value, '-'));
|
||||
$columns[] = Column::make($col->value)->title($this->columTitle($col->value));
|
||||
@ -239,6 +261,19 @@ protected function filename(): string
|
||||
return Str::slug(implode(' ', $parts), '_');
|
||||
}
|
||||
|
||||
private function getSortColumns(): array
|
||||
{
|
||||
$order = $this->request()->query('order', []);
|
||||
if (empty($order)) {
|
||||
$order = [
|
||||
[0, 'desc'],
|
||||
[8, 'desc'],
|
||||
];
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
private function applyFilters(QueryDataTable $dataTable)
|
||||
{
|
||||
$status = strtolower($this->request()->get('status'));
|
||||
|
Loading…
Reference in New Issue
Block a user