Hi am new to JIRA Development and have encountered my first Problem
I need to get a List of all Jira-Projects in something like a dropdown menu
This is my Java Code which simply renders the velocity
templateRenderer.render("serviceTime.vm", response.getWriter());
In my Velocity the code looks like this
<div class="field-group">
<label for="dProj">Project</label>
<select class="select" id="dProj" name="Projects">
#foreach ($pr in $projectManager.getProjectObjects())
<option>$pr.getName()</option>
#end
</select>
</div>
But my selectmenu remains empty
do i miss something here ?
when i do a simple check in JAVA like...
for(int i = 0;i < projects.size(); i++){
System.out.println(" Project : " + projects.get(i).getName());
}
it works, why not in the velocity
Best Regards
Your velocity template probably does not know about $projectManager. You have to add a reference to a ProjectManager to the velocity context.
What class is templateRenderer? Can it add objects to the velocity context?
I would use com.atlassian.jira.template.VelocityTemplatingEngine for that, e.g.:
import static com.atlassian.jira.template.TemplateSources.file;
VelocityTemplatingEngine templatingEngine = ComponentAccessor.getComponent(VelocityTemplatingEngine.class); // or constructor injection
Map<String, Object> velocityParams = ComponentAccessor.getVelocityParamFactory().getDefaultVelocityParams();
velocityParams.put("projectManager", ComponentAccessor.getProjectManager());
templatingEngine.render(file(pathToYourTemplate))
.applying(velocityParams)
.asPlainText(response.getWriter()); // or asHtml(...)
i was using com.atlassian.templaterenderer.TemplateRenderer
but i got it now thank u...did not know the velocity needs a reference
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.