diff --git a/app/Http/Controllers/Api/AssetModelsController.php b/app/Http/Controllers/Api/AssetModelsController.php index 041bf58eb..23502b32b 100644 --- a/app/Http/Controllers/Api/AssetModelsController.php +++ b/app/Http/Controllers/Api/AssetModelsController.php @@ -5,7 +5,7 @@ use App\Models\AssetModel; use App\Http\Controllers\Controller; use App\Helpers\Helper; use Illuminate\Http\Request; -use App\Http\Transformers\DatatablesTransformer; +use App\Http\Transformers\AssetModelsTransformer; /** * This class controls all actions related to asset models for @@ -28,7 +28,7 @@ class AssetModelsController extends Controller $this->authorize('view', AssetModel::class); $allowed_columns = ['id','image','name','model_number','eol','notes','created_at']; - $assetmodels = AssetModel::select(['id','image','name','model_number','eol','notes','created_at']) + $assetmodels = AssetModel::select(['id','image','name','model_number','eol','notes','created_at','category_id','manufacturer_id','depreciation_id','fieldset_id']) ->with('category','depreciation', 'manufacturer','fieldset') ->withCount('assets'); @@ -44,7 +44,7 @@ class AssetModelsController extends Controller $total = $assetmodels->count(); $assetmodels = $assetmodels->skip($offset)->take($limit)->get(); - return (new DatatablesTransformer)->transformDatatables($assetmodels, $total); + return (new AssetModelsTransformer)->transformAssetModels($assetmodels, $total); } @@ -81,7 +81,7 @@ class AssetModelsController extends Controller { $this->authorize('view', AssetModel::class); $assetmodel = AssetModel::findOrFail($id); - return $assetmodel; + return (new AssetModelsTransformer)->transformAssetModel($assetmodel); } diff --git a/app/Http/Transformers/AssetModelsTransformer.php b/app/Http/Transformers/AssetModelsTransformer.php new file mode 100644 index 000000000..57fc05e92 --- /dev/null +++ b/app/Http/Transformers/AssetModelsTransformer.php @@ -0,0 +1,43 @@ +transformDatatables($array, $total); + } + + public function transformAssetModel (AssetModel $assetmodel) + { + $transformed = [ + 'id' => $assetmodel->id, + 'name' => e($assetmodel->name), + 'manufacturer' => ($assetmodel->manufacturer_id) ? $assetmodel->manufacturer : null, + 'image' => e($assetmodel->image), + 'model_number' => e($assetmodel->model_number), + 'depreciation' => ($assetmodel->depreciation) ? $assetmodel->depreciation : 'No', + 'assets_count' => $assetmodel->assets_count, + 'category' => ($assetmodel->category_id) ? $assetmodel->category : null, + 'fieldset' => ($assetmodel->fieldset) ? $assetmodel->fieldset : null, + 'eol' => ($assetmodel->eol > 0) ? $assetmodel->eol .' months': 'None', + 'notes' => e($assetmodel->notes), + + ]; + return $transformed; + } + + public function transformAssetModelsDatatable($assetmodels) { + return (new DatatablesTransformer)->transformDatatables($assetmodels); + } + + +} diff --git a/app/Http/Transformers/AssetsTransformer.php b/app/Http/Transformers/AssetsTransformer.php index df9da9677..8338e79d6 100644 --- a/app/Http/Transformers/AssetsTransformer.php +++ b/app/Http/Transformers/AssetsTransformer.php @@ -26,10 +26,10 @@ class AssetsTransformer 'serial' => $asset->serial, 'model' => ($asset->model) ? $asset->model : '', 'model_number' => $asset->model_number, - 'status_label' => ($asset->assetstatus) ? $asset->assetstatus : '', + 'status_label' => ($asset->assetstatus) ? $asset->assetstatus : null, 'last_checkout' => $asset->last_checkout, - 'category' => ($asset->model->category) ? $asset->model->category : '', - 'manufacturer' => $asset->manufacturer, + 'category' => ($asset->model->category) ? $asset->model->category : null, + 'manufacturer' => ($asset->model->manufacturer) ? $asset->model->manufacturer : null, 'notes' => $asset->notes, 'expected_checkin' => $asset->expected_checkin, 'order_number' => $asset->order_number, diff --git a/app/Models/AssetModel.php b/app/Models/AssetModel.php index e6f959ce6..316da642a 100755 --- a/app/Models/AssetModel.php +++ b/app/Models/AssetModel.php @@ -21,6 +21,7 @@ class AssetModel extends SnipeModel use Requestable, Presentable; protected $dates = ['deleted_at']; protected $table = 'models'; + protected $hidden = ['user_id','deleted_at']; // Declare the rules for the model validation protected $rules = array( diff --git a/app/Models/Category.php b/app/Models/Category.php index 8f9c1b1e5..e152f0e55 100755 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -23,6 +23,7 @@ class Category extends SnipeModel use SoftDeletes; protected $dates = ['deleted_at']; protected $table = 'categories'; + protected $hidden = ['user_id','deleted_at']; /** * Category validation rules diff --git a/app/Models/Manufacturer.php b/app/Models/Manufacturer.php index c6c62883f..4959d10fe 100755 --- a/app/Models/Manufacturer.php +++ b/app/Models/Manufacturer.php @@ -19,6 +19,10 @@ class Manufacturer extends SnipeModel 'user_id' => 'integer', ); + protected $hidden = ['user_id','deleted_at']; + + + /** * Whether the model should inject it's identifier to the unique * validation rules before attempting validation. If this property diff --git a/app/Models/Statuslabel.php b/app/Models/Statuslabel.php index f82072d32..ca5035552 100755 --- a/app/Models/Statuslabel.php +++ b/app/Models/Statuslabel.php @@ -16,6 +16,7 @@ class Statuslabel extends SnipeModel protected $injectUniqueIdentifier = true; protected $dates = ['deleted_at']; protected $table = 'status_labels'; + protected $hidden = ['user_id','deleted_at']; protected $rules = array( diff --git a/resources/views/hardware/index.blade.php b/resources/views/hardware/index.blade.php index 07f887a3d..896655e9c 100755 --- a/resources/views/hardware/index.blade.php +++ b/resources/views/hardware/index.blade.php @@ -85,7 +85,7 @@ {{ trans('admin/hardware/form.checkedout_to') }} {{ trans('admin/hardware/table.location') }} {{ trans('general.category') }} - {{ trans('general.manufacturer') }} + {{ trans('general.manufacturer') }} {{ trans('admin/hardware/form.cost') }} {{ trans('admin/hardware/form.date') }} {{ trans('general.eol') }} diff --git a/resources/views/models/index.blade.php b/resources/views/models/index.blade.php index 172d1024e..f3085ed9d 100755 --- a/resources/views/models/index.blade.php +++ b/resources/views/models/index.blade.php @@ -37,15 +37,16 @@ {{ trans('general.id') }} - {{ trans('admin/hardware/table.image') }} - {{ trans('general.manufacturer') }} - {{ trans('admin/models/table.title') }} + {{ trans('general.name') }} + {{ trans('admin/hardware/table.image') }} + {{ trans('general.manufacturer') }} + {{ trans('admin/models/table.modelnumber') }} {{ trans('admin/models/table.numassets') }} - {{ trans('general.depreciation') }} - {{ trans('general.category') }} + {{ trans('general.depreciation') }} + {{ trans('general.category') }} {{ trans('general.eol') }} - {{ trans('admin/models/general.fieldset') }} + {{ trans('admin/models/general.fieldset') }} {{ trans('general.notes') }} {{ trans('table.actions') }} diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index 1eb7cd9f8..851b2eb05 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -55,8 +55,6 @@ $('.snipe-table').bootstrapTable({ }); - - // Handle whether or not the edit button should be disabled $('.snipe-table').on('check.bs.table', function () { $('#bulkEdit').removeAttr('disabled'); @@ -96,6 +94,7 @@ $('.snipe-table').bootstrapTable({ }; } + // Make the edit/delete buttons function genericActionsFormatter(destination) { return function (value,row) { return ' ' @@ -106,21 +105,44 @@ $('.snipe-table').bootstrapTable({ }; } - // Use this when we're introspecting into a column object with more than one item - function genericColumnArrayLinkFormatter(destination) { + function genericCheckinCheckoutFormatter(destination) { return function (value,row) { - if ((value) && (value.name)) { - return ' ' + value.name + ''; - } + return ' ' + + '' + + ''; }; } - var formatters = ['hardware','locations','users','manufacturers','statuslabels','models','licenses','categories','suppliers','companies']; + function genericPublicImageFormatter(destination) { + return function (value,row) { + if (value) { + return ''; + } + } + } + + var formatters = [ + 'hardware', + 'locations', + 'users', + 'manufacturers', + 'statuslabels', + 'models', + 'licenses', + 'categories', + 'suppliers', + 'companies', + 'depreciations', + 'fieldsets' + ]; for (var i in formatters) { window[formatters[i] + 'LinkFormatter'] = genericRowLinkFormatter(formatters[i]); window[formatters[i] + 'LinkObjFormatter'] = genericColumnObjLinkFormatter(formatters[i]); window[formatters[i] + 'ActionsFormatter'] = genericActionsFormatter(formatters[i]); + window[formatters[i] + 'ImageFormatter'] = genericPublicImageFormatter(formatters[i]); }