Hi everyone,
I'm actually developping an extension for Jira.
I created a projectTabPanel plugin because I needed to call my plugin from this emplacement. My plugin also created a new table in activeObjects and I want to interact with it.
No problem with that, I did some tests and it worked perfectly well.
My problem is that my projectTabPanel call my velocity template and this template have a form with data that I want to save in my new table.
Here's my question : how to send those data from this page ? Which java class will that call ?
Thanks a lot for your help and sorry for my english^^
Create a webwork action class and invoke it from the form. You can then persist the data in the action class.
Once again you gave me the solution, a great thanks for that !
Nevertheless, I've got some others problem, here's the situation :
From the view of my projectTabPanelPlugin I submit a form to a class of a WebWork plugin.
I can do most of the stuff I wanted to do inside the class but here's not actually the problem.
When this class return the "success" statement I want to go back to the view of my projectTabPanel and it works, the problem is that my left side column menu disapeared, how to get it back ?
My other worry is this : in my view I got a textarea and I want to fill it with the result of some treatment I did in the class of my WebWork plugin. I know how to display variables in the view but I have no idea how to send those variables from my WebWork class :/
Thanks for your help =)
EDIT : I just found how to display parameters in my view, thanks to ${action.myMethod()} !
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jobin,
Thanks for your answer.
Following your advices I read the documentation and created a WebWork plugin which I linked to a template and a Javascript function. JIRA compile well, unfortunatly the WebWork plugin doesn't work.
Here's my code :
release-plugin.vm
<script type="text/javascript">
#include("js/jira-version-plugin.js")
</script>
<h1> Release notes of version : </h1>
<select name="select">
<option value=""></option>
#foreach($version in $versions)
#if ( $version == $selected )
<option value="$version" selected>$version</option>
#else
<option value="$version">$version</option>
#end
#end
</select>
<br/>
<textarea rows="40" cols="100">$description2 , $QueryString, $contextKey, $url, $contextKey</textarea>
<button onclick="test()">ok </button>
atlassian-plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
<plugin-info>
<description>${project.description}</description>
<version>${project.version}</version>
<vendor name="${project.organization.name}" url="${project.organization.url}"/>
<param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param>
</plugin-info>
<!-- add our i18n resource -->
<resource type="i18n" name="i18n" location="jira-version-plugin"/>
<!-- add our web resources -->
<web-resource key="jira-version-plugin-resources" name="jira-version-plugin Web Resources">
<dependency>com.atlassian.auiplugin:ajs</dependency>
<resource type="download" name="jira-version-plugin.css" location="/css/jira-version-plugin.css"/>
<resource type="download" name="jira-version-plugin.js" location="/js/jira-version-plugin.js"/>
<resource type="download" name="images/" location="/images"/>
<context>jira-version-plugin</context>
</web-resource>
<!-- publish our component -->
<component key="myPluginComponent" class="com.test.MyPluginComponentImpl" public="true">
<interface>com.test.MyPluginComponent</interface>
</component>
<!-- import from the product container -->
<component-import key="applicationProperties" interface="com.atlassian.sal.api.ApplicationProperties"/>
<project-tabpanel key="release-plugin" name="Release Plugin" i18n-name-key="release-plugin.name" class="com.test.jira.tabpanels.ReleasePlugin">
<description key="release-plugin.description">The Release Plugin Plugin</description>
<label key="release-plugin.label"/>
<order>10</order>
<resource type="velocity" name="view" location="templates/tabpanels/release-plugin.vm"/>
<web-resource key="ajax-actions">
<resource type="download" name="jira-version-plugin.js" location="js/jira-version-plugin.js"/>
<context>com.test.jira.tabpanels</context>
</web-resource>
</project-tabpanel>
<ao key="ao-module">
<description>The module configuring the Active Objects service used by this plugin</description>
<entity>com.test.jira.ao.releaseplugin.ReleaseNotes</entity>
</ao>
<component-import key="ao" name="Active Objects service" interface="com.atlassian.activeobjects.external.ActiveObjects">
<description>Component to access Active Objects functionality from the plugin</description>
</component-import>
<webwork1 key="SaveEntity" name="SaveEntity" i18n-name-key="SaveEntity.name">
<description key="SaveEntity.description">The SaveEntity Plugin</description>
<actions>
<action name="com.test.jira.tabpanels.SaveEntity" alias="SaveEntity">
<view name="success">templates/tabpanels/release-plugin.vm</view>
<command name="test" alias="SaveEntityOne">
<view name="success">templates/tabpanels/release-plugin.vm</view>
</command>
</action>
</actions>
</webwork1>
</atlassian-plugin>
SaveEntity.java
package main.java.com.test.jira.tabpanels;
import java.util.*;
import com.atlassian.activeobjects.external.ActiveObjects;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.ofbiz.OfBizDelegator;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.project.browse.BrowseContext;
import com.atlassian.jira.project.version.Version;
import com.atlassian.jira.web.action.JiraWebActionSupport;
import com.atlassian.query.Query;
public class SaveEntity extends JiraWebActionSupport {
protected String doExecute() throws Exception {
System.out.println("TEST SUCCEED");
return SUCCESS;
}
protected String doTest() throws Exception {
System.out.println("TEST SUCCEED2");
return SUCCESS;
}
}
jira-version-plugin.js
function test() {
alert("!!!!!!!hello world!!!!!!!!");
window.location = "/SaveEntity!test"
}
When I load my template page doExecute isn't called. When I click on the javascript button I got the alert "hello world" but it does redirect me on a white page and not the same template as expected...
I have no idea why and no errors in the logs :/
Thanks again for your help !
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This is not how you do things in webwork. But it is a lot to teach in a forum ;) For starters, you are redirecting to "/SaveEntity!test" which is wrong. It should be "JIRA_BASE_URL/secure/SaveEntity!test.jspa". You should also do it in a form action instead of redirecting from java script.
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.