Script Runner - Wiki Markup in send email script

Chris Shepherd July 10, 2014

Hi folks,

I have a script post-function that uses the builin send email function.

In the function I render out the description field like this:

<td colspan="2">$issue.description</td> </tr>

The trouble is the description contains Wiki Markup which does not get converted to html.

What do I need to do to get the description to render as html ?

thanks

4 answers

1 accepted

3 votes
Answer accepted
Chris Shepherd July 20, 2014

Thanks Jamie & Kostas - I finally got it working by embeding the full namespace:

<% 	 
def rendererManager = com.atlassian.jira.component.ComponentAccessor.getComponent( com.atlassian.jira.issue.RendererManager.class)
def fieldLayoutItem = com.atlassian.jira.component.ComponentAccessor.getFieldLayoutManager().getFieldLayout(issue).getFieldLayoutItem("description")
def renderer = rendererManager.getRendererForField(fieldLayoutItem)
String desc = renderer.render(issue.description, null)
%>
<%= desc %>

1 vote
Chris Shepherd July 14, 2014

Ahh finally sussed it - just need to explicitly state the paths thanks Jamie & Kostas.

<% 	 
def rendererManager = com.atlassian.jira.component.ComponentAccessor.getComponent( com.atlassian.jira.issue.RendererManager.class)
def fieldLayoutItem = com.atlassian.jira.component.ComponentAccessor.getFieldLayoutManager().getFieldLayout(issue).getFieldLayoutItem("description")
def renderer = rendererManager.getRendererForField(fieldLayoutItem)
String desc = renderer.render(issue.description, null)

%>



<%= desc %>

Goodgame Studios August 6, 2015

how the path should look like by custom field (free text)?

0 votes
JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 14, 2014

You can do it like this:

def rendererManager = ComponentAccessor.getComponent(RendererManager.class)
            def fieldLayoutItem = ComponentAccessor.getFieldLayoutManager().getFieldLayout(issue).getFieldLayoutItem("comment")
            def renderer = rendererManager.getRendererForField(fieldLayoutItem)
            renderer.render(issue.description, null)

Convert that to a gstringtemplate is a pain though.

Chris Shepherd July 14, 2014

Thanks Jamie - so basically I have to write a dedicated script unless there is a way to use the import satements?

Samuel Titka April 24, 2015

Hi Jamie, I want to send email to project role which consists of two words separated by space character "Portfolio manager". How to do so? Documentation says that more entries should be separated by space. I tried role:'Portfolio manager' and also 'role:Portfolio manager' but I was unsuccessful. Please help.

0 votes
Tsol
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 10, 2014
Chris Shepherd July 10, 2014

Thanks for the quick answer :)

I think I must be missing something though. I have added the following to the email template section of the built in script:

<% 	 
EventPublisher eventPublisher = ComponentAccessor.getOSGiComponentInstanceOfType(EventPublisher.class);
VelocityRequestContextFactory velocityRequestContextFactory = ComponentAccessor.getOSGiComponentInstanceOfType(VelocityRequestContextFactory.class);
AtlassianWikiRenderer wikiRenderer = new AtlassianWikiRenderer(eventPublisher, velocityRequestContextFactory);
 
String html = wikiRenderer.render("*I am bold*", null);
%>

but I get unable to resolve class EventPublisher

unable to resolve class VelocityRequestContextFactory

unable to resolve class AtlassianWikiRenderer

How do I get the imports in to the email template section ? or do I have to write a custom script?

cheers

 
Like Nico Hoffmann likes this
Tsol
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 14, 2014

Just add the missing classes

import groovy.text.GStringTemplateEngine;
import com.atlassian.jira.issue.fields.renderer.wiki.AtlassianWikiRenderer;
import com.atlassian.jira.util.velocity.VelocityRequestContextFactory;
import com.atlassian.event.api.EventPublisher;

Chris Shepherd July 14, 2014

I tried that but if you put imports inside of a GString template you get an error:

Unknown type: IMPORT at line: 25 column: 1. File: GStringTemplateScript217.groov

Suggest an answer

Log in or Sign up to answer