diff --git a/app/controllers/admin/CategoriesController.php b/app/controllers/admin/CategoriesController.php index 66e948b70b..5514879126 100755 --- a/app/controllers/admin/CategoriesController.php +++ b/app/controllers/admin/CategoriesController.php @@ -218,30 +218,40 @@ class CategoriesController extends AdminController public function getDatatable() { // Grab all the categories - $categories = Category::orderBy('created_at', 'DESC')->get(); + $categories = Category::select(array('id', 'name', 'category_type', 'require_acceptance'))->whereNull('deleted_at'); - $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($categories) { - return ''; - }); + if (Input::has('search')) { + $categories = $categories->TextSearch(Input::get('search')); + } - return Datatable::collection($categories) - ->showColumns('name') - ->addColumn('category_type', function($categories) { - return ucwords($categories->category_type); - }) - ->addColumn('count', function($categories) { - return ($categories->category_type=='asset') ? link_to('/admin/settings/categories/'.$categories->id.'/view', $categories->assetscount()) : $categories->accessoriescount(); - }) - ->addColumn('acceptance', function($categories) { - return ($categories->require_acceptance=='1') ? '' : ''; - }) - ->addColumn('eula', function($categories) { - return ($categories->getEula()) ? '' : ''; - }) - ->addColumn($actions) - ->searchColumns('name','category_type','count','acceptance','eula','actions') - ->orderColumns('name','category_type','count','acceptance','eula','actions') - ->make(); + $allowed_columns = ['name','category_type']; + $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; + $sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at'; + + $categories = $categories->orderBy($sort, $order); + + $catCount = $categories->count(); + $categories = $categories->skip(Input::get('offset'))->take(Input::get('limit'))->get(); + + $rows = array(); + + foreach ($categories as $category) { + $actions = ''; + + $rows[] = array( + 'name' => $category->name, + 'category_type' => ucwords($category->category_type), + 'count' => ($category->category_type=='asset') ? link_to('/admin/settings/categories/'.$category->id.'/view', $category->assetscount()) : $category->accessoriescount(), + 'acceptance' => ($category->require_acceptance=='1') ? '' : '', + //EULA is still not working correctly + 'eula' => ($category->getEula()) ? '' : '', + 'actions' => $actions + ); + } + + $data = array('total' => $catCount, 'rows' => $rows); + + return $data; } public function getDataView($categoryID) { diff --git a/app/views/backend/categories/index.blade.php b/app/views/backend/categories/index.blade.php index 8f2a7ccd6b..c4c44d748d 100755 --- a/app/views/backend/categories/index.blade.php +++ b/app/views/backend/categories/index.blade.php @@ -19,38 +19,19 @@
+ +@section('moar_scripts') + + + + + + + +@stop + @stop