diff --git a/app/Http/Controllers/Api/AssetModelsController.php b/app/Http/Controllers/Api/AssetModelsController.php index 4003511c9..6d2eeb54e 100644 --- a/app/Http/Controllers/Api/AssetModelsController.php +++ b/app/Http/Controllers/Api/AssetModelsController.php @@ -30,20 +30,21 @@ class AssetModelsController extends Controller public function index(Request $request) { $this->authorize('view', AssetModel::class); - $allowed_columns = ['id','image','name','model_number','eol','notes','created_at','manufacturer']; + $allowed_columns = ['id','image','name','model_number','eol','notes','created_at','manufacturer','assets_count']; $assetmodels = AssetModel::select(['models.id','models.image','models.name','model_number','eol','models.notes','models.created_at','category_id','manufacturer_id','depreciation_id','fieldset_id', 'models.deleted_at']) ->with('category','depreciation', 'manufacturer','fieldset') ->withCount('assets'); - if ($request->has('search')) { - $assetmodels->TextSearch($request->input('search')); - } + if ($request->has('status')) { $assetmodels->onlyTrashed(); } + if ($request->has('search')) { + $assetmodels->TextSearch($request->input('search')); + } $offset = $request->input('offset', 0); $limit = $request->input('limit', 50); @@ -60,6 +61,7 @@ class AssetModelsController extends Controller } + $total = $assetmodels->count(); $assetmodels = $assetmodels->skip($offset)->take($limit)->get(); return (new AssetModelsTransformer)->transformAssetModels($assetmodels, $total); diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index 0c5f7c013..bdde23cc2 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -54,6 +54,7 @@ class AssetsController extends Controller */ public function index(Request $request) { + $this->authorize('index', Asset::class); $allowed_columns = [ @@ -78,30 +79,28 @@ class AssetsController extends Controller ]; $filter = array(); + if ($request->has('filter')) { $filter = json_decode($request->input('filter')); } - $all_custom_fields = CustomField::all(); //used as a 'cache' of custom fields throughout this page load foreach ($all_custom_fields as $field) { $allowed_columns[]=$field->db_column_name(); } - $assets = Company::scopeCompanyables(Asset::select('assets.*'),"company_id","assets")->with( - 'location', 'assetstatus', 'assetlog', 'company', 'defaultLoc','assignedTo', + $assets = Company::scopeCompanyables(Asset::select('assets.*'),"company_id","assets") + ->with('location', 'assetstatus', 'assetlog', 'company', 'defaultLoc','assignedTo', 'model.category', 'model.manufacturer', 'model.fieldset','supplier'); - if (count($filter) > 0) { - $assets->ByFilter($filter); - } elseif ($request->has('search')) { - $assets->TextSearch($request->input('search')); - } - // These are used by the API to query against specific ID numbers + + // These are used by the API to query against specific ID numbers. + // They are also used by the individual searches on detail pages like + // locations, etc. if ($request->has('status_id')) { $assets->where('assets.status_id', '=', $request->input('status_id')); } @@ -116,6 +115,7 @@ class AssetsController extends Controller if ($request->has('location_id')) { $assets->where('assets.location_id', '=', $request->input('location_id')); + // dd($assets->toSql()); } if ($request->has('supplier_id')) { @@ -145,7 +145,6 @@ class AssetsController extends Controller $limit = $request->input('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; - // This is used by the sidenav, mostly // We switched from using query scopes here because of a Laravel bug @@ -205,6 +204,12 @@ class AssetsController extends Controller }); } + if (count($filter) > 0) { + $assets->ByFilter($filter); + } elseif ($request->has('search')) { + $assets->TextSearch($request->input('search')); + } + // This is kinda gross, but we need to do this because the Bootstrap Tables // API passes custom field ordering as custom_fields.fieldname, and we have to strip diff --git a/app/Http/Controllers/Api/LicensesController.php b/app/Http/Controllers/Api/LicensesController.php index 59ef32e61..3d9614caa 100644 --- a/app/Http/Controllers/Api/LicensesController.php +++ b/app/Http/Controllers/Api/LicensesController.php @@ -25,9 +25,6 @@ class LicensesController extends Controller $this->authorize('view', License::class); $licenses = Company::scopeCompanyables(License::with('company', 'manufacturer', 'freeSeats', 'supplier')->withCount('freeSeats')); - if ($request->has('search')) { - $licenses = $licenses->TextSearch($request->input('search')); - } if ($request->has('company_id')) { $licenses->where('company_id','=',$request->input('company_id')); @@ -73,6 +70,12 @@ class LicensesController extends Controller $licenses->where('supplier_id','=',$request->input('supplier_id')); } + + if ($request->has('search')) { + $licenses = $licenses->TextSearch($request->input('search')); + } + + $offset = request('offset', 0); $limit = request('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -94,7 +97,8 @@ class LicensesController extends Controller $licenses = $licenses->orderBy($sort, $order); break; } - + + $total = $licenses->count(); diff --git a/app/Http/Controllers/Api/ManufacturersController.php b/app/Http/Controllers/Api/ManufacturersController.php index 9b35148cc..a542f103d 100644 --- a/app/Http/Controllers/Api/ManufacturersController.php +++ b/app/Http/Controllers/Api/ManufacturersController.php @@ -22,7 +22,7 @@ class ManufacturersController extends Controller public function index(Request $request) { $this->authorize('view', Manufacturer::class); - $allowed_columns = ['id','name','url','support_url','support_email','support_phone','created_at','updated_at','image']; + $allowed_columns = ['id','name','url','support_url','support_email','support_phone','created_at','updated_at','image', 'assets_count', 'consumables_count', 'components_count', 'licenses_count']; $manufacturers = Manufacturer::select( array('id','name','url','support_url','support_email','support_phone','created_at','updated_at','image') diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 27bb31fbf..4d12c7bd7 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -58,11 +58,6 @@ class UsersController extends Controller $users = Company::scopeCompanyables($users); - if ($request->has('search')) { - $users = $users->TextSearch($request->input('search')); - } - - if (($request->has('deleted')) && ($request->input('deleted')=='true')) { $users = $users->GetDeleted(); } @@ -83,6 +78,10 @@ class UsersController extends Controller $users = $users->where('users.department_id','=',$request->input('department_id')); } + if ($request->has('search')) { + $users = $users->TextSearch($request->input('search')); + } + $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; $offset = request('offset', 0); $limit = request('limit', 20); @@ -111,6 +110,8 @@ class UsersController extends Controller $users = $users->orderBy($sort, $order); break; } + + $total = $users->count(); $users = $users->skip($offset)->take($limit)->get(); return (new UsersTransformer)->transformUsers($users, $total); diff --git a/app/Presenters/ManufacturerPresenter.php b/app/Presenters/ManufacturerPresenter.php index e07e9cff9..ecd9d2e25 100644 --- a/app/Presenters/ManufacturerPresenter.php +++ b/app/Presenters/ManufacturerPresenter.php @@ -85,7 +85,7 @@ class ManufacturerPresenter extends Presenter [ "field" => "assets_count", "searchable" => false, - "sortable" => false, + "sortable" => true, "switchable" => true, "title" => ' ' .'', @@ -94,7 +94,7 @@ class ManufacturerPresenter extends Presenter [ "field" => "licenses_count", "searchable" => false, - "sortable" => false, + "sortable" => true, "switchable" => true, "title" => ' ' .'', @@ -103,7 +103,7 @@ class ManufacturerPresenter extends Presenter [ "field" => "consumables_count", "searchable" => false, - "sortable" => false, + "sortable" => true, "switchable" => true, "title" => ' ' .'', @@ -112,7 +112,7 @@ class ManufacturerPresenter extends Presenter [ "field" => "accessories_count", "searchable" => false, - "sortable" => false, + "sortable" => true, "switchable" => true, "title" => ' ' .'', diff --git a/resources/views/accessories/view.blade.php b/resources/views/accessories/view.blade.php index b44e584e0..974c8ae1c 100644 --- a/resources/views/accessories/view.blade.php +++ b/resources/views/accessories/view.blade.php @@ -60,12 +60,11 @@ data-url="{{ route('api.accessories.checkedout', $accessory->id) }}" data-cookie="true" data-click-to-select="true" - data-cookie-id-table="accessoryUsersTable" - > + data-cookie-id-table="accessoryUsersTable"> - {{ trans('general.user') }} - {{ trans('table.actions') }} + {{ trans('general.user') }} + {{ trans('table.actions') }} @@ -91,5 +90,9 @@ @stop @section('moar_scripts') -@include ('partials.bootstrap-table', ['exportFile' => 'accessory' . $accessory->name . '-export', 'search' => false]) +@include ('partials.bootstrap-table', [ + 'exportFile' => 'accessory' . + $accessory->name . '-export', + 'search' => 'false' + ]) @stop diff --git a/resources/views/consumables/view.blade.php b/resources/views/consumables/view.blade.php index f540d600d..5632a0126 100644 --- a/resources/views/consumables/view.blade.php +++ b/resources/views/consumables/view.blade.php @@ -38,13 +38,12 @@ data-url="{{route('api.consumables.showUsers', $consumable->id)}}" data-cookie="true" data-click-to-select="true" - data-cookie-id-table="consumableDetailTable-{{ config('version.hash_version') }}" - > + data-cookie-id-table="consumableDetailTable-{{ config('version.hash_version') }}"> - {{ trans('general.user') }} - {{ trans('general.date') }} - {{ trans('general.admin') }} + {{ trans('general.user') }} + {{ trans('general.date') }} + {{ trans('general.admin') }} diff --git a/resources/views/locations/view.blade.php b/resources/views/locations/view.blade.php index 0b6ee1d99..a5821c0d7 100644 --- a/resources/views/locations/view.blade.php +++ b/resources/views/locations/view.blade.php @@ -30,29 +30,14 @@
- - - - - - - - - - - - - - - - - + data-cookie-id-table="location_usersDetailTable" + data-columns="{{ \App\Presenters\UserPresenter::dataTableLayout() }}"> +
{{ trans('general.id') }}Avatar{{ trans('general.user') }}{{ trans('admin/users/table.title') }}{{ trans('admin/users/table.email') }}{{ trans('admin/users/table.phone') }}{{ trans('admin/users/table.manager') }}{{ trans('general.department') }}{{ trans('table.actions') }}
@@ -68,27 +53,12 @@
- - - - - - - - - - - - - - + data-cookie-id-table="location_assetsDetailTable" + data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}">
{{ trans('general.id') }}{{ trans('admin/hardware/table.image') }}{{ trans('general.name') }}{{ trans('admin/hardware/form.model') }}{{ trans('admin/hardware/form.tag') }}{{ trans('admin/hardware/form.serial') }}{{ trans('general.category') }}{{ trans('general.purchase_cost') }}Checkin/Checkout{{ trans('table.actions') }}
@@ -143,6 +113,9 @@ @stop @section('moar_scripts') -@include ('partials.bootstrap-table', ['exportFile' => 'locations-export', 'search' => true]) +@include ('partials.bootstrap-table', [ + 'exportFile' => 'locations-export', + 'search' => true + ]) @stop diff --git a/resources/views/manufacturers/view.blade.php b/resources/views/manufacturers/view.blade.php index e62e4a08c..8d4e4b9b7 100644 --- a/resources/views/manufacturers/view.blade.php +++ b/resources/views/manufacturers/view.blade.php @@ -44,121 +44,55 @@
+ - - - - - - - - - - - - - - + name="manufacturerDetail-assets" + id="manufacturerDetail-assets" + class="table table-striped snipe-table" + data-search="true" + data-url="{{ route('api.assets.index', ['manufacturer_id' => $manufacturer->id, 'itemtype' => 'assets']) }}" + data-cookie-id-table="manufacturerDetail-assets" + data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}">
{{ trans('general.id') }} - {{ trans('admin/companies/table.title') }} - {{ trans('general.name') }}{{ trans('admin/hardware/table.image') }}{{ trans('admin/hardware/form.model') }}{{ trans('general.asset_tag') }}{{ trans('admin/hardware/form.serial') }}{{ trans('general.user') }}{{ trans('admin/hardware/table.change') }}{{ trans('table.actions') }}
- - - - - - - - - - - - - - - - - - - + name="manufacturerDetail-licenses" + id="manufacturerDetail-licenses" + class="table table-striped snipe-table" + data-search="true" + data-url="{{ route('api.licenses.index', ['manufacturer_id' => $manufacturer->id]) }}" + data-cookie-id-table="manufacturerDetail-licenses" + data-columns="{{ \App\Presenters\LicensePresenter::dataTableLayout() }}">
{{ trans('general.id') }}{{ trans('general.company') }}{{ trans('admin/licenses/table.title') }}{{ trans('general.manufacturer') }}{{ trans('admin/licenses/table.serial') }}{{ trans('admin/licenses/form.to_name') }}{{ trans('admin/licenses/form.to_email') }}{{ trans('admin/licenses/form.seats') }}{{ trans('admin/licenses/form.remaining_seats') }}{{ trans('admin/licenses/table.purchase_date') }}{{ trans('general.purchase_cost') }}{{ trans('admin/licenses/form.purchase_order') }}{{ trans('admin/licenses/form.expiration') }}{{ trans('general.notes') }}{{ trans('table.actions') }}
- - - - - - - - - - - - - - - - + name="manufacturerDetail-accessories" + id="manufacturerDetail-accessories" + class="table table-striped snipe-table" + data-search="true" + data-url="{{ route('api.accessories.index', ['manufacturer_id' => $manufacturer->id]) }}" + data-cookie-id-table="manufacturerDetail-accessories" + data-columns="{{ \App\Presenters\AccessoryPresenter::dataTableLayout() }}">
{{ trans('admin/companies/table.title') }}{{ trans('admin/accessories/table.title') }}{{ trans('admin/accessories/general.accessory_category') }}{{ trans('general.manufacturer') }}{{ trans('general.location') }}{{ trans('admin/accessories/general.total') }}{{ trans('general.purchase_date') }}{{ trans('general.purchase_cost') }}{{ trans('general.order_number') }}{{ trans('general.min_amt') }}{{ trans('admin/accessories/general.remaining') }}{{ trans('table.actions') }}
+ + - - - - - - - - - - - - - - - - - - - + name="manufacturerDetail-consumables" + id="manufacturerDetail-consumables" + class="table table-striped snipe-table" + data-search="true" + data-url="{{ route('api.consumables.index', ['manufacturer_id' => $manufacturer->id]) }}" + data-cookie-id-table="manufacturerDetail-consumables" + data-columns="{{ \App\Presenters\ConsumablePresenter::dataTableLayout() }}">
{{ trans('general.id') }}{{ trans('admin/companies/table.title') }}{{ trans('admin/consumables/table.title') }}{{ trans('general.location') }}{{ trans('general.category') }} {{ trans('admin/consumables/general.total') }} {{ trans('admin/consumables/general.remaining') }} {{ trans('general.min_amt') }}{{ trans('general.manufacturer') }}{{ trans('general.model_no') }}{{ trans('admin/consumables/general.item_no') }}{{ trans('general.order_number') }}{{ trans('general.purchase_date') }}{{ trans('general.purchase_cost') }} {{ trans('table.actions') }}
+
diff --git a/resources/views/models/index.blade.php b/resources/views/models/index.blade.php index c1092650c..3d8df072f 100755 --- a/resources/views/models/index.blade.php +++ b/resources/views/models/index.blade.php @@ -69,7 +69,7 @@ {{ trans('admin/hardware/table.image') }} {{ trans('general.manufacturer') }} {{ trans('admin/models/table.modelnumber') }} - {{ trans('admin/models/table.numassets') }} + {{ trans('admin/models/table.numassets') }} {{ trans('general.depreciation') }} {{ trans('general.category') }} {{ trans('general.eol') }} diff --git a/resources/views/models/view.blade.php b/resources/views/models/view.blade.php index e0d98a392..cf025732e 100755 --- a/resources/views/models/view.blade.php +++ b/resources/views/models/view.blade.php @@ -60,26 +60,14 @@ - - - - - - - - - - - - - + data-cookie-id-table="modelDetailAssets" + data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}">
{{ trans('general.id') }}{{ trans('admin/companies/table.title') }}{{ trans('general.name') }}{{ trans('general.asset_tag') }}{{ trans('admin/hardware/table.serial') }}{{ trans('admin/hardware/form.checkedout_to') }}{{ trans('admin/hardware/table.change') }}{{ trans('table.actions') }}
{{ Form::close() }} diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index 5fff0b538..2bd3372c3 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -46,7 +46,7 @@ }, undefinedText: '', iconsPrefix: 'fa', - search: {{ (isset($search)) ? 'true' : 'false' }}, + {!! ((isset($search)) && ($search=='true')) ? 'search: "true",' : '' !!} paginationVAlign: 'both', sidePagination: '{{ (isset($clientSearch)) ? 'client' : 'server' }}', sortable: true,