currently the values of the flags "Inherited" and "Overridden" of each field are displayed properly in the configuration editor GUI, but have no further meaning. this ticket describes how this should be handled.
the "inherited" flag should be a checkbox that can be clicked
when "inherited" is active for a field, the effective field value should be displayed in a read-only mode instead of the real value (which is empty)
when the user clicks the inherited checkbox when the value was inherited before:
when the user disables the inheritance state the edit box (or whatever control is use for the datatype) becomes visible intead of the effective value read-only display- but it is prefilled with the effective value that was visible before.
when the user saves the configuration in this state the value entered is saved.
when the configureation is reopened the saved value is displayed, and "inherited" is no longer displayed.
when the user clicks the inherited checkbox when the value was not inherited before:
the edit box (or whatever control is use for the datatype) is hidden, and instead a read-only text "(inherited)" is displayed
when the user saves the configuration "null" is saved for the fields' property (or it is left out from the post) cleaing the value in the backend.
when the config is reopened the effective value is displayed read-only
when a field marked overwritten the effective value should be displayed in a read-only mode
it is not possible to do anything with this field, no edit, inheritance checkbox is read-only
it is possible that the whole configuration is overridden and not only a field. in this case all fields have the "overridden" flag set, and the configuration itself has an "overridden" flag set to true as well.
(please use the lastest snapshot of sample app & content to reproduce the usecases with the URLs)
these usecases should already be supported.
in case of singleton configs the inheritance properties are POSTed together with the data properties.
in cace of collection configs in the separate "properties" map parallel to the items list.
- in the previous editor (https://github.com/wcm-io/wcm-io-config) there was support for a "map" (i.e. array of key/value pairs) property type.
Looking at wcm-io-caconfig/editor/bundle/src/main/java/io/wcm/caconfig/editor/impl/ConfigPersistServlet.java it seems that such a type is not expected. Is this correct?
From that file, it appears that we only expect:
or an array containing one of these types.
At the moment, the FE app supports these, except for arrays of booleans. These seem unlikely to occur and not very useful (?), but I will work on implementing them now.
yes, this is correct, see sling ca-config.
we should support arrays of all of them, even for boolean.
map is no longer supported, it can be simulated "manually" by using a string array and typing in key=value in the text field.