mirror of
https://github.com/snipe/snipe-it.git
synced 2025-01-11 05:47:28 -08:00
Fixes #3869 - asset maintenances API endpoints
This commit is contained in:
parent
15bb30acd6
commit
6310670835
226
app/Http/Controllers/Api/AssetMaintenancesController.php
Normal file
226
app/Http/Controllers/Api/AssetMaintenancesController.php
Normal file
|
@ -0,0 +1,226 @@
|
||||||
|
<?php
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Models\AssetMaintenance;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use App\Models\Company;
|
||||||
|
use App\Models\Asset;
|
||||||
|
use App\Helpers\Helper;
|
||||||
|
use Auth;
|
||||||
|
use Gate;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Transformers\AssetMaintenancesTransformer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This controller handles all actions related to Asset Maintenance for
|
||||||
|
* the Snipe-IT Asset Management application.
|
||||||
|
*
|
||||||
|
* @version v2.0
|
||||||
|
*/
|
||||||
|
class AssetMaintenancesController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the JSON response for asset maintenances listing view.
|
||||||
|
*
|
||||||
|
* @see AssetMaintenancesController::getIndex() method that generates view
|
||||||
|
* @author Vincent Sposato <vincent.sposato@gmail.com>
|
||||||
|
* @version v1.0
|
||||||
|
* @since [v1.8]
|
||||||
|
* @return String JSON
|
||||||
|
*/
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$maintenances = AssetMaintenance::with('asset', 'supplier', 'asset.company', 'admin');
|
||||||
|
|
||||||
|
if (Input::has('search')) {
|
||||||
|
$maintenances = $maintenances->TextSearch(e($request->input('search')));
|
||||||
|
}
|
||||||
|
|
||||||
|
$offset = request('offset', 0);
|
||||||
|
$limit = request('limit', 50);
|
||||||
|
|
||||||
|
$allowed_columns = ['id','title','asset_maintenance_time','asset_maintenance_type','cost','start_date','completion_date','notes','user_id'];
|
||||||
|
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
|
||||||
|
$sort = in_array(Input::get('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at';
|
||||||
|
|
||||||
|
switch ($sort) {
|
||||||
|
case 'user_id':
|
||||||
|
$maintenances = $maintenances->OrderAdmin($order);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$maintenances = $maintenances->orderBy($sort, $order);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$maintenances = $maintenances->skip($offset)->take($limit)->get();
|
||||||
|
|
||||||
|
|
||||||
|
return (new AssetMaintenancesTransformer())->transformAssetMaintenances($maintenances, $maintenances->count());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates and stores the new asset maintenance
|
||||||
|
*
|
||||||
|
* @see AssetMaintenancesController::getCreate() method for the form
|
||||||
|
* @author Vincent Sposato <vincent.sposato@gmail.com>
|
||||||
|
* @version v1.0
|
||||||
|
* @since [v1.8]
|
||||||
|
* @return String JSON
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// create a new model instance
|
||||||
|
$assetMaintenance = new AssetMaintenance();
|
||||||
|
$assetMaintenance->supplier_id = $request->input('supplier_id');
|
||||||
|
$assetMaintenance->is_warranty = $request->input('is_warranty');
|
||||||
|
$assetMaintenance->cost = e($request->input('cost'));
|
||||||
|
$assetMaintenance->notes = e($request->input('notes'));
|
||||||
|
$asset = Asset::find(e($request->input('asset_id')));
|
||||||
|
|
||||||
|
if (!Company::isCurrentUserHasAccess($asset)) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot add a maintenance for that asset'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the asset maintenance data
|
||||||
|
$assetMaintenance->asset_id = $request->input('asset_id');
|
||||||
|
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
|
||||||
|
$assetMaintenance->title = $request->input('title');
|
||||||
|
$assetMaintenance->start_date = $request->input('start_date');
|
||||||
|
$assetMaintenance->completion_date = $request->input('completion_date');
|
||||||
|
$assetMaintenance->user_id = Auth::id();
|
||||||
|
|
||||||
|
if (( $assetMaintenance->completion_date !== null )
|
||||||
|
&& ( $assetMaintenance->start_date !== "" )
|
||||||
|
&& ( $assetMaintenance->start_date !== "0000-00-00" )
|
||||||
|
) {
|
||||||
|
$startDate = Carbon::parse($assetMaintenance->start_date);
|
||||||
|
$completionDate = Carbon::parse($assetMaintenance->completion_date);
|
||||||
|
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Was the asset maintenance created?
|
||||||
|
if ($assetMaintenance->save()) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.create.success')));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates and stores an update to an asset maintenance
|
||||||
|
*
|
||||||
|
* @author A. Gianotto <snipe@snipe.net>
|
||||||
|
* @param int $assetMaintenanceId
|
||||||
|
* @param int $request
|
||||||
|
* @version v1.0
|
||||||
|
* @since [v4.0]
|
||||||
|
* @return String JSON
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $assetMaintenanceId = null)
|
||||||
|
{
|
||||||
|
// Check if the asset maintenance exists
|
||||||
|
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
|
||||||
|
|
||||||
|
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$assetMaintenance->supplier_id = e($request->input('supplier_id'));
|
||||||
|
$assetMaintenance->is_warranty = e($request->input('is_warranty'));
|
||||||
|
$assetMaintenance->cost = Helper::ParseFloat(e($request->input('cost')));
|
||||||
|
$assetMaintenance->notes = e($request->input('notes'));
|
||||||
|
|
||||||
|
$asset = Asset::find(request('asset_id'));
|
||||||
|
|
||||||
|
if (!Company::isCurrentUserHasAccess($asset)) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the asset maintenance data
|
||||||
|
$assetMaintenance->asset_id = $request->input('asset_id');
|
||||||
|
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
|
||||||
|
$assetMaintenance->title = $request->input('title');
|
||||||
|
$assetMaintenance->start_date = $request->input('start_date');
|
||||||
|
$assetMaintenance->completion_date = $request->input('completion_date');
|
||||||
|
|
||||||
|
if (( $assetMaintenance->completion_date == null )
|
||||||
|
) {
|
||||||
|
if (( $assetMaintenance->asset_maintenance_time !== 0 )
|
||||||
|
|| ( !is_null($assetMaintenance->asset_maintenance_time) )
|
||||||
|
) {
|
||||||
|
$assetMaintenance->asset_maintenance_time = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (( $assetMaintenance->completion_date !== null )
|
||||||
|
&& ( $assetMaintenance->start_date !== "" )
|
||||||
|
&& ( $assetMaintenance->start_date !== "0000-00-00" )
|
||||||
|
) {
|
||||||
|
$startDate = Carbon::parse($assetMaintenance->start_date);
|
||||||
|
$completionDate = Carbon::parse($assetMaintenance->completion_date);
|
||||||
|
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Was the asset maintenance created?
|
||||||
|
if ($assetMaintenance->save()) {
|
||||||
|
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.edit.success')));
|
||||||
|
|
||||||
|
}
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete an asset maintenance
|
||||||
|
*
|
||||||
|
* @author A. Gianotto <snipe@snipe.net>
|
||||||
|
* @param int $assetMaintenanceId
|
||||||
|
* @version v1.0
|
||||||
|
* @since [v4.0]
|
||||||
|
* @return String JSON
|
||||||
|
*/
|
||||||
|
public function destroy($assetMaintenanceId)
|
||||||
|
{
|
||||||
|
// Check if the asset maintenance exists
|
||||||
|
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
|
||||||
|
|
||||||
|
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot delete a maintenance for that asset'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$assetMaintenance->delete();
|
||||||
|
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.delete.success')));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View an asset maintenance
|
||||||
|
*
|
||||||
|
* @author A. Gianotto <snipe@snipe.net>
|
||||||
|
* @param int $assetMaintenanceId
|
||||||
|
* @version v1.0
|
||||||
|
* @since [v4.0]
|
||||||
|
* @return String JSON
|
||||||
|
*/
|
||||||
|
public function show($assetMaintenanceId)
|
||||||
|
{
|
||||||
|
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
|
||||||
|
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot view a maintenance for that asset'));
|
||||||
|
}
|
||||||
|
return (new AssetMaintenancesTransformer())->transformAssetMaintenance($assetMaintenance);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
53
app/Http/Transformers/AssetMaintenancesTransformer.php
Normal file
53
app/Http/Transformers/AssetMaintenancesTransformer.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
namespace App\Http\Transformers;
|
||||||
|
|
||||||
|
use App\Models\AssetMaintenance;
|
||||||
|
use Gate;
|
||||||
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
use App\Helpers\Helper;
|
||||||
|
|
||||||
|
class AssetMaintenancesTransformer
|
||||||
|
{
|
||||||
|
|
||||||
|
public function transformAssetMaintenances (Collection $assetmaintenances, $total)
|
||||||
|
{
|
||||||
|
$array = array();
|
||||||
|
foreach ($assetmaintenances as $assetmaintenance) {
|
||||||
|
$array[] = self::transformAssetMaintenance($assetmaintenance);
|
||||||
|
}
|
||||||
|
return (new DatatablesTransformer)->transformDatatables($array, $total);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function transformAssetMaintenance (AssetMaintenance $assetmaintenance)
|
||||||
|
{
|
||||||
|
$array = [
|
||||||
|
'id' => (int) $assetmaintenance->id,
|
||||||
|
'asset_name' => ($assetmaintenance->asset) ? ['id' => $assetmaintenance->asset->id,'name'=> e($assetmaintenance->asset->name)] : null,
|
||||||
|
'title' => ($assetmaintenance->title) ? e($assetmaintenance->title) : null,
|
||||||
|
'notes' => ($assetmaintenance->notes) ? e($assetmaintenance->notes) : null,
|
||||||
|
'supplier' => ($assetmaintenance->supplier) ? ['id' => $assetmaintenance->supplier->id,'name'=> e($assetmaintenance->supplier->name)] : null,
|
||||||
|
'cost' => Helper::formatCurrencyOutput($assetmaintenance->cost),
|
||||||
|
'asset_maintenance_type' => e($assetmaintenance->asset_maintenance_type),
|
||||||
|
'start_date' => Helper::getFormattedDateObject($assetmaintenance->start_date, 'datetime'),
|
||||||
|
'asset_maintenance_time' => $assetmaintenance->asset_maintenance_time,
|
||||||
|
'completion_date' => Helper::getFormattedDateObject($assetmaintenance->completion_date, 'datetime'),
|
||||||
|
'user_id' => ($assetmaintenance->admin) ? ['id' => $assetmaintenance->admin->id,'name'=> e($assetmaintenance->admin->getFullNameAttribute())] : null,
|
||||||
|
'created_at' => Helper::getFormattedDateObject($assetmaintenance->created_at, 'datetime'),
|
||||||
|
'updated_at' => Helper::getFormattedDateObject($assetmaintenance->updated_at, 'datetime'),
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
$permissions_array['available_actions'] = [
|
||||||
|
'delete' => (bool) Gate::allows('delete', Asset::class),
|
||||||
|
];
|
||||||
|
|
||||||
|
$array += $permissions_array;
|
||||||
|
|
||||||
|
return $array;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -72,24 +72,28 @@
|
||||||
|
|
||||||
<!-- Start Date -->
|
<!-- Start Date -->
|
||||||
<div class="form-group {{ $errors->has('start_date') ? ' has-error' : '' }}">
|
<div class="form-group {{ $errors->has('start_date') ? ' has-error' : '' }}">
|
||||||
<label for="start_date" class="col-md-3 control-label">
|
<label for="start_date" class="col-md-3 control-label">{{ trans('admin/asset_maintenances/form.start_date') }}</label>
|
||||||
{{ trans('admin/asset_maintenances/form.start_date') }}
|
|
||||||
</label>
|
<div class="input-group col-md-3{{ (\App\Helpers\Helper::checkIfRequired($item, 'start_date')) ? ' required' : '' }}">
|
||||||
<div class="input-group col-md-2{{ (\App\Helpers\Helper::checkIfRequired($item, 'start_date')) ? ' required' : '' }}">
|
<div class="input-group date" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-autoclose="true">
|
||||||
<input type="date" class="datepicker form-control" data-date-format="yyyy-mm-dd" placeholder="Select Date" name="start_date" id="start_date" value="{{ Input::old('start_date', $item->start_date) }}">
|
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="start_date" id="start_date" value="{{ Input::old('start_date', $item->start_date) }}">
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||||
|
</div>
|
||||||
{!! $errors->first('start_date', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
|
{!! $errors->first('start_date', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Completion Date -->
|
<!-- Completion Date -->
|
||||||
<div class="form-group {{ $errors->has('completion_date') ? ' has-error' : '' }}">
|
<div class="form-group {{ $errors->has('completion_date') ? ' has-error' : '' }}">
|
||||||
<label for="start_date" class="col-md-3 control-label">
|
<label for="start_date" class="col-md-3 control-label">{{ trans('admin/asset_maintenances/form.completion_date') }}</label>
|
||||||
{{ trans('admin/asset_maintenances/form.completion_date') }}
|
|
||||||
</label>
|
<div class="input-group col-md-3{{ (\App\Helpers\Helper::checkIfRequired($item, 'completion_date')) ? ' required' : '' }}">
|
||||||
<div class="input-group col-md-2">
|
<div class="input-group date" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-autoclose="true">
|
||||||
<input type="date" class="datepicker form-control" data-date-format="yyyy-mm-dd" placeholder="Select Date" name="completion_date" id="completion_date" value="{{ Input::old('completion_date', $item->completion_date) }}">
|
<input type="text" class="form-control" placeholder="{{ trans('general.select_date') }}" name="completion_date" id="completion_date" value="{{ Input::old('completion_date', $item->completion_date) }}">
|
||||||
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
|
||||||
|
</div>
|
||||||
{!! $errors->first('completion_date', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
|
{!! $errors->first('completion_date', '<span class="alert-msg"><i class="fa fa-times"></i> :message</span>') !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
name="maintenances"
|
name="maintenances"
|
||||||
id="table"
|
id="table"
|
||||||
class="table table-striped snipe-table"
|
class="table table-striped snipe-table"
|
||||||
data-url="{{route('api.asset_maintenances.list') }}"
|
data-url="{{route('api.maintenances.index') }}"
|
||||||
data-cookie="true"
|
data-cookie="true"
|
||||||
data-click-to-select="true"
|
data-click-to-select="true"
|
||||||
data-cookie-id-table="maintenancesTable-{{ config('version.hash_version') }}"
|
data-cookie-id-table="maintenancesTable-{{ config('version.hash_version') }}"
|
||||||
|
@ -33,18 +33,18 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th data-field="company" data-sortable="false" data-visible="false">{{ trans('admin/companies/table.title') }}</th>
|
<th data-field="company" data-sortable="false" data-visible="false">{{ trans('admin/companies/table.title') }}</th>
|
||||||
<th data-sortable="true" data-field="id" data-visible="false">{{ trans('general.id') }}</th>
|
<th data-sortable="true" data-field="id" data-visible="false">{{ trans('general.id') }}</th>
|
||||||
<th data-sortable="false" data-field="asset_name">{{ trans('admin/asset_maintenances/table.asset_name') }}</th>
|
<th data-sortable="false" data-field="asset_name" data-formatter="hardwareLinkObjFormatter">{{ trans('admin/asset_maintenances/table.asset_name') }}</th>
|
||||||
<th data-sortable="false" data-field="supplier">{{ trans('general.supplier') }}</th>
|
<th data-sortable="false" data-field="supplier" data-formatter="suppliersLinkObjFormatter">{{ trans('general.supplier') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="asset_maintenance_type">{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="asset_maintenance_type">{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="title">{{ trans('admin/asset_maintenances/form.title') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="title">{{ trans('admin/asset_maintenances/form.title') }}</th>
|
||||||
<th data-searchable="true" data-sortable="false" data-field="start_date">{{ trans('admin/asset_maintenances/form.start_date') }}</th>
|
<th data-searchable="true" data-sortable="false" data-field="start_date" data-formatter="dateDisplayFormatter">{{ trans('admin/asset_maintenances/form.start_date') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="completion_date">{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="completion_date" data-formatter="dateDisplayFormatter">{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="asset_maintenance_time">{{ trans('admin/asset_maintenances/form.asset_maintenance_time') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="asset_maintenance_time">{{ trans('admin/asset_maintenances/form.asset_maintenance_time') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="cost" class="text-right">{{ trans('admin/asset_maintenances/form.cost') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="cost" class="text-right">{{ trans('admin/asset_maintenances/form.cost') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="user_id">{{ trans('general.admin') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="user_id" data-formatter="usersLinkObjFormatter">{{ trans('general.admin') }}</th>
|
||||||
<th data-searchable="true" data-sortable="true" data-field="notes" data-visible="false">{{ trans('admin/asset_maintenances/form.notes') }}</th>
|
<th data-searchable="true" data-sortable="true" data-field="notes" data-visible="false">{{ trans('admin/asset_maintenances/form.notes') }}</th>
|
||||||
@can('update', \App\Models\Asset::class)
|
@can('update', \App\Models\Asset::class)
|
||||||
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="actions">{{ trans('table.actions') }}</th>
|
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="actions" data-formatter="maintenanceActions">{{ trans('table.actions') }}</th>
|
||||||
@endcan
|
@endcan
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -58,4 +58,18 @@
|
||||||
|
|
||||||
@section('moar_scripts')
|
@section('moar_scripts')
|
||||||
@include ('partials.bootstrap-table', ['exportFile' => 'maintenances-export', 'search' => true])
|
@include ('partials.bootstrap-table', ['exportFile' => 'maintenances-export', 'search' => true])
|
||||||
|
<script>
|
||||||
|
function maintenanceActions(value, row) {
|
||||||
|
|
||||||
|
if ((row) && (row.available_actions.delete === true)) {
|
||||||
|
return '<a href="{{ url('/') }}/hardware/maintenances/' + row.id + '" '
|
||||||
|
+ ' class="btn btn-danger btn-sm delete-asset" data-tooltip="true" '
|
||||||
|
+ ' data-toggle="modal" '
|
||||||
|
+ ' data-content="{{ trans('general.sure_to_delete') }} ' + row.name + '?" '
|
||||||
|
+ ' data-title="{{ trans('general.delete') }}" onClick="return false;">'
|
||||||
|
+ '<i class="fa fa-trash"></i></a></nobr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
@stop
|
@stop
|
||||||
|
|
|
@ -230,6 +230,22 @@ Route::group(['prefix' => 'v1','namespace' => 'Api'], function () {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*--- Asset Maintenances API ---*/
|
||||||
|
Route::resource('maintenances', 'AssetMaintenancesController',
|
||||||
|
[
|
||||||
|
'names' =>
|
||||||
|
[
|
||||||
|
'index' => 'api.maintenances.index',
|
||||||
|
'show' => 'api.maintenances.show',
|
||||||
|
'store' => 'api.maintenances.store',
|
||||||
|
'update' => 'api.maintenances.update',
|
||||||
|
'destroy' => 'api.maintenances.destroy'
|
||||||
|
],
|
||||||
|
'except' => ['create', 'edit'],
|
||||||
|
'parameters' => ['maintenance' => 'maintenance_id']
|
||||||
|
]
|
||||||
|
); // Consumables resource
|
||||||
|
|
||||||
|
|
||||||
Route::resource('hardware', 'AssetsController',
|
Route::resource('hardware', 'AssetsController',
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in a new issue