Merge pull request #1268 from madd15/patch-3

Categories Index table view
This commit is contained in:
snipe
2015-10-20 20:46:41 -07:00
2 changed files with 83 additions and 54 deletions
+32 -22
View File
@@ -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 '<a href="'.route('update/category', $categories->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/category', $categories->id).'" data-content="'.Lang::get('admin/categories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($categories->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
});
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') ? '<i class="fa fa-check" style="margin-right:50%;margin-left:50%;"></i>' : '';
})
->addColumn('eula', function($categories) {
return ($categories->getEula()) ? '<i class="fa fa-check" style="margin-right:50%;margin-left:50%;"></i></a>' : '';
})
->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 = '<a href="'.route('update/category', $category->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/category', $category->id).'" data-content="'.Lang::get('admin/categories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($category->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
$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') ? '<i class="fa fa-check"></i>' : '',
//EULA is still not working correctly
'eula' => ($category->getEula()) ? '<i class="fa fa-check"></i>' : '',
'actions' => $actions
);
}
$data = array('total' => $catCount, 'rows' => $rows);
return $data;
}
public function getDataView($categoryID) {
+51 -32
View File
@@ -19,38 +19,19 @@
<div class="user-profile">
<div class="row profile">
<div class="col-md-9 bio">
{{ 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(
'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.categories.list'),
'dom' =>'CT<"clear">lfrtip',
'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')),
)
)
->render() }}
</div>
<table name="models" id="table" data-url="{{route('api.categories.list')}}">
<thead>
<tr>
<th data-sortable="true" data-field="name">{{Lang::get('admin/categories/table.title')}}</th>
<th data-sortable="true" data-field="category_type">{{Lang::get('general.type')}}</th>
<th data-searchable="false" data-sortable="false" data-field="count">{{Lang::get('general.assets')}}</th>
<th data-searchable="false" data-sortable="false" data-field="acceptance">{{Lang::get('admin/categories/table.require_acceptance')}}</th>
<th data-searchable="false" data-sortable="false" data-field="eula">{{Lang::get('admin/categories/table.eula_text')}}</th>
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="actions">{{ Lang::get('table.actions') }}</th>
</tr>
</thead>
</table>
</div>
<!-- side address column -->
@@ -61,4 +42,42 @@
</div>
</div>
</div>
@section('moar_scripts')
<script src="{{ asset('assets/js/bootstrap-table.js') }}"></script>
<script src="{{ asset('assets/js/extensions/mobile/bootstrap-table-mobile.js') }}"></script>
<script src="{{ asset('assets/js/extensions/export/bootstrap-table-export.js?v=1') }}"></script>
<script src="{{ asset('assets/js/extensions/cookie/bootstrap-table-cookie.js?v=1') }}"></script>
<script src="//rawgit.com/kayalshri/tableExport.jquery.plugin/master/tableExport.js?v=1') }}"></script>
<script src="//rawgit.com/kayalshri/tableExport.jquery.plugin/master/jquery.base64.js?v=1') }}"></script>
<script type="text/javascript">
$('#table').bootstrapTable({
classes: 'table table-hover table-no-bordered',
undefinedText: '',
iconsPrefix: 'fa',
showRefresh: true,
search: true,
pageSize: {{{ Setting::getSettings()->per_page }}},
pagination: true,
sidePagination: 'server',
sortable: true,
mobileResponsive: true,
showExport: true,
showColumns: true,
maintainSelected: true,
paginationFirstText: "@lang('general.first')",
paginationLastText: "@lang('general.last')",
paginationPreText: "@lang('general.previous')",
paginationNextText: "@lang('general.next')",
pageList: ['10','25','50','100','150','200'],
icons: {
paginationSwitchDown: 'fa-caret-square-o-down',
paginationSwitchUp: 'fa-caret-square-o-up',
columns: 'fa-columns',
refresh: 'fa-refresh'
},
});
</script>
@stop
@stop