diff --git a/README.md b/README.md index c6b7093..1fb5447 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ class MyModel extends Model implements Sortable public $sortable = [ 'order_column_name' => 'order_column', 'sort_when_creating' => true, + 'order_direction' => 'desc' ]; } ``` diff --git a/src/Controllers/GridSortableController.php b/src/Controllers/GridSortableController.php index e36c4db..81284e1 100644 --- a/src/Controllers/GridSortableController.php +++ b/src/Controllers/GridSortableController.php @@ -11,11 +11,13 @@ class GridSortableController extends Controller public function sort(Request $request) { $sorts = $request->get('_sort'); + $direction = $request->get('_direction'); + $_sort_method = (strtolower($direction) === 'desc') ? 'sortDesc' : 'sort'; $sorts = collect($sorts) ->pluck('key') ->combine( - collect($sorts)->pluck('sort')->sort() + collect($sorts)->pluck('sort')->$_sort_method() ); $status = true; diff --git a/src/GridSortable.php b/src/GridSortable.php index f381287..36b17b6 100644 --- a/src/GridSortable.php +++ b/src/GridSortable.php @@ -30,11 +30,12 @@ public function install() if (!request()->has($sortName) && $this->model()->eloquent() instanceof Sortable ) { - $this->model()->ordered(); + $direction = data_get($this->model()->getOriginalModel()->sortable, 'order_direction', 'asc'); + $this->model()->ordered($direction); } $this->column($column, ' ') ->displayUsing(SortableDisplay::class); }); } -} \ No newline at end of file +} diff --git a/src/SaveOrderBtn.php b/src/SaveOrderBtn.php index 53044a4..44448da 100644 --- a/src/SaveOrderBtn.php +++ b/src/SaveOrderBtn.php @@ -14,6 +14,8 @@ protected function script() $class = get_class($this->getGrid()->model()->getOriginalModel()); $class = str_replace('\\', '\\\\', $class); + + $direction = data_get($this->getGrid()->model()->getOriginalModel()->sortable, 'order_direction', 'asc'); $script = <<