From 3e98f05564a47eaba338a508a3f96af2c536b0ab Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 15:39:46 +1030 Subject: [PATCH 01/12] Convert Models and Categories Index to use Datatables --- .../admin/CategoriesController.php | 32 +++++- app/controllers/admin/ModelsController.php | 46 ++++++-- app/routes.php | 10 ++ app/views/backend/categories/index.blade.php | 103 +++++++++--------- app/views/backend/models/index.blade.php | 103 ++++++++---------- 5 files changed, 169 insertions(+), 125 deletions(-) diff --git a/app/controllers/admin/CategoriesController.php b/app/controllers/admin/CategoriesController.php index d46c18365c..28e19e2687 100755 --- a/app/controllers/admin/CategoriesController.php +++ b/app/controllers/admin/CategoriesController.php @@ -22,11 +22,8 @@ class CategoriesController extends AdminController public function getIndex() { - // Grab all the categories - $categories = Category::orderBy('created_at', 'DESC')->get(); - // Show the page - return View::make('backend/categories/index', compact('categories')); + return View::make('backend/categories/index'); } @@ -215,7 +212,34 @@ class CategoriesController extends AdminController } + public function getDatatable() + { + // Grab all the categories + $categories = Category::orderBy('created_at', 'DESC')->get(); + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function($categories) { + return ''; + }); + + 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(); + } } diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index 1e548e3ce0..c95f923157 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -24,16 +24,8 @@ class ModelsController extends AdminController */ public function getIndex() { - // Grab all the models - $models = Model::orderBy('created_at', 'DESC'); - if (Input::get('Deleted')) { - $models->withTrashed()->Deleted(); - } - - $models = $models->with('category','assets','depreciation')->get(); - // Show the page - return View::make('backend/models/index', compact('models')); + return View::make('backend/models/index'); } /** @@ -315,6 +307,42 @@ class ModelsController extends AdminController return $view; } + + public function getDatatable($status = null) + { + $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 ''; + } else { + return ''; + } + }); + + return Datatable::collection($models) + ->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(); + } } diff --git a/app/routes.php b/app/routes.php index 691faf1924..613c2ea507 100755 --- a/app/routes.php +++ b/app/routes.php @@ -25,6 +25,16 @@ Route::group(array('prefix' => 'api', 'namespace' => 'Controllers\Admin', 'befor Route::resource('/', 'LicensesController'); Route::get('list', array('as'=>'api.licenses.list', 'uses'=>'LicensesController@getDatatable')); }); + /*---Models API---*/ + Route::group(array('prefix'=>'models'), function() { + Route::resource('/', 'ModelsController'); + Route::get('list/{status?}', array('as'=>'api.models.list', 'uses'=>'ModelsController@getDatatable')); + }); + /*--- Categories API---*/ + Route::group(array('prefix'=>'categories'), function() { + Route::resource('/', 'CategoriesController'); + Route::get('list', array('as'=>'api.categories.list', 'uses'=>'CategoriesController@getDatatable')); + }); }); /* diff --git a/app/views/backend/categories/index.blade.php b/app/views/backend/categories/index.blade.php index f14f64dfa8..367be2d92c 100755 --- a/app/views/backend/categories/index.blade.php +++ b/app/views/backend/categories/index.blade.php @@ -17,59 +17,58 @@
-
-
- -
- - - - - - - - - - - - - @foreach ($categories as $category) - - - - - - - - - @endforeach - -
@lang('admin/categories/table.title')@lang('general.type')@lang('general.assets')@lang('admin/categories/table.require_acceptance')@lang('admin/categories/table.eula_text')@lang('table.actions')
{{{ $category->name }}}{{{ ucwords($category->category_type) }}} - @if ($category->category_type=='asset') - {{ $category->assetscount() }} - @elseif ($category->category_type=='accessory') - {{ $category->accessoriescount() }} - @endif - {{ ($category->require_acceptance=='1') ? '' : ''}}{{ ($category->getEula()) ? '' : ''}} - - - -
+
+
+ {{ Datatable::table() + ->addColumn('', + Lang::get('admin/categories/table.title'), + Lang::get('general.type'), + Lang::get('general.assets'), + Lang::get('admin/categories/table.require_acceptance'), + Lang::get('admin/categories/table.eula_text'), + Lang::get('table.actions')) + ->setOptions( + array( + 'ajax'=> route('api.categories.list'), + 'deferRender'=> true, + 'stateSave'=> true, + 'stateDuration'=> -1, + 'dom' =>'CT<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + 'copy', + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + 'csv', + 'xls', + 'pdf' + ) + ) + ) + ), + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(0,6),'activate'=>'mouseover'), + 'columnDefs'=> array(array('visible'=>false,'targets'=>array(0)),array('bSortable'=>false,'targets'=>array(6))), + 'order'=>array(array(1,'asc')), + 'bProcessing'=>true, + 'oLanguage'=>array( + 'sProcessing'=>' Loading...', + ), + ) + ) + ->render() }} +
-
-
- - - -
-

-
@lang('admin/categories/general.about_asset_categories')
-

@lang('admin/categories/general.about_categories')

- -
-
+ +
+

+
@lang('admin/categories/general.about_asset_categories')
+

@lang('admin/categories/general.about_categories')

+
+
@stop diff --git a/app/views/backend/models/index.blade.php b/app/views/backend/models/index.blade.php index d7f78631da..d73c603686 100755 --- a/app/views/backend/models/index.blade.php +++ b/app/views/backend/models/index.blade.php @@ -12,73 +12,56 @@
@lang('general.create') - @if(Input::get('Deleted')) + @if(Input::get('status')=='Deleted') @lang('admin/models/general.view_models') @else - @lang('admin/models/general.view_deleted') + @lang('admin/models/general.view_deleted') @endif

@lang('admin/models/table.title')

- - - - - - - - - - - - - - @foreach ($models as $model) - - - - - - - - - - - - @endforeach - -
@lang('admin/models/table.title')@lang('admin/models/table.modelnumber')@lang('admin/models/table.numassets')@lang('general.depreciation')@lang('general.category')@lang('general.eol')@lang('table.actions')
{{{ $model->name }}}{{{ $model->modelno }}}{{ ($model->assets->count()) }} - - @if (($model->depreciation) && ($model->depreciation->id > 0)) {{{ $model->depreciation->name }}} - ({{{ $model->depreciation->months }}} - @lang('general.months') - ) - @else - @lang('general.no_depreciation') - @endif - - - @if ($model->category) {{{ $model->category->name }}} - @endif - - - @if ($model->eol) {{{ $model->eol }}} - @lang('general.months') - @else - -- - @endif - - - @if($model->deleted_at=="") - - - @else - - @endif -
+ {{ Datatable::table() + ->addColumn(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( + 'ajax'=> route('api.models.list', Input::get('status')), + 'deferRender'=> true, + 'stateSave'=> true, + 'stateDuration'=> -1, + 'dom' =>'CT<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + 'copy', + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + 'csv', + 'xls', + 'pdf' + ) + ) + ) + ), + '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')), + 'bProcessing'=>true, + 'oLanguage'=>array( + 'sProcessing'=>' Loading...', + ), + ) + ) + ->render() }} @stop From 6678905d79312db552ab76d601c6a65b5beff8fc Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 15:57:43 +1030 Subject: [PATCH 02/12] Remove width from actions --- app/views/backend/accessories/index.blade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/views/backend/accessories/index.blade.php b/app/views/backend/accessories/index.blade.php index 0dc3f735c0..089074445c 100755 --- a/app/views/backend/accessories/index.blade.php +++ b/app/views/backend/accessories/index.blade.php @@ -61,7 +61,6 @@ ), 'columnDefs'=> array( array('bSortable'=>false,'targets'=>array(3)), - array('width'=>'20%','targets'=>array(3)), ), 'order'=>array(array(0,'asc')), 'bProcessing'=>true, From faa999ab2b471fed92062d738f695cdc0c0985c8 Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 16:01:30 +1030 Subject: [PATCH 03/12] Fix incorrect values --- app/views/backend/categories/index.blade.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/views/backend/categories/index.blade.php b/app/views/backend/categories/index.blade.php index 367be2d92c..78f637a29d 100755 --- a/app/views/backend/categories/index.blade.php +++ b/app/views/backend/categories/index.blade.php @@ -20,8 +20,7 @@
{{ Datatable::table() - ->addColumn('', - Lang::get('admin/categories/table.title'), + ->addColumn(Lang::get('admin/categories/table.title'), Lang::get('general.type'), Lang::get('general.assets'), Lang::get('admin/categories/table.require_acceptance'), @@ -50,9 +49,9 @@ ) ) ), - 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(0,6),'activate'=>'mouseover'), - 'columnDefs'=> array(array('visible'=>false,'targets'=>array(0)),array('bSortable'=>false,'targets'=>array(6))), - 'order'=>array(array(1,'asc')), + 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(5),'activate'=>'mouseover'), + 'columnDefs'=> array(array('bSortable'=>false,'targets'=>array(5))), + 'order'=>array(array(0,'asc')), 'bProcessing'=>true, 'oLanguage'=>array( 'sProcessing'=>' Loading...', From 66d187223041093f9e75190cf6e7c54586ec885d Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 16:05:56 +1030 Subject: [PATCH 04/12] Fix button spacing --- app/views/backend/models/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/backend/models/index.blade.php b/app/views/backend/models/index.blade.php index d73c603686..01e8620da6 100755 --- a/app/views/backend/models/index.blade.php +++ b/app/views/backend/models/index.blade.php @@ -13,9 +13,9 @@ From 1d1c14ae214a7c6b00d230bddd9ed2762e49cc80 Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 17:01:31 +1030 Subject: [PATCH 05/12] Add use Datatable --- app/controllers/admin/CategoriesController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/admin/CategoriesController.php b/app/controllers/admin/CategoriesController.php index 28e19e2687..1ab1caa07d 100755 --- a/app/controllers/admin/CategoriesController.php +++ b/app/controllers/admin/CategoriesController.php @@ -11,6 +11,7 @@ use Sentry; use Str; use Validator; use View; +use Datatable; class CategoriesController extends AdminController { From 678b7700b44a984e6b927d5a57c75ee26f3d2877 Mon Sep 17 00:00:00 2001 From: madd15 Date: Fri, 20 Mar 2015 17:02:33 +1030 Subject: [PATCH 06/12] Add use Datatable --- app/controllers/admin/ModelsController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index c95f923157..faf3f29b8f 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -14,6 +14,7 @@ use Manufacturer; use Str; use Validator; use View; +use Datatable; class ModelsController extends AdminController { From e61f254ffc3f301f4204db26f69b3b4c42c2eaa1 Mon Sep 17 00:00:00 2001 From: madd15 Date: Sat, 21 Mar 2015 21:30:09 +1030 Subject: [PATCH 07/12] Update datatable options --- app/views/backend/accessories/index.blade.php | 46 ++++++++++++------- app/views/backend/categories/index.blade.php | 4 +- app/views/backend/licenses/index.blade.php | 4 +- app/views/backend/models/index.blade.php | 4 +- 4 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/views/backend/accessories/index.blade.php b/app/views/backend/accessories/index.blade.php index 089074445c..9235c9eb31 100755 --- a/app/views/backend/accessories/index.blade.php +++ b/app/views/backend/accessories/index.blade.php @@ -24,9 +24,9 @@ Lang::get('admin/accessories/general.total'), Lang::get('admin/accessories/general.remaining'), Lang::get('table.actions')) - ->setUrl(route('api.accessories.list')) // this is the route where data will be retrieved ->setOptions( array( + 'sAjaxSource'=>route('api.accessories.list'), 'deferRender'=> true, 'stateSave'=> true, 'stateDuration'=> -1, @@ -35,27 +35,41 @@ 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', 'aButtons'=>array( array( - 'sExtends'=>'copy', - 'mColumns'=> array(0,1,2), - ), - 'print', + 'sExtends'=>'copy', + 'sButtonText'=>'Copy', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), + array( + 'sExtends'=>'print', + 'sButtonText'=>'Print', + 'mColumns'=>'visible', + 'bShowAll'=>true, + 'bFooter'=>true, + ), array( 'sExtends'=>'collection', 'sButtonText'=>'Export', 'aButtons'=>array( array( - 'sExtends'=>'csv', - 'mColumns'=> array(0,1,2), - ), + 'sExtends'=>'csv', + 'sButtonText'=>'csv', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), array( - 'sExtends'=>'xls', - 'mColumns'=> array(0,1,2), - ), + 'sExtends'=>'xls', + 'sButtonText'=>'XLS', + 'mColumns'=>'visible', + 'bFooter'=>false, + ), array( - 'sExtends'=>'pdf', - 'mColumns'=> array(0,1,2), - ), - ), + 'sExtends'=>'pdf', + 'sButtonText'=>'PDF', + 'mColumns'=>'visible', + 'bFooter'=>false, + ) + ) ), ) ), @@ -63,7 +77,7 @@ array('bSortable'=>false,'targets'=>array(3)), ), 'order'=>array(array(0,'asc')), - 'bProcessing'=>true, + 'processing'=>true, 'oLanguage'=>array( 'sProcessing'=>' Loading...', ), diff --git a/app/views/backend/categories/index.blade.php b/app/views/backend/categories/index.blade.php index 78f637a29d..ae966a3617 100755 --- a/app/views/backend/categories/index.blade.php +++ b/app/views/backend/categories/index.blade.php @@ -28,7 +28,7 @@ Lang::get('table.actions')) ->setOptions( array( - 'ajax'=> route('api.categories.list'), + 'sAjaxSource'=> route('api.categories.list'), 'deferRender'=> true, 'stateSave'=> true, 'stateDuration'=> -1, @@ -52,7 +52,7 @@ 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','exclude'=>array(5),'activate'=>'mouseover'), 'columnDefs'=> array(array('bSortable'=>false,'targets'=>array(5))), 'order'=>array(array(0,'asc')), - 'bProcessing'=>true, + 'processing'=>true, 'oLanguage'=>array( 'sProcessing'=>' Loading...', ), diff --git a/app/views/backend/licenses/index.blade.php b/app/views/backend/licenses/index.blade.php index f9f42b695d..7c291288ef 100755 --- a/app/views/backend/licenses/index.blade.php +++ b/app/views/backend/licenses/index.blade.php @@ -24,9 +24,9 @@ Lang::get('admin/licenses/form.remaining_seats'), Lang::get('admin/licenses/table.purchase_date'), Lang::get('table.actions')) - ->setUrl(route('api.licenses.list')) // this is the route where data will be retrieved ->setOptions( array( + 'sAjaxSource'=>route('api.licenses.list'), 'deferRender'=> true, 'stateSave'=> true, 'stateDuration'=> -1, @@ -53,7 +53,7 @@ array('width'=>'20%','targets'=>array(5)), ), 'order'=>array(array(0,'asc')), - 'bProcessing'=>true, + 'processing'=>true, 'oLanguage'=>array( 'sProcessing'=>' Loading...', ), diff --git a/app/views/backend/models/index.blade.php b/app/views/backend/models/index.blade.php index 01e8620da6..80b1cf3145 100755 --- a/app/views/backend/models/index.blade.php +++ b/app/views/backend/models/index.blade.php @@ -32,7 +32,7 @@ Lang::get('table.actions')) ->setOptions( array( - 'ajax'=> route('api.models.list', Input::get('status')), + 'sAjaxSource'=> route('api.models.list', Input::get('status')), 'deferRender'=> true, 'stateSave'=> true, 'stateDuration'=> -1, @@ -56,7 +56,7 @@ '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')), - 'bProcessing'=>true, + 'processing'=>true, 'oLanguage'=>array( 'sProcessing'=>' Loading...', ), From 7881e70afbc6c6e215e60cf1a2cb3f91f8eca788 Mon Sep 17 00:00:00 2001 From: madd15 Date: Mon, 23 Mar 2015 08:30:50 +1030 Subject: [PATCH 08/12] Update Model Check in Hardware Edit and move to API --- app/controllers/admin/AssetsController.php | 9 --------- app/controllers/admin/ModelsController.php | 5 +++++ app/routes.php | 2 +- app/views/backend/hardware/edit.blade.php | 8 +++++--- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/app/controllers/admin/AssetsController.php b/app/controllers/admin/AssetsController.php index dc48effedd..79a8671543 100755 --- a/app/controllers/admin/AssetsController.php +++ b/app/controllers/admin/AssetsController.php @@ -1029,13 +1029,4 @@ class AssetsController extends AdminController ->make(); } - - public function checkModel($id = null) { - if(Input::get('id')) { - $id = e(Input::get('id')); - } - $model = DB::table('models')->select('id','show_mac_address')->where('id','=',$id)->whereNull('deleted_at')->first(); - return $model->show_mac_address; - } - } diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index faf3f29b8f..1bdcd7492b 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -345,5 +345,10 @@ class ModelsController extends AdminController ->orderColumns('name','modelno','asset_count','depreciation','category','eol','actions') ->make(); } + + public function checkModel($modelId) { + $model = Model::find($modelId); + return $model->show_mac_address; + } } diff --git a/app/routes.php b/app/routes.php index 613c2ea507..157028a0b7 100755 --- a/app/routes.php +++ b/app/routes.php @@ -29,6 +29,7 @@ Route::group(array('prefix' => 'api', 'namespace' => 'Controllers\Admin', 'befor Route::group(array('prefix'=>'models'), function() { Route::resource('/', 'ModelsController'); Route::get('list/{status?}', array('as'=>'api.models.list', 'uses'=>'ModelsController@getDatatable')); + Route::get('{modelId}/check', array('as' => 'api.models.check', 'uses' => 'ModelsController@checkModel')); }); /*--- Categories API---*/ Route::group(array('prefix'=>'categories'), function() { @@ -84,7 +85,6 @@ Route::group(array('prefix' => 'hardware', 'namespace' => 'Controllers\Admin', ' Route::get('{assetId}/deletefile/{fileId}', array('as' => 'delete/assetfile', 'uses' => 'AssetsController@getDeleteFile')); Route::get('{assetId}/showfile/{fileId}', array('as' => 'show/assetfile', 'uses' => 'AssetsController@displayFile')); Route::post('{assetId}/edit', 'AssetsController@postEdit'); - Route::get('check/model', array('as' => 'check.model', 'uses' => 'AssetsController@checkModel')); Route::post('bulkedit', array('as' => 'hardware/bulkedit', diff --git a/app/views/backend/hardware/edit.blade.php b/app/views/backend/hardware/edit.blade.php index 7bf6a804c1..dee143bb86 100755 --- a/app/views/backend/hardware/edit.blade.php +++ b/app/views/backend/hardware/edit.blade.php @@ -220,12 +220,14 @@ var $eventSelect = $(".model"); $eventSelect.on("change", function () { mac_add($eventSelect.val()); }); $(function() { - mac_add($(".model option:selected").val()); + var mac = $(".model option:selected").val(); + if(mac!=''){ + mac_add(mac); + } }); function mac_add(id) { $.ajax({ - url: '{{ route('check.model') }}', - data: 'id=' + id, + url: "{{Config::get('app.url')}}/api/models/"+id+"/check", success: function(data) { if(data == true){ $("#mac_address").css("display", "block"); From d90d7d7ddd9e8ac9f9bd20c8d7da52944f1b4d0a Mon Sep 17 00:00:00 2001 From: madd15 Date: Mon, 23 Mar 2015 08:37:18 +1030 Subject: [PATCH 09/12] Only include first 3 columns on exports --- app/views/backend/accessories/index.blade.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/backend/accessories/index.blade.php b/app/views/backend/accessories/index.blade.php index 9235c9eb31..f9213dfa50 100755 --- a/app/views/backend/accessories/index.blade.php +++ b/app/views/backend/accessories/index.blade.php @@ -37,13 +37,13 @@ array( 'sExtends'=>'copy', 'sButtonText'=>'Copy', - 'mColumns'=>'visible', + 'mColumns'=>array(0,1,2), 'bFooter'=>false, ), array( 'sExtends'=>'print', 'sButtonText'=>'Print', - 'mColumns'=>'visible', + 'mColumns'=>array(0,1,2), 'bShowAll'=>true, 'bFooter'=>true, ), @@ -54,19 +54,19 @@ array( 'sExtends'=>'csv', 'sButtonText'=>'csv', - 'mColumns'=>'visible', + 'mColumns'=>array(0,1,2), 'bFooter'=>false, ), array( 'sExtends'=>'xls', 'sButtonText'=>'XLS', - 'mColumns'=>'visible', + 'mColumns'=>array(0,1,2), 'bFooter'=>false, ), array( 'sExtends'=>'pdf', 'sButtonText'=>'PDF', - 'mColumns'=>'visible', + 'mColumns'=>array(0,1,2), 'bFooter'=>false, ) ) From 7f03c7538fbcdc2d98a644ab2d242a72fb984bff Mon Sep 17 00:00:00 2001 From: madd15 Date: Tue, 24 Mar 2015 10:31:58 +1030 Subject: [PATCH 10/12] Convert Accessories View to use Datatable --- .../admin/AccessoriesController.php | 17 +++++ app/routes.php | 1 + app/views/backend/accessories/view.blade.php | 75 ++++++++++++------- 3 files changed, 64 insertions(+), 29 deletions(-) diff --git a/app/controllers/admin/AccessoriesController.php b/app/controllers/admin/AccessoriesController.php index 3693e05a4a..1052ae607d 100755 --- a/app/controllers/admin/AccessoriesController.php +++ b/app/controllers/admin/AccessoriesController.php @@ -389,5 +389,22 @@ class AccessoriesController extends AdminController ->make(); } + public function getDataView($accessoryID) + { + $accessory = Accessory::find($accessoryID); + $accessory_users = $accessory->users; + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions',function($accessory_users){ + return 'Checkin'; + }); + + return Datatable::collection($accessory_users) + ->addColumn('name',function($accessory_users) + { + return link_to('/admin/users/'.$accessory_users->id.'/view', $accessory_users->fullName()); + }) + ->addColumn($actions) + ->make(); + } } diff --git a/app/routes.php b/app/routes.php index 157028a0b7..77b45862e1 100755 --- a/app/routes.php +++ b/app/routes.php @@ -14,6 +14,7 @@ Route::group(array('prefix' => 'api', 'namespace' => 'Controllers\Admin', 'befor Route::group(array('prefix'=>'accessories'), function () { Route::resource('/', 'AccessoriesController'); Route::get('list', array('as'=>'api.accessories.list', 'uses'=>'AccessoriesController@getDatatable')); + Route::get('{accessoryID}/view', array('as'=>'api.accessories.view', 'uses'=>'AccessoriesController@getDataView')); }); /*---Users API---*/ Route::group(array('prefix'=>'users'), function() { diff --git a/app/views/backend/accessories/view.blade.php b/app/views/backend/accessories/view.blade.php index fb295a878e..07f6fd12b2 100644 --- a/app/views/backend/accessories/view.blade.php +++ b/app/views/backend/accessories/view.blade.php @@ -31,35 +31,52 @@ @if ($accessory->users->count() > 0) - - - - - - - - - - @foreach ($accessory->users as $accessory_users) - - - - - - @endforeach - - - -
@lang('general.user')@lang('table.actions')
- - - {{{ $accessory_users->fullName() }}} - - - - - Checkin -
+ {{ Datatable::table() + ->addColumn(Lang::get('general.user'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.accessories.view', $accessory->id), + 'deferRender'=> true, + 'stateSave'=> true, + 'stateDuration'=> -1, + 'dom' =>'T<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + ), + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + ), + array( + 'sExtends'=>'xls', + ), + array( + 'sExtends'=>'pdf', + ), + ), + ), + ) + ), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(1)), + array('width'=>'auto','targets'=>array(1)), + ), + 'order'=>array(array(0,'asc')), + 'processing'=>true, + 'oLanguage'=>array( + 'sProcessing'=>' Loading...', + ), + ) + ) + ->render() }} @else
From 7d266fdc4e74ab3663c9b632d0f039842d19f7ce Mon Sep 17 00:00:00 2001 From: madd15 Date: Tue, 24 Mar 2015 11:06:37 +1030 Subject: [PATCH 11/12] Convert Models View to use Datatables --- app/controllers/admin/ModelsController.php | 33 ++++++++ app/routes.php | 1 + app/views/backend/models/view.blade.php | 95 ++++++++++++---------- 3 files changed, 84 insertions(+), 45 deletions(-) diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index 1bdcd7492b..f77304d185 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -350,5 +350,38 @@ class ModelsController extends AdminController $model = Model::find($modelId); return $model->show_mac_address; } + + public function getDataView($modelID) + { + $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').''; + } + }); + + return Datatable::collection($modelassets) + ->addColumn('name', function ($modelassets) { + return link_to('/hardware/'.$modelassets->id.'/view', $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()); + } + }) + ->addColumn($actions) + ->searchColumns('name','asset_tag','serial','assigned_to''actions') + ->orderColumns('name','asset_tag','serial','assigned_to''actions') + ->make(); + } } diff --git a/app/routes.php b/app/routes.php index 77b45862e1..5055baa35e 100755 --- a/app/routes.php +++ b/app/routes.php @@ -31,6 +31,7 @@ Route::group(array('prefix' => 'api', 'namespace' => 'Controllers\Admin', 'befor Route::resource('/', 'ModelsController'); Route::get('list/{status?}', array('as'=>'api.models.list', 'uses'=>'ModelsController@getDatatable')); Route::get('{modelId}/check', array('as' => 'api.models.check', 'uses' => 'ModelsController@checkModel')); + Route::get('{modelID}/view', array('as'=>'api.models.view', 'uses'=>'ModelsController@getDataView')); }); /*--- Categories API---*/ Route::group(array('prefix'=>'categories'), function() { diff --git a/app/views/backend/models/view.blade.php b/app/views/backend/models/view.blade.php index 9e639bb29a..daa742d2ea 100755 --- a/app/views/backend/models/view.blade.php +++ b/app/views/backend/models/view.blade.php @@ -52,51 +52,56 @@ @if (count($model->assets) > 0) - - - - - - - - - - - - - @foreach ($model->assets as $modelassets) - - - - - - - - - @endforeach - - - -
@lang('general.name')@lang('general.asset_tag')@lang('admin/hardware/table.serial')@lang('general.user')@lang('table.actions')
{{{ $modelassets->name }}}{{{ $modelassets->asset_tag }}} - @if ($modelassets->serial) - - {{{ $modelassets->serial }}} - - @endif - - @if ($modelassets->assigneduser) - - {{{ $modelassets->assigneduser->fullName() }}} - - @endif - - @if ($modelassets->assigned_to != 0) - Checkin - @else - Checkout - @endif -
- + {{ 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), + 'deferRender'=> true, + 'stateSave'=> true, + 'stateDuration'=> -1, + 'dom' =>'CT<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + ), + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + ), + array( + 'sExtends'=>'xls', + ), + array( + 'sExtends'=>'pdf', + ), + ), + ), + ) + ), + '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')), + 'processing'=>true, + 'oLanguage'=>array( + 'sProcessing'=>' Loading...', + ), + ) + ) + ->render() }} @else
From a9f15fbcaef14ae1f78f08da632032c41074c0f9 Mon Sep 17 00:00:00 2001 From: madd15 Date: Tue, 24 Mar 2015 11:27:00 +1030 Subject: [PATCH 12/12] Convert Categories View to use Datatables, and fix Model View missing comma --- .../admin/CategoriesController.php | 31 +++++++ app/controllers/admin/ModelsController.php | 4 +- app/routes.php | 1 + app/views/backend/categories/view.blade.php | 85 +++++++++++-------- 4 files changed, 82 insertions(+), 39 deletions(-) diff --git a/app/controllers/admin/CategoriesController.php b/app/controllers/admin/CategoriesController.php index 1ab1caa07d..476331ba84 100755 --- a/app/controllers/admin/CategoriesController.php +++ b/app/controllers/admin/CategoriesController.php @@ -241,6 +241,37 @@ class CategoriesController extends AdminController ->orderColumns('name','category_type','count','acceptance','eula','actions') ->make(); } + + public function getDataView($categoryID) { + $category = Category::find($categoryID); + $categoryassets = $category->assets; + + $actions = new \Chumper\Datatable\Columns\FunctionColumn('actions', function ($categoryassets) + { + if (($categoryassets->assigned_to !='') && ($categoryassets->assigned_to > 0)) { + return ''.Lang::get('general.checkin').''; + } else { + return ''.Lang::get('general.checkout').''; + } + }); + + return Datatable::collection($categoryassets) + ->addColumn('name', function ($categoryassets) { + return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->name); + }) + ->addColumn('asset_tag', function ($categoryassets) { + return link_to('/hardware/'.$categoryassets->id.'/view', $categoryassets->asset_tag); + }) + ->addColumn('assigned_to', function ($categoryassets) { + if ($categoryassets->assigned_to) { + return link_to('/admin/users/'.$categoryassets->assigned_to.'/view', $categoryassets->assigneduser->fullName()); + } + }) + ->addColumn($actions) + ->searchColumns('name','asset_tag','assigned_to','actions') + ->orderColumns('name','asset_tag','assigned_to','actions') + ->make(); + } } diff --git a/app/controllers/admin/ModelsController.php b/app/controllers/admin/ModelsController.php index f77304d185..29ef9e400d 100755 --- a/app/controllers/admin/ModelsController.php +++ b/app/controllers/admin/ModelsController.php @@ -379,8 +379,8 @@ class ModelsController extends AdminController } }) ->addColumn($actions) - ->searchColumns('name','asset_tag','serial','assigned_to''actions') - ->orderColumns('name','asset_tag','serial','assigned_to''actions') + ->searchColumns('name','asset_tag','serial','assigned_to','actions') + ->orderColumns('name','asset_tag','serial','assigned_to','actions') ->make(); } diff --git a/app/routes.php b/app/routes.php index 5055baa35e..14dbd4c96b 100755 --- a/app/routes.php +++ b/app/routes.php @@ -37,6 +37,7 @@ Route::group(array('prefix' => 'api', 'namespace' => 'Controllers\Admin', 'befor Route::group(array('prefix'=>'categories'), function() { Route::resource('/', 'CategoriesController'); Route::get('list', array('as'=>'api.categories.list', 'uses'=>'CategoriesController@getDatatable')); + Route::get('{categoryID}/view', array('as'=>'api.categories.view', 'uses'=>'CategoriesController@getDataView')); }); }); diff --git a/app/views/backend/categories/view.blade.php b/app/views/backend/categories/view.blade.php index 845a2e7f44..d5a0a49ea8 100644 --- a/app/views/backend/categories/view.blade.php +++ b/app/views/backend/categories/view.blade.php @@ -39,43 +39,54 @@ @if (count($category->assets) > 0) - - - - - - - - - - - - @foreach ($category->assets as $modelassets) - - - - - - - - @endforeach - - - -
@lang('general.name')@lang('general.asset_tag')@lang('general.user')@lang('table.actions')
{{{ $modelassets->name }}}{{{ $modelassets->asset_tag }}} - @if ($modelassets->assigneduser) - - {{{ $modelassets->assigneduser->fullName() }}} - - @endif - - @if ($modelassets->assigned_to != 0) - Checkin - @else - Checkout - @endif -
- + {{ Datatable::table() + ->addColumn(Lang::get('general.name'), + Lang::get('general.asset_tag'), + Lang::get('general.user'), + Lang::get('table.actions')) + ->setOptions( + array( + 'sAjaxSource'=>route('api.categories.view', $category->id), + 'deferRender'=> true, + 'stateSave'=> true, + 'stateDuration'=> -1, + 'dom' =>'T<"clear">lfrtip', + 'tableTools' => array( + 'sSwfPath'=> Config::get('app.url').'/assets/swf/copy_csv_xls_pdf.swf', + 'aButtons'=>array( + array( + 'sExtends'=>'copy', + ), + 'print', + array( + 'sExtends'=>'collection', + 'sButtonText'=>'Export', + 'aButtons'=>array( + array( + 'sExtends'=>'csv', + ), + array( + 'sExtends'=>'xls', + ), + array( + 'sExtends'=>'pdf', + ), + ), + ), + ) + ), + 'columnDefs'=> array( + array('bSortable'=>false,'targets'=>array(3)), + array('width'=>'auto','targets'=>array(3)), + ), + 'order'=>array(array(0,'asc')), + 'processing'=>true, + 'oLanguage'=>array( + 'sProcessing'=>' Loading...', + ), + ) + ) + ->render() }} @else