projectdoc Toolbox

Renders a predefined list of documents in a table . Documents are selected by a document property. Allows to select document properties for columns. Also non-list representations are provided.

The Tour-by-Property Macro allows to render a table of documents based on a document property.

Specify the documents you want to render in a list. Each link to a document is considered in the order given.

Wiki Markup is supported.

Properties

Document

Specify the document to fetch the list of document references from.

Properties

The names of the properties whose value is a list of document references.

If more than one property is specified, all documents are lined up by the name of the first property.

Select

Specify a comma-separated list of document properties or section names to display.

If not specified, the name and short description of the document is displayed per default.

The property name may be the name of a section of the document to be transcluded.

Since 4.13

 

Since version 4.13 the parameter supports to reference a space property. The name of the space property has to be prefixed with the paragraph sign ('§').

For instance, if the value for the select parameter is specified by the space property my-select, then the value of the select parameter is §my-select.

Since 5.0

 

Since version 5.0.6 the parameter supports a selection of HTML tags to structure the template.

Supported inline elements

  • b
  • br
  • cite
  • code
  • dd
  • dt
  • em
  • i
  • li
  • q
  • small
  • span
  • strike
  • strong
  • sub
  • sup
  • u

Supported block elements

  • blockquote
  • dl
  • ol
  • p
  • pre
  • ul

Count Columns

The last character may also be a '#' in which case the property value is applied to the Count FunctionThe Count Function counts the number of table rows, number of list items, or number of definition terms (whichever of these three is encountered first). Otherwise the count function returns zero. This allows to render the count of a result set rendered in a section.

The Count Macro also provides this function to the contents of its body.

Alignment

Column alignment can be controlled by using '<' for left, '|' for center, and '>' for right alignment. Add this character at the end of the name (even after the '+' or '#' indicator).

Control Alignment

 

Name, Iteration|, Short Name+>

Templates

Use Templates to render complex values in a column cell. The syntax to specify a template is

#COLUMN_NAME{TEMPLATE_SPECIFICATION}

The column name is the label to use for the column heading. It may be replaced using Header Translations.

Escape Comma

 

A comma is considered to separate two properties to be rendered. To use a comma in your template specification you need to escape it.

Use &#44; to replace a comma that should be used verbatim.

The template specification uses placeholders to reference properties.

Example Template Specification

 
#My Label{${Doctype} / ${Iteration}}

The template will access the Doctype and Iteration property to render the specified string for each row in the given column.

To render a link for a property in a template, the curly braces (${...}) need to be replaced by square braces ($[...]) when referencing a document property.

 

#T{$[Short Description] ${Iteration}}

The example renders a link with the value of the Short Description property.

Traverse Strategy

Select how the list of document references is traversed.

StrategyDescription
noneNo traversal of references in documents
breadth-firstDocuments are traversed breadth first
depth-firstDocuments are traversed depth first

Counter Column

If checked adds a counter as the first column.

Header Translations

Comma-separated list of key value pairs. Key is the header to be replaced by the value. Format: k1=v1, k2=v2.

Use this parameter if the name of the property is not appropriate as the column header.

The default label '#' may be overridden locally like this:

#=Counter

The label of all number column headings is also controlled by a space property named Counter Column Header.

Calculation Columns

List column names to apply for calculation. The column names are separated by comas.

Per default the values are treated as integers. You may select the number type by the following selectors:

SelectorDescription
iInteger value (Long Precision)
fFloat value (Double Precision)

Separate the selector with a colon from the column name (e.g. Value:f).

If you require to specify the number format, add it after an equal sign (e.g. Value:f=#0.00).

Use the following symbols to define the pattern:

SymbolDescription
.Decimal Separator
0Digit
#Optional Digit
,Grouping Separator

¤

Currency Sign
%Multiply by 100 and show as percentage
Multiply by 1000 and show as per mille value
'Quote strings (to escape symbols)
 

Here are two examples for Locale US.

If the content is 2342.738, the pattern give these results:

PatternResult
<Default>2342.738
0.002342.74
###,##0.002,342.74
¤ ##,##0.00
$ 2,342.74

Assume the following value for the next example: 0.7832

PatternResult
<Default>0.7832
%%78
%0.00%78.32
‰783

The sum is rendered in additional row. The td element is rendered with the CSS selector projectdoc-calculated-value.

Render no hits as blank

If the query found no hits, the result is rendered as a short text message. If a result with no hits should not be rendered at all, check this box.

No Hits Text

Text to be rendered if no hits are shown.

This allows to customize the text message.

Render Mode

Controls how the table should render properties of the document result set.

There are three render modes: table, list, and section.

Table Render Mode

If you want to render the result in a table, leave this parameter value blank.

You may also explicitly set this value to table.

Add a CSS class by separating it with a "=".

Setting the widths of the columns is supported. Added a columns descriptor in brackets after the CSS class name. The comma-separated list of width is passed as CSS style values for the width attribute.

 
  • =mystyle
  • table=mystyle
  • table=mystyle[columns=20px,120px,80px]

Since 5

 

Since version 5 of the projectdoc Toolbox besides commas also semicolons are allowed to separate the column width.

table=projectdoc-alternating[columns=220px;*;220px]

Since version 4.11 the columns must provide a value for the counter column (if selected).

These CSS classes are provided by the projectdoc Toolbox to style your tables:

NameShort Description
projectdoc-alternating
Use the CSS class projectdoc-alternating for a HTML table to get alternating colored table rows.
projectdoc-counter-column
Marks column cells that contain a row counter.
projectdoc-fullwidth
Use the CSS class projectdoc-fullwidth for a HTML table to get a table using 100% of the available width.
projectdoc-halfwidth
Use the CSS class projectdoc-halfwidth for a HTML table to get a table using 50% of the available width.
projectdoc-quarterwidth
Use the CSS classprojectdoc-quarterwidth for a HTML table to get a table using 25% of the available width.
projectdoc-selected-document-properties
Rendered with a properties table in front of transcluded content.
projectdoc-thirdwidth
Use the CSS class projectdoc-thirdwidth for a HTML table to get a table using 33% of the available width.

List Render Mode

You may render a two column result in a list. Usually this is the case for the document name and short description.

The following values are valid:

  • definition - for a definition list
  • numbered - for a numbered list
  • unnumbered - for an unnumbered list
  • plain - for a comma separated list as text

Plain text in plain list

 

If the list render mode is set to plain, then the elements of the list are still rendered as specified with the Select Parameter.

In case you need to render a plain list (aka comma-separated list) then you could set the Select Parameter to Name-.

You may add a CSS class by separating it with a "=".

If you add a "-" at the end, the first character of the second column value (e.g. the short description) will be lower cased.

Note that there is specialized macro for rendering lists with an easier interface: Display List Macro.

The render mode parameter allows to switch between tables and lists quickly, if you started with a table, but later decide to use a more compact format for your two-column result.

Here are a few examples with valid values:

ValueDescription
definitionRenders as a definition list.
unnumbered-Renders as an unnumbered list. The first character of the second column value is lower-cased.
definition=simpleindent-Renders a definition list with class simpleindent. The first character of the second column value is lower-cased.

Section Render Mode

To render the result with vertical tables in sections, the parameter value has to be an asterisk ('*') or an integer between 0 to 6, optionally be followed by a "+".

Since 4.5

 

The asterisk ('*') allows to calculate the heading level dynamically, similar to the feature provided by the Section Macro.

Otherwise there is a separate table for each document, where the first column contains the name of the property, the second its value. If the digit is zero, there will be no heading generated in front of the table. The first property in the select clause provides the value for this heading.

If a "+" sign is added (e.g. "2+"), the first property will be rendered in the heading and in the first row of the table. You may use this option to render the name as the heading and as a link in the first row of the table.

Since version 1.17 the properties table may be rendered as definition list (append an 'l'). Also the widths of the table may be controlled. For both representations a CSS class may be applied.

 
  • *
  • 1l
  • 1+l
  • 1=mystyle[columns=120px,250px]

Styles for definition lists provided by the projectdoc Toolbox are documented in Definition List Macro.

Since version 4.5 the short description can be extracted to be rendered in front of the table by placing the character 's' after the level (e.g. "*s").

 

Since version 4.5 the additional modifiers for the section render mode may appear in any order after the level is specified.

Hide Empty Row

If checked, rows in two-column tables will be hidden, if the value is blank.

Remove Template Buttons

If checked template buttons are not transcluded.

Render Reference Box

If checked, a box that marks the transcluded text is rendered with a link to the part in the document (if the transcluded part is uniquely identifiable).

Since version 1.11. Prior to that version the box can only be suppressed with the space property Render Transclusion Box.

Caption

The label for the table caption.

No Table Heading

If checked no heading will be rendered.

Since version 1.17 this parameter also applies for the table above the sections in Section Render Mode.

Identifier

Unique identifier for the rendered content.

This identifier is used for Remote Control and Context Controlled Macros.

Identifier Classes

Apply identifier classes to render this macro as part of a group.

This identifier is used for Remote Control and Context Controlled Macros. Multiple macros on a page may have only one unique Identifier, but may share common identifier classes.

Context controlled

When checked configures parameters via document and space properties.

For more information please refer to Context Controlled Macros.

Remote Controls

List of controls to pass to transcluded contexts. Controls are separated by ampersand ('&').

Since 4.5

 

Available since version 4.5 of the projectdoc Toolbox.

This allows to control the rendering of remote controllable macros by sending controls. For more information please refer to Remote Control.

 

To alter the rendering of a remote control macro identified by id 'docs', use the following controls:

docs:select=Name,Type&docs:render-mode=definition

The tip Remote Controls for Transclusion provides a short introduction in how to use this feature.

Details

Remote Controlled Documents

Remote Controlled Documents allow to control the content at request time. A HTTP request may override parameters of the macro. A request parameter addresses a macro by its identifier. After the identifier the name of the parameter is appended, separated by a colon.

Override Parameters

 

Assume that the identifier of the macro is set to 'my', the following call will override the property parameter on the page 'MyPage' in space 'MYS'.

confluence/display/MYS/MyPage?my:property=Help

The list of parameters allowed to override:

  • document
  • property
  • select
  • traverse
  • render-counter-column
  • header-translations
  • calc-columns
  • render-no-hits-as-blank
  • render-mode
  • render-heading-as-link
  • render-link-label
  • hide-empty-row
  • remove-buttons
  • render-reference-box
  • table-caption
  • suppress-table-heading

These parameters can also be controlled by the context of the macro.

Debugging

This macro renders information from names read from a given property. If that name is not referencing a projectdoc document then this name is simply dropped. This may be considered a configuration issue.

If the space property Debug Mode is set to true, then – depended on Debug Access Mode – an error box is rendered that lists all undefined terms.

Since 4.13

 

This feature is available since version 4.13 of the projectdoc Toolbox.

Related macros

Display List Macro
Lists references to projectdoc documents in a list. List contain names and optional short descriptions.
Display List Template Macro
Lists references to projectdoc documents in a list. List items are defined by templates referencing properties.
Display Table Macro
Lists references to projectdoc documents in a table. Allows to select document properties for columns. Also non-list representations are provided.
Index Card Macro
Renders transcluded content fetched from documents of a result set.
Index Entries Table Macro
Renders a table of index entries.
Tour Macro
Renders a predefined list of documents in a table.
Transclude Documents Macro
Renders transcluded content fetched from documents of a result set.