Filter page results based on user
This recipe shows you how to filter the page results based on the user.
As the example in the result, we are filtering the page that have created by 'Kevin Lew' and display the page information in a table.
Apps | |
---|
Platform | Server, Data Center |
---|
Level | |
---|
Estimated time | |
---|
Macros | |
---|
Suppliers | |
---|
You can copy and paste this code into the Confluence Source Editor:
<table class="wrapped relative-table" style="width: 16.2221%;">
<colgroup> <col style="width: 37.7506%;"/> <col style="width: 62.1381%;"/> </colgroup>
<tbody>
<tr>
<th style="text-align: center;">Choose User to filter</th>
<td style="text-align: center;">
<div class="content-wrapper">
<ac:structured-macro ac:macro-id="87ae3a39-7372-45f9-847b-48e953d28f47" ac:name="list-data" ac:schema-version="1">
<ac:parameter ac:name="name">myUser</ac:parameter>
<ac:parameter ac:name="type">auto complete</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="b1dd79fd-5fe3-457e-aea3-4455a92fc6de" ac:name="user-options" ac:schema-version="1">
<ac:parameter ac:name="groups">confluence-users</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</div>
</td>
</tr>
</tbody>
</table>
<ac:structured-macro ac:macro-id="46f160af-69d9-4488-8328-c605e5ed8d08" ac:name="report-on" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">data:myUser>join with " ">text:find .*?'.*?'.*?</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="c1c28d25-a7d2-4e2f-9c67-d2973a815a7e" ac:name="report-variable" ac:schema-version="1">
<ac:parameter ac:name="name">X</ac:parameter>
<ac:parameter ac:name="value">%match:value>match "(.*?)\\u0027(.*?)\\u0027(.*?)">group 2%</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="6041c8db-a9d6-4da5-a853-50b8bd15ad6b" 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="80f6b76f-2b6d-4585-898b-7b7ab61c7825" 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="a9728685-7235-454b-9065-77cf20cf3d03" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="value">%variable:X%</ac:parameter>
<ac:parameter ac:name="">page:creator>user:name</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="bbcbcfa4-41d4-4d8f-9d16-7a744a4bbdab" ac:name="text-sort" ac:schema-version="1">
<ac:parameter ac:name="">page:creator>user:name</ac:parameter>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="860ddd0c-39e5-4fb3-864d-2df586d22470" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Page Title</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<ac:structured-macro ac:macro-id="f54dfce0-7351-4db9-9328-b3f0b5f3231f" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">page:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="53a45193-6d06-42d6-af60-37b776e1ebdb" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Created Date</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="9e1357a2-8ea4-4852-a137-6d2586069e53" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">page:creation date</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="40bb7e8d-fb0b-4a42-b29e-dd3536ad1279" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Last Updated</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="7b0e9213-8175-4087-860c-c23ff0e93d6a" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">page:modification date</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="a3d9d6a0-322e-40bb-8c70-380766c1738b" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Page Creator</ac:parameter>
<ac:rich-text-body>
<p class="auto-cursor-target">
<ac:structured-macro ac:macro-id="55de3358-bbde-4740-81a6-2e539d27265c" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">page:creator>user:name</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
<p class="auto-cursor-target">
<br/>
</p>
<p>
<br/>
</p>
<p>
<br/>
</p>
You can recreate the example in the editor view:
- Add a 2 x 1 table.
- Set first column as Header and write "Choose User to filter".
- In second column, create a List Data macro and set the following parameters:
Field Name: myUser
Type: auto complete
Required: uncheck
Allow Multiple: uncheck
- Within List Data macro, create User Options macro.
Set Groups to "confluence-users".
- Under the table, create Report On macro and set the following parameters:
Key: data:myUser>join with " ">text:find .*?'.*?'.*?
Injected: checked
- Within Report On macro, create Report Variable macro and set the following parameters:
Name: "X"
Value: %match:value>match "(.*?)\\u0027(.*?)\\u0027(.*?)">group 2%
- Under Report On macro, create Report Table and tick Injected parameter.
- Within Report Table macro, create Content Reporter macro and types set it to "pages".
- Within Content Reporter macro, create Text Filter macro and set the following parameters:
Key: page:creator>user:name
Exact Value: %variable:X%
- Within Content Reporter macro and under Text Filter macro, create Text Sort macro and set the following parameters:
Key: page:creator>user:name
Order: ascending
- Under Content Reporter macro, create four Report Column macros.
- Set the first Report Column macro's Title to "Page Title" and add a Report Info macro within it.
Set the Report Info macro's Key to "page:title
".
Tick the Link To Item.
- Set the second Report Column macro's Title to "Creation Date".
Set the Report Info macro's Key to "page:creation date
".
- Set the third Report Column macro's Title to "Modification Date".
Set the Report Info macro's Key to "page:modification date
".
- Set the forth Report Column macro's Title to "Page Creator".
Set the Report Info macro's Key to "page:creator>user:full name
".
Tick Link To Item.