Hello,
I am writing a Confluence Blueprint. I have to have a wizard page to let user provide inputs. Here is what I did and I am able to see my template/xml being rendered on a page.
<blueprint key="custom-blueprint"
create-result="edit"
index-template-key="custom-blueprint-index"
index-title-key="custom.blueprint.index.page.title"
index-key="custom-blueprint"
i18n-name-key="custom.blueprint.name">
<content-template ref="custom-blueprint-content-template"/>
<dialog-wizard key="file-list-blueprint-wizard">
<dialog-page id="pickOptionSelectionPageId"
template-key="Custom.Blueprints.OptionSelectionTemplate"
title-key="custom.blueprint.dialog.option.select.template.title"
description-header-key="custom.blueprint.dialog.option.select.template.heading"
description-content-key="custom.blueprint.dialog.option.select.template.description"/>
<dialog-page id="nextPageId"
template-key="..."
title-key="..."
description-header-key="..."
description-content-key="..."
last="true"/>
</dialog-wizard>
</blueprint>
<content-template key="custom-blueprint-content-template"
i18n-name-key="custom.blueprint.content.template">
<description key="custom.blueprint.content.template.description"/>
<resource name="template" type="download" location="templates/custom-template.xml"/>
<context-provider class="com.foo.CustomBPContextProvider"/>
</content-template>
My requirement is to have few conditions on my wizard page, and based on the condition I need to select right template/xml file. I see xml template file is hardcoded within <content-template/> element in plugin.xml file.
Is there a way to select template file based on some condition ? OR if I can rewrite the xml file content on the fly to the existing template file.
Appreciate your help!
Thanks
I acheived it by having a placeholder variable in my xml template file, and replacing the placeholder with the new xml on the fly.
template.xml:
<at:var at:name="templatePlaceHolder" at:rawxhtml="true"/>
MyContextProvider.java
if (includeA) {
templatePlaceHolder = getTemplateFileAsString("/templates/A.xml");
} else {
templatePlaceHolder = getTemplateFileAsString("/templates/B.xml");
}
...
blueprintContext.put("templatePlaceHolder", templatePlaceHolder);
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.