Disallow multiple on editing a maintenance

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe
2025-06-14 13:39:18 +01:00
parent f666cba104
commit cc7dcc6e81
4 changed files with 41 additions and 22 deletions

View File

@@ -133,26 +133,18 @@ class AssetMaintenancesController extends Controller
*
* @see AssetMaintenancesController::postEdit() method that stores the data
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @param int $assetMaintenanceId
* @version v1.0
* @since [v1.8]
*/
public function edit(AssetMaintenance $maintenance) : View | RedirectResponse
{
$this->authorize('update', Asset::class);
if ((!$maintenance->asset) || ($maintenance->asset->deleted_at!='')) {
return redirect()->route('maintenances.index')->with('error', 'asset does not exist');
} elseif (! Company::isCurrentUserHasAccess($maintenance->asset)) {
return static::getInsufficientPermissionsRedirect();
}
// Prepare Improvement Type List
$assetMaintenanceType = ['' => trans('general.select')] + AssetMaintenance::getImprovementOptions();
return view('asset_maintenances/edit')
->with('selectedAsset', null)
->with('assetMaintenanceType', $assetMaintenanceType)
->with('item', $maintenance);
->with('selected_assets', $maintenance->asset->pluck('id')->toArray())
->with('asset_ids', request()->input('asset_ids', []))
->with('assetMaintenanceType', AssetMaintenance::getImprovementOptions())
->with('item', $maintenance);
}
/**

View File

@@ -167,6 +167,20 @@ class AssetMaintenance extends Model implements ICompanyableChild
->withTrashed();
}
/**
* asset
* Get asset for this improvement
*
* @return mixed
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
*/
public function assets()
{
return $this->hasMany(Asset::class, 'asset_id')
->withTrashed();
}
/**
* Get the admin who created the maintenance
*

View File

@@ -53,17 +53,30 @@
</div>
</div>
<!-- This is an edit -->
@if (!$item->id)
@include ('partials.forms.edit.asset-select', [
'translated_name' => trans('general.assets'),
'fieldname' => 'selected_assets[]',
'multiple' => true,
'required' => true,
'select_id' => 'assigned_assets_select',
'asset_selector_div_id' => 'assets_for_maintenance_div',
'asset_ids' => $item->id ? $item->asset()->pluck('id')->toArray() : old('selected_assets'),
'asset_id' => $item->id ? $item->asset()->pluck('id')->toArray() : null
])
@else
<label for="asset" class="control-label col-md-3">
{{ trans('general.asset') }}
</label>
<div class="col-md-9">
<p class="form-control-static">
{{ $item->asset() ? $item->asset->present()->fullName : '' }}
</p>
</div>
@include ('partials.forms.edit.asset-select', [
'translated_name' => trans('general.assets'),
'fieldname' => 'selected_assets[]',
'multiple' => true,
'required' => true,
'select_id' => 'assigned_assets_select',
'asset_selector_div_id' => 'assets_to_checkout_div',
'asset_ids' => old('selected_assets')
])
@endif
@include ('partials.forms.edit.maintenance_type')

View File

@@ -10,7 +10,7 @@
name="{{ $fieldname }}"
style="width: 100%"
id="{{ (isset($select_id)) ? $select_id : 'assigned_asset_select' }}"
{{ (isset($multiple)) ? ' multiple' : '' }}
{{ ((isset($multiple)) && ($multiple === true)) ? ' multiple' : '' }}
{!! (!empty($asset_status_type)) ? ' data-asset-status-type="' . $asset_status_type . '"' : '' !!}
{!! (!empty($company_id)) ? ' data-company-id="' .$company_id.'"' : '' !!}
{{ ((isset($required) && ($required =='true'))) ? ' required' : '' }}