LearnPAd/learnpad

View on GitHub
lp-collaborative-workspace/lp-cw-component/lp-cw-component-ui/src/main/resources/LPCode/LinkButtonsMacro.xml

Summary

Maintainability
Test Coverage
<?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}&gt;&gt;$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>