atk4/ui

Crud bug on dynamically disabled rows

Closed this issue · 2 comments

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

$this->isEnabledFxs[$name] = $isDisabled;

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.

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.

I did a quick search and this is what I found

regex: enable.*disable|disable.*enable

image

I am reclasifying it as a feature as bool is handled correctly and Closure is handled as "true == enabled". But I agree it is misleading and should be somehow improved.