Is it possible to switch the used template in space blueprints?
I would like to create a space blueprint, which uses multiple possible templates, where the user can select one of them.
equivalent to this:
I used the input field from the example, but that didn't work.
The goal is to provide different space structures with child-pages. I managed to set these up, with help from this question:
But I would like to be able to change the used template and hierarchy based on a user selection.
Hi @Ramon Segmüller ,
Please check if these resources are helpful
https://community.atlassian.com/t5/Confluence-questions/Global-Templates-and-Blueprints/qaq-p/879614
Regards,
Soumyadeep
This was unfortunately not what I searched for.
I wanted all that in a custom plugin. And found a solution. For anyone interested, the main components are:
Blueprint in atlassian.xml
<content-template key="my-space-homepage-template"
i18n-name-key="my.confluence.blueprints.space.homepage.name">
<description
key="my.confluence.blueprints.space.homepage.desc" />
<resource name="template" type="download"
location="/xml/my-home-page.xml" />
</content-template>
<space-blueprint key="my-space-blueprint"
i18n-name-key="my.confluence.blueprints.space.name" category="custom-category">
<content-template ref="my-space-homepage-template" />
<dialog-wizard key="my-space-blueprint-wizard">
<dialog-page id="mySpaceId"
template-key="My.Confluence.SpaceBlueprints.dialogForm"
title-key="my.confluence.blueprints.space.dialog.create.title"
description-header-key="my.confluence.blueprints.space.dialog.create.heading"
description-content-key="my.confluence.blueprints.space.dialog.create.description"
last="true" />
</dialog-wizard>
</space-blueprint>
A event listener, which reacts to the homepage creation:
@Named
public class BlueprintSelectionEventListener implements DisposableBean {
@ComponentImport
private final EventPublisher eventPublisher;
@Inject
public BlueprintSelectionEventListener(EventPublisher eventPublisher) {
this.eventPublisher = eventPublisher;
eventPublisher.register(this);
}
@EventListener
public void onSpaceBlueprintHomepageEvent(SpaceBlueprintHomePageCreateEvent event) {
String moduleCompleteKey = event.getSpaceBlueprint().getModuleCompleteKey();
if (MY_BLUEPRINT_KEY.getCompleteKey().equals(moduleCompleteKey)) {
String selectedTemplate = event.getContext().get("contentTemplateKey").toString();
useTemplate(selectedTemplate)
}
}
public void destroy() throws Exception {
eventPublisher.unregister(this);
}
}
And a selection in the soy template (similar to: https://developer.atlassian.com/server/confluence/write-an-advanced-blueprint-plugin/#step-1--choose-between-templates):
<select id="template-key-selector" class="select" name="contentTemplateKey">
<option value="template_key">template description</option>
</select>,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.