I am quite new to implement confluence macros.
Requirement is to set dynamic parameter values for the 'enum' field type in the macro browser.
I followed https://community.atlassian.com/t5/Answers-Developer-Questions/How-can-i-set-dynamic-values-for-drop-down-enum-param-in-the/qaq-p/535124/jump-to/first-unread-message and
https://community.atlassian.com/t5/Answers-Developer-Questions/How-to-implement-dynamic-macro-parameters-enumerations-in/qaq-p/463297
But end up with no success, it was not working for me. Seems some thing I was missing?
Please see my macro definition in atlassian-plugin.xml
<xhtml-macro name="xxxxxx"
title="xxxxxfunctionality"
class="xxxxxx.xxxxxx"
icon="xxxxx/xxxxxxx/${project.groupId}.${project.artifactId}/xxxx/xxxxxxxx.png"
key="xxxxxxxxx-macro">
<description key="xxxxxx.macro.desc"/>
<category name="development"/>
<parameters>
<parameter name="xxxxx" type="enum" required="true" default="None">
</parameter>
</parameters>
</xhtml-macro>
And the JS file here:
(function ($) {
console.log("js file called");
var xxxxxxMacro = function () {};
console.log("js file called 2");
xxxxxxMacro .prototype.fields = {
"enum": {
"xxxxx": function (param, options) {
console.log("js file called 3");
var paramDiv = AJS.$(Confluence.Templates.MacroBrowser.macroParameterSelect());
var xxxxxDropDown = AJS.$("xxxxx", paramDiv);
console.log("inside enum group");
loadXxxxx(xxxxxDropDown);
return new AJS.MacroBrowser.Field(paramDiv, xxxxxDropDown, options);
}
}
};
function loadXxxxx(xxxxxDropDown){
console.log("js file called 4");
xxxxxDropDown.empty();
xxxxxDropDown.append($("<option>color1</option>"));
xxxxxDropDown.append($("<option>color2</option>"));
console.log("call complete");
}
AJS.MacroBrowser.setMacroJsOverride("xxxxxxxxx-macro", new xxxxxxMacro());
})(AJS.$);
Please help me regarding this.