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