Hello,
I'm attempting to create a ScriptRunner custom script macro by following the example at:
https://scriptrunner.adaptavist.com/latest/confluence/macros/CustomMacros.html#_cql_search_macro
When I enter the macro code from the example, I get the following errors:
I'm on Confluence 6.0.6 and using ScriptRunner 4.3.17.
I'm a newbie, so any help would be very much appreciated.
Thanks,
Dave
Hi Dave,
Can I see which classes you are importing please?
Thanks
Johnson
Hi Johnson,
I copied the entire script from the example at the link in my original post pasted it into my script macro, as follows:
import com.atlassian.confluence.api.model.Expansionimport com.atlassian.confluence.api.model.content.Contentimport com.atlassian.confluence.api.model.pagination.PageResponseimport com.atlassian.confluence.api.model.pagination.SimplePageRequestimport com.atlassian.confluence.api.model.search.SearchContextimport com.atlassian.confluence.api.service.search.CQLSearchServiceimport com.atlassian.confluence.xhtml.api.XhtmlContentimport com.onresolve.scriptrunner.runner.ScriptRunnerImplimport groovy.xml.MarkupBuilder
def cqlSearchService = ScriptRunnerImpl.getOsgiService(CQLSearchService)def xhtmlContent = ScriptRunnerImpl.getOsgiService(XhtmlContent)def maxResults = parameters.maxResults as Integer ?: 10
def cqlQuery = parameters.cql as String
def pageRequest = new SimplePageRequest(0, maxResults)def searchResult = cqlSearchService.searchContent(cqlQuery, SearchContext.builder().build(), pageRequest, Expansion.combine("space")) as PageResponse<Content>
def writer = new StringWriter()def builder = new MarkupBuilder(writer)
if (searchResult.size()) {builder.table {tbody {tr {th { p("Title") }th { p("Space") }}searchResult.results.each { content ->tr {td {p {"ac:link" {"ri:page"("ri:content-title": content.title, "ri:space-key": content.space.key)}}}td { p(content.space.name) }}}}}
if (searchResult.respondsTo("totalSize")) { // confl 5.8+builder.p("Showing ${Math.min(maxResults, searchResult.totalSize())} of ${searchResult.totalSize()}")}}else {builder.p("No results")}
def view = xhtmlContent.convertStorageToView(writer.toString(), context)view
Thanks for your help.
It looks like you're new here. Sign in or register to get started.