1

我正在尝试在自动完成的下拉列表中显示所有附件(来自当前页面)。这是 atlassian-plugin.xml 中定义参数的部分:

<xhtml-macro name="plugin-name" class="com.example.macro.name" key="macroname-xhtml" icon="/download/resources/${project.groupId}.${project.artifactId}/icons/macroname.png">
    <category name="formatting"/>
    <parameters>
        <parameter name="content_input" type="confluence-content" />
        <parameter name="space_input" type="spacekey" />
        <parameter name="attachment_input" type="attachment" />
    </parameters>
</xhtml-macro>

和类型工作confluence-contentspacekey很好。它显示了一个自动完成页面和空间的文本字段。

但是,该attachment类型显示无法自动完成的空下拉列表(选择框)。

Confluence 官方文档说它应该像我一样工作: https ://developer.atlassian.com/display/CONFDEV/Including+Information+in+your+Macro+for+the+Macro+Browser

我一定在这里遗漏了一些东西,但我不知道是什么。任何人都可能知道问题是什么?

4

2 回答 2

3

如果您想要一个包含所有附件的下拉列表,那么您也可以尝试以下操作:

<xhtml-macro name="plugin-name" class="com.example.macro.name" key="macroname-xhtml" icon="/download/resources/${project.groupId}.${project.artifactId}/icons/macroname.png">
    <category name="confluence-content" />
    <parameters>
        <parameter name="page" type="confluence-content" required="false"
            multiple="false" />
        <parameter name="name" type="attachment" required="false" />
    </parameters>
</xhtml-macro>
  • 不要更改参数的名称

如果要添加过滤器,则需要以下内容:

<web-resource key="macro-browser-smart-fields" name="Macro Browser Smart Fields">
    <resource type="download" name="confluence-core-macro-fields.js" location="js/confluence-core-macro-fields.js" />
    <dependency>confluence.editor.actions:editor-macro-browser</dependency>
    <context>macro-browser</context>
</web-resource>

confluence-core-macro-fields.js

(function($) {
    AJS.MacroBrowser.activateSmartFieldsAttachmentsOnPage("plugin-name", [ "png", "jpg", "gif" ]);
})(AJS.$);
于 2012-06-16T10:49:11.460 回答
1

我发现将类型设置为attachment(按照官方文档)是错误的。我找到了一种解决方法,可以在自动完成框中显示附件。

<parameter name="xsd" type="confluence-content" required="true">
    <option key="type" value="attachment"/>
    <option key="showKeyInPlaceholder" value="false" />
    <option key="showValueInPlaceholder" value="true" />
</parameter>
于 2012-06-15T12:07:14.170 回答