Skip to main content
Example scripts
arrow icon
To homepage
Confluence
Data centre icon
Data Center

Add Macro to the Bottom of Pages within Space.

Tags
Created 1 year ago, Updated 1 month(s) ago
App in script
ScriptRunner For Confluence
ScriptRunner For Confluence
by Adaptavist
Compatibility
compatibility bullet
Confluence (7.15 - 8.6)
compatibility bullet
ScriptRunner For Confluence (7.10.0)
Language |
groovy
import com.atlassian.confluence.core.DefaultSaveContext
import com.atlassian.confluence.pages.Page
import com.atlassian.confluence.spaces.SpaceManager
import com.atlassian.confluence.pages.PageManager
import com.atlassian.sal.api.component.ComponentLocator

def spaceManager = ComponentLocator.getComponent(SpaceManager)
def pageManager = ComponentLocator.getComponent(PageManager)

def sourceSpace = 'TEST'

def space = spaceManager.getSpace(sourceSpace)

def macroStorage = """
<p class="auto-cursor-target">
  <ac:structured-macro ac:macro-id="b1c3bc6c-53a1-4204-bfa9-03a6be0dc589" ac:name="rate" ac:schema-version="1"/>
</p>
"""
def pages = pageManager.getPages(space, true)

pages.each { page ->
    def oldVersion = page.clone() as Page
    def pageBody = page.bodyAsString
    pageBody = pageBody + macroStorage
    page.setBodyAsString(pageBody)
    pageManager.saveContentEntity( page, oldVersion, DefaultSaveContext.DEFAULT )
    // replace above with the below line if you would like to suppress notification.
    // pageManager.saveContentEntity( page, DefaultSaveContext.SUPPRESS_NOTIFICATIONS )
}
Having an issue with this script?
Report it here