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.