From 6524ac36787ca9d2b96dfbbb7463cd017813a73a Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 9 Jul 2015 03:09:18 -0700 Subject: [PATCH] Beginning of #851 - no controller methods yet, but still troubleshooting stupid datatables errors. [Error] TypeError: undefined is not an object (evaluating 'f.nTf=a[b].cell') jb (jquery.dataTables.min.js, line 24) ga (jquery.dataTables.min.js, line 45) (anonymous function) (jquery.dataTables.min.js, line 92) each (jquery-latest.js, line 383) each (jquery-latest.js, line 136) o (jquery.dataTables.min.js, line 82) (anonymous function) (users, line 371) fire (jquery-latest.js, line 3119) fireWith (jquery-latest.js, line 3231) ready (jquery-latest.js, line 3443) completed (jquery-latest.js, line 3474) --- app/controllers/admin/UsersController.php | 4 + app/routes.php | 9 ++ app/views/backend/hardware/index.blade.php | 20 ++-- app/views/backend/users/datatable.blade.php | 37 +++++++ app/views/backend/users/index.blade.php | 105 ++++++++++++++++---- 5 files changed, 143 insertions(+), 32 deletions(-) create mode 100644 app/views/backend/users/datatable.blade.php diff --git a/app/controllers/admin/UsersController.php b/app/controllers/admin/UsersController.php index e27e628dd2..46315913e3 100755 --- a/app/controllers/admin/UsersController.php +++ b/app/controllers/admin/UsersController.php @@ -740,6 +740,10 @@ class UsersController extends AdminController return Datatable::collection($users) + ->addColumn('',function($users) + { + return ''; + }) ->addColumn('name',function($users) { return ''.$users->fullName().''; diff --git a/app/routes.php b/app/routes.php index ad3ea104e4..1cb043fe21 100755 --- a/app/routes.php +++ b/app/routes.php @@ -316,6 +316,15 @@ Route::group(array('prefix' => 'admin', 'before' => 'admin-auth', 'namespace' => Route::get('{userId}/restore', array('as' => 'restore/user', 'uses' => 'UsersController@getRestore')); Route::get('{userId}/view', array('as' => 'view/user', 'uses' => 'UsersController@getView')); Route::get('{userId}/unsuspend', array('as' => 'unsuspend/user', 'uses' => 'UsersController@getUnsuspend')); + + Route::post('bulkedit', + array('as' => 'users/bulkedit', + 'uses' => 'UsersController@postBulkEdit')); + Route::post('bulksave', + array('as' => 'users/bulksave', + 'uses' => 'UsersController@postBulkSave')); + + Route::get('/', array('as' => 'users', 'uses' => 'UsersController@getIndex')); }); diff --git a/app/views/backend/hardware/index.blade.php b/app/views/backend/hardware/index.blade.php index 4be4f6a11c..382a4a0454 100755 --- a/app/views/backend/hardware/index.blade.php +++ b/app/views/backend/hardware/index.blade.php @@ -1,7 +1,7 @@ @extends('backend/layouts/default') @section('title0') - + @if (Input::get('status')) @if (Input::get('status')=='Pending') @lang('general.pending') @@ -57,16 +57,16 @@ {{ Datatable::table() - ->addColumn('',Lang::get('admin/hardware/form.name'), - Lang::get('admin/hardware/table.asset_tag'), + ->addColumn('',Lang::get('admin/hardware/form.name'), + Lang::get('admin/hardware/table.asset_tag'), Lang::get('admin/hardware/table.serial'), Lang::get('admin/hardware/form.model'), Lang::get('admin/hardware/table.status'), Lang::get('admin/hardware/table.location'), Lang::get('general.category'), Lang::get('admin/hardware/table.eol'), - Lang::get('admin/hardware/table.checkout_date'), - Lang::get('admin/hardware/table.change'), + Lang::get('admin/hardware/table.checkout_date'), + Lang::get('admin/hardware/table.change'), Lang::get('table.actions')) ->setOptions( array( @@ -75,7 +75,7 @@ 'lengthMenu' => Lang::get('general.page_menu'), 'loadingRecords' => Lang::get('general.loading'), 'zeroRecords' => Lang::get('general.no_results'), - 'info' => Lang::get('general.pagination_info'), + 'info' => Lang::get('general.pagination_info'), 'processing' => Lang::get('general.processing'), 'paginate'=> array( 'first'=>Lang::get('general.first'), @@ -112,17 +112,17 @@ $('#bulkEdit').attr('disabled', 'disabled'); } } - + $('table').on('change','input.one_required',checkForChecked); - + $("#checkAll").change(function () { $("input:checkbox").prop('checked', $(this).prop("checked")); checkForChecked(); }); }); - - + + diff --git a/app/views/backend/users/datatable.blade.php b/app/views/backend/users/datatable.blade.php new file mode 100644 index 0000000000..a5c6f1b6fd --- /dev/null +++ b/app/views/backend/users/datatable.blade.php @@ -0,0 +1,37 @@ + + + @for ($i = 0; $i < count($columns); $i++) + + @endfor + + + + @foreach($columns as $i => $c) + + @endforeach + + + + + + + + + @foreach($data as $d) + + @foreach($d as $dd) + + @endforeach + + @endforeach + +
{{ $c }}
+ +
{{ $dd }}
+ +@if (!$noScript) + @include(Config::get('datatable::table.script_view'), array('id' => $id, 'options' => $options, 'callbacks' => $callbacks)) +@endif diff --git a/app/views/backend/users/index.blade.php b/app/views/backend/users/index.blade.php index 85054dc829..69ce7869f5 100755 --- a/app/views/backend/users/index.blade.php +++ b/app/views/backend/users/index.blade.php @@ -31,34 +31,95 @@
+{{ Form::open([ + 'method' => 'POST', + 'route' => ['users/bulkedit'], + 'class' => 'form-horizontal' ]) }} -{{ Datatable::table() - ->addColumn( - Lang::get('admin/users/table.name'), - '', - Lang::get('admin/users/table.manager'), - Lang::get('admin/users/table.location'), - '', - '', - '', - '', - Lang::get('general.groups'), - Lang::get('table.actions') - ) - ->setOptions( - array( - 'sAjaxSource'=>route('api.users.list', Input::get('status')), - 'dom' =>'CT<"clear">lfrtip', - 'colVis'=> array('showAll'=>'Show All','restore'=>'Restore','activate'=>'mouseover'), - 'columnDefs'=> array(array('visible'=>false,'targets'=>array()),array('bSortable'=>false,'targets'=>array(8))), - 'order'=>array(array(1,'asc')), + + {{ Datatable::table() + ->addColumn('', + Lang::get('admin/users/table.name'), + '', + Lang::get('admin/users/table.manager'), + Lang::get('admin/users/table.location'), + '', + '', + '', + '', + Lang::get('general.groups'), + 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.users.list', Input::get('status')), + 'dom' =>'CT<"clear">lfrtip', + 'colVis'=> + array( + 'showAll'=>'Show All', + 'restore'=>'Restore', + 'exclude'=>array(0,10), + 'activate'=>'mouseover' + ), + 'columnDefs'=> + array( + array( + 'visible'=>false, + 'targets'=>array() + ), + array( + 'orderable'=>false, + 'targets'=>array(0,10) + ) + ), + 'order'=>array(array(1,'asc')), ) ) - ->render() }} - + ->render('backend/users/datatable') }} + {{ Form::close() }}
+ @stop