We write code as below to get the list of draft pages in all spaces.
import com.atlassian.confluence.pages.Page
import com.atlassian.confluence.pages.PageManager
import com.atlassian.confluence.spaces.Space
import com.atlassian.confluence.spaces.SpaceManager
import com.atlassian.sal.api.component.ComponentLocator
import org.apache.log4j.Logger
import org.apache.log4j.Level
def log = Logger.getLogger("com.acme.CreateSubtask")
log.setLevel(Level.DEBUG)
def spaceManager = ComponentLocator.getComponent(SpaceManager)
def pageManager = ComponentLocator.getComponent(PageManager)
def spaces = spaceManager.getAllSpaces()
def list = []
spaces.each{ space ->
def pages = pageManager.getPages(space, true)
log.debug 'test'
pages.each{ page ->
if (page.isDraft())
{ def type = page.getType() def date = page.getLastModificationDate() list.add([space.name, page.title, type, date]) log.debug space.name + page.title }
}
}
return list
but no items and no records in log.
Could you please help them to correct above to get list & log as expected?
Thank you in advance
Found our mistake.
2nd boolean parameter of pageManger.get.Pages() means currentOnly or not. So we must use "false" to get draft pages. As a result of this, isDraft() returns "true".
Modify code as below, we can get the list as expected.
import com.atlassian.confluence.pages.Page import com.atlassian.confluence.pages.PageManager import com.atlassian.confluence.spaces.Space import com.atlassian.confluence.spaces.SpaceManager import com.atlassian.sal.api.component.ComponentLocator import org.apache.log4j.Logger import org.apache.log4j.Level def log = Logger.getLogger("com.acme.CreateSubtask") log.setLevel(Level.DEBUG) def spaceManager = ComponentLocator.getComponent(SpaceManager) def pageManager = ComponentLocator.getComponent(PageManager) def spaces = spaceManager.getAllSpaces() def list = [] spaces.each{ space -> def pages = pageManager.getPages(space, true) log.debug 'test' pages.each{ page -> if(page.DRAFT=="draft"){ def type = page.getType() def date = page.getLastModificationDate() list.add([space.name, page.title, type, date]) log.debug (space.name + page.title) } } } return list
It seems that isDraft() does not return TRUE...
Any advice are appreciated.
Thanks,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.