Add a dropdown filter to the Space Inline Comment Report
This recipe allows you to create an inline comment report for a specific Confluence space.
To make this report dynamic and allow users to select which space to report on, we are using Scaffolding Forms & Templates's List Data macro. The Adding a dropdown list of users macro will appear as a dropdown menu with all available spaces for users to select from. Once the user has selected the space, the inline comment report for that particular space will be executed.
Apps | Reporting, Scaffolding |
---|
Platform | Server |
---|
Level | |
---|
Estimated time | |
---|
Macros | |
---|
Suppliers | |
---|
You can copy and paste this code into the Confluence Source Editor:
<ac:layout>
<ac:layout-section ac:type="single">
<ac:layout-cell>
<table class="wrapped">
<colgroup>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td>Please select the Space you wish to report on:</td>
<th>
<div class="content-wrapper">
<ac:structured-macro ac:macro-id="8aa7e2e6-8f3d-4098-b375-6d91c143c339" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">spaces</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="56680a6a-b074-4c13-8a56-66ebbd93a4e6" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="6f1f33d7-7888-4d5d-8ce2-f70f65bf0ce0" ac:name="space-reporter" ac:schema-version="1">
<ac:rich-text-body>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="cefedb5e-86e2-4b5e-85f5-b0b895139e27" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="5c212908-639d-4e0f-9709-52fc58cc9285" ac:name="list-option" ac:schema-version="1">
<ac:parameter ac:name="label">%space:name%</ac:parameter>
<ac:parameter ac:name="value">%space:key%</ac:parameter>
<ac:rich-text-body>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</div>
</th>
</tr>
</tbody>
</table>
</ac:layout-cell>
</ac:layout-section>
<ac:layout-section ac:type="single">
<ac:layout-cell>
<ac:structured-macro ac:macro-id="f8e413f3-26c8-47ac-b5d5-579e979d43b4" ac:name="report-table" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="7356aed7-4a90-459e-9805-a8b2837a5222" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">comment</ac:parameter>
<ac:parameter ac:name="spaces">
<ri:space ri:space-key="%data:spaces>first%"/>
</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="1ea4eeca-aeeb-4688-9692-ea7e7b127754" ac:name="text-sort" ac:schema-version="1">
<ac:parameter ac:name="">comment:creation date</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="c7c614dd-138e-4b14-ab84-8e98d54d2033" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="exclude">Resolved</ac:parameter>
<ac:parameter ac:name="required">true</ac:parameter>
<ac:parameter ac:name="">comment:inline-status</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="2f760e10-32d4-406d-a00e-b003c5f7f0e7" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Space</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="1221e78a-4dd1-4877-a103-a7e48f564763" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">comment:space</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="a706f2fa-45eb-4e98-b5f5-85b4840dcf37" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Page</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="b6167193-29e7-426d-8bc4-0709916e9640" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">comment:page</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="c0d0df5a-732f-42bd-b83a-bf427511dc17" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Comment</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="5bec0898-7e9a-43c0-b146-4a3efc81f0a6" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="render">richtext</ac:parameter>
<ac:parameter ac:name="">comment:body</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="0589b942-6cc0-4b5b-8118-429459297cd7" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Author</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="dcf3eb45-d53c-479a-b8b2-045389ab6078" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">comment:creator</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="391fac60-a473-461f-a3d5-0d7cd7f97261" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Repliers</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="ed3e6c5a-5ea0-42de-a865-f51defeea9d9" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">comment:repliers > collection:join with ", "</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="6a37b846-f71d-4419-ab18-3927e07e1d28" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Status</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="ac7d2c62-6aee-4242-ad38-e0f2fb89c38a" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">comment:inline-status</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="54762b7e-3c64-4f5c-b15f-928e44d7a266" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">ReplyCount</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="8c46af56-32b3-43a4-8076-2e3a9f2eb148" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">comment:reply count</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="8377ba93-0a47-48e1-bedb-8d0b7964c3a5" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Age</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="2ec6bc9c-c733-4f4f-99ed-47fd5167645c" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="format">#</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:plain-text-body><![CDATA[(%global:current date>date:milliseconds% - %comment:creation date>date:milliseconds%)/1000/60/60/24]]></ac:plain-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:layout-cell>
</ac:layout-section>
</ac:layout>
You can recreate the example in the editor view:
- Create a List Data macro for the user to select the Space they want to report on.
To achieve this follow the steps below:
- Create a Report Block macro. Set Injected parameter to True.
- Within the Report Block macro, create a Space Reporter macro to report on all the Spaces in Confluence.
- Create a Report Body macro.
- Within the Report Body macro, create a List Option macro to feed the spaces into a dropdown menu.
Set the parameters as below:
Value: %space:key%
Label: %space:name%
- Create a Report Table macro.
Set Injected parameter to True.
- Within Report Table macro, create a Content Reporter macro and set the following parameters:
Type: comment
Spaces %data:spaces>first%
- Within Content Reporter macro, create a Text Sort macro.
Set the Text Sort macro's Key to "comment:creation date
".
- Within Content Reporter macro, create a Text Filter macro.
Set the Text Filter macro's Key to "comment:inline-status
".
Set Required parameter to True.
- Within Report Table macro, under Content Reporter macro, create 8 Report Column macros.
- Set the first Report Column macro's Title to "Space" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:space
".
- Set the second Report Column macro's Title to "Page" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:page
".
Tick Link To Item.
- Set the third Report Column macro's Title to "Comment" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:body
".
Tick Link To Item.
- Set the forth Report Column macro's Title to "Author" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:creator
".
- Set the fifth Report Column macro's Title to "Repliers" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:repliers > collection:join with ", "
".
- Set the sixth Report Column macro's Title to "Status" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:inline-status
".
- Set the seventh Report Column macro's Title to "Reply Count" and add a Report Info macro within it.
Set the Report Info macro's Key to "comment:reply count
".
Set the eighth Report Column macro's Title to "Age" and check Injected parameter to set it to True. Then add a Report Eval macro within it.
Copy the following code inside the Report Eval macro:
"(%global:current date>date:milliseconds% - %comment:creation date>date:milliseconds%)/1000/60/60/24
".
- Save the changes.
- Now, you can click on Edit Contents to select the Space to report on.