Context-Aware Config Editor: Inherit and Override Field Handling


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.

inherited flag:

  • 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

overridden flag:

  • 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)


Stefan Seifert
January 10, 2017, 4:41 AM

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.

David Ding
January 12, 2017, 10:12 PM

- in the previous editor ( 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/ it seems that such a type is not expected. Is this correct?

From that file, it appears that we only expect:

  • String

  • int

  • long

  • double

  • boolean

  • 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.

Stefan Seifert
January 12, 2017, 10:24 PM

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.

David Ding
January 13, 2017, 1:21 AM

implemented as of 2d1ff99

Stefan Seifert
January 14, 2017, 8:10 AM






Stefan Seifert