Hi,
I'm newbie in JIRA topic, I trying to create simple form.
I have following class
public class ManageTemplates extends JiraWebActionSupport { public ManageTemplates(FieldScreenRendererFactory fieldScreenRendererFactory, JiraAuthenticationContext jiraAuthenticationContext) { String issueId = ((String[])ActionContext.getParameters().get("id"))[0]; MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject(Long.valueOf(issueId)); } }
Class is connected with .vm file via atlassian-plugin.xml config file. Here's my .vm
<html> <head> <meta name="decorator" content="atl.admin"/> <title>Create X</title> </head> <body class="nl"> <div class="content intform"> </div> </body> </html>
How could I insert user picker to form? Any code examples?
Hi,
I do not knowv how to reuse standard user picker - you must check source code, but why you read parameter 'id' in so complicated way. You should define property id + getter/setter in action class and set it in request as some hidden form field or directly in url.
private String issueId; public String getIssueId() { return issueId; } public void setIssueId(String issueId) { this.issueId = issueId; }
Also you can define other methods in action (not only overwrite execute), eg. to list all JIRA users
public Collection<User> getAllUsers() { return UserUtils.getAllUsers(); }
Than iterate throught results in vm tempate and create eg. select element.
<select id="jiraUser" name="jiraUser"> #foreach ($user in $action.getAllUsers()) <option value="$user.name">$user.displayName</option> #end </select>
Hi Radek,
I wanna ask a question to you. action is the class name or not? I guess it is not :) If so, how can I set a class as action?
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It is not class name. You can use notation as $action.someMethodCall() in any vm template, where action is mapped into the class defined for your webwork in atlassian-plugin.xml
Example:
1. atlassian-plugin.xml
<webwork1 key="action-webwork" name="Test Action module" class="java.lang.Object"> <description key="test.action.webwork.desc">Action used to demonstrate test example.</description> <actions> <action name="com.mycompany.jira.plugin.test.web.actions.TestAction" alias="TestAction"> <view name="error">/template/plugin/webwork/testaction.vm</view> <view name="input">/template/plugin/webwork/testaction.vm</view> </action> </actions> </webwork1>
2. Some parts of vm template "testaction.vm" mapped to action class TestAction.java
#set($names = $action.getNames()) #set($counter = $names.size()) #if($counter > 0) #set( $i = 1 ) #foreach( $name in $names ) <tr> <td class="fieldLabelArea"> $i18n.getText("name.action.label") <span class="icon icon-required"><span>$i18n.getText("general.field.required")</span></span> </td> <td class="fieldValueArea"> <input type="text" id="name_$i" value="$!name"> </td> </tr> #set($i = $i + 1) #end #end
3. TestAction.java
public class TestAction extends JiraWebActionSupport { private String nameList; private TestService testService; public TestAction(TestService testService) { this.testService = testService; } @Override protected void doValidation() { super.doValidation(); // Some other TestAction validation } @Override @RequiresXsrfCheck protected String doExecute() throws Exception { if (hasAnyErrors())return ERROR; // Some execute TestAction code return INPUT; } public String getNameList() { return nameList; } public void setNameList(String nameList) { this.nameList = nameList; } public List<String> getNames() { return testService.getHelper().tokenize(nameList, "@@"); } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.