Merge pull request #11301 from snipe/features/models_view_in_categories

Added models view (and bulk edit) in category detail view
This commit is contained in:
snipe 2022-06-13 21:45:43 -07:00 committed by GitHub
commit 44c0c1bf0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 166 additions and 75 deletions

View file

@ -70,6 +70,10 @@ class AssetModelsController extends Controller
$assetmodels->onlyTrashed(); $assetmodels->onlyTrashed();
} }
if ($request->filled('category_id')) {
$assetmodels = $assetmodels->where('models.category_id', '=', $request->input('category_id'));
}
if ($request->filled('search')) { if ($request->filled('search')) {
$assetmodels->TextSearch($request->input('search')); $assetmodels->TextSearch($request->input('search'));
} }

View file

@ -10,6 +10,10 @@
@stop @stop
@section('header_right') @section('header_right')
<a href="{{ URL::previous() }}" class="btn btn-primary" style="margin-right: 10px;">
{{ trans('general.back') }}</a>
<div class="btn-group pull-right"> <div class="btn-group pull-right">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">{{ trans('button.actions') }} <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">{{ trans('button.actions') }}
<span class="caret"></span> <span class="caret"></span>
@ -18,16 +22,40 @@
<li><a href="{{ route('categories.edit', ['category' => $category->id]) }}">{{ trans('admin/categories/general.edit') }}</a></li> <li><a href="{{ route('categories.edit', ['category' => $category->id]) }}">{{ trans('admin/categories/general.edit') }}</a></li>
<li><a href="{{ route('categories.create') }}">{{ trans('general.create') }}</a></li> <li><a href="{{ route('categories.create') }}">{{ trans('general.create') }}</a></li>
</ul> </ul>
</div> </div>
@stop @stop
{{-- Page content --}} {{-- Page content --}}
@section('content') @section('content')
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="box box-default">
<div class="box-body"> <div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active">
<a href="#items" data-toggle="tab" title="{{ trans('general.items') }}"> {{ ucwords($category_type_route) }}
@if ($category->category_type=='asset')
<badge class="badge badge-secondary"> {{ $category->assets->count() }}</badge>
@endif
</a>
</li>
@if ($category->category_type=='asset')
<li>
<a href="#models" data-toggle="tab" title="{{ trans('general.asset_models') }}">{{ trans('general.asset_models') }}
<badge class="badge badge-secondary"> {{ $category->models->count()}}</badge>
</a>
</li>
@endif
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="items">
<div class="row">
<div class="col-md-12">
<div class="table-responsive">
@if ($category->category_type=='asset') @if ($category->category_type=='asset')
@include('partials.asset-bulk-actions') @include('partials.asset-bulk-actions')
@endif @endif
@ -40,6 +68,9 @@
data-cookie-id-table="categoryAssetsTable" data-cookie-id-table="categoryAssetsTable"
id="categoryAssetsTable" id="categoryAssetsTable"
data-id-table="categoryAssetsTable" data-id-table="categoryAssetsTable"
data-toolbar="#assetsBulkEditToolbar"
data-bulk-button-id="#bulkAssetEditButton"
data-bulk-form-id="#assetsBulkForm"
data-export-options='{ data-export-options='{
"fileName": "export-{{ str_slug($category->name) }}-assets-{{ date('Y-m-d') }}", "fileName": "export-{{ str_slug($category->name) }}-assets-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"] "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
@ -94,13 +125,61 @@
data-url="{{ route('api.'.$category_type_route.'.index',['category_id'=> $category->id]) }}"> data-url="{{ route('api.'.$category_type_route.'.index',['category_id'=> $category->id]) }}">
</table> </table>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="models">
<div class="row">
<div class="col-md-12">
@can('update', \App\Models\AssetModel::class)
@if ($category->models->count() > 0)
@if ($category->category_type=='asset')
@include('partials.models-bulk-actions')
@endif
@endif
@endcan
<table
data-columns="{{ \App\Presenters\AssetModelPresenter::dataTableLayout() }}"
data-cookie-id-table="asssetModelsTable"
data-pagination="true"
data-id-table="asssetModelsTable"
data-search="true"
data-show-footer="true"
data-side-pagination="server"
data-show-columns="true"
data-toolbar="#modelsBulkEditToolbar"
data-bulk-button-id="#bulkModelsEditButton"
data-bulk-form-id="#modelsBulkForm"
data-show-export="true"
data-show-refresh="true"
data-sort-order="asc"
id="asssetModelsTable"
class="table table-striped snipe-table"
data-url="{{ route('api.models.index', ['status' => request('status'), 'category_id' => $category->id]) }}"
data-export-options='{
"fileName": "export-models-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
</table>
</div> </div>
</div> </div>
</div> </div>
</div>
</div> <!-- .tab-content-->
</div> <!-- .nav-tabs-custom -->
</div> <!-- .col-md-12> -->
</div> <!-- .row -->
@stop @stop
@section('moar_scripts') @section('moar_scripts')
@include ('partials.bootstrap-table') @include ('partials.bootstrap-table')
@stop @stop

View file

@ -36,24 +36,7 @@
<div class="box box-default"> <div class="box box-default">
<div class="box-body"> <div class="box-body">
{{ Form::open([ @include('partials.models-bulk-actions')
'method' => 'POST',
'route' => ['models.bulkedit.index'],
'class' => 'form-inline',
'id' => 'modelsBulkForm']) }}
<div class="row">
<div class="col-md-12">
@if (Request::get('status')!='deleted')
<div id="modelBulkEditToolbar">
<label for="bulk_actions" class="sr-only">{{ trans('general.bulk_actions') }}</label>
<select id="bulk_actions" name="bulk_actions" class="form-control select2" aria-label="bulk_actions" style="width: 300px;">
<option value="edit">{{ trans('general.bulk_edit') }}</option>
<option value="delete">{{ trans('general.bulk_delete') }}</option>
</select>
<button class="btn btn-primary" id="bulkModelsEditButton" disabled>{{ trans('button.go') }}</button>
</div>
@endif
<div class="table-responsive"> <div class="table-responsive">
<table <table
data-columns="{{ \App\Presenters\AssetModelPresenter::dataTableLayout() }}" data-columns="{{ \App\Presenters\AssetModelPresenter::dataTableLayout() }}"

View file

@ -123,7 +123,9 @@
}); });
$('.snipe-table').on('uncheck.bs.table .btSelectItem', function (row, $element) { $('.snipe-table').on('uncheck.bs.table .btSelectItem', function (row, $element) {
$( "#checkbox_" + $element.id).remove(); var tableId = $(this).data('id-table');
$( "#" + tableId + "checkbox_" + $element.id).remove();
console.log("#" + tableId + "checkbox_" + $element.id);
}); });
@ -157,7 +159,7 @@
var tableId = $(this).data('id-table'); var tableId = $(this).data('id-table');
for (var i in rowsBefore) { for (var i in rowsBefore) {
$( tableId + "_checkbox_" + rowsBefore[i].id).remove(); $('#' + tableId + "_checkbox_" + rowsBefore[i].id).remove();
} }
}); });

View file

@ -0,0 +1,23 @@
<div id="modelsBulkEditToolbar">
{{ Form::open([
'method' => 'POST',
'route' => ['models.bulkedit.index'],
'class' => 'form-inline',
'id' => 'modelsBulkForm']) }}
@if (request('status')!='deleted')
@can('delete', \App\Models\User::class)
<div id="models-toolbar">
<label for="bulk_actions" class="sr-only">{{ trans('general.bulk_actions') }}</label>
<select name="bulk_actions" class="form-control select2" style="width: 200px;" aria-label="bulk_actions">
<option value="edit">{{ trans('general.bulk_edit') }}</option>
<option value="delete">{{ trans('general.bulk_delete') }}</option>
</select>
<button class="btn btn-primary" id="bulkModelsEditButton" disabled>{{ trans('button.go') }}</button>
</div>
@endcan
@endif
{{ Form::close() }}
</div>