atk4 / ui

Robust and easy to use PHP Framework for Web Apps
https://atk4-ui.readthedocs.io
MIT License
440 stars 105 forks source link

Dropdown/lookup field shows empty value for required model fields #2026

Open DarkSide666 opened 1 year ago

DarkSide666 commented 1 year ago

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).

mvorisek commented 1 year ago

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 https://github.com/atk4/ui/issues/572