lp-collaborative-workspace/lp-cw-component/lp-cw-component-ui/src/main/resources/LPCode/LinkButtonsMacro.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<xwikidoc version="1.2" reference="LPCode.LinkButtonsMacro" locale="">
<web>LPCode</web>
<name>LinkButtonsMacro</name>
<language/>
<defaultLanguage/>
<translation>0</translation>
<creator>xwiki:XWiki.Admin</creator>
<creationDate>1443187619000</creationDate>
<parent>LPCode.FeedbackButtonMacro</parent>
<author>xwiki:XWiki.Admin</author>
<contentAuthor>xwiki:XWiki.Admin</contentAuthor>
<date>1458922480000</date>
<contentUpdateDate>1458917552000</contentUpdateDate>
<version>1.1</version>
<title>LinkButtonsMacro</title>
<comment/>
<minorEdit>false</minorEdit>
<syntaxId>xwiki/2.1</syntaxId>
<hidden>true</hidden>
<content/>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>0</number>
<className>XWiki.WikiMacroClass</className>
<guid>00f58ec9-458c-4310-8eed-ae9579f6a9e8</guid>
<class>
<name>XWiki.WikiMacroClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<code>
<disabled>0</disabled>
<name>code</name>
<number>9</number>
<prettyName>Macro code</prettyName>
<rows>20</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</code>
<contentDescription>
<disabled>0</disabled>
<name>contentDescription</name>
<number>8</number>
<prettyName>Content description (Not applicable for "No content" type)</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</contentDescription>
<contentType>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<multiSelect>0</multiSelect>
<name>contentType</name>
<number>7</number>
<prettyName>Macro content type</prettyName>
<relationalStorage>0</relationalStorage>
<separator>|</separator>
<separators>|</separators>
<size>1</size>
<unmodifiable>0</unmodifiable>
<values>Optional|Mandatory|No content</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</contentType>
<defaultCategory>
<disabled>0</disabled>
<name>defaultCategory</name>
<number>4</number>
<prettyName>Default category</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultCategory>
<description>
<disabled>0</disabled>
<name>description</name>
<number>3</number>
<prettyName>Macro description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<id>
<disabled>0</disabled>
<name>id</name>
<number>1</number>
<prettyName>Macro id</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</id>
<name>
<disabled>0</disabled>
<name>name</name>
<number>2</number>
<prettyName>Macro name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
<supportsInlineMode>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>supportsInlineMode</name>
<number>5</number>
<prettyName>Supports inline mode</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</supportsInlineMode>
<visibility>
<cache>0</cache>
<disabled>0</disabled>
<displayType>select</displayType>
<multiSelect>0</multiSelect>
<name>visibility</name>
<number>6</number>
<prettyName>Macro visibility</prettyName>
<relationalStorage>0</relationalStorage>
<separator>|</separator>
<separators>|</separators>
<size>1</size>
<unmodifiable>0</unmodifiable>
<values>Current User|Current Wiki|Global</values>
<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
</visibility>
</class>
<property>
<code>{{velocity}}
#set ($validElements = $xcontext.macro.content.trim().split("\r?\n"))
#set ($paramBlock = $xcontext.macro.params.block)
#set ($paramType = $xcontext.macro.params.type)
#set ($paramAlign = "$xcontext.macro.params.align")
#set ($paramCSSClass = "$xcontext.macro.params.cssClass")
#set ($paramIcon = $xcontext.macro.params.icon)
#set ($paramIconAlign = $xcontext.macro.params.iconAlign)
#if ($paramType.equals('all'))
#set ($links = $doc.getObjects('LPCode.LinkClass'))
#else
#set ($links = $doc.getObjects('LPCode.LinkClass', 'type', $xcontext.macro.params.type))
#end
#foreach($link in $links)
#set ($id = $link.getProperty('id').value)
#set ($targetModelsetid = $link.getProperty('targetmodelsetid').value)
#set ($targetModelid = $link.getProperty('targetmodelid').value)
#set ($targetArtifactid = $link.getProperty('targetartifactid').value)
#set ($type = $link.getProperty('type').value)
#set ($wikiReference = $services.model.createWikiReference("xwiki"))
#set ($modelsetReference = $services.model.createSpaceReference($targetModelsetid, $wikiReference))
#set ($modelReference = $services.model.createSpaceReference($targetModelid, $modelsetReference))
#set ($artifactReference = $services.model.createSpaceReference($targetArtifactid, $modelReference))
#set ($linkReference = $services.model.createDocumentReference('WebHome', $artifactReference))
#set ($linkDocument = $xwiki.getDocument($linkReference))
#set ($linkObject = $linkDocument.getObject('LPCode.BaseElementClass'))
#set ($linkName = $linkObject.getProperty('name').value)
#set ($linkType = $linkObject.getProperty('type').value)
#foreach($validElement in $validElements)
#if ($linkType.startsWith($validElement))
#set ($iconRender = "$services.icon.render($paramIcon)")
#set ($iconRenderLeft = '')
#set ($iconRenderRight = '')
#if ($paramIconAlign.equals('left'))
#set ($iconRenderLeft = "$iconRender ")
#elseif ($paramIconAlign.equals('right'))
#set ($iconRenderRight = " $iconRender")
#end
#set ($block = '')
#if ($paramBlock.equals('true'))
#set ($block = 'btn-block')
#end
[[${iconRenderLeft}${linkName}${iconRenderRight}>>$linkReference||class="btn ${block} ${paramCSSClass}" style="text-align:${paramAlign}"]]##
#end
#end
#end
{{/velocity}}</code>
</property>
<property>
<contentDescription>The content shoud contain a list (one per line) of 'type' for BaseElementClass. This will list only links to or from such BaseElementClass pages.</contentDescription>
</property>
<property>
<contentType>Optional</contentType>
</property>
<property>
<defaultCategory>Content</defaultCategory>
</property>
<property>
<description>Display buttons to navigate in the workflow of a process.</description>
</property>
<property>
<id>linkbuttons</id>
</property>
<property>
<name>Link buttons</name>
</property>
<property>
<supportsInlineMode>1</supportsInlineMode>
</property>
<property>
<visibility>Current Wiki</visibility>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>0</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>82549a98-4a86-4d05-82b8-585f0fe79694</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>all</defaultValue>
</property>
<property>
<description>Filter the list of links base on 'type' from 'LPCode.LinkClass'. Use 'all' to avoid filtering.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>type</name>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>1</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>d9d3f7e9-b86b-4150-bdc9-e9684a7e23dc</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>link</defaultValue>
</property>
<property>
<description>Icon to use in the button.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>icon</name>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>2</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>7869be1f-26c3-4080-915f-9bf4a867859c</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>btn-primary</defaultValue>
</property>
<property>
<description>Add some class to the button.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>cssClass</name>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>3</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>b56f7550-7d0c-4439-b469-8fb1a28533c3</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>right</defaultValue>
</property>
<property>
<description>Can take values 'left' or 'right' and will put the icon on the left or the right of the text.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>iconAlign</name>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>4</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>5fe4111d-4515-48fc-995b-77e6f17d1f9e</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>center</defaultValue>
</property>
<property>
<description>Align the text in the button. Can take values 'left', 'right' or 'center'.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>align</name>
</property>
</object>
<object>
<name>LPCode.LinkButtonsMacro</name>
<number>5</number>
<className>XWiki.WikiMacroParameterClass</className>
<guid>74c51d68-0d61-47f2-86f6-95f9616a8d24</guid>
<class>
<name>XWiki.WikiMacroParameterClass</name>
<customClass/>
<customMapping/>
<defaultViewSheet/>
<defaultEditSheet/>
<defaultWeb/>
<nameField/>
<validationScript/>
<defaultValue>
<disabled>0</disabled>
<name>defaultValue</name>
<number>4</number>
<prettyName>Parameter default value</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</defaultValue>
<description>
<disabled>0</disabled>
<name>description</name>
<number>2</number>
<prettyName>Parameter description</prettyName>
<rows>5</rows>
<size>40</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
</description>
<mandatory>
<disabled>0</disabled>
<displayFormType>select</displayFormType>
<displayType>yesno</displayType>
<name>mandatory</name>
<number>3</number>
<prettyName>Parameter mandatory</prettyName>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
</mandatory>
<name>
<disabled>0</disabled>
<name>name</name>
<number>1</number>
<prettyName>Parameter name</prettyName>
<size>30</size>
<unmodifiable>0</unmodifiable>
<classType>com.xpn.xwiki.objects.classes.StringClass</classType>
</name>
</class>
<property>
<defaultValue>false</defaultValue>
</property>
<property>
<description>Make the button a block instead of an inline element. Can take value 'true' or 'false'.</description>
</property>
<property>
<mandatory>0</mandatory>
</property>
<property>
<name>block</name>
</property>
</object>
</xwikidoc>