Implementation of min_items. The semantics are pretty straightforward:
max_items is now formally defaulted to zero internally, that being interpreted as unlimited.
min_items defaults to 1 and has a minimum value of 1.
If max_items is greater than zero, then min_items must be less than or equal to max_items
As usual, the extension implementation took 15 minutes, while the config editor implementation took hours! :)
There is also a fairly sizable chunk of changes to work around a JSON editor limitation related to rendering the action properties that aren't themselves objects or arrays. The upshot is that the JSON schema used for the UI is slightly different from the one that properly describes the backend config used by the extension. The editor UI contains translation code between the backend JSON and the format required by the editor.
Finally, there are some noticeable tidy-ups in the general styling and some small fixes to the sample configuration.
Implementation of
min_items
. The semantics are pretty straightforward:max_items
is now formally defaulted to zero internally, that being interpreted as unlimited.min_items
defaults to 1 and has a minimum value of 1.max_items
is greater than zero, thenmin_items
must be less than or equal tomax_items
As usual, the extension implementation took 15 minutes, while the config editor implementation took hours! :)
There is also a fairly sizable chunk of changes to work around a JSON editor limitation related to rendering the action properties that aren't themselves objects or arrays. The upshot is that the JSON schema used for the UI is slightly different from the one that properly describes the backend config used by the extension. The editor UI contains translation code between the backend JSON and the format required by the editor.
Finally, there are some noticeable tidy-ups in the general styling and some small fixes to the sample configuration.