User assets presenter for column headers

This commit is contained in:
snipe 2017-02-06 18:49:08 -08:00
parent 584e2ba618
commit 6d40a98a16
2 changed files with 111 additions and 85 deletions

View file

@ -1,10 +1,8 @@
<?php
namespace App\Presenters;
use App\Helpers\Helper;
use App\Models\SnipeModel;
use App\Models\CustomField;
use DateTime;
use Illuminate\Support\Facades\Gate;
/**
* Class AssetPresenter
@ -21,58 +19,108 @@ class AssetPresenter extends Presenter
{
$layout = [
[
"field" => "checkbox",
"checkbox" => true
],[
"field" => "id",
"searchable" => false,
"sortable" => true,
"title" => trans('general.id'),
"visible" => false,
"formatter" => null
], [
"field" => "company",
"searchable" => true,
"sortable" => true,
"switchable" => true,
"title" => '',
"visible" => true,
"title" => trans('general.company'),
"visible" => false,
"formatter" => "companiesLinkObjFormatter"
], [
"field" => "name",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/accessories/table.title'),
"formatter" => "accessoriesLinkFormatter"
"title" => trans('admin/hardware/form.name'),
"visible" => true,
"formatter" => "hardwareLinkFormatter"
], [
"field" => "category",
"field" => "image",
"searchable" => false,
"sortable" => true,
"switchable" => true,
"title" => trans('admin/hardware/table.image'),
"visible" => true,
"formatter" => "imageFormatter"
], [
"field" => "asset_tag",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/accessories/general.accessory_category'),
"formatter" => "categoriesLinkObjFormatter"
"title" => trans('admin/hardware/table.asset_tag'),
"visible" => true,
"formatter" => "hardwareLinkFormatter"
], [
"field" => "serial",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/hardware/form.serial'),
"visible" => true,
"formatter" => "hardwareLinkFormatter"
], [
"field" => "model",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/hardware/form.model'),
"visible" => true,
"formatter" => "modelsLinkObjFormatter"
], [
"field" => "model_number",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/models/table.modelnumber'),
"formatter" => "accessoriesLinkFormatter"
"visible" => false,
"formatter" => null
], [
"field" => "category",
"searchable" => true,
"sortable" => true,
"title" => trans('general.category'),
"visible" => true,
"formatter" => "categoriesLinkObjFormatter"
], [
"field" => "status_label",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/hardware/table.status'),
"visible" => true,
"formatter" => "statuslabelsLinkObjFormatter"
], [
"field" => "assigned_to",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/hardware/form.checkedout_to'),
"visible" => true,
"formatter" => "usersLinkObjFormatter"
],[
"field" => "location",
"searchable" => true,
"sortable" => true,
"title" => trans('admin/hardware/table.location'),
"visible" => true,
"formatter" => "locationsLinkObjFormatter"
], [
"field" => "category",
"searchable" => true,
"sortable" => true,
"title" => trans('general.category'),
"visible" => true,
"formatter" => "categoriesLinkObjFormatter"
], [
"field" => "manufacturer",
"searchable" => true,
"sortable" => true,
"title" => trans('general.manufacturer'),
"formatter" => "manufacturersLinkObjFormatter",
], [
"field" => "location",
"searchable" => true,
"sortable" => true,
"title" => trans('general.location'),
"formatter" => "locationsLinkObjFormatter",
], [
"field" => "qty",
"searchable" => false,
"sortable" => false,
"title" => trans('admin/accessories/general.total'),
], [
"field" => "min_qty",
"searchable" => false,
"sortable" => true,
"title" => trans('general.min_amt'),
], [
"field" => "remaining_qty",
"searchable" => false,
"sortable" => false,
"title" => trans('admin/accessories/general.remaining'),
"visible" => false,
"formatter" => "manufacturersLinkObjFormatter"
], [
"field" => "purchase_date",
"searchable" => true,
@ -91,18 +139,39 @@ class AssetPresenter extends Presenter
"visible" => false,
"title" => trans('general.order_number'),
], [
"field" => "actions",
"searchable" => false,
"sortable" => false,
"switchable" => false,
"title" => trans('table.actions'),
"formatter" => "accessoriesActionsFormatter",
"field" => "notes",
"searchable" => true,
"sortable" => true,
"visible" => false,
"title" => trans('general.notes'),
]
];
$fields = CustomField::all();
foreach ($fields as $field) {
$layout[] = ["field" => $field->convertUnicodeDbSlug(),
"searchable" => true,
"sortable" => true,
"switchable" => true,
"title" => ($field->field_encrypted=='1') ?
'<i class="fa fa-lock"></i> '.e($field->name) : e($field->name),
"formatter" => null ];
}
$layout[] = [
"field" => "actions",
"searchable" => false,
"sortable" => false,
"switchable" => false,
"title" => trans('table.actions'),
"formatter" => "hardwareActionsFormatter",
];
return json_encode($layout);
}
/**
* Generate html link to this items name.
* @return string
@ -230,3 +299,4 @@ class AssetPresenter extends Presenter
return '<i class="fa fa-barcode"></i>';
}
}

View file

@ -68,51 +68,6 @@
data-cookie="true"
data-click-to-select="true"
data-cookie-id-table="{{ e(Input::get('status')) }}assetTable-{{ config('version.hash_version') }}">
<thead>
<tr>
@if (Input::get('status')!='Deleted')
<th data-checkbox="true" data-field="checkbox"></th>
@endif
<th data-sortable="true" data-field="id" data-visible="false">{{ trans('general.id') }}</th>
<th data-field="company" data-formatter="companiesLinkObjFormatter" data-searchable="true" data-sortable="true" data-switchable="true" data-visible="false">{{ trans('general.company') }}</th>
<th data-sortable="true" data-field="image" data-formatter="imageFormatter" data-visible="false">{{ trans('admin/hardware/table.image') }}</th>
<th data-sortable="true" data-field="name" data-visible="false" data-formatter="hardwareLinkFormatter">{{ trans('admin/hardware/form.name') }}</th>
<th data-sortable="true" data-field="asset_tag" data-formatter="hardwareLinkFormatter">{{ trans('admin/hardware/table.asset_tag') }}</th>
<th data-sortable="true" data-field="serial" data-formatter="hardwareLinkFormatter">{{ trans('admin/hardware/table.serial') }}</th>
<th data-sortable="true" data-field="model" data-formatter="modelsLinkObjFormatter">{{ trans('admin/hardware/form.model') }}</th>
<th data-sortable="true" data-field="model_number" data-visible="false">{{ trans('admin/models/table.modelnumber') }}</th>
<th data-sortable="true" data-field="status_label" data-formatter="statuslabelsLinkObjFormatter">{{ trans('admin/hardware/table.status') }}</th>
<th data-sortable="true" data-formatter="usersLinkObjFormatter" data-field="assigned_to">{{ trans('admin/hardware/form.checkedout_to') }}</th>
<th data-sortable="true" data-formatter="locationsLinkObjFormatter" data-field="location" data-searchable="true">{{ trans('admin/hardware/table.location') }}</th>
<th data-sortable="true" data-field="category" data-searchable="true" data-formatter="categoriesLinkObjFormatter">{{ trans('general.category') }}</th>
<th data-sortable="true" data-field="manufacturer" data-formatter="manufacturersLinkObjFormatter" data-searchable="true" data-visible="false">{{ trans('general.manufacturer') }}</th>
<th data-sortable="true" data-field="purchase_cost" data-searchable="true" data-visible="false">{{ trans('admin/hardware/form.cost') }}</th>
<th data-sortable="true" data-field="purchase_date" data-searchable="true" data-visible="false">{{ trans('admin/hardware/form.date') }}</th>
<th data-sortable="false" data-field="eol" data-searchable="true">{{ trans('general.eol') }}</th>
<th data-sortable="true" data-searchable="true" data-field="notes">{{ trans('general.notes') }}</th>
<th data-sortable="true" data-searchable="true" data-field="order_number">{{ trans('admin/hardware/form.order') }}</th>
<th data-sortable="true" data-searchable="true" data-field="last_checkout">{{ trans('admin/hardware/table.checkout_date') }}</th>
<th data-sortable="true" data-field="expected_checkin" data-searchable="true">{{ trans('admin/hardware/form.expected_checkin') }}</th>
<th data-sortable="false" data-field="warranty">{{ trans('admin/hardware/form.warranty') }}</th>
<th data-sortable="false" data-field="warranty_expires">{{ trans('admin/hardware/form.expires') }}</th>
@foreach(\App\Models\CustomField::all() as $field)
<th data-sortable="{{ ($field->field_encrypted=='1' ? 'false' : 'true') }}" data-visible="false" data-field="{{$field->convertUnicodeDbSlug()}}">
@if ($field->field_encrypted=='1')
<i class="fa fa-lock"></i>
@endif
{{$field->name}}
</th>
@endforeach
<th data-sortable="true" data-field="created_at" data-formatter="createdAtFormatter" data-searchable="true" data-visible="false">{{ trans('general.created_at') }}</th>
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="change">{{ trans('admin/hardware/table.change') }}</th>
<th data-switchable="false" data-searchable="false" data-formatter="hardwareActionsFormatter" data-sortable="false" data-field="actions" >{{ trans('table.actions') }}</th>
</tr>
</thead>
</table>
</div><!-- /.col -->
</div><!-- /.row -->
@ -127,7 +82,8 @@
@include ('partials.bootstrap-table', [
'exportFile' => 'assets-export',
'search' => true,
'multiSort' => true
'multiSort' => true,
'columns' => \App\Presenters\AssetPresenter::dataTableLayout()
])
@stop