
Nuxeo Themes
- Nuxeo Themes is implemented in WebEngine
- WebEngine is a lightweight framework, and comes empty: there's nothing in it. To switch from the current framework (JSF SEAM) to WebEngine means to give up all the functionality and reimplement in WebEngine
- There is a theme.jSF component that implements themes in JSF SEAM.
- proof: Nuxeo 5.3 documentation 12.4.2.1. "Styling the theme using the editor" shows Theme Editor working in something looking suspiciously similar to Nuxeo DM:
- proof: Nuxeo 5.3 documentation 12.4.2.1. "Styling the theme using the editor" shows Theme Editor working in something looking suspiciously similar to Nuxeo DM:
- SEAM and WebEngine can be mixed and used together (but not on the same page). In fact they are mixed in the default install: Nuxeo DM is written in SEAM, while the Theme Editor is written in WebEngine.
- proof: theme.editor, View META-INF/MANIFEST.MF
- proof: theme.editor, View META-INF/MANIFEST.MF
- More tech details in Nuxeo Themes
- listComponents to find all components mentioning "theme"
- listSeamComponents to find all SEAM components mentioning "theme"
- It seems templates define only layout of the whole application - and more specifically, the Document Management section. There seems not to be nested templates.
Theme Editor
- The theme editor is integrated within Nuxeo 5.5 and it works with the JSF/Seam UI.
- Unfortunately, it seems rather unstable and I could not create a new theme with it.
TODO: report to the NUXEO Jira, and check if it's already reported and track it
- The editor is a graphical tool for editing the theme xml file. We can edit the config XML manually to achieve a desired layout
Customizing a theme
These are the steps that I have found working for modifying the layout.
- I downloaded the theme-galaxy.xml from the Theme Editor. This is the default theme.
- I renamed it to theme-mytheme.xml and put it in the the resources/themes in the contribution project. There is the OSGI-INF/theme-contrib.xml as well where we specify:
First, I changed
to
as well as all references to "galaxy" in theme-contrib.xml.
As a result after deployment:
- default theme was indeed changed to my_theme
- layout was broken as galaxy.css was not included.
How do we point to the proper css?
So I returned "galaxy" as a name and it overrode the default galaxy theme. The css was included and layout was fine.
Then I edited the theme-mytheme.xml adding the following (the second footer):
Then in the same file:
This results in:
"section frame" is output as:
"cell frame" is output as:
inside the section frame table.
See jsf--views
As for the "tabs" - we add in theme-contrib.xml:
This effectively outputs the logo after the footer.
Questions
In theme-mytheme.xml:
What are the "perspectives"?
Types seem to be:
- "generic fragment": predefined nuxeo fragments like "nuxeo5 clip board" or "nuxeo5 breadcrumbs".
What are all possible fragments? (See theme.fragments and default--views)
- "region fragment":
What is this? For the corresponding fragment we have <view>facelet region</view>. What does it mean? Where does it say what content to include?
Links
- Theme doc
- ui--shortcuts (
Interesting!)
Labels:
None