Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Can I edit Sub Filter by code?

baptistemuller October 25, 2018

Hi everyone, i successfully create a kanban board by script using RapidViewService.
Now i would like to specify subquery but i can’t find any api for that.
What is the solution to set this value
Is there any custom field ?

import com.atlassian.greenhopper.manager.rapidview.RapidViewManager
import com.atlassian.greenhopper.model.rapid.RapidView
import com.atlassian.greenhopper.service.ServiceOutcome
import com.atlassian.greenhopper.service.rapid.view.RapidViewService
import com.atlassian.greenhopper.web.rapid.view.RapidViewPreset
import com.atlassian.jira.bc.JiraServiceContextImpl
import com.atlassian.jira.bc.filter.SearchRequestService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.jql.parser.DefaultJqlQueryParser
import com.atlassian.jira.project.Project
import com.atlassian.jira.sharing.SharePermissionImpl
import com.atlassian.jira.sharing.SharedEntity
import com.atlassian.jira.sharing.type.ShareType
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.query.Query
import com.onresolve.scriptrunner.runner.customisers.JiraAgileBean
import org.apache.log4j.Level

log.setLevel(Level.DEBUG)

Project prj = event.project

Query query= new DefaultJqlQueryParser().parseQuery("project =\""+prj.getName()+"\"")

SearchRequest req = buildFilterWithName(prj, "Project filter", query)

buildBoardWithName(prj, "Qualification Board", req.getId())
buildBoardWithName(prj, "Customer Board",  req.getId())
buildBoardWithName(prj, "PA-Backlog Board",  req.getId())


RapidView buildBoardWithName(Project project,  String name, Long filterId) {
    @JiraAgileBean
    RapidViewService rapidViewService
    ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
    ServiceOutcome<RapidView> rvso = rapidViewService.create(user, name, filterId, RapidViewPreset.KANBAN)
    return rvso.get()
}

SearchRequest buildFilterWithName(Project prj1, String name, Query query) {
    ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
    JiraServiceContextImpl ctx = new JiraServiceContextImpl(user)
    SearchRequestService searchService = ComponentAccessor.getComponent(SearchRequestService)

    SearchRequest  filter = new SearchRequest()
    filter.setQuery(query)
    filter.setName(prj1.getName()+" - "+name)
    filter.setOwner(user)
    log.debug(filter)

    def sharePerm = new SharePermissionImpl(null, ShareType.Name.PROJECT, prj1.getId().toString(), null)
    filter.setPermissions(new SharedEntity.SharePermissions([sharePerm] as Set))

    SearchRequest newfilter=searchService.createFilter(ctx,filter)
    log.debug(ctx.getErrorCollection())
    log.debug(filter)
    return newfilter;
}

 

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events