Hi everyone,
I am developing a custom field plugin that allows me to create a custom field that allows me to display the description beside the radio buttons. This is a requirement to suit my use case, and I do not have the luxury to purchase ready-made plugins from the marketplace.
Therefore, making it work like a single custom field for a checklist.
However, I am not proficient in java, velocity templates and writing plugins in general. I was following the admin editable custom field tutorial. Really need someone to walk me through developing such a custom field type plugin.
https://developer.atlassian.com/server/jira/platform/creating-a-custom-field-type/
This is the velocity template for the admin editable custom field tutorial. The input has the property value, hence it is able to display ${value}. However, for my case, I am using radio buttons. How do I determine which radio button was selected? and be able to display the value of the selected option?
My current velocity template (uncompleted and unsure of how to proceed)
Also, the tutorial dealt with the persistence of the data. How do I go about writing the java code to persist my data? I'm pretty sure GenericTextCFType is not applicable here, do I use SelectCFType? How do I get the selected option and persist it as the custom field of an issue?
Admin editable custom field type (tutorial's) java code:
package com.example.plugins.tutorial.customfields;
import com.atlassian.jira.issue.customfields.impl.GenericTextCFType;import com.atlassian.jira.issue.customfields.manager.GenericConfigManager;import com.atlassian.jira.issue.customfields.persistence.CustomFieldValuePersister;import com.atlassian.jira.issue.fields.TextFieldCharacterLengthValidator;import com.atlassian.jira.security.JiraAuthenticationContext;import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;import com.atlassian.plugin.spring.scanner.annotation.imports.JiraImport;
@Scannedpublic class JiraCustomField extends GenericTextCFType {
public JiraCustomField( @JiraImport CustomFieldValuePersister customFieldValuePersister, @JiraImport GenericConfigManager genericConfigManager, @JiraImport TextFieldCharacterLengthValidator textFieldCharacterLengthValidator, @JiraImport JiraAuthenticationContext jiraAuthenticationContext) { super(customFieldValuePersister, genericConfigManager, textFieldCharacterLengthValidator , jiraAuthenticationContext); }}
#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)#if ($jiraUserUtils.getGroupNamesForUser($authcontext.loggedInUser.name).contains('jira-administrators'))<table style="width:100%"> <tr> <th colspan="2">Task Description</th> <th>Result/Job Done</th> </tr> <tr> <td colspan="2">$customField.description</td> <td> <form class="aui"> <fieldset class="group"> <div class="radio"> <input class="radio" type="radio" checked="checked" name="radiobuttons" id="yes" > <label for="yes">Yes</label> </div> <div class="radio"> <input class="radio" type="radio" name="radiobuttons" id="no" > <label for="no">No</label> </div> </fieldset> </form> </td> </tr></table>
#else #if($value && ! $value.equals("")) #set ($displayValue = ${value}) #else #set ($displayValue = 'N/A') #end<span title="This field is editable only by JIRA administrators">$!displayValue</span><input type="hidden" name="$customField.id" value="$!value" />#end#controlFooter ()
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.