Only current space in the Content Report Table macro
Asked by Kitty de Ruijter:

*This question is in reference to Atlassian Documentation: [Content Report Table Macro](https://confluence.atlassian.com/pages/viewpage.action?pageId=317194676)*

Hi,

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.


Answers:
author: Davin Studer
body: 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

**Macro Name:**current_space_content_report_table

**Macro Title:**Current Space Content Report Table

**Description:**Provides a content report for the current space in table format, based on labels.

**Macro Body Processing:**No macro body

**Template:**

```
## 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 &amp;&amp; $paramComments == true)    #set ($comments = "true")#else    #set ($comments = "false")#end#if ($paramLikes &amp;&amp; $paramLikes == true)    #set ($likes = "true")#else    #set ($likes = "false")#end&lt;ac:structured-macro ac:macro-id="d28458e5-6177-43aa-a298-75d9539c8d84" ac:name="content-report-table" ac:schema-version="1"&gt;    &lt;ac:parameter ac:name="showLikesCount"&gt;$likes&lt;/ac:parameter&gt;    &lt;ac:parameter ac:name="maxResults"&gt;$!paramMax&lt;/ac:parameter&gt;    &lt;ac:parameter ac:name="showCommentsCount"&gt;$comments&lt;/ac:parameter&gt;    &lt;ac:parameter ac:name="spaces"&gt;        &lt;ri:space ri:space-key="$space.key"/&gt;    &lt;/ac:parameter&gt;    &lt;ac:parameter ac:name="labels"&gt;$!paramLabels&lt;/ac:parameter&gt;&lt;/ac:structured-macro&gt;
```

comments: author: Kitty de Ruijter
body: Yes this did the trick! Thanks for the help :smile:


author: Davin Studer
body: No problem.


author: Robert Reiner _smartics_
body: 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",        "&lt;ri:space ri:space-key=\"" + spaceKey + "\" /&gt;");
```

In the blueprint you access this variable like this:

```
&lt;ac:structured-macro ac:name="..."&gt;  ...  &lt;ac:parameter ac:name="spaceKey"&gt;&lt;at:var at:name="spaceKeyElement"                                            at:rawxhtml="true"/&gt;&lt;/ac:parameter&gt;&lt;/ac:structured-macro&gt;
```

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>


author: Rob Woodgate
body: Hi Kitty,

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.


Tags: content-report-table-macro