Jira Gadget in Confluence config issue

Tyler Wright April 21, 2013

I have a jira gadget that I wrote that I would like to be used from confluence. I have Jira and Confluence running locally on my machine. I have my gadget installed to my jira instance and I have both instances linked with full trust as application links. I have installed my gadget in confluence in the External Gadgets section in the Admin. I then created a simple page and added my gadget via select macro. When I click on my gadget, I'm having issues with the display of my configuration screen. It seems like its missing my i18n resource because I am seeing this for a label gadget.common.project.label. Also the iframe isnt expanding to contain all of my configs.

Here is what my gadget looks like in confluenceConfluence Macro Selector

Here is the head section of my gadgets gadget.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
    <ModulePrefs title="__MSG_gadget.title__" 
    			 directory_title="__MSG_gadget.title__"
        		 description="__MSG_gadget.description__"
        		 author="__MSG_gadget.author__"
        		 thumbnail='#staticResourceUrl("TechnicalDebtTracker:TechnicalDebtTracker-resources", "thumbnail.png")'>
        <Optional feature="gadget-directory">
            <Param name="categories">
                . JIRA
            </Param>
        </Optional>
        <Optional feature="atlassian.util"/>
        <Optional feature="auth-refresh"/>
        <Require feature="setprefs" />
       	<Require feature="dynamic-height"/>
        <Require feature="settitle"/>
        <Require feature="views"/>
        <Require feature="oauthpopup"/>
        #oauth
        #supportedLocales("gadget.common,gadget.user.activity")
        <Locale messages="__ATLASSIAN_BASE_URL__/download/resources/TechnicalDebtTracker/i18n/ALL_ALL.xml"/>
    </ModulePrefs>
    <UserPref name="isConfigured" datatype="hidden" default_value="false" />
    <UserPref name="project" datatype="hidden" required="true" />
    <UserPref name="methodology_type" datatype="hidden" required="true" default_value="scrum" />
    <UserPref name="warning_threshold" datatype="hidden" required="true" default_value="10" />
    <UserPref name="critical_threshold" datatype="hidden" required="true" default_value="20" />
    <UserPref name="paid_down_period" datatype="hidden" required="true" default_value="90" />
    <UserPref name="normal_color" datatype="hidden" required="true" default_value="#61F553" />
    <UserPref name="warning_color" datatype="hidden" required="true" default_value="#FFFA66" />
    <UserPref name="critical_color" datatype="hidden" required="true" default_value="#FF7A66" />
    <UserPref name="refresh" datatype="hidden" default_value="false" />
    <Content type="html">
        <![CDATA[
        	#requireResource("com.atlassian.gadgets.publisher:ajs-gadgets")
        	#requireResource("com.atlassian.jira.gadgets:g-filter-results")
        	#requireResource("TechnicalDebtTracker:TechnicalDebtTracker-resources")
    		#includeResources()

And here is how I am setting my config screen:

(function () 
			{     	
			var gadget = AJS.Gadget({
			    baseUrl: "__ATLASSIAN_BASE_URL__",
			    useOauth: "/rest/gadget/1.0/currentUser",
			    config: {
					descriptor: function(args) {
						var gadget = this;
						
						var projectPicker = AJS.gadget.fields.projectPicker(gadget, "project", args.projectOptions);
						return {
							fields: [
					         	projectPicker,
					         	{
							    	id: "methodology_type-id",
							        userpref: "methodology_type",
							        label: "__MSG_gadget.config.SetMethodology__",
							        description: "",
							        type: "select",
							        selected: gadget.getPref("methodology_type"),
							        options: [
							        			{
							        				label:"Scrum",
							        				value:"scrum"
							        			},
							        			{
							        				label:"Kanban",
							        				value:"kanban"
							        			}
						        			 ]
							    },
							    {
							    	id: "warning_threshold-id",
							        userpref: "warning_threshold",
							        label: "__MSG_gadget.config.SetWarning__",
							        description: "__MSG_gadget.config.InStoryPoints__",
							        type: "text",
							        value: gadget.getPref("warning_threshold")
							    },
							    {
							    	id: "critical_threshold-id",
							        userpref: "critical_threshold",
							        label: "__MSG_gadget.config.SetCritical__",
							        description: "__MSG_gadget.config.InStoryPoints__",
							        type: "text",
							        value: gadget.getPref("critical_threshold")
							    },
							    {
							    	id: "paid_down_period-id",
							        userpref: "paid_down_period",
							        label: "__MSG_gadget.config.SetPaidDownPeriod__",
							        description: "__MSG_gadget.config.InDays__",
							        type: "text",
							        value: gadget.getPref("paid_down_period")
							    },
							    {
							    	id: "normal_color-id",
							        userpref: "normal_color",
							        label: "__MSG_gadget.config.SetNormalColor__",
							        description: "__MSG_gadget.config.HexCode__",
							        type: "text",
							        value: gadget.getPref("normal_color")
							    },
							    {
							    	id: "warning_color-id",
							        userpref: "warning_color",
							        label: "__MSG_gadget.config.SetWarningColor__",
							        description: "__MSG_gadget.config.HexCode__",
							        type: "text",
							        value: gadget.getPref("warning_color")
							    },
							    {
							    	id: "critical_color-id",
							        userpref: "critical_color",
							        label: "__MSG_gadget.config.SetCriticalColor__",
							        description: "__MSG_gadget.config.HexCode__",
							        type: "text",
							        value: gadget.getPref("critical_color")
							    },
							    AJS.gadget.fields.nowConfigured()
						    ]
					    };
					},
					args: function()
                    {
                        return [
                            {
                                key: "projectOptions",
                                ajaxOptions:  "/rest/gadget/1.0/filtersAndProjects?showFilters=false"
                            },
                        ];
                    }()
				},

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

0 votes
Jayashree Shetty
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 7, 2014

Hi can you please the complete implemenation of this if its working fine . i am also using a select field to populate project lists but its not getting populated. i wanted to refer your code

TAGS
AUG Leaders

Atlassian Community Events