close #2130 (#mqc1b4) Fixed: Edit user page roles deselect role then select it, it broke form roles field

This commit is contained in:
Cüneyt Şentürk 2021-06-22 11:25:11 +03:00
parent a0a776350c
commit 34e73de217
3 changed files with 25 additions and 4 deletions

View File

@ -37,7 +37,7 @@ class User extends FormRequest
$id = is_numeric($this->user) ? $this->user : $this->user->getAttribute('id');
$password = '';
$companies = $this->user->can('read-common-companies') ? 'required' : '';
$roles = $this->user->can('read-auth-roles') ? 'required' : '';
$roles = $this->user->can('read-auth-roles') ? 'required|array' : '';
if ($this->user->contact) {
$email .= '|unique:contacts,NULL,'
@ -51,7 +51,7 @@ class User extends FormRequest
$id = null;
$password = 'required|';
$companies = 'required';
$roles = 'required';
$roles = 'required|array';
}
$email .= '|unique:users,email,' . $id . ',id,deleted_at,NULL';

View File

@ -110,7 +110,17 @@ export default class Form {
}
} else {
if (form_element.checked) {
if (form_element.dataset.type != undefined) {
if (form_element.dataset.type == 'multiple') {
this[name] = [];
this[form_element.getAttribute('data-field')][name].push(form_element.value);
} else {
this[form_element.getAttribute('data-field')][name] = form_element.value;
}
} else {
this[form_element.getAttribute('data-field')][name] = form_element.value;
}
} else {
this[form_element.getAttribute('data-field')][name] = [];
}
@ -141,7 +151,17 @@ export default class Form {
}
} else {
if (form_element.checked) {
if (form_element.dataset.type != undefined) {
if (form_element.dataset.type == 'multiple') {
this[name] = [];
this[name].push(form_element.value);
} else {
this[name] = form_element.value;
}
} else {
this[name] = form_element.value;
}
} else {
this[name] = [];
}

View File

@ -25,6 +25,7 @@
{{ Form::checkbox($name, $item->$id, (is_array($selected) && count($selected) ? (in_array($item->$id, $selected) ? true : false) : null), array_merge([
'id' => 'checkbox-' . $name . '-' . $item->$id,
'class' => 'custom-control-input',
'data-type' => (is_array($selected)) ? 'multiple' : 'single',
'v-model' => !empty($attributes['v-model']) ? $attributes['v-model'] : (!empty($attributes['data-field']) ? 'form.' . $attributes['data-field'] . '.'. $name : 'form.' . $name),
], $item_attributes)) }}