mirror of
https://github.com/snipe/snipe-it.git
synced 2025-02-21 03:15:45 -08:00
User assets presenter for column headers
This commit is contained in:
parent
584e2ba618
commit
6d40a98a16
|
@ -1,10 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
namespace App\Presenters;
|
namespace App\Presenters;
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
use App\Models\CustomField;
|
||||||
use App\Models\SnipeModel;
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Illuminate\Support\Facades\Gate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AssetPresenter
|
* Class AssetPresenter
|
||||||
|
@ -21,58 +19,108 @@ class AssetPresenter extends Presenter
|
||||||
{
|
{
|
||||||
$layout = [
|
$layout = [
|
||||||
[
|
[
|
||||||
|
"field" => "checkbox",
|
||||||
|
"checkbox" => true
|
||||||
|
],[
|
||||||
|
"field" => "id",
|
||||||
|
"searchable" => false,
|
||||||
|
"sortable" => true,
|
||||||
|
"title" => trans('general.id'),
|
||||||
|
"visible" => false,
|
||||||
|
"formatter" => null
|
||||||
|
], [
|
||||||
"field" => "company",
|
"field" => "company",
|
||||||
"searchable" => true,
|
"searchable" => true,
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"switchable" => true,
|
"switchable" => true,
|
||||||
"title" => '',
|
"title" => trans('general.company'),
|
||||||
"visible" => true,
|
"visible" => false,
|
||||||
"formatter" => "companiesLinkObjFormatter"
|
"formatter" => "companiesLinkObjFormatter"
|
||||||
], [
|
], [
|
||||||
"field" => "name",
|
"field" => "name",
|
||||||
"searchable" => true,
|
"searchable" => true,
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"title" => trans('admin/accessories/table.title'),
|
"title" => trans('admin/hardware/form.name'),
|
||||||
"formatter" => "accessoriesLinkFormatter"
|
"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,
|
"searchable" => true,
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"title" => trans('admin/accessories/general.accessory_category'),
|
"title" => trans('admin/hardware/table.asset_tag'),
|
||||||
"formatter" => "categoriesLinkObjFormatter"
|
"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",
|
"field" => "model_number",
|
||||||
"searchable" => true,
|
"searchable" => true,
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"title" => trans('admin/models/table.modelnumber'),
|
"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",
|
"field" => "manufacturer",
|
||||||
"searchable" => true,
|
"searchable" => true,
|
||||||
"sortable" => true,
|
"sortable" => true,
|
||||||
"title" => trans('general.manufacturer'),
|
"title" => trans('general.manufacturer'),
|
||||||
"formatter" => "manufacturersLinkObjFormatter",
|
"visible" => false,
|
||||||
], [
|
"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'),
|
|
||||||
], [
|
], [
|
||||||
"field" => "purchase_date",
|
"field" => "purchase_date",
|
||||||
"searchable" => true,
|
"searchable" => true,
|
||||||
|
@ -91,18 +139,39 @@ class AssetPresenter extends Presenter
|
||||||
"visible" => false,
|
"visible" => false,
|
||||||
"title" => trans('general.order_number'),
|
"title" => trans('general.order_number'),
|
||||||
], [
|
], [
|
||||||
"field" => "actions",
|
"field" => "notes",
|
||||||
"searchable" => false,
|
"searchable" => true,
|
||||||
"sortable" => false,
|
"sortable" => true,
|
||||||
"switchable" => false,
|
"visible" => false,
|
||||||
"title" => trans('table.actions'),
|
"title" => trans('general.notes'),
|
||||||
"formatter" => "accessoriesActionsFormatter",
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$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);
|
return json_encode($layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate html link to this items name.
|
* Generate html link to this items name.
|
||||||
* @return string
|
* @return string
|
||||||
|
@ -230,3 +299,4 @@ class AssetPresenter extends Presenter
|
||||||
return '<i class="fa fa-barcode"></i>';
|
return '<i class="fa fa-barcode"></i>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,51 +68,6 @@
|
||||||
data-cookie="true"
|
data-cookie="true"
|
||||||
data-click-to-select="true"
|
data-click-to-select="true"
|
||||||
data-cookie-id-table="{{ e(Input::get('status')) }}assetTable-{{ config('version.hash_version') }}">
|
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>
|
</table>
|
||||||
</div><!-- /.col -->
|
</div><!-- /.col -->
|
||||||
</div><!-- /.row -->
|
</div><!-- /.row -->
|
||||||
|
@ -127,7 +82,8 @@
|
||||||
@include ('partials.bootstrap-table', [
|
@include ('partials.bootstrap-table', [
|
||||||
'exportFile' => 'assets-export',
|
'exportFile' => 'assets-export',
|
||||||
'search' => true,
|
'search' => true,
|
||||||
'multiSort' => true
|
'multiSort' => true,
|
||||||
|
'columns' => \App\Presenters\AssetPresenter::dataTableLayout()
|
||||||
])
|
])
|
||||||
|
|
||||||
@stop
|
@stop
|
||||||
|
|
Loading…
Reference in a new issue