Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×Hi,
I want to run a groovy script when a button is clicked which changes the label.
We have three labels for page classification.
- Internal
- Confidential
- Public
I don't want that users need to change them manually. With Scriptrunner for Confluence I was easily able to create buttons in the action menu.
But I can't find an example script for Confluence.
The script should:
- Remove the existing classification label
- Add the new label
- Not change other existing labels
I found something similiar for Jira.
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.label.LabelManager def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser() LabelManager labelManager = ComponentAccessor.getComponent(LabelManager) def labels = labelManager.getLabels(issue.id).collect{it.getLabel()} labels -= 'labelToBeRemoved'
labelManager.setLabels(user,issue.id,labels.toSet(),false,false)
By adding labels +='label' I believe I could add the new label
Can someone help? :)
I'm interested in the answer of this as well. I am trying to add a label to a dynamically created page. I followed Florian's suggestion and looked at the Confluence LabelManager class here https://docs.atlassian.com/atlassian-confluence/6.6.0//index.html?com/atlassian/confluence/labels/LabelManager.html.
Unfortunately, when I add the following import line in my script:
import com.atlassian.confluence.label
It doesn't seem to recognize this. I am running version Confluence Server 6.13.11. How can I tell if this is available?
BTW, I tried this import inside IntelliJ and it was able to find it without a problem. So that confirms that the class exists (obviously).
Hey :)
there you should find all the available classes for your instance.
https://docs.atlassian.com/ConfluenceServer/javadoc/6.13.0/
Form these docs:
com.atlassian.confluence.labels
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
But your issue probably comes from your import which is not correct:
// wrong
import com.atlassian.confluence.label
//right
import com.atlassian.confluence.labels.Label
Hope that can help you :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey Magnus,
we needed to add Labels to an existing page. And used this code:
import com.atlassian.confluence.pages.Page
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.confluence.labels.Label
import com.atlassian.confluence.labels.LabelManager
static Page addLabelsToPage(List<Label> labels, Page page) {
labels.each { Label label ->
ComponentLocator.getComponent(LabelManager).addLabel(page,label)
}
page
}
Looks like there is a LabelManager in Confluence too ;)
Confluence Docs - LabelManager
Hope that will help you with your Problem.
Greetings From Germany
Florian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.