Each Liferay site has a significant degree of configurability. Currently most of the configuration options are accessible to site administrators through the "Site Settings" application. This application contains configuration options organized in 4 categories: General, Social, Languages and Advanced. In addition to "Site Settings" there are also other configuration applications: "Social Activity", "Redirection", "Translation", "Mobile Device Families" and "Workflow".
In recent Liferay versions a new Configuration Framework has been introduced, facilitating making any application and service configurable. This new Configuration Framework automatically generates a configuration UI for the whole system (available through the "System Settings" application) and for each virtual instance (available through the "Instance Settings" application). The Configuration Framework also allows developers to create configurations that can be different per site, however there isn't yet a site-level application that allows site administrators to change such site configuration. Instead, developers have to create their own applications or extend "Site Settings" through the mechanisms it provides (JSP override or Form Navigator screens).
In 7.2, a new application was introduced in an attempt to solve this problem. It is also called "Site Settings" and it works exactly like the pre-existing "Instance Settings" and "System Settings" but on a site level. However, this application has been left disabled out of the box, because it would be quite confusing for users to have two applications with the same name (or a similar one) with some options being the same while others being different.
The goal of this Epic is to provide 3rd party developers with an easier way to introduce site-level configurability in their applications, modules and solutions, while providing Site Administrators with an easy to use, complete and consistent UI to configure their sites.
In order to achieve this, the following steps are necessary:
- Rewrite all the configuration capabilities of the old "Site Settings" application that need it as Configuration objects so that they get an automatically generated UI within the new "Site Settings"
- This will allow removing a lot of code necessary for the old configuration UIs
- In some cases, though, we may want to keep the old UIs for usability, in which case, it's possible to refactor them as custom configuration screens within the new "Site Settings" application.
- The new Configuration Objects will need to be carefully assigned to an existing configuration category. When needed, a new category may need to be added. These decisions should be consulted with Susana Vázquez, who performed the Information Architecture analysis that resulted in the current set of categories.
- Special care should be taken to ensure that for installations upgrading to 7.4 all previous site-level configurations are preserved
Once this Epic finished, adding a new application configuration in "Site Settings" will provide an easy to use and consistent UX for site administrators and that can be extended by developers.