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" => ' Assets'
.'',
@@ -94,7 +94,7 @@ class ManufacturerPresenter extends Presenter
[
"field" => "licenses_count",
"searchable" => false,
- "sortable" => false,
+ "sortable" => true,
"switchable" => true,
"title" => ' Licenses'
.'',
@@ -103,7 +103,7 @@ class ManufacturerPresenter extends Presenter
[
"field" => "consumables_count",
"searchable" => false,
- "sortable" => false,
+ "sortable" => true,
"switchable" => true,
"title" => ' Consumables'
.'',
@@ -112,7 +112,7 @@ class ManufacturerPresenter extends Presenter
[
"field" => "accessories_count",
"searchable" => false,
- "sortable" => false,
+ "sortable" => true,
"switchable" => true,
"title" => ' Accessories'
.'',
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 @@
-
-
- {{ 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') }} |
- Assets |
- Licenses |
- Consumables |
- Accessories |
- {{ trans('general.department') }} |
- {{ trans('table.actions') }} |
-
-
+ data-cookie-id-table="location_usersDetailTable"
+ data-columns="{{ \App\Presenters\UserPresenter::dataTableLayout() }}">
+
@@ -68,27 +53,12 @@
-
-
- {{ 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') }} |
-
-
+ data-cookie-id-table="location_assetsDetailTable"
+ data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}">
@@ -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 @@
+
-
-
- {{ 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-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('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-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('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-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('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') }} |
-
-
+ 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() }}">
+
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 @@
-
-
- |
- {{ 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') }} |
-
-
+ data-cookie-id-table="modelDetailAssets"
+ data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}">
{{ 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,