diff --git a/app/Http/Controllers/Api/StatuslabelsController.php b/app/Http/Controllers/Api/StatuslabelsController.php index b51f858e41..ceeea44c4f 100644 --- a/app/Http/Controllers/Api/StatuslabelsController.php +++ b/app/Http/Controllers/Api/StatuslabelsController.php @@ -8,6 +8,7 @@ use App\Helpers\Helper; use App\Models\Statuslabel; use App\Models\Asset; use App\Http\Transformers\DatatablesTransformer; +use App\Http\Transformers\AssetsTransformer; class StatuslabelsController extends Controller { @@ -161,4 +162,36 @@ class StatuslabelsController extends Controller return $result; } + /** + * Display the specified resource. + * + * @author [A. Gianotto] [] + * @since [v4.0] + * @param int $id + * @return \Illuminate\Http\Response + */ + public function assets(Request $request, $id) + { + $this->authorize('view', Statuslabel::class); + $this->authorize('index', Asset::class); + $assets = Asset::where('status_id','=',$id); + + $allowed_columns = [ + 'id', + 'name' + ]; + + $offset = request('offset', 0); + $limit = $request->input('limit', 50); + $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; + $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; + $assets->orderBy($sort, $order); + + $total = $assets->count(); + $assets = $assets->skip($offset)->take($limit)->get(); + + + return (new AssetsTransformer)->transformAssets($assets, $total); + } + } diff --git a/app/Http/Controllers/StatuslabelsController.php b/app/Http/Controllers/StatuslabelsController.php index 951bf99636..8989a38196 100755 --- a/app/Http/Controllers/StatuslabelsController.php +++ b/app/Http/Controllers/StatuslabelsController.php @@ -32,10 +32,19 @@ class StatuslabelsController extends Controller public function index() { - // Show the page return View::make('statuslabels/index', compact('statuslabels')); } + public function show($id) + { + $statuslabel = Statuslabel::find($id); + + if (isset($statuslabel->id)) { + return View::make('statuslabels/view', compact('statuslabel')); + } + + return redirect()->route('statuslabels.index')->with('error', trans('admin/locations/message.does_not_exist', compact('id'))); + } diff --git a/app/Http/Transformers/AssetsTransformer.php b/app/Http/Transformers/AssetsTransformer.php index 97f4225226..68c4a908bc 100644 --- a/app/Http/Transformers/AssetsTransformer.php +++ b/app/Http/Transformers/AssetsTransformer.php @@ -25,7 +25,7 @@ class AssetsTransformer 'serial' => $asset->serial, 'model' => ($asset->model) ? $asset->model->name : '', 'model_number' => $asset->model_number, - 'status_label' => ($asset->assetstatus) ? $asset->assetstatus->name : '', + 'status_label' => ($asset->assetstatus) ? $asset->assetstatus : '', 'last_checkout' => $asset->last_checkout, 'category' => ($asset->model->category) ? $asset->model->category->name : '', 'manufacturer' => $asset->manufacturer, diff --git a/app/Http/Transformers/UsersTransformer.php b/app/Http/Transformers/UsersTransformer.php index ca941230cf..439935d872 100644 --- a/app/Http/Transformers/UsersTransformer.php +++ b/app/Http/Transformers/UsersTransformer.php @@ -26,7 +26,8 @@ class UsersTransformer 'lastname' => e($user->last_name), 'username' => e($user->username), 'employee_num' => e($user->employee_num), - 'manager' => ($user->manager) ? $user->manager->name : false, + 'manager' => ($user->manager) ? (new UsersTransformer)->transformUser($user->manager) : '', + 'groups' => $user->groups, 'jobtitle' => e($user->jobtitle), 'email' => e($user->email), 'location' => (new LocationsTransformer)->transformLocation($user->userloc), @@ -46,4 +47,6 @@ class UsersTransformer + + } diff --git a/resources/views/statuslabels/view.blade.php b/resources/views/statuslabels/view.blade.php new file mode 100644 index 0000000000..a81fcc1a0f --- /dev/null +++ b/resources/views/statuslabels/view.blade.php @@ -0,0 +1,102 @@ +@extends('layouts/default') + +{{-- Page title --}} +@section('title') + {{ $statuslabel->name }} Assets ({{ $statuslabel->getStatuslabelType() }}) + @parent +@stop + +@section('header_right') + + {{ trans('general.create') }} +@stop +{{-- Page content --}} +@section('content') +
+
+
+
+ {{ Form::open([ + 'method' => 'POST', + 'route' => ['hardware/bulkedit'], + 'class' => 'form-inline', + 'id' => 'bulkForm']) }} +
+
+ @if (Input::get('status')!='Deleted') +
+ + +
+ @endif + + + + + @if (Input::get('status')!='Deleted') + + @endif + + + + + + + + + + + + + + + + + + + + + @foreach(\App\Models\CustomField::all() AS $field) + + + + + @endforeach + + + + + + +
{{ trans('general.id') }}{{ trans('general.company') }}{{ trans('admin/hardware/table.image') }}{{ trans('admin/hardware/form.name') }}{{ trans('admin/hardware/table.asset_tag') }}{{ trans('admin/hardware/table.serial') }}{{ trans('admin/hardware/form.model') }}{{ trans('admin/models/table.modelnumber') }}{{ trans('admin/hardware/form.checkedout_to') }}{{ trans('admin/hardware/table.location') }}{{ trans('general.category') }}{{ trans('general.manufacturer') }}{{ trans('admin/hardware/form.cost') }}{{ trans('admin/hardware/form.date') }}{{ trans('general.eol') }}{{ trans('general.notes') }}{{ trans('admin/hardware/form.order') }}{{ trans('admin/hardware/table.checkout_date') }}{{ trans('admin/hardware/form.expected_checkin') }} + @if ($field->field_encrypted=='1') + + @endif + + {{$field->name}} + {{ trans('general.created_at') }}{{ trans('admin/hardware/table.change') }}{{ trans('table.actions') }}
+
+
+ {{ Form::close() }} +
+
+
+
+@stop + +@section('moar_scripts') + @include ('partials.bootstrap-table', ['exportFile' => 'statuslabels-export', 'search' => true]) +@stop diff --git a/routes/api.php b/routes/api.php index 97eccd4445..5dd3e07a5e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -147,6 +147,9 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () { Route::group([ 'prefix' => 'statuslabels'], function () { + Route::get('{id}/assetlist', + [ 'as' => 'api.statuslabels.assets', 'uses' => 'StatuslabelsController@assets' ]); + Route::get('{id}/deployable', function ($statuslabelId) { $statuslabel = Statuslabel::find($statuslabelId);