Panels Application
Provides placeholders to put content located left or right of the page's content |
Type | XAR |
Category | |
Developed by | Unknown |
Rating | |
License | GNU Lesser General Public License 2.1 |
Bundled With | XWiki Standard |
Table of contents
Description
What's a Panel?
A Panel is a rectangular zone that is usually displayed in a left or right column in the UI (it can also be displayed in the content column through the #displayPanelLayout Macro) and that can contain anything: navigation, searches, page creation, statistics display, etc. Panels generally contain clickable links. These links are written manually or are automatically generated by scripts.
A full set of Panels is available by default, designed for the main uses. Furthermore, it is possible to create new Panels for specific needs. The Panel Application offers an Administration UI to configure how to display Panels and to choose which Panels to display (see below). This means that in order to create, modify or set Panels, you need to have administration rights.
Access to the Panels list
Where to find them
There are several possibilities to access the Panels Application:
- By navigating directly to the URL: http://<server>/xwiki/bin/view/Panels/.
- By accessing it through the Applications Index:
- By typing "Panels" in the search engine.
- By accessing "Administration" - "Look & Feel" - "Panel Wizard" section, by clicking on the "Go to Panels home page" button.
- By using the Dashboard and clicking on the Panels page (provided you are in Advanced user mode since otherwise we're masking that technical page for simple users - See Page Editing for more details).
- Between version 6.0 and 8.2 access was possible from the Applications Panel:
Panels's home page
This home page shows a list of the available Panels, containing:
- a description
- a visualization link (clicking the Panel's name displays its location page)
- an edition link ("Edit" : the Panel opens in form edition mode, giving you access to the settings fields)
- a deletion link ("Delete" : deletes the Panel's page)
Existing Panels
This Panels Application provides several existing Panels that you can use directly in your wiki. Here's a description of some of these Panels:
- Navigation Panel
- Children Panel
- Siblings Panel
- SpaceDocs Panel
- Spaces Panel
- Application Panel
- Create Page Panel
Navigation Panel
The Navigation Panel displays the page hierarchy allowing you to navigate through your wiki (it uses the Document Tree Macro under the hood). If the current page is available in the tree then the tree is expanded automatically to show its location, when the page is loaded.
The top level application pages are excluded from the tree by default (provided that the top level page is of a type that denies being modified by users), in order to let you focus on your own content and because the applications are also accessible from the Applications Panel. However, you can disable this filter (if you want to view all pages) or configure other page exclusions from the Wiki Administration.
The Navigation Panel administration section allows you to drag & drop pages from left to right and right to left to build visually how the Navigation Panel should look like.
XWiki 16.4.0+ You can also reorder the top level pages, either using drag & drop or with the Alt + Shift + Up/Down Arrow keys. When a top level page is moved to a different position it becomes "pinned" along with all its previous sibling pages (in other words, you turn manual ordering on from the new position upwards). See the Index Application to understand how pinned pages work. In short, they are displayed before the rest of the child pages, allowing you to achieve a mixed manual and automatic order. You can also pin or unpin a top level page by hovering or focusing the corresponding tree node and using the dedicated button. For pinned pages there is a pin icon displayed on the far right side. Note that when you unpin a page all the following sibling pages are also unpinned (in other words, you turn automatic ordering on from that position downwards).
Children Panel
Displays Child pages of the current page:
Siblings Panel
Displays Sibling pages of the current page:
SpaceDocs Panel
XWiki 16.3.0+
The Panel has been removed. It was previously deprecated and it was recommended to use the Children or Siblings Panels instead.
Displays the list of pages in the current Space (but not Nested Pages):
Spaces Panel
XWiki 16.3.0+
The Panel has been removed. It was previously deprecated and it was recommended to use the Navigation Panel instead.
Displays the list of Spaces in the current wiki (but not Nested Spaces):
Application Panel
The application panel displays the list of all existing applications in the wiki. It adapt itself to the width of the panel columns, so you can see it with 2 different designs:
Small width (FontAwesome) | Medium & large width (FontAwesome) |
---|---|
Small width (Silk) | Medium & large width (Silk) |
---|---|
On devices with small screen, when panels are displayed under the page content (currently, it is the case for Flamingo only), the appbar is displayed differently to use all the available width:
You can select which applications are displayed in the Application Panel, and which are not:
You just need to drag & drop the applications from a list to the other!
You can also re-order the applications that are displayed, still by using the drag & drop mechanism:
To change this configuration, go to the Administration of the Wiki, in the "Applications Panel" section.
Create Page Panel
Panel's structure
Take a look at the "QuickLinks" panel in the list. We will use it as an example.
Click the panel's name (URL: http://<server>/xwiki/bin/view/Panels/QuickLinks)
Click the edit link > allows you to see the different fields in order to edit the panel. You can fill in or select these fields :
"Name" field
The name of the wiki page where the panel is stored. Here the name is: "QuickLinks".
"Type" field
There are two available options : "view" or "edit". According to your selection, the panel will be displayed when the wiki page is either in view mode or in edit mode. Most of the panels are used in view mode. For the new panel you're creating, leave the selector on "view".
"Category" field
Panels are sorted by category according to their purpose. The categories are:
Category | Panel's name example |
---|---|
Information | Recently Modified |
Information | Quick Links |
Navigation | Navigation |
Tools | New Page |
Tools | Search |
Administration | (empty category as of today) |
Other | (empty category as of today) |
"Description" field
Contains a short description of the wiki. This text will appear in the panels home page.
"Executed Content" field
This section contains the panel's code. In our example we provide an edit link for this panel for administrators.
"Asynchronous rendering"
Enabled or disable asynchronous rendering of the panel. Disabled by default.
"Cached"
Indicate if the result of the execution of the element should be cached. Disabled by default.
"Context elements"
The context information required during the execution of the panel (current user, current document, etc.). It's also used to generate the cache key.
Creation - Edition
Introduction
To create or to modify panels, you need to have administration rights.
Create a new panel
Go to this page : http://<server>/xwiki/bin/view/Panels/
In the field "Create new panel" type the name of your new panel, for instance "User Guide".
Click the "Create" button in order to open the creation's panel form.
Notice that this page has been created under http://<server>/xwiki/bin/view/Panels/User+Guide
New panel creation form
Now you have the panel creation form on your screen, in edition mode. If this is not the case, please go back to the previous section.
Fill in or select the following sections : "Name", "Type", "Category" and "Description" according to the information already presented in the previous section ("Panel's structure).
"Content" field
By default, two lines are displayed in this section:
#panelfooter()
XWiki 15.9+
Panels are now landmarks, and as such, they have a default role of complementary. If you want to change this role you might consider:
- Using #navigationPanelHeader instead, which will give the navigation role to the panel.
- Implementing your own panel header based off of the #panelheader velocity template in macros.vm in the xwiki-platform-web-templates module.
Editing the panel's header
#panelheader allows you to change the name displayed in the panel's header. If User Guide is ok, leave it as it is : by default those words have been automatically inserted when you created the panel a few minutes ago.
"Content" field: create a new link
The code of the link will take place between #panelheader('User Guide') and #panelfooter(). For instance, if you want to create a link to the sandbox home page, type:
* [[Accueil Sandbox>>Sandbox.WebHome]]
#panelfooter()
To add a second link to the blog's home page, type:
* [[Accueil Sandbox>>Sandbox.WebHome]]
* [[Blog>>Blog.WebHome]]
#panelfooter()
To finish your panel, click "Save & View" : you've just completed your first panel!
You may add as many links as you wish. Here you can find some tips about the links syntax.
To learn more on the topic of Panels, you may study the content of panels executing scripts, such as "Space Docs". This panel renders a list of all the documents contained in a specific space.
"Content" field: finding the current panel column width
A panel can have several widths depending on the configuration of the panel column. To know the current width and display something else depending of it, you can use the $xwikiPanelWidth variable. The possibles values are: "Small", "Medium" and "Large".
Configuration
The Panels application provides a configuration section in the Administration. This means you need administration rights to configure the panels. The configuration can be done for the entire wiki (from the wiki administration) or for a specific page (from the page administration). For instance, the blog "Categories" panel is displayed on the Blog page but not on the Sandbox page.
The Panels administration section, located in the "Look & Feel" category, has two tabs: Page Layout and Panel List.
Page Layout
On this tab you can select which panel column is visible (none, left, right or both) and you can choose the column width. The changes you make are applied instantly but they are not saved. You need to click the Save button to persist your changes.
The advanced users can use a text input to specify the list of panels to display on the left and right column. The value of the text input is a comma separated list of references to panel pages. The non-technical users are adviced to use the Panel List tab that supports drag & drop.
Panel List
On this tab you can see the list of available panels. You just have to drag & drop them to the panel column of your choice. And if you want to remove one of the panels, just drag & drop it from the panel column to the middle section. Again, you need to click the Save button at the end if you want to keep your changes.
Controlling where to display Panels
Panels can be configured to be displayed at the wiki level (i.e. all pages) by using the Panels administration section as mentioned above. It's also possible to override the displayed Panels at any Page level (again using the Panels section from that page administration).
If you need finer-grained control such as displaying a Panel only for a given page, you'd need to edit the Panel and add a condition in the Panel's script content. For example imagine you'd like to display the "My Recent Modifications" Panel only for the Home Page (Main.WebHome). To do so edit the Panel (http://<server>/xwiki/bin/inline/Panels/MyRecentModifications) and modify the content as follows:
#set($recentDocs = $xwiki.searchDocuments("where 1=1 and doc.author='$context.user' order by doc.date desc", 5, 0))
...
#end
Troubleshooting
Panel Wizard Slowness
The panel wizard can be slow on large wikis. A workaround consists in not loading the panels section of the administration, and instead to simply update the page layout by editing the following fields of the XWiki.XWikiPreferences object attached to page XWiki.XWikiPreferences: Panels displayed on the left, Panels displayed on the right, Display the left panel column, Display the right panel column, Width of the left panel column, Width of the right panel column. See also the related issue: XWIKI-16579.