kura
kura copied to clipboard
Basic/Advanced differentiation in configuration properties
A really neat feature to be added to Kura would be to have a distinction between Basic and Advanced (or possibly more) properties in the configuration.
To provide an example, the ClockService's metatype exposes the following properties:
- enabled
- set HW clock
- clock provider
- NTP host and port
- timeout, max retries, retry interval
- refresh rate
- RTC device
In most of the cases, users will likely use only some of these configuration (for ClockService for example enabled, set HW clock, NTP host), while rarely fiddle with other properties like clock provider, NTP port, timeout+retries etc.
Also, for some services the configuration page can become really long and "messy" (DataService and MqttDataTransport for example): the user sometimes has to really look for a property. On the other hand, the developer might think of "sacrificing" properties in order to shorten the a bundle configuration.
It would be really nice and really add to the user experience to have a distiction between these types of properties so that the WebConsole could show the "advanced" options only if the user selects that (kind of an "expert" mode).
Describe the solution you'd like
A possible solution (at least in theory) could be :
- A modification of the ConfigurationService, which will check a second .xml file (or a properties file) once it starts loading the snapshot, and adds a property to the configuration of each service. If no key is found for a property it defaults to "basic".
- A default .xml which will contain the match property-type for the default Kura services
- A modification to the Web Console, which upon generation of the WebPage will "flag" configurations and allow to hide or display properties based on e.g. a checkbox.