Space Blueprint Children Issues
Asked by Shane Kramer:

Hello Atlassian users,

I recently went through all of the beginning/intermediate template, blueprint and space blueprint tutorials in order to write out own space blueprint (which I used the simple blueprint as a guide for). Everything seemed fairly straightforward and self explanatory, but I cannot, for the life of me get any child page, other than my data child page, to show up. I thought for some reason I might have been limited to one child page, so I removed the content-template definition and blueprint reference for my data page, and nothing shows up. If I add multiple references to my data page, only one shows up. I have literally spent about 12 hours working on this problem and I cannot make any darn sense out of it. I know about the hello blueprint, and checked it out, and it works, but I would like to build my own blueprint from scratch, so I do not have to go in and clean up everything. Also, for the record, my child page is experiencing the same issue detailed here (<https://answers.atlassian.com/questions/38754775>).

Below are my atlassian-plugin.xml, properties, soy, and js files. The templates for each of the children simply contain a sentence describing what each page will contain in the future so I did not bother to attach them. They are valid, simple XML files.

```
&lt;atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2"&gt;        &lt;plugin-info&gt;        &lt;description&gt;${project.description}&lt;/description&gt;        &lt;version&gt;${project.version}&lt;/version&gt;        &lt;vendor name="${project.organization.name}" url="${project.organization.url}" /&gt;        &lt;param name="plugin-icon"&gt;images/pluginIcon.png&lt;/param&gt;        &lt;param name="plugin-logo"&gt;images/pluginLogo.png&lt;/param&gt;    &lt;/plugin-info&gt;        &lt;!--         Add our i18n resource             * i18n name: The localisation key for the human-readable name of the plugin module             (https://developer.atlassian.com/confdev/confluence-plugin-guide/confluence-plugin-module-types/component-module)    --&gt;    &lt;resource type="i18n" name="i18n" location="spacebp"/&gt;        &lt;!-- add our web resources --&gt;    &lt;web-resource key="spacebp-resources" name="spacebp Web Resources"&gt;        &lt;transformation extension="soy"&gt;            &lt;transformer key="soyTransformer"&gt;                &lt;functions&gt;com.atlassian.confluence.plugins.soy:soy-core-functions&lt;/functions&gt;            &lt;/transformer&gt;            &lt;transformation extension="js"&gt;                &lt;transformer key="jsI18n"/&gt;            &lt;/transformation&gt;        &lt;/transformation&gt;        &lt;resource type="download" name="spacebp.css" location="/css/spacebp.css"/&gt;        &lt;resource type="download" name="spacebp.js" location="/js/spacebp.js"/&gt;        &lt;resource type="download" name="dialog-page.js" location="/soy/dialog-page.soy"/&gt;        &lt;resource type="download" name="images/" location="/images"/&gt;        &lt;dependency&gt;com.atlassian.confluence.plugins.confluence-create-content-plugin:space-blueprints&lt;/dependency&gt;   &lt;!-- This dependency is not required for confluence 5.4+ --&gt;        &lt;context&gt;atl.general&lt;/context&gt;        &lt;context&gt;atl.admin&lt;/context&gt;    &lt;/web-resource&gt;        &lt;!--        create-space-blueprint-item allows the dialog launched by clicking the global "Create space" button to be extended.            * i18n-name-key: (required) the i18n key for the name of the Blueprint that will be displayed in the dialog            * description: (required) the i18n key for the description of the Blueprint that will be displayed in the dialog. May end up being used in searches            * resource: (required) the icon to be displayed in the dialog, must be a 200 x 150 px PNG            * blueprintKey: (optional) if present, binds this web-item to the blueprint with this key. If omitted, no binding occurs and custom JavaScript + Java must create the content    --&gt;    &lt;web-item key='sensor-space-blueprint-item' i18n-name-key='confluence.blueprints.space.sensor.name'              section='system.create.space.dialog/content'&gt;        &lt;description key='confluence.blueprints.space.sensor.description'/&gt;        &lt;resource name="icon" type="download" location="/images/watchtower.png" /&gt;        &lt;param name='blueprintKey' value='sensor-space-blueprint'/&gt;    &lt;/web-item&gt;     &lt;!--        content-template defines an XML resource in Confluence Storage-Format.            * key: (required) referenced by the respective &lt;blueprint&gt;            * i18n-name-key: (optional) used only when viewing this plugin in the Plugin Manager            * description: (optional) used only when viewing this plugin in the Plugin Manager              * resource: (required) the XML file containing the template content            * context-provider: (optional) if present, will provide extra key-value pairs to be substituted against &lt;at:var&gt; instances in the template    --&gt;    &lt;content-template key="sensor-space-homepage-template" i18n-name-key="confluence.blueprints.space.sensor.homepage.name"&gt;        &lt;description key="confluence.blueprints.space.sensor.homepage.desc"/&gt;        &lt;resource name="template" type="download" location="/xml/wt-sensor-home.xml"/&gt; &lt;!--  Home page (checklist) --&gt;    &lt;/content-template&gt;        &lt;content-template key="sensor-space-data-template" i18n-name-key="confluence.blueprints.space.sensor.data.name"&gt;         &lt;description key="confluence.blueprints.space.sensor.data.desc"/&gt;         &lt;resource name="template" type="download" location="/xml/data.xml"/&gt; &lt;!--  Data page --&gt;    &lt;/content-template&gt;             &lt;content-template key="sensor-space-timeline-template" i18n-name-key="confluence.blueprints.space.sensor.timeline.name"&gt;         &lt;description key="confluence.blueprints.space.sensor.timeline.desc"/&gt;         &lt;resource name="template" type="download" location="/xml/timeline.xml"/&gt; &lt;!--  Timeline page --&gt;    &lt;/content-template&gt;        &lt;content-template key="sensor-space-geninfo-template" i18n-name-key="confluence.blueprints.space.sensor.geninfo.name"&gt;         &lt;description key="confluence.blueprints.space.sensor.geninfo.desc"/&gt;         &lt;resource name="template" type="download" location="/xml/general_information.xml"/&gt; &lt;!--  General information page --&gt;    &lt;/content-template&gt;        &lt;!--         blueprint groups together the main blueprint concepts:            * index-key: (required) this is the name of the label that will be added to all content created from this blueprint, and used to                           bring this content together on the index page.            * index-template-key: (optional) this is the moduleKey of the &lt;content-template&gt; that will be used to create an index page.                                    If none is provided, a default template will be used.            * create-result: (optional) can be assigned the value of "view" or "edit".                "view": cause the editor to be bypassed - the required content will be created and the user immediately redirected to viewing it                "edit": user will be sent to the editor pre-filled            * i18n-index-title-key: (optional) the i18n key for the title of the index page. Defaults to create-dialog-web-item name if none specified.    --&gt;    &lt;space-blueprint key="sensor-space-blueprint" i18n-name-key="confluence.blueprints.space.sensor.name"&gt;        &lt;content-template ref="sensor-space-homepage-template"&gt; &lt;!-- Home --&gt;             &lt;content-template ref="sensor-space-data-template"/&gt; &lt;!-- Child Page --&gt;              &lt;content-template ref="sensor-space-geninfo-template"/&gt; &lt;!-- Child Page --&gt;             &lt;content-template ref="sensor-space-timeline-template"/&gt; &lt;!-- Child Page --&gt;        &lt;/content-template&gt;                &lt;dialog-wizard key="sensor-space-blueprint-wizard"&gt;            &lt;dialog-page id="exampleSpaceId"                         template-key="Confluence.SpaceBlueprints.sensor.dialogForm"                         title-key="confluence.blueprints.space.sensor.dialog.create.title"                         description-header-key="confluence.blueprints.space.sensor.dialog.create.heading"                         description-content-key="confluence.blueprints.space.sensor.dialog.create.description"                         last="true"/&gt;        &lt;/dialog-wizard&gt;    &lt;/space-blueprint&gt;    &lt;/atlassian-plugin&gt;
```

```
confluence.blueprints.space.sensor.name=Sensor Space Blueprintconfluence.blueprints.space.sensor.description=Start with a preconfigured Sensor Space confluence.blueprints.space.sensor.dialog.create.title=Create a Sensor Spaceconfluence.blueprints.space.sensor.dialog.create.heading=About sensor Spacesconfluence.blueprints.space.sensor.dialog.create.description=Use this blueprint to create a Sensor Spaceconfluence.blueprints.space.sensor.home.title.suffix=Home Pageconfluence.blueprints.space.sensor.homepage.name=Homeconfluence.blueprints.space.sensor.homepage.desc=Sensor Space Homeconfluence.blueprints.space.sensor.data.name=Dataconfluence.blueprints.space.sensor.data.desc=sensor page that contains data analysis, test and sample data archives, and expected data volume metric pagesconfluence.blueprints.space.sensor.geninfo.name=General Infoconfluence.blueprints.space.sensor.geninfo.desc=General information for the sensor, to include background, capabilities, description, docs, resources and stakeholders confluence.blueprints.space.sensor.timeline.name=Timelineconfluence.blueprints.space.sensor.timeline.desc=The timeline of events for all sensor related activities, to include meetings, boards, analysis and deliveriesconfluence.blueprints.space.sensor.home.children.heading=Child pages will be shown hereconfluence.blueprints.space.sensor.dialog.label.heading=Sensor Nameconfluence.blueprints.space.sensor.dialog.label.heading.placeholder=E.g. sensornameconfluence.blueprints.space.sensor.dialog.label.description=Sensor Descriptionconfluence.blueprints.space.sensor.dialog.label.description.placeholder=Briefly describe this sensor
```

```
{namespace Confluence.SpaceBlueprints.sensor}/** * Dialog form template * * @param atlToken the XSRF token to send with the form * @param? fieldErrors the map of errors to display keyed by field name * @param? name initial value for the name field * @param? key initial value for the key field */{template .dialogForm}&lt;form action="#" method="post" id="decisions-form" class="common-space-form aui"&gt;    {call Confluence.Templates.Blueprints.CreateSpace.createSpaceFormFields}        {param showSpacePermission: false /}        {param fieldErrors: $fieldErrors /}        {param name: $name /}        {param key: $key /}    {/call}        /** Additional Create Space dialog */        &lt;fieldset&gt;        &lt;div class="field-group"&gt;            &lt;label for="space-homepage-heading"&gt;{getText('confluence.blueprints.space.sensor.dialog.label.heading')}&lt;/label&gt;            &lt;input class="text" type="text" id="text-input" name="spaceHomepageHeading" title="Text input"                 placeholder="{getText('confluence.blueprints.space.sensor.dialog.label.heading.placeholder')}"&gt;        &lt;/div&gt;    &lt;/fieldset&gt;        &lt;fieldset&gt;        &lt;div class="field-group"&gt;            &lt;label for="space-description"&gt;{getText('confluence.blueprints.space.sensor.dialog.label.description')}&lt;/label&gt;            &lt;textarea id="space-description" class="textarea long-field" rows="3" type="text" name="spaceDesc"                placeholder="{getText('confluence.blueprints.space.sensor.dialog.label.description.placeholder')}"&gt;&lt;/textarea&gt;        &lt;/div&gt;    &lt;/fieldset&gt;        /** End Additional Create Space dialog */        &lt;input type="hidden" name="atl_token" value="{$atlToken}" /&gt;&lt;/form&gt;{/template}
```

```
AJS.bind("blueprint.wizard-register.ready", function () {    function submitExampleSpace(e, state) {        state.pageData.ContentPageTitle = state.pageData.name + " " + AJS.I18n.getText("confluence.blueprints.space.sensor.home.title.suffix");         return Confluence.SpaceBlueprint.CommonWizardBindings.submit(e, state);    }    function preRenderExampleSpace(e, state) {        state.soyRenderContext['atlToken'] = AJS.Meta.get('atl-token');        state.soyRenderContext['showSpacePermission'] = false;     }    Confluence.Blueprint.setWizard('com.sensor.plugins.tutorial.confluence.spacebp.spacebp:sensor-space-blueprint-item', function(wizard) {        wizard.on("submit.exampleSpaceId", submitExampleSpace);        wizard.on("pre-render.exampleSpaceId", preRenderExampleSpace);        wizard.on("post-render.exampleSpaceId", Confluence.SpaceBlueprint.CommonWizardBindings.postRender);    });});
```

I I would greatly appreciate any help or assistance with this problem.


Answers:
author: Shane Kramer
body: Bueller? Bueller? Bueller?


Tags: blueprint

space-blueprint

template