Space Blueprint Children Issues

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.

<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
    
    <plugin-info>
        <description>${project.description}</description>
        <version>${project.version}</version>
        <vendor name="${project.organization.name}" url="${project.organization.url}" />
        <param name="plugin-icon">images/pluginIcon.png</param>
        <param name="plugin-logo">images/pluginLogo.png</param>
    </plugin-info>
    
    <!-- 
        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)
    -->
    <resource type="i18n" name="i18n" location="spacebp"/>
    
    <!-- add our web resources -->
    <web-resource key="spacebp-resources" name="spacebp Web Resources">
        <transformation extension="soy">
            <transformer key="soyTransformer">
                <functions>com.atlassian.confluence.plugins.soy:soy-core-functions</functions>
            </transformer>
            <transformation extension="js">
                <transformer key="jsI18n"/>
            </transformation>
        </transformation>

        <resource type="download" name="spacebp.css" location="/css/spacebp.css"/>
        <resource type="download" name="spacebp.js" location="/js/spacebp.js"/>
        <resource type="download" name="dialog-page.js" location="/soy/dialog-page.soy"/>
        <resource type="download" name="images/" location="/images"/>
        <dependency>com.atlassian.confluence.plugins.confluence-create-content-plugin:space-blueprints</dependency>   <!-- This dependency is not required for confluence 5.4+ -->
        <context>atl.general</context>
        <context>atl.admin</context>
    </web-resource>
    
    <!--
        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
    -->
    <web-item key='sensor-space-blueprint-item' i18n-name-key='confluence.blueprints.space.sensor.name'
              section='system.create.space.dialog/content'>
        <description key='confluence.blueprints.space.sensor.description'/>
        <resource name="icon" type="download" location="/images/watchtower.png" />
        <param name='blueprintKey' value='sensor-space-blueprint'/>
    </web-item>
 
    <!--
        content-template defines an XML resource in Confluence Storage-Format.
            * key: (required) referenced by the respective <blueprint>
            * 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 <at:var> instances in the template
    -->
    <content-template key="sensor-space-homepage-template" i18n-name-key="confluence.blueprints.space.sensor.homepage.name">
        <description key="confluence.blueprints.space.sensor.homepage.desc"/>
        <resource name="template" type="download" location="/xml/wt-sensor-home.xml"/> <!--  Home page (checklist) -->
    </content-template>
    
    <content-template key="sensor-space-data-template" i18n-name-key="confluence.blueprints.space.sensor.data.name">
         <description key="confluence.blueprints.space.sensor.data.desc"/>
         <resource name="template" type="download" location="/xml/data.xml"/> <!--  Data page -->
    </content-template>
         
    <content-template key="sensor-space-timeline-template" i18n-name-key="confluence.blueprints.space.sensor.timeline.name">
         <description key="confluence.blueprints.space.sensor.timeline.desc"/>
         <resource name="template" type="download" location="/xml/timeline.xml"/> <!--  Timeline page -->
    </content-template>
    
    <content-template key="sensor-space-geninfo-template" i18n-name-key="confluence.blueprints.space.sensor.geninfo.name">
         <description key="confluence.blueprints.space.sensor.geninfo.desc"/>
         <resource name="template" type="download" location="/xml/general_information.xml"/> <!--  General information page -->
    </content-template>
    
    <!--
         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 <content-template> 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.
    -->
    <space-blueprint key="sensor-space-blueprint" i18n-name-key="confluence.blueprints.space.sensor.name">
        <content-template ref="sensor-space-homepage-template"> <!-- Home -->
             <content-template ref="sensor-space-data-template"/> <!-- Child Page -->
              <content-template ref="sensor-space-geninfo-template"/> <!-- Child Page -->
             <content-template ref="sensor-space-timeline-template"/> <!-- Child Page -->
        </content-template>
        
        <dialog-wizard key="sensor-space-blueprint-wizard">
            <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"/>
        </dialog-wizard>
    </space-blueprint>
    
</atlassian-plugin>
confluence.blueprints.space.sensor.name=Sensor Space Blueprint
confluence.blueprints.space.sensor.description=Start with a preconfigured Sensor Space 
confluence.blueprints.space.sensor.dialog.create.title=Create a Sensor Space
confluence.blueprints.space.sensor.dialog.create.heading=About sensor Spaces
confluence.blueprints.space.sensor.dialog.create.description=Use this blueprint to create a Sensor Space
confluence.blueprints.space.sensor.home.title.suffix=Home Page

confluence.blueprints.space.sensor.homepage.name=Home
confluence.blueprints.space.sensor.homepage.desc=Sensor Space Home
confluence.blueprints.space.sensor.data.name=Data
confluence.blueprints.space.sensor.data.desc=sensor page that contains data analysis, test and sample data archives, and expected data volume metric pages
confluence.blueprints.space.sensor.geninfo.name=General Info
confluence.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=Timeline
confluence.blueprints.space.sensor.timeline.desc=The timeline of events for all sensor related activities, to include meetings, boards, analysis and deliveries

confluence.blueprints.space.sensor.home.children.heading=Child pages will be shown here

confluence.blueprints.space.sensor.dialog.label.heading=Sensor Name
confluence.blueprints.space.sensor.dialog.label.heading.placeholder=E.g. sensorname
confluence.blueprints.space.sensor.dialog.label.description=Sensor Description
confluence.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}
<form action="#" method="post" id="decisions-form" class="common-space-form aui">
    {call Confluence.Templates.Blueprints.CreateSpace.createSpaceFormFields}
        {param showSpacePermission: false /}
        {param fieldErrors: $fieldErrors /}
        {param name: $name /}
        {param key: $key /}
    {/call}
    
    /** Additional Create Space dialog */
    
    <fieldset>
        <div class="field-group">
            <label for="space-homepage-heading">{getText('confluence.blueprints.space.sensor.dialog.label.heading')}</label>
            <input class="text" type="text" id="text-input" name="spaceHomepageHeading" title="Text input" 
                placeholder="{getText('confluence.blueprints.space.sensor.dialog.label.heading.placeholder')}">
        </div>
    </fieldset>
    
    <fieldset>
        <div class="field-group">
            <label for="space-description">{getText('confluence.blueprints.space.sensor.dialog.label.description')}</label>
            <textarea id="space-description" class="textarea long-field" rows="3" type="text" name="spaceDesc"
                placeholder="{getText('confluence.blueprints.space.sensor.dialog.label.description.placeholder')}"></textarea>
        </div>
    </fieldset>
    
    /** End Additional Create Space dialog */
    
    <input type="hidden" name="atl_token" value="{$atlToken}" />
</form>
{/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.

1 answer

This widget could not be displayed.

Bueller? Bueller? Bueller?

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Sep 17, 2018 in Confluence

Why start from scratch? Introducing four new templates for Confluence Cloud

Hi my Community friends!  For those who don't know me, I'm a product marketer on the Confluence Cloud team - nice to meet you! For those of you who do, you know that I've been all up in your Co...

607 views 8 6
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you