Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Space Blueprint Children Issues

Shane Kramer June 23, 2016

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

0 votes
Shane Kramer June 28, 2016

Bueller? Bueller? Bueller?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events