* Update German translation
* Refactor key actions generation
* Refactor key entries structure
While key entries is provided as an object where the key corresponds to
the entrie's number, this complexity does not have to make it to the
template.
We already fill up empty entries by generating an array of key entries
length, hence no need to switch back to an object structure.
* Render combo keys count by section title
* Add save and apply button in edit device form
* Use single button with dropup in edit device actions
* Do not show dropup when the device edited is not privisionable
* Show droup button just if the edited device is register
* Refactor device listing formatter with declarative style
* Refactor device edition formatter with declarative style
* Consolidate device edition data fetcher
* Consolidate device edition data formatter
* Generate addable device types from static list
* Allow for device types without edition template to be deleted
* Conditionaly render user assignment feature
* Pass down prop governing user assignment rendering
* Disable user assignment when loaded by user submodule
* Conditionaly render user assignment feature
* Pass down prop governing user assignment rendering
* Disable user assignment when loaded by user submodule
* Add assign to template
* Get users for the template
* Add translations
* Load in assignTo template
* Handle no owner case
* Fix translation reference
* Adhere to linter
* Clean up code
* Fix code style
* Update translation to be in devices.popupSettings
* Get user list in devicesGetEditData
* Fix templating
* Add default value to dropdown
* Remove error from listUsers call
* Rename usersData to users
* Ensure deviceData.users is not save to device
* Move users field to extra
* Move delete statements
* Move translations to popupsettings
* Move sub-module templates in their own `views` folder
By using `getTemplate()` we can specify which sub-module a template is
related to, enabling this behavior.
The templates names were shortened by stripping the name of their
sub-module from it since they are stored under their sub-module folder.
String templates are created using `getTemplate()` instead of
`monster.template()` that we are trying to depreciate.
* Only use `getTemplate()` for both regular and string templates