Skip to content

Commit 0149ed7

Browse files
authored
Merge pull request #15565 from spencerrlongg/bug/sc-25921
2 parents f726359 + 4f9f035 commit 0149ed7

File tree

5 files changed

+37
-14
lines changed

5 files changed

+37
-14
lines changed

app/Http/Controllers/AssetModelsController.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Illuminate\Support\Facades\Log;
1919
use \Illuminate\Contracts\View\View;
2020
use \Illuminate\Http\RedirectResponse;
21+
use Illuminate\Support\MessageBag;
2122

2223

2324
/**
@@ -29,6 +30,7 @@
2930
*/
3031
class AssetModelsController extends Controller
3132
{
33+
protected MessageBag $validatorErrors;
3234
/**
3335
* Returns a view that invokes the ajax tables which actually contains
3436
* the content for the accessories listing, which is generated in getDatatable.
@@ -158,7 +160,7 @@ public function update(StoreAssetModelRequest $request, $modelId) : RedirectResp
158160

159161
if ($this->shouldAddDefaultValues($request->input())) {
160162
if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))) {
161-
return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error'));
163+
return redirect()->back()->withInput()->withErrors($this->validatorErrors);
162164
}
163165
}
164166

@@ -481,9 +483,15 @@ private function assignCustomFieldsDefaultValues(AssetModel|SnipeModel $model, a
481483
$rules[$field] = $validation;
482484
}
483485

484-
$validator = Validator::make($data, $rules);
486+
$attributes = [];
487+
foreach ($model->fieldset->fields as $field) {
488+
$attributes[$field->db_column] = trim(preg_replace('/_+|snipeit|\d+/', ' ', $field->db_column));
489+
}
490+
491+
$validator = Validator::make($data, $rules)->setAttributeNames($attributes);
485492

486493
if($validator->fails()){
494+
$this->validatorErrors = $validator->errors();
487495
return false;
488496
}
489497

app/Livewire/CustomFieldSetDefaultValuesForModel.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,15 @@ public function mount($model_id = null)
2424
$this->fieldset_id = $this->model?->fieldset_id;
2525
$this->add_default_values = ($this->model?->defaultValues->count() > 0);
2626

27+
2728
$this->initializeSelectedValuesArray();
29+
if (session()->has('errors')) {
30+
$errors = session('errors')->keys();
31+
$selectedValuesKeys = array_keys($this->selectedValues);
32+
if (count(array_intersect($selectedValuesKeys, $errors)) > 0) {
33+
$this->add_default_values = true;
34+
};
35+
}
2836
$this->populatedSelectedValuesArray();
2937
}
3038

resources/views/livewire/custom-field-set-default-values-for-model.blade.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<span>
2-
32
<div class="form-group{{ $errors->has('custom_fieldset') ? ' has-error' : '' }}">
43
<label for="custom_fieldset" class="col-md-3 control-label">
54
{{ trans('admin/models/general.fieldset') }}
@@ -11,6 +10,7 @@
1110
<div class="col-md-3">
1211
@if ($fieldset_id)
1312
<label class="form-control">
13+
1414
{{ Form::checkbox('add_default_values', 1, old('add_default_values', $add_default_values), ['data-livewire-component' => $this->getId(), 'id' => 'add_default_values', 'wire:model.live' => 'add_default_values', 'disabled' => $this->fields->isEmpty()]) }}
1515
{{ trans('admin/models/general.add_default_values') }}
1616
</label>
@@ -19,12 +19,13 @@
1919
</div>
2020

2121
@if ($add_default_values)
22-
@if ($this->fields)
22+
23+
@if ($this->fields)
2324

2425
@foreach ($this->fields as $field)
2526
<div class="form-group" wire:key="field-{{ $field->id }}">
2627

27-
<label class="col-md-3 control-label{{ $errors->has($field->name) ? ' has-error' : '' }}">{{ $field->name }}</label>
28+
<label class="col-md-3 control-label{{ $errors->has($field->db_column_name()) ? ' has-error' : '' }}">{{ $field->name }}</label>
2829

2930
<div class="col-md-7">
3031

@@ -123,10 +124,16 @@ class="form-control"
123124
Unknown field element: {{ $field->element }}
124125
</span>
125126
@endif
127+
<?php
128+
$errormessage = $errors->first($field->db_column_name());
129+
if ($errormessage) {
130+
print('<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> '.$errormessage.'</span>');
131+
}
132+
?>
126133
</div>
127134
</div>
128135

129-
@endforeach
136+
@endforeach
130137

131138
@endif
132139

resources/views/models/custom_fields_form.blade.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,13 @@
6666
<p class="help-block">{{ $field->help_text }}</p>
6767
@endif
6868

69-
<?php
70-
$errormessage=$errors->first($field->db_column_name());
71-
if ($errormessage) {
72-
$errormessage=preg_replace('/ snipeit /', '', $errormessage);
73-
print('<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> '.$errormessage.'</span>');
74-
}
75-
?>
69+
<?php
70+
$errormessage = $errors->first($field->db_column_name());
71+
if ($errormessage) {
72+
$errormessage = preg_replace('/ snipeit /', '', $errormessage);
73+
print('<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> '.$errormessage.'</span>');
74+
}
75+
?>
7676
</div>
7777

7878
@if ($field->field_encrypted)

resources/views/models/edit.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
<!-- Custom Fieldset -->
3838
<!-- If $item->id is null we are cloning the model and we need the $model_id variable -->
39-
@livewire('custom-field-set-default-values-for-model',["model_id" => $item->id ?? $model_id ?? null ])
39+
@livewire('custom-field-set-default-values-for-model', ["model_id" => $item->id ?? $model_id ?? null])
4040

4141
@include ('partials.forms.edit.notes')
4242
@include ('partials.forms.edit.requestable', ['requestable_text' => trans('admin/models/general.requestable')])

0 commit comments

Comments
 (0)