atk4 / ui

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

Crud bug on dynamically disabled rows #2212

Open mkrecek234 opened 1 week ago

mkrecek234 commented 1 week ago

Crud's ActionsButtons can be set either statically disabled or enabled, or dynamically a) via a passed function via $isDisabled parameter or b) via a dynamically set UserAction->enabled = function ($row) ....

There is however a logical error in https://github.com/atk4/ui/blob/2e27a15cdf1c70397741bef4f4b29e69aeab40bf/src/Table/Column/ActionButtons.php#L65

as $this->isEnabledFxs[$name] = $isDisabled; This has to be the negation - or we call $isDisabled better $isEnabled an change references. I am in favor of this, as Atk4\Model always refers to "enabled" and not "disabled". Let me know, then we can change all $isDisabled to $isEnabled in Atk4\Ui together.

mvorisek commented 1 week ago

Thank you for finding this out.

AFAIR we use disable(d) in some code and enable(d) in another, especially in atk4/data. The unification is not easy as for some usecases, one is more logical.

So for now, let's fix this bug with a test and if you want, feel free to analyse to what vatiant we should unify this, and I can review and tell if I agree or not.