no coding necessary: building user macros and dynamic reports inside confluence - atlassian summit...
DESCRIPTION
No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence Charles Hall, Astrium & Jim Severino, AtlassianTRANSCRIPT
![Page 1: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/1.jpg)
1
![Page 2: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/2.jpg)
No coding necessaryBuilding user macros and dynamic reports inside Confluence
2
Charles HallWiki Project ManagerAstrium
![Page 3: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/3.jpg)
Who we are
3
Europe’s leading satellite manufacturer, number 3 worldwide.
www.astrium.eads.net
![Page 4: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/4.jpg)
Agenda
•What is a user macro?
•Worked example – colored tables
•Worked example – watermark for wiki pages
•Showcase
4
![Page 5: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/5.jpg)
User macros
•What is a user macro?• Added functionality• Removes complexity for authors• Facilitates re-use
•Restrictions• Used by users but…• …installed by system admins
5
![Page 6: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/6.jpg)
User macros
•Where can they be used?• Pages• Templates• In other user macros
But not…• Custom HTML (administration screen)
•What do they consist of?• HTML• Javascript• Velocity Template Language (VTL)• References to Confluence objects
6
![Page 7: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/7.jpg)
Complexity vs Functionality
7
Standard Wiki markup
{html} User macros
Custom plugins
Capability
Low
High
Functionality
Effort
HighComplexity
![Page 8: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/8.jpg)
An example
8
A performance testing tool – {response-time}
See your cheat sheet for details of this macro
![Page 9: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/9.jpg)
Introducing jQuery
“I thought you said no coding?”
•A Javascript library for simplifying HTML document traversal, event handling, and adding AJAX support easily
•Already used by Confluence•Minimizes Javascript coding
9
![Page 10: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/10.jpg)
Worked example 1 – colored tables
10
No more boring tables!
![Page 11: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/11.jpg)
Worked example 1 – colored tables
11
Listing 2
## Macro name: color-table## Macro has a body: N## Body format: n/a## Output: HTML#### Developed by: Charles Hall## Developed for: All users## Date created: 23/02/2010## Installed by: Charles Hall
## Apply coloring to alternate rows of tables.
<script type="text/javascript" defer="defer"> jQuery(document).ready(function() { jQuery("tr:even").css("background-color", "#318db6"); jQuery("tr:odd").css("background-color", "#f86a46"); });</script>
Comment header
![Page 12: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/12.jpg)
Worked example 1 – side effects
12
Test, test then test some more!
![Page 13: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/13.jpg)
Firebug to the rescue
13
Pinpoint the table(s) wewant to modify
Point & Click
![Page 14: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/14.jpg)
Worked example 1 – revised version
14
Listing 2
## Macro name: color-table## Macro has a body: N## Body format: n/a## Output: HTML#### Developed by: Charles Hall## Developed for: All users## Date created: 23/02/2010## Installed by: Charles Hall
## Apply coloring to alternate rows of any tables with the class of confluenceTable.
<script type="text/javascript" defer="defer"> jQuery(document).ready(function() { jQuery("table.confluenceTable tr:nth-child (odd)").css("background-color", "#f86a46");
jQuery("table.confluenceTable tr:nth-child (even)").css("background-color", "#318db6");
});</script>
element.class
![Page 15: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/15.jpg)
Worked example 1 – Accepting parameters
15
{color-table:A2C1D5|BFEBEF}
![Page 16: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/16.jpg)
Worked example 1 – Accepting parameters
16
Listing 2
## Apply coloring to alternate rows of any tables with the class of confluenceTable.
#set($oddcolor= $param0)#set($evencolor= $param1)
## Check for valid odd color, otherwise use default#if (!$oddcolor) #set ($oddcolor="ffffff")#end
## Check for valid even color, otherwise use default#if (!$evencolor) #set ($evencolor="ededed")#end
![Page 17: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/17.jpg)
Worked Example 2 - Using Confluence objects
17
![Page 18: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/18.jpg)
Worked example 2 – Referencing the image
18
Listing 3
#set($image= $param0)#set($repeat = $param1)#set($minheight= $param2)
<script type="text/javascript" defer="defer">jQuery(document).ready(function(){jQuery('#mainViewPane').css('background-image', 'url($config.getBaseUrl()$content.getAttachmentNamed("$image").getDownloadPath())');
…
2 strings joined together
{watermark:draft.gif|no-repeat|1000}
![Page 19: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/19.jpg)
Worked example 2 – Setting the repeat behaviour
19
Listing 3
#set($repeat = $param1)…
## Add the specified repeat behaviour#if ($repeat) jQuery('#mainViewPane').css('background-repeat', '$repeat');#end
…
![Page 20: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/20.jpg)
Worked example 2 – Specifying a minimum height
20
Listing 3
#set($minheight = $param2)…
## Check for a specified minimum height#if ($minheight) jQuery('#mainViewPane').css('height', '$minheight');#end
…
![Page 21: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/21.jpg)
Worked example 2 – reusing
21
How about defining some standard watermarks to help users?• Draft • Company logo
Could we make the syntax easier too?
• {draft-watermark}• {company-watermark}
![Page 22: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/22.jpg)
Worked example 2 – reusing
22
Listing 3
…
## Check for full image path or attachment name#if($image.startsWith("http",0))#set($url=$image)#else#set($url=$config.getBaseUrl()+$content.getAttachmentNamed("$image").getDownloadPath())
#end…
![Page 23: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/23.jpg)
Worked example 2 – reusing
23
Listing 4
## Macro name: draft-watermark## Macro has a body: N## Body format: n/a## Output: HTML#### Developed by: Charles Hall## Developed for: Astrium wiki## Date created: 19/04/2010## Installed by: Charles Hall
## N.B. Calls the watermark user macro## draft.gif must reside in "company" space
#set($url="http://globalcorp.com/confluence/download/attachments/74416134/draft.gif")
$action.getHelper().renderConfluenceMacro("{watermark:$url|no-repeat|1000}")
Calling the existing user macro
![Page 24: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/24.jpg)
Showcase
24
![Page 25: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/25.jpg)
Gradient background
25
![Page 26: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/26.jpg)
Page theme
26
![Page 27: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/27.jpg)
Client-side RSS feed reader
27
![Page 28: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/28.jpg)
Tweaking another plug-in
28
![Page 29: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/29.jpg)
Tweaking a standard feature
![Page 30: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/30.jpg)
In summary
30
•Add real functionality•Users can control behaviour•Access to some Confluence objects•Can perform useful UI tweaks•Can be re-used in other macros
Useful resources•See your cheat sheet
![Page 31: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/31.jpg)
Building Awesome Dashboards
with Confluence
Jim Severino, Atlassian
![Page 32: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/32.jpg)
![Page 33: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/33.jpg)
![Page 34: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/34.jpg)
![Page 35: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/35.jpg)
![Page 36: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/36.jpg)
![Page 37: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/37.jpg)
![Page 38: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/38.jpg)
![Page 39: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/39.jpg)
![Page 40: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/40.jpg)
![Page 41: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/41.jpg)
![Page 42: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/42.jpg)
ConfluenceFree Plugins
Your Data
= Awesome
+
![Page 43: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/43.jpg)
JDBC
![Page 44: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/44.jpg)
1. SQL
2. Chart
3. Run
4. Scripting
Plugins For Reporting:
![Page 45: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/45.jpg)
{sql}
DB
JDBC
Wiki
Plugin: SQL
![Page 46: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/46.jpg)
![Page 47: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/47.jpg)
{sql} Table
DB
JDBCJDBC
DB
Plugin: SQL
![Page 48: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/48.jpg)
![Page 49: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/49.jpg)
![Page 50: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/50.jpg)
{chart}
{sql} Table
DB
Plugin: Chart
![Page 51: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/51.jpg)
![Page 52: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/52.jpg)
![Page 53: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/53.jpg)
{chart}
{sql} Table
DB
Plugin: Chart
![Page 54: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/54.jpg)
![Page 55: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/55.jpg)
![Page 56: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/56.jpg)
![Page 57: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/57.jpg)
![Page 58: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/58.jpg)
![Page 59: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/59.jpg)
![Page 60: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/60.jpg)
![Page 61: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/61.jpg)
https://confluence.foo.com/FOO/Sales+Report?
run_1_category=motorcycles&run_1=run
![Page 62: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/62.jpg)
https://confluence.foo.com/FOO/Sales+Report
?run_1_category=motorcycles
&run_1_foo=...&run_1_bar=...Other Parameters!
![Page 63: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/63.jpg)
![Page 64: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/64.jpg)
![Page 65: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/65.jpg)
![Page 66: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/66.jpg)
![Page 67: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/67.jpg)
{sql} Table
DB
{run} {chart}
Plugin: Run
![Page 68: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/68.jpg)
Scripting
![Page 69: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/69.jpg)
![Page 70: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/70.jpg)
Text
Image (c) United Feature Comics
![Page 71: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/71.jpg)
Rule #1:Macro Security
![Page 72: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/72.jpg)
Recommendation:Use the
Macro Security Plugin.
![Page 73: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/73.jpg)
Rule #2:Datasource Security
![Page 74: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/74.jpg)
![Page 75: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/75.jpg)
Rule #3:Summary Databases
![Page 76: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/76.jpg)
Recommendation:Run Reports off a Summary Database
![Page 77: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/77.jpg)
![Page 78: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/78.jpg)
1. SQL
2. Chart
3. Run
4. Scripting
Plugins For Reporting:
![Page 79: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/79.jpg)
![Page 80: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/80.jpg)
![Page 81: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/81.jpg)
![Page 82: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/82.jpg)
![Page 83: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/83.jpg)
![Page 84: No Coding Necessary: Building User Macros and Dynamic Reports Inside Confluence - Atlassian Summit 2010](https://reader036.vdocument.in/reader036/viewer/2022062418/554dd77bb4c905d10e8b4dab/html5/thumbnails/84.jpg)
http://bit.ly/
howto-report