The Adaptavist Group LogoDocumentation

Panel Show

This macro is used for showing or hiding content based on the context of the page or theme.

Usage

Storage Format

<ac:macro ac:name="panel-show">
<ac:parameter ac:name="parameter">value</ac:parameter>
<ac:rich-text-body>
<!-- content here -->
</ac:rich-text-body>
</ac:macro>

Wiki Markup

{panel-show:parameter=value}
<!-- content here -->
{panel-show}
Note: When nesting Panel Show, you do not need to number the macros as done in Builder Show
ParameterNameDescriptionTypeDefaultRequired
modeMode Only show the content for specific modes, e.g., View, Edit, etc. string
contextContext Only show the content for a specific context(s), e.g., Page, Global, etc. string
decoratorDecorator Only show the content when a specific decorator is used, e.g., Printable, etc. string
actionAction Only show the content for specific action(s), e.g., viewpage. NB: The .action part of the action name should not be included. string
labelPage has Label Only show the content if the current location ( Page, News, etc.) has the specified label(s), e.g., my:favourite, Meetings, etc. string
spacelabelSpace has Label Only show the content if the current space has the specified label(s), e.g., Meetings, etc. string
teamlabelSpace has Team Label Only show the content if the current space has the specified team label(s), e.g., Sales, Marketing, etc. string
metadataPage has metadata Metadata associated with the current location in the format: myKey1:myValue1, myKey1:myValue1, etc., when checking for a key with a specific value. To check for the existence of metadata with any value, supply a comma-separated list of key names, e.g., mykey1, mykey2, mykey3, or mix & match mykey1, mykey2:myvalue2string
existsPage Exists Only show the content if a specific page (referred to by the page title) exists. @parent can be used to show data if the page is not at the root level; @child can be used to show data if the page has children. string
hastitleHas TitleOnly show the content if the current page has a specific titlestring
pluginkeyPlugin EnabledThe key of a plugin, which must be enabled for the content to be shownstring
spaceSpace ExistsOnly show the content if a specific space (referred to by the Space Key) exists.spacekey
userUsername Is Matches against the current user (NB: modified by withuser) - A comma-separated list of usernames. Use @anonymous for anonymous users only, @creator for the creator of the current space, @author for the author of the current page. string
groupGroup Membership A comma-separated list of user groups that the current user (NB: modified by withuser) should be a member of string
restrictionPage Restriction Display content if the page has a restriction in place ( none / view / edit / vieworedit / viewandedit - recursive) string
permissionUser has permission A comma-separated list of content permissions that the user must have (NB: modified by withuser). Possible values: view - user has view permission comment - user can add comments createpage - user can create pages createnews - user can create news edit - user can edit pages or news remove - user can remove (delete) pages, news, or comments attach - user can attach files export - user can export pages or the space createspace - user can create spaces spaceadmin - user is a space admin siteadmin - user is a site admin string
useragentUser-agentA comma-separated list of tokens to match against the user agent string of the requesting browser.string
attachmentAttachmentA comma-separated list of filenames must be attached to the current page to display the content.string
olderthanOlder ThanContent is shown if the current page was modified before the given time period from the current date. The date is shown in this format: olderthan=1y6m1d1h (year/month/day/hour)string
newerthanNewer ThanContent is shown if the current page was modified after the given time period from the current date. The date is shown in this format: newerthan=1y6m1d1h (year/month/day/hour)string
ipRequesting IPA comma-separated list of IP addresses to match against the requeststring
skinCurrent SkinA comma-separated list of skins, one of which must be the current skin.string
parametersRequest ParametersThe request must contain the key or key:value to matchstring
localeLocaleThe user's locale matchesstring
resourceResource The named resource in SKINID. ::resource.ext or @current/@parent::resource.ext formats are available string
panelPanelA list of panels, one of which must exist and be enabledstring
recurseRecurse Should parent pages (if applicable) be checked for Title, Labels and Metadata? false - only check the current page (default) true - also check parent pages, e.g., does the current page or any of its parents have the specified label? booleanfalse
spacekeySpace KeyThe space against which permission checks will be made. Default is current spacestring
pagetitlePage TitleThe page against which permission checks will be made Default is the current page.string
withuserWith User A username that User, Group, and Permission checks should be run against. This includes @anonymous, @creator, @author, and @currentstring
flagFlag A comma-separated list of flags to check will only show if at least one of the flags is present: </li>string
notflagNot Flag A comma-separated list of flags to check will only show if none of the flags are present: </li>string

Parameter Logic

  • While none of the parameters are mandatory, you must specify at least one of them for this macro to work.

  • All contexts and modes specified must match for the macro content to show.

    • In logic terms, this means if you wish to test against two different parameters that may be exclusive, you must use a Show macro for each list of parameters.

    • For example, testing against users and groups: A user must be in one of the groups mentioned, or the logic will not work. If the user is not in a group mentioned in the parameters test for the group permissions in the first Panel Show macro, add another Panel Show macro inside that checks for the user names.

  • You can specify multiple values for any parameter, for example:

    {panel-show:mode=view,edit|context=page,blogpost}
    stuff to show
    {panel-show}
    • In the example above, stuff to show will only be shown if the content is shown in View or Edit mode and is either a Page or Blogpost.

Contexts, Modes, and Decorators

You can determine the context and mode for any page by viewing the page source using your browser. An HTML comment output at the top of all pages shows the context and mode for each page.

Example

If you view the HTML source of a ThemeBuilder web page you'll see similar to the following:

<!-- main.vmd
themebuilder : 'com.adaptavist.confluence.sitebuilder.SiteBuilderVelocityHelper@524c9770'/'$themebuilder.initialise'
spaceKey : 'USERGUIDE'
pageId : '10583'
currentURL : '/pages/viewpage.action?spaceKey=USERGUIDE&title=builder-show+macro&focusedCommentId=11666379'
contextPath : ''
spaceName : 'User Guides'
decorator : '$decorator'
printable : 'false'
mailId : '$mailId'
mode : 'view'
context : 'page'
-->

As shown in the usage example earlier, you can specify multiple contexts and modes by separating them with commas.

Example

Show a message on the user profile page. Code is placed on the ThemeBuilder Content panel.

<ac:macro ac:name="panel-show">
<ac:parameter ac:name="decorator">profile</ac:parameter>
<ac:rich-text-body>
This is the user profile page.
</ac:rich-text-body>
</ac:macro>
{panel-show:decorator=profile}
This is the user profile page.
{panel-show}

Result

Search documentation

Start typing to search the docs.