1 package com.atlassian.jira.issue.action;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.apache.log4j.Category;
7 import org.apache.velocity.exception.VelocityException;
8
9 import com.atlassian.jira.ManagerFactory;
10 import com.atlassian.jira.mail.JiraMailQueueUtils;
11 import com.atlassian.jira.plugin.JiraResourcedModuleDescriptor;
12 import com.atlassian.jira.plugin.issuetabpanel.IssueTabPanelModuleDescriptor;
13 import com.atlassian.jira.web.action.JiraWebActionSupport;
14 import com.atlassian.velocity.VelocityManager;
15 import com.opensymphony.user.User;
16
17
18
19
20
21
22
23
24 public class GenericAction extends GenericResourceAction {
25
26 private static final Category log = Category.getInstance(GenericAction.class);
27
28 protected Map startparams;
29
30 public GenericAction(User remoteUser, IssueTabPanelModuleDescriptor descriptor, Map _startParams) {
31 super(descriptor);
32 this.startparams = _startParams;
33 }
34
35 public String getHtml(JiraWebActionSupport webAction) {
36 try {
37 VelocityManager velocityManager = ManagerFactory.getVelocityManager();
38 Map params = new HashMap();
39 params.put("action", webAction);
40 populateVelocityParams(params);
41 JiraMailQueueUtils.getContextParamsBody(params);
42 return velocityManager.getBody(getTemplateDirectory(), getTemplateName(), params);
43 } catch (VelocityException e) {
44 log.error(e, e);
45 return "Velocity template generation failed.";
46 }
47 }
48
49 protected void populateVelocityParams(Map params) {
50 super.populateVelocityParams(params);
51 params.putAll(startparams);
52 }
53
54 }