atk4/ui

Dropdown/lookup field shows empty value for required model fields

DarkSide666 opened this issue · 1 comments

If we have model hasOne field , then in form it shows red asterisk near dropdown/lookup field in case required => true is set in model field.
BUT dropdown still contains empty value option in it.
image

I think empty value option should not be there if field is required, then we should force to fill it already in Form. Otherwise if it's left blank in Form and you try to save it will throw big, red exception.


And another related, but opposite issue.
If model field is defined like this

$this->addField('color', [
    'enum' => ['green', 'red', 'blue', 'orange', 'yellow', 'purple', 'gray'],
]);

Then in Form it shows dropdown/lookup field, but there is no empty option in there. Model field is not set as required, so empty option should be available in dropdown. Asterisk do not show too (which is correct).

In general, we want to allow field to be unset even if not nullable/required. This is important for UX when user does not have data ATM and simply does not want to select anything. Like when field is required and can be emptied...

Some clear icon would be however probably better than an empty option. Fomantic-UI has a native support - https://fomantic-ui.com/modules/dropdown.html#clearable-selection

related with #572