Application Guidelines
Description
Access
- Your application must be accessible through the "Applications" panel
Create a page containing a UI extension object (XWiki.UIExtensionClass).
- All technical pages must be hidden
- Make sure your application has a proper Translation page, read more about internationalising applications.
- Make sure your application pages are not orphans, use mvn xar:format and mvn xar:verify in order to assure these cases
Standardise the parent, some applications are children of AppWithinMinutes.WebHome
Functionality
- Your application should have at least CRUD (create, read, update, delete) operations
No matter what type of entities your application is managing, it is needed to have a way to create, view, edit and delete those types of entities for a basic functionality.
Standardise the creation of artifacts (pop-up | create action)
Standardise the display of artifacts (livetable | custom display) - Consistent way of interacting with your application
If your application is handling multiple types of entities, you must have a symmetric and consistent way of interacting with them.
Styling
- Check out the current skin supported by XWiki and make sure your application is following that particular style
- Use ColorTheme variables in order for your application to adjust to the theme color changes
- All forms must be vertical aligned
- Naming conventions
Standardise application's homepage title
Standardise usage of spaces for compound names (like Task Manager, File Manager, etc.)
Standardise 'Applications' panel name entry
CSS
- Careful using generic XWiki standard classes
This is particularly important if you are using SSX objects with the "Always on this wiki" visibility option, because the rules will affect the whole wiki instance.
For example, using something like the following code is bad since it will affect all document titles:#document-title {
color: red;
}A solution is to use "on demand" SSX or to prefix your style with a CSS class specific to your application. Also make sure your classes don't overlap with other CSS classes used by XWiki.
- Don't use inline and !important declarations
Always there is an alternative to rewrite the declarations, usually by adjusting the selector's specificity. Using inline and !important declarations will backfire on the long term when others will want to maintain and integrate your application.