Part 2 - Building the recently modified view panel
- Li Xuan Liew (Deactivated)
- Robert Alexander Marshall
Overview
Now let's build the next component: the recently modified view panel.
This will allow an admin immediate access to pages on the Confluence instance that were modified within the last 24 hours as well as show other relevant info about the pages.
Steps
In the draft page
Adding the report table
create a Report Table macro
set Maximum Results to "100"
Adding the sort and date filter
Within the Report Table
create a Content Reporter macro
set Types to "page"
In this Content Reporter macro
create a Date Sort macro
set the Key to
content:modification date
create a Date Filter macro
set the Key to
content:modification date
Page Title column
Back within the Report Table
create a Report Column macro
set the Title to "Page Title"
check the Injected parameter as True
Within the Report Column
create a Report Info macro
set the Key to
content:title
set Link To Item as True
In the Report Table macro add further Report Column macros as follows:
Space column
create first of the additional Report Column macros
set the Title "Space"
In this Report Column
create a Report Info macro
set the Key to
content:space
set Link To Item as True
Attachments column
create the second of the additional Report Column macros
set Title "Attachments"
In this Report Column
create a Report Info macro
set the Key to
content:attachments > collection:size
Version column
create the third of the additional Report Column macros
set the Title "Version"
In this Report Column
create a Report Info macro
set the Key to
content:version
Category column
Create fourth of the additional Report Column macros
set the Title "Category".
In this Report Column
create a Report Info macro
set the Key to
content:labels
Last Modified column
create another Report Column
set the Title "Last Modified"
In this Report Column
create two Report Info macros
one with the Key set to
content:modification date
the other with the Key set to
content:modifier
Ensure the latter Report Info macro with the Key content:modifier
also has the Link To Item parameter set to True.
Links column
create another Report Column
set the Title "Links"
check the Injected parameter is set to True
In the Report Column
create a Link to Location macro
set Location to "page info"
set Link Text to "Page Info"
set Content to
%title%
Within the same Report Column
create a second Link to Location macro
set Location to "page history"
set Link Text to "History"
set Content to
%title%
Actions column
create another Report Column
set the Title "Actions"
check the Injected parameter is set to True
In this Report Column
create a Link to Location macro
set Location to "page edit"
set Link Text to "Edit"
set Content to
%title%
Still within the same Report Column
create a second Link to Location macro
set Location to "page remove"
set Link Text to "Remove"
set Content to
%title%
Editor view - macro structure
Your editor should now look something like this:
Source code
The following source code is shared using Confluence Storage Format - the XHTML-based format that Confluence uses to store the content of pages, page templates, blueprints, blog posts and comments.
It also incorporates also incorporates code from Part 1.
For more information on how to use this source code on your Confluence, read the following article - How do I use Recipes that use the Storage Format with the Confluence Source Editor?
<ac:layout>
<ac:layout-section ac:type="three_equal">
<ac:layout-cell>
<p>
<br/>
</p>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="8903159b-04da-4a00-8679-78dcf64293bc" ac:name="panel" ac:schema-version="1">
<ac:parameter ac:name="bgColor">#36B37E</ac:parameter>
<ac:parameter ac:name="borderWidth">0</ac:parameter>
<ac:rich-text-body>
<h2 style="text-align: center;"> </h2>
<h2 style="text-align: center;">Edited in the last 24h</h2>
<ac:structured-macro ac:macro-id="5be23bb4-7f0f-4005-9f78-20b3c2f1c35b" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="94fcd368-faa5-441e-bff4-e1f2ada33ccf" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">page</ac:parameter>
<ac:rich-text-body>
<h1> <ac:structured-macro ac:macro-id="cd8360c2-2657-49ff-a745-dffa7148a0f9" ac:name="date-filter" ac:schema-version="1">
<ac:parameter ac:name="minValue">-1m</ac:parameter>
<ac:parameter ac:name="beforeValue">+0d</ac:parameter>
<ac:parameter ac:name="relativeTo">%data:Relative To%</ac:parameter>
<ac:parameter ac:name="">content:modification date</ac:parameter>
</ac:structured-macro>
</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="aa9b7107-1cd0-4390-b0e1-469ff008b92b" ac:name="report-header" ac:schema-version="1">
<ac:rich-text-body>
<h1 style="text-align: center;">
<ac:structured-macro ac:macro-id="f8c60628-4721-43cb-b69f-4fb83b026077" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">report:query>collection:size</ac:parameter>
</ac:structured-macro> Pages</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="d76f9ad9-3a28-40ac-a839-d6550b302eb4" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="e14931f4-f5f1-4415-aa69-e7d9d44a8833" ac:name="hidden-data" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<h1>
<ac:structured-macro ac:macro-id="3b421be3-11b8-456b-9e9d-c847f2635379" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:layout-cell>
<ac:layout-cell>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="126252d6-7180-46e1-a247-2577d56712bb" ac:name="panel" ac:schema-version="1">
<ac:parameter ac:name="bgColor">#00B8D9</ac:parameter>
<ac:parameter ac:name="borderWidth">0</ac:parameter>
<ac:rich-text-body>
<h2 style="text-align: center;"> </h2>
<h2 style="text-align: center;">Created in the last 24h</h2>
<ac:structured-macro ac:macro-id="5ce2d14b-3234-4e66-8a0c-2ea0078cf45b" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="7c647e70-8cd8-4988-b43f-60767aa4791d" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">page</ac:parameter>
<ac:rich-text-body>
<h2> <ac:structured-macro ac:macro-id="4c8cbade-6d82-4242-a745-9e5f7da1e9c1" ac:name="date-filter" ac:schema-version="1">
<ac:parameter ac:name="minValue">-1d</ac:parameter>
<ac:parameter ac:name="beforeValue">+0d</ac:parameter>
<ac:parameter ac:name="relativeTo">%data:Relative To%</ac:parameter>
<ac:parameter ac:name="">content:creation date</ac:parameter>
</ac:structured-macro>
</h2>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="b81d9955-cac0-48b2-b439-fdd12ebcaeb0" ac:name="report-header" ac:schema-version="1">
<ac:rich-text-body>
<h1 style="text-align: center;">
<ac:structured-macro ac:macro-id="639aa3c0-cc0d-4a80-9ba7-01bb65e0f585" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">report:query>collection:size</ac:parameter>
</ac:structured-macro> Pages</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="7f12049d-f107-4f44-8c47-fff669a74a2c" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="9ca89724-cee8-4f46-952d-2102941a193d" ac:name="hidden-data" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<h1>
<ac:structured-macro ac:macro-id="6297c13e-0f4a-40f1-a13b-8623e5310f95" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:layout-cell>
<ac:layout-cell>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="1a6a2ca1-fa36-4c2c-8045-5b73f36d45e6" ac:name="panel" ac:schema-version="1">
<ac:parameter ac:name="bgColor">#FFAB00</ac:parameter>
<ac:parameter ac:name="borderWidth">0</ac:parameter>
<ac:rich-text-body>
<h2 style="text-align: center;"> </h2>
<h2 style="text-align: center;">Comments in the last 24h</h2>
<ac:structured-macro ac:macro-id="4e06cbbe-f21e-42bc-befb-195f0aadc88e" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="e5fe9946-b959-4a08-b70f-a00335d18eae" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">comment</ac:parameter>
<ac:rich-text-body>
<h1> <ac:structured-macro ac:macro-id="30a72078-8b90-4a99-9501-01dc6a1ac1ad" ac:name="date-filter" ac:schema-version="1">
<ac:parameter ac:name="minValue">-3m</ac:parameter>
<ac:parameter ac:name="beforeValue">+0d</ac:parameter>
<ac:parameter ac:name="relativeTo">%data:Relative To%</ac:parameter>
<ac:parameter ac:name="">content:modification date</ac:parameter>
</ac:structured-macro>
</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="c56f33fc-1e92-478c-8a10-c205f2978ee2" ac:name="report-header" ac:schema-version="1">
<ac:rich-text-body>
<h1 style="text-align: center;">
<ac:structured-macro ac:macro-id="4f74f1ff-290d-488c-a9e3-a3e63d04a6e8" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">report:query>collection:size</ac:parameter>
</ac:structured-macro> Comments</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
<ac:structured-macro ac:macro-id="70cc4bf3-4769-47ec-8208-424c7c36e2a0" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="daf66cf9-2757-4824-8933-fa02902871e7" ac:name="hidden-data" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<h1>
<ac:structured-macro ac:macro-id="aa0576c5-2eda-411f-aed4-af3ee25bf84c" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</h1>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:layout-cell>
</ac:layout-section>
<ac:layout-section ac:type="single">
<ac:layout-cell>
<h2>Recently Modified</h2>
<ac:structured-macro ac:macro-id="c90db81c-c627-45e3-b56a-e25e08b9193b" ac:name="report-table" ac:schema-version="1">
<ac:parameter ac:name="maxResults">100</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="89b8c391-eb5f-4476-87f2-fbe379b5d65b" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">page</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="488e0656-edbe-4960-97e1-ace4b61e081b" ac:name="date-sort" ac:schema-version="1">
<ac:parameter ac:name="order">descending</ac:parameter>
<ac:parameter ac:name="">content:modification date</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="d51b35d2-62e1-4968-9b3a-21257f2ac785" ac:name="date-filter" ac:schema-version="1">
<ac:parameter ac:name="minValue">-1m</ac:parameter>
<ac:parameter ac:name="beforeValue">+0d</ac:parameter>
<ac:parameter ac:name="relativeTo">%data:Relative To%</ac:parameter>
<ac:parameter ac:name="">content:modification date</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="75dbfaaa-bca7-4485-9e92-85cae655a75c" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Page Title</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="964334db-6a98-443c-8362-601473d283a5" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="16fb1995-0f8f-4a51-b78b-eeb38b526b39" 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="12c2c594-4ac2-4d4c-9d91-ed68c493733a" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">content:space</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="cec62587-d04c-4179-b79e-7a29107d8a63" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Attachments</ac:parameter>
<ac:rich-text-body>
<p style="text-align: center;">
<ac:structured-macro ac:macro-id="16a86479-2508-4e43-84f1-187bd900bfcd" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:attachments > collection:size</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="a67914c5-2ec8-48d6-91ba-2dc95840a32c" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Version</ac:parameter>
<ac:rich-text-body>
<p style="text-align: center;">
<ac:structured-macro ac:macro-id="c9245c36-435a-4354-ba09-7b6eb37a98c2" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:version</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="41695501-62fa-42a4-ac26-3502b817d8b6" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Category</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="ce7ca44c-5d28-4dfd-9866-4bcc458a585d" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:labels</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="1c52c782-4454-45f9-994d-aa7f3c7b12da" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Last Modified</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="d630bc82-747b-4e13-9f50-1e12f1544440" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="format">dd MMM, yyyy</ac:parameter>
<ac:parameter ac:name="">content:modification date</ac:parameter>
</ac:structured-macro> by <ac:structured-macro ac:macro-id="f9666b9a-3d59-43fa-9dbc-d7247c2de043" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">content:modifier</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="c91cfa63-dbcc-4641-b472-44e57f8a6615" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Links</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="ea1afb9f-a386-43a1-913a-b1e7cf6236f7" ac:name="link-to" ac:schema-version="1">
<ac:parameter ac:name="linkText">Page Info</ac:parameter>
<ac:parameter ac:name="content">
<ac:link>
<ri:page ri:content-title="%title%"/>
</ac:link>
</ac:parameter>
<ac:parameter ac:name="">page info</ac:parameter>
</ac:structured-macro> <ac:structured-macro ac:macro-id="1b0b9ccd-f2a4-4d72-b0e5-48d82df8776b" ac:name="link-to" ac:schema-version="1">
<ac:parameter ac:name="linkText">History</ac:parameter>
<ac:parameter ac:name="content">
<ac:link>
<ri:page ri:content-title="%title%"/>
</ac:link>
</ac:parameter>
<ac:parameter ac:name="">page history</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<ac:structured-macro ac:macro-id="fe1cf538-41e4-4485-94e0-87cf43ea1f14" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Actions</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="e1fa0a24-ccb9-42f2-bccf-737a47fef558" ac:name="link-to" ac:schema-version="1">
<ac:parameter ac:name="linkText">Edit</ac:parameter>
<ac:parameter ac:name="content">
<ac:link>
<ri:page ri:content-title="%title%"/>
</ac:link>
</ac:parameter>
<ac:parameter ac:name="">page edit</ac:parameter>
</ac:structured-macro> <ac:structured-macro ac:macro-id="b0b1faf3-b960-4c11-b2cd-c5d10605a01a" ac:name="link-to" ac:schema-version="1">
<ac:parameter ac:name="linkText">Remove</ac:parameter>
<ac:parameter ac:name="content">
<ac:link>
<ri:page ri:content-title="%title%"/>
</ac:link>
</ac:parameter>
<ac:parameter ac:name="">page remove</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
</ac:layout-cell>
</ac:layout-section>
</ac:layout>