Additional API transformers, formatters

This commit is contained in:
snipe 2017-01-24 17:07:00 -08:00
parent 6d2a37fa80
commit d0f062458e
7 changed files with 42 additions and 13 deletions

View file

@ -23,11 +23,11 @@ class AssetsTransformer
'name' => $asset->name,
'asset_tag' => $asset->asset_tag,
'serial' => $asset->serial,
'model' => ($asset->model) ? $asset->model->name : '',
'model' => ($asset->model) ? $asset->model : '',
'model_number' => $asset->model_number,
'status_label' => ($asset->assetstatus) ? $asset->assetstatus : '',
'last_checkout' => $asset->last_checkout,
'category' => ($asset->model->category) ? $asset->model->category->name : '',
'category' => ($asset->model->category) ? $asset->model->category : '',
'manufacturer' => $asset->manufacturer,
'notes' => $asset->notes,
'expected_checkin' => $asset->expected_checkin,

View file

@ -30,7 +30,7 @@
name="category_assets"
class="snipe-table"
id="table"
data-url="{{ route('api.categories.'.$category->category_type.'.view', [$category->id, $category->category_type]) }}"
data-url="{{ route('api.categories.'.$category->category_type.'.show', [$category->id, $category->category_type]) }}"
data-cookie="true"
data-click-to-select="true"
data-cookie-id-table="categoryAssetsTable"

View file

@ -166,8 +166,23 @@
if (modelid == '') {
$('#custom_fields_content').html("");
} else {
$.get("{{url('/') }}/models/" + modelid + "/custom_fields", {_token: "{{ csrf_token() }}"}, function (data) {
$('#custom_fields_content').html(data);
$.ajax({
type: 'GET',
url: "{{url('/') }}/models/" + modelid + "/custom_fields",
headers: {
"X-Requested-With": 'XMLHttpRequest',
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
_token: "{{ csrf_token() }}",
dataType: 'json',
success: function (data) {
data: data,
$('#custom_fields_content').html(data);
},
error: function (data) {
alert('oops');
}
});
}
}
@ -385,9 +400,9 @@
$('#modal-save').on('click', function () {
var data = {};
//console.warn("We are about to SAVE!!! for model: "+model+" and select ID: "+select);
console.warn("We are about to SAVE!!! for model: "+model+" and select ID: "+select);
$('.modal-body input:visible').each(function (index, elem) {
//console.warn("["+index+"]: "+elem.id+" = "+$(elem).val());
console.warn("["+index+"]: "+elem.id+" = "+$(elem).val());
var bits = elem.id.split("-");
if (bits[0] === "modal") {
data[bits[1]] = $(elem).val();
@ -399,7 +414,7 @@
});
data._token = '{{ csrf_token() }}';
//console.log(data);
$.ajax({
type: 'POST',
@ -428,6 +443,8 @@
window.alert("Unable to add new " + model + " - error: " + msg);
}
});
});
});

View file

@ -79,12 +79,12 @@
<th data-sortable="true" data-field="name" data-visible="false">{{ trans('admin/hardware/form.name') }}</th>
<th data-sortable="true" data-field="asset_tag" data-formatter="assetFormatter">{{ trans('admin/hardware/table.asset_tag') }}</th>
<th data-sortable="true" data-field="serial" data-formatter="assetFormatter">{{ trans('admin/hardware/table.serial') }}</th>
<th data-sortable="true" data-field="model">{{ trans('admin/hardware/form.model') }}</th>
<th data-sortable="true" data-field="model" data-formatter="modelFormatter">{{ 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="statusFormatter">{{ trans('admin/hardware/table.status') }}</th>
<th data-sortable="true" data-field="assigned_to">{{ trans('admin/hardware/form.checkedout_to') }}</th>
<th data-sortable="true" data-formatter="locationFormatter" data-field="location" data-searchable="true">{{ trans('admin/hardware/table.location') }}</th>
<th data-sortable="true" data-field="category" data-searchable="true">{{ trans('general.category') }}</th>
<th data-sortable="true" data-field="category" data-searchable="true" data-formatter="categoryFormatter">{{ trans('general.category') }}</th>
<th data-sortable="true" data-field="manufacturer" 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>

View file

@ -111,6 +111,18 @@ $('.snipe-table').bootstrapTable({
}
}
function modelFormatter(value, row) {
if (value) {
return '<a href="{{ url('/') }}/models/' + value.id + '"> ' + value.name + '</a>';
}
}
function categoryFormatter(value, row) {
if (value) {
return '<a href="{{ url('/') }}/categories/' + value.id + '"> ' + value.name + '</a>';
}
}
function companyFormatter(value, row) {
if ((value) && (value[0].name)) {
return '<a href="{{ url('/') }}/companies/' + value[0].id + '"> ' + value[0].name + '</a>';

View file

@ -7,7 +7,7 @@
@stop
@section('header_right')
<a href="{{ route('statuslabels.create') }}" class="btn btn-primary pull-right">
<a href="{{ route('hardware.create') }}" class="btn btn-primary pull-right">
{{ trans('general.create') }}</a>
@stop
{{-- Page content --}}

View file

@ -52,7 +52,7 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () {
['names' =>
[
'index' => 'api.categories.index',
'show' => 'api.categories.show',
'show' => 'api.categories.asset.show',
'update' => 'api.categories.update',
'store' => 'api.categories.store',
'destroy' => 'api.categories.destroy'