From 46a02b25daa2831f02f6ff75cf57ca14dd8da8c1 Mon Sep 17 00:00:00 2001 From: madd15 Date: Wed, 21 Oct 2015 14:24:25 +1030 Subject: [PATCH 1/5] Update getDatatable and getDataView --- app/controllers/admin/ModelsController.php | 110 ++++++++++----------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index efc4cc6534..3cc5e3e17d 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -368,40 +368,44 @@ class ModelsController extends AdminController { $models = Model::orderBy('created_at', 'DESC')->with('category','assets','depreciation'); ($status != 'Deleted') ?: $models->withTrashed()->Deleted();; - $models = $models->get(); - $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($models) { - if($models->deleted_at=='') { - return ''; + if (Input::has('search')) { + $models = $models->TextSearch(Input::get('search')); + } + + $allowed_columns = ['name']; + $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; + $sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at'; + + $models = $models->orderBy($sort, $order); + + $modelCount = $models->count(); + $models = $models->skip(Input::get('offset'))->take(Input::get('limit'))->get(); + + $rows = array(); + + foreach ($models as $model) { + if ($model->deleted_at == '') { + $actions = ''; } else { - return ''; + $actions = ''; } - }); - return Datatable::collection($models) - ->addColumn('manufacturer', function($models) { - return $models->manufacturer->name; - }) - ->addColumn('name', function ($models) { - return link_to('/hardware/models/'.$models->id.'/view', $models->name); - }) - ->showColumns('modelno') - ->addColumn('asset_count', function($models) { - return $models->assets->count(); - }) - ->addColumn('depreciation', function($models) { - return (($models->depreciation)&&($models->depreciation->id > 0)) ? $models->depreciation->name.' ('.$models->depreciation->months.')' : Lang::get('general.no_depreciation'); - }) - ->addColumn('category', function($models) { - return ($models->category) ? $models->category->name : ''; - }) - ->addColumn('eol', function($models) { - return ($models->eol) ? $models->eol.' '.Lang::get('general.months') : ''; - }) - ->addColumn($actions) - ->searchColumns('name','modelno','asset_count','depreciation','category','eol','actions') - ->orderColumns('name','modelno','asset_count','depreciation','category','eol','actions') - ->make(); + $rows[] = array( + 'manufacturer' => $model->manufacturer->name, + 'name' => link_to('/hardware/models/'.$model->id.'/view', $model->name), + 'modelnumber' => $model->modelno, + 'numassets' => $model->assets->count(), + 'depreciation' => (($model->depreciation)&&($model->depreciation->id > 0)) ? $model->depreciation->name.' ('.$model->depreciation->months.')' : Lang::get('general.no_depreciation'), + 'category' => ($model->category) ? $model->category->name : '', + 'eol' => ($model->eol) ? $model->eol.' '.Lang::get('general.months') : '', + 'actions' => $actions + ); + } + + $data = array('total' => $modelCount, 'rows' => $rows); + + return $data; } @@ -410,33 +414,29 @@ class ModelsController extends AdminController $model = Model::withTrashed()->find($modelID); $modelassets = $model->assets; - $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($modelassets) - { - if (($modelassets->assigned_to !='') && ($modelassets->assigned_to > 0)) { - return ''.Lang::get('general.checkin').''; - } else { - return ''.Lang::get('general.checkout').''; - } - }); + $modelassetsCount = $modelassets->Count(); - return Datatable::collection($modelassets) - ->addColumn('name', function ($modelassets) { - return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->showAssetName()); - // return $modelassets->name; - }) - ->addColumn('asset_tag', function ($modelassets) { - return link_to('/hardware/'.$modelassets->id.'/view', $modelassets->asset_tag); - }) - ->showColumns('serial') - ->addColumn('assigned_to', function ($modelassets) { - if ($modelassets->assigned_to) { - return link_to('/admin/users/'.$modelassets->assigned_to.'/view', $modelassets->assigneduser->fullName()); + $rows = array(); + + foreach ($modelassets as $asset) { + if (($asset->assigned_to !='') && ($asset->assigned_to > 0)) { + $actions = ''.Lang::get('general.checkin').''; + } else { + $actions = ''.Lang::get('general.checkout').''; } - }) - ->addColumn($actions) - ->searchColumns('name','asset_tag','serial','assigned_to','actions') - ->orderColumns('name','asset_tag','serial','assigned_to','actions') - ->make(); + + $rows[] = array( + 'name' => link_to('/hardware/'.$asset->id.'/view', $asset->showAssetName()), + 'asset_tag' => link_to('hardware/'.$asset->id.'/view', $asset->asset_tag), + 'serial' => $asset->serial, + 'assigned_to' => ($asset->assigned_to) ? link_to('/admin/users/'.$asset->assigned_to.'/view', $asset->assigneduser->fullName()) : '', + 'actions' => $actions + ); + } + + $data = array('total' => $modelassetsCount, 'rows' => $rows); + + return $data; } } From de0e1627c708dc883df68552f815af724bf5ae27 Mon Sep 17 00:00:00 2001 From: madd15 Date: Wed, 21 Oct 2015 14:28:20 +1030 Subject: [PATCH 2/5] Change Models Datatables - #1266 --- app/views/backend/models/index.blade.php | 84 ++++++++++++++---------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/app/views/backend/models/index.blade.php b/app/views/backend/models/index.blade.php index 9695b6c0da..7ead7cb695 100755 --- a/app/views/backend/models/index.blade.php +++ b/app/views/backend/models/index.blade.php @@ -22,38 +22,56 @@
- {{ Datatable::table() - ->addColumn(Lang::get('general.manufacturer'), - Lang::get('admin/models/table.title'), - Lang::get('admin/models/table.modelnumber'), - Lang::get('admin/models/table.numassets'), - Lang::get('general.depreciation'), - Lang::get('general.category'), - Lang::get('general.eol'), - Lang::get('table.actions')) - ->setOptions( - array( - 'language' => array( - 'search' => Lang::get('general.search'), - 'lengthMenu' => Lang::get('general.page_menu'), - 'loadingRecords' => Lang::get('general.loading'), - 'zeroRecords' => Lang::get('general.no_results'), - 'info' => Lang::get('general.pagination_info'), - 'processing' => Lang::get('general.processing'), - 'paginate'=> array( - 'first'=>Lang::get('general.first'), - 'previous'=>Lang::get('general.previous'), - 'next'=>Lang::get('general.next'), - 'last'=>Lang::get('general.last'), - ), - ), - 'sAjaxSource'=> route('api.models.list', Input::get('status')), - 'dom' =>'CT<"clear">lfrtip', - 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(6),'activate'=>'mouseover'), - 'columnDefs'=> array(array('bSortable'=>false,'targets'=>array(6))), - 'order'=>array(array(0,'asc')), - ) - ) - ->render() }} + + + + + + + + + + + + + +
{{Lang::get('general.manufacturer')}}{{Lang::get('admin/models/table.title')}}{{Lang::get('admin/models/table.modelnumber')}}{{Lang::get('admin/models/table.numassets')}}{{Lang::get('general.depreciation')}}{{Lang::get('general.category')}}{{Lang::get('general.eol')}}{{ Lang::get('table.actions') }}
+ +@section('moar_scripts') + + + + + + + +@stop @stop From f96e4ebd4cfc034f5b9175bd961c460543b27e77 Mon Sep 17 00:00:00 2001 From: madd15 Date: Wed, 21 Oct 2015 14:30:32 +1030 Subject: [PATCH 3/5] Add scopeTextSearch --- app/models/Model.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/models/Model.php b/app/models/Model.php index 55a4601c0f..c30a43316c 100755 --- a/app/models/Model.php +++ b/app/models/Model.php @@ -75,5 +75,23 @@ class Model extends Elegant return $query->whereIn( 'category_id', $categoryIdListing ); } + + /** + * Query builder scope to search on text + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $search Search term + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeTextSearch($query, $search) + { + + return $query->where(function($query) use ($search) + { + $query->where('name', 'LIKE', '%'.$search.'%') + ->orWhere('modelno', 'LIKE', '%'.$search.'%'); + }); + } } From 07f1c5774e546011000c7cda8a585522704d81ae Mon Sep 17 00:00:00 2001 From: madd15 Date: Wed, 21 Oct 2015 14:31:26 +1030 Subject: [PATCH 4/5] Add scopeTextSearch --- app/models/Category.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/models/Category.php b/app/models/Category.php index 77a59b5c69..6df3fcee5a 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -74,5 +74,23 @@ class Category extends Elegant return $query->where( 'require_acceptance', '=', true ); } + + /** + * Query builder scope to search on text + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $search Search term + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeTextSearch($query, $search) + { + + return $query->where(function($query) use ($search) + { + $query->where('name', 'LIKE', '%'.$search.'%') + ->orWhere('category_type', 'LIKE', '%'.$search.'%'); + }); + } } From d61983efdf6c039187d7810c56718a1389acdeed Mon Sep 17 00:00:00 2001 From: madd15 Date: Wed, 21 Oct 2015 14:35:51 +1030 Subject: [PATCH 5/5] Change to Bootstrap Table --- app/views/backend/models/view.blade.php | 32 ++++++++++--------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/app/views/backend/models/view.blade.php b/app/views/backend/models/view.blade.php index 215914ba2b..a5bc39fa78 100755 --- a/app/views/backend/models/view.blade.php +++ b/app/views/backend/models/view.blade.php @@ -52,25 +52,18 @@ @if (count($model->assets) > 0) - {{ Datatable::table() - ->addColumn(Lang::get('general.name'), - Lang::get('general.asset_tag'), - Lang::get('admin/hardware/table.serial'), - Lang::get('general.user'), - Lang::get('table.actions')) - ->setOptions( - array( - 'sAjaxSource'=>route('api.models.view', $model->id), - 'dom' =>'CT<"clear">lfrtip', - 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(4),'activate'=>'mouseover'), - 'columnDefs'=> array( - array('bSortable'=>false,'targets'=>array(4)), - array('width'=>'auto','targets'=>array(4)), - ), - 'order'=>array(array(0,'asc')), - ) - ) - ->render() }} + + + + + + + + + + + +
{{Lang::get('general.name')}}{{Lang::get('general.asset_tag')}}{{Lang::get('admin/hardware/table.serial')}}{{Lang::get('general.user')}}{{ Lang::get('table.actions') }}
@else
@@ -80,6 +73,7 @@
@endif +