This question is in reference to Atlassian Documentation: Content Report Table Macro
In the Content Report Table macro I have to fill in a space key to which space the macro should refer to. The default is set on all spaces, but I want it to look only at the current space. As I am also using this macro in a blueprint, I don't want to manually update the space key everytime. Anyone has any idea's?
Thanks in advance.
You could create a user macro to wrap the built-in macro that has all the same params except the space and will auto fill the space for you. I have included one below.
Current Space Content Report Table
Current Space Content Report Table
Provides a content report for the current space in table format, based on labels.
Macro Body Processing:
No macro body
## Developed by: Davin Studer ## Date created: 01/20/2017 ## @param Labels:title=Label(s)|type=string|required=true|desc=Enter one or more labels to report on. ## @param Comments:title=Show Comments count|type=boolean|desc=Add the column that displays numbers of comments ## @param Likes:title=Show Likes count|type=boolean|desc=Add the column that displays numbers of likes ## @param Max:title=Maximum Number of Pages|type=string|default=20|desc= #if ($paramComments && $paramComments == true) #set ($comments = "true") #else #set ($comments = "false") #end #if ($paramLikes && $paramLikes == true) #set ($likes = "true") #else #set ($likes = "false") #end <ac:structured-macro ac:macro-id="d28458e5-6177-43aa-a298-75d9539c8d84" ac:name="content-report-table" ac:schema-version="1"> <ac:parameter ac:name="showLikesCount">$likes</ac:parameter> <ac:parameter ac:name="maxResults">$!paramMax</ac:parameter> <ac:parameter ac:name="showCommentsCount">$comments</ac:parameter> <ac:parameter ac:name="spaces"> <ri:space ri:space-key="$space.key"/> </ac:parameter> <ac:parameter ac:name="labels">$!paramLabels</ac:parameter> </ac:structured-macro>
In some macros you can specify "current space", but for reasons known only to Atlassian you can't use that in the Content Report Table. It doesn't even have the type-ahead so you have to know the exact name or key of every space you want to pull data from. It's very odd and as far as I know there is no workaround for this - if you want "current space" you'll have to manually change it to the space name every time.
An alternative that does what you need is the Content By Label macro. It's not a neat table, but you could set it up with the label(s) you want and set an additional In space filter to "Current space", drop it in your template and you're all done.
If you have access to change the code in the blueprint, you may workaround the problem by setting a variable in the environment.
blueprintContext.put("spaceKeyElement", "<ri:space ri:space-key=\"" + spaceKey + "\" />");
In the blueprint you access this variable like this:
<ac:structured-macro ac:name="..."> ... <ac:parameter ac:name="spaceKey"><at:var at:name="spaceKeyElement" at:rawxhtml="true"/></ac:parameter> </ac:structured-macro>
This is quite a hack, but it works in our use cases. Hopefully this also works with the Content Report Table (I have not tested it).
This issue is related: https://answers.atlassian.com/questions/318493
This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.Read more
Hi Community! Kesha (kay-sha) from the Confluence marketing team here! Can you share stories with us on how your non-technical (think Marketing, Sales, HR, legal, etc.) teams are using Confluen...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs