Covers BaseFilterForm's shared row contract directly via a throwaway
concrete subclass: row data attributes, the operator select with its
data-no-value branch, label targeting, hidden-when-inactive, the delete
button, hiding the operator select for a boolean filter, and the
abstract add_operand raising SubclassResponsibilityError.
Adds 47 specs across 6 form classes and a shared context.
Covers TextForm, ListForm, DateForm, BooleanForm, AutocompleteForm, and
AddFilterForm with assertions on rendered structure, data attributes,
and operator routing.
https://community.openproject.org/wp/OP-19453
Replaces `Filters::FilterForm` (an `ApplicationForm` subclass) with
`Filters::FilterFormComponent` (an `ApplicationComponent`). The old form
overrode `:nodoc:` Primer hooks (`before_render`, `perform_render`) and
read semi-public ivars (`@builder`, `@view_context`). The new component
receives the builder as an explicit keyword arg and uses a standard ERB
template, reducing Primer internal coupling from five semi-public APIs
to one (`FormList`).
https://community.openproject.org/wp/OP-19415
The setting previously used "numeric" and "alphanumeric" as its allowed
values. Rename them to "classic" and "semantic" to better align with the
product terminology for the work package identifier modes.
Includes a migration to update any stored setting values in the database,
updated constants and helper methods on Setting::WorkPackageIdentifier,
and all corresponding references across models, components, forms,
frontend controllers, locales, and specs.
The name of this setting was pretty outdated by now.
It might have disabled the entire API in the past, but that time
is long gone. By now the APIv3 can't be disabled at all and OpenProject
would fall apart if it was disabled.
The only thing that this setting changes, is whether users can create
an access token in their account settings and whether tokens created
this way are accepted by OpenProject. So naming and description have
been adapted accordingly.
Introduces `text_area`, `check_box_group` and `select_list` inputs.
Makes various refactorings to ensure that handling of explicit `valus`
params is as robust as possible.