I have created a plugin which is getting populated in the Jira issue page. Used a .vm file to render the data.My requirement is to get the vales from the fields such as status and remarks field in the Java class method.
I am new to using the .vm file and tried different mechanism which did not work out.Attaching the classes and the UI screen shot
VM File details
<style type="text/css">
.init-template-div {
margin-left: 5px;
border: 1px dashed #ccc;
border-radius: 0;
padding: 7px;
transition: background-color 0.01s linear 0.01s;
position: relative;
text-align: center;
}
.init-template-div > div {
padding: 4px 0;
}
</style>
<div id="issue-left" class="module toggle-wrap">
<div id="issue-left_heading" class="mod-header">
<ul class="ops"></ul><a href="#" class="aui-button toggle-title">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><g fill="none" fill-rule="evenodd"><path d="M3.29175 4.793c-.389.392-.389 1.027 0 1.419l2.939 2.965c.218.215.5.322.779.322s.556-.107.769-.322l2.93-2.955c.388-.392.388-1.027 0-1.419-.389-.392-1.018-.392-1.406 0l-2.298 2.317-2.307-2.327c-.194-.195-.449-.293-.703-.293-.255 0-.51.098-.703.293z" fill="#344563"></path></g></svg></a>
<!--<h4 class="toggle-title">Configuration CheckLists</h4>-->
</div>
<div class="mod-content">
<div class="table-issue-panel ghx-container" data-nocache="1588788605635" id="elements-ISSUE">
<div data-reactroot="" style="background-color: white;">
<div id="95s1rtdyf" class="module">
<div class="panelHeaderTitleServer mod-header">
<b class="panel-title-label collapse-panel">
<span class="aui-iconfont-arrow2-down aui-icon aui-icon-small "></span>
</b>
<form class="aui top-label" style="margin-top: 15px;" action="/saveCheckPoints">
<fieldset class="top-label">
<div class="field-group top-label">
<label for="generatedNodeId-15">Check Points</label>
<select name="globalConfigurationDetails" id="globalConfigurationDetails"
class="text auiTextInput">
<option value="-1">--Select Issue Types--</option>
#foreach( $globalConfigurationDetails in $globalConfigurationDetailsList )
<option value="$globalConfigurationDetails" >$globalConfigurationDetails</option> #end
</select>
</div>
<div class="field-group top-label">
<label for="generatedNodeId-15">Status</label>
<select name="status" id="status"
class="text auiTextInput">
<option value="-1">-Select Status-</option>
<option value="YES" >YES</option>
<option value="NO" >NO</option>
<option value="NA" >NA</option>
</select>
</div>
<div class="field-group top-label"><label for="issue_panel_new_element47ujln567">Remark</label>
<input type="text" id="remarks" name="remarks" class="text auiTextInput long-field" value="">
</div>
</fieldset>
</form>
</div>
</div>
<span class="issue-form-actions"><button class="aui-button aui-button-compact marginRight" aria-disabled="false">Create</button><a id="1dm5gbplj" href="#" class="actionLink ">Cancel</a></span>
</div>
</div>
</div>
</div>
Java Class
package com.example.plugins.tutorial;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.plugin.webfragment.contextproviders.AbstractJiraContextProvider;
import com.atlassian.jira.plugin.webfragment.model.JiraHelper;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import java.sql.Date;
import java.time.format.TextStyle;
import java.util.Locale;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import com.atlassian.plugins.tutorial.objects.CustomFieldNames;
import static java.time.temporal.ChronoUnit.DAYS;
import com.atlassian.plugins.tutorial.utils.DBUtils;
import com.atlassian.plugins.tutorial.objects.GlobalConfigurationDetails;
public class DueDateIndicator extends AbstractJiraContextProvider {
@Override
public Map<String, Object> getContextMap(ApplicationUser applicationUser, JiraHelper jiraHelper) {
Map<String, Object> contextMap = new HashMap<>();
Issue currentIssue = (Issue) jiraHelper.getContextParams().get("issue");
String currentIssueType = currentIssue.getIssueType().getName();
String currentStatusType = currentIssue.getStatus().getName();
/**
* Logic to fetch the Configuration based on the issue typeand status.
*/
List<String> globalConfigurationDetailsList = new ArrayList<String>();
globalConfigurationDetailsList = DBUtils.filterGlobalConfigurationDetails(currentIssueType, currentStatusType);
contextMap.put("globalConfigurationDetailsList", globalConfigurationDetailsList);
return contextMap;
}
}
UI Screen Shot
Validate your expertise in managing Jira Service Projects for Cloud. Master configuration, optimize workflows, and manage users seamlessly. Earn global 🗺️ recognition and advance your career as a trusted Jira Service management expert.
Get Certified! ✍️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.