Scenario

Create a reusable template for projects.

Recipe

Apps


Scaffolding


Platform

Server, Data Center

Level

Advanced

Estimated time

45 minutes ⏱

Macros

Date Data, Evaluate Data, List Data, List Option, Number Data, Table Data, Text Data, User Options

Storage format

You can copy and paste this code into the Confluence Source Editor:

<h2>Details</h2>
<table>
  <tbody>
    <tr>
      <td>
        <p>Type:</p>
      </td>
      <td>
        <p class="auto-cursor-target">
          <br/>
        </p>
        <ac:structured-macro ac:macro-id="9c01f1cb-639b-498e-8eb5-e1732a947d9f" ac:name="list-data" ac:schema-version="1">
          <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
          <ac:parameter ac:name="">Type</ac:parameter>
          <ac:rich-text-body>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="b026035d-9ba0-4732-89cb-e4017d088b12" ac:name="list-option" ac:schema-version="1">
              <ac:parameter ac:name="value">Website</ac:parameter>
              <ac:rich-text-body>
                <p>Website</p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="b52e2c42-8a65-41df-887b-ce7a553c6af5" ac:name="list-option" ac:schema-version="1">
              <ac:parameter ac:name="value">Application</ac:parameter>
              <ac:rich-text-body>
                <p>Application</p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="df58cece-33cd-4686-94d1-894a63530806" ac:name="list-option" ac:schema-version="1">
              <ac:parameter ac:name="value">Other</ac:parameter>
              <ac:rich-text-body>
                <p>Other</p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </ac:rich-text-body>
        </ac:structured-macro>
        <p class="auto-cursor-target">
          <br/>
        </p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Project Leader:</p>
      </td>
      <td>
        <p class="auto-cursor-target">
          <br/>
        </p>
        <ac:structured-macro ac:macro-id="1a8e9d11-9a4f-4422-8e08-1252f8168d5c" ac:name="list-data" ac:schema-version="1">
          <ac:parameter ac:name="required">true</ac:parameter>
          <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
          <ac:parameter ac:name="">Project Leader</ac:parameter>
          <ac:rich-text-body>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="7d5d28e1-1d23-48fd-8846-fec95177edb3" ac:name="user-options" ac:schema-version="1">
              <ac:parameter ac:name="groups">project-leaders</ac:parameter>
              <ac:rich-text-body>
                <p>
                  <br/>
                </p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </ac:rich-text-body>
        </ac:structured-macro>
        <p class="auto-cursor-target">
          <br/>
        </p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Team Members:</p>
      </td>
      <td>
        <p class="auto-cursor-target">
          <br/>
        </p>
        <ac:structured-macro ac:macro-id="570b588f-10d9-4272-847a-2492636e6622" ac:name="list-data" ac:schema-version="1">
          <ac:parameter ac:name="multiple">true</ac:parameter>
          <ac:parameter ac:name="type">check</ac:parameter>
          <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
          <ac:parameter ac:name="">Team Members</ac:parameter>
          <ac:rich-text-body>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="dcc97c77-42bd-4a83-928a-933a33737c73" ac:name="user-options" ac:schema-version="1">
              <ac:parameter ac:name="groups">employees</ac:parameter>
              <ac:rich-text-body>
                <p>
                  <br/>
                </p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </ac:rich-text-body>
        </ac:structured-macro>
        <p class="auto-cursor-target">
          <br/>
        </p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Start Date:</p>
      </td>
      <td>
        <p class="auto-cursor-target">
          <br/>
        </p>
        <ac:structured-macro ac:macro-id="03006ca5-08f1-4a9d-a8b8-04a20a86c864" ac:name="date-data" ac:schema-version="1">
          <ac:parameter ac:name="format">dd-MMM-yyyy</ac:parameter>
          <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
          <ac:parameter ac:name="">Start Date</ac:parameter>
          <ac:plain-text-body><![CDATA[today]]></ac:plain-text-body>
        </ac:structured-macro>
        <p class="auto-cursor-target">
          <br/>
        </p>
      </td>
    </tr>
  </tbody>
</table>
<h2>Milestones</h2>
<ac:structured-macro ac:macro-id="000a8295-c9bd-40e8-8e9b-2a05f03fb3af" ac:name="table-data" ac:schema-version="1">
  <ac:parameter ac:name="">Milestones</ac:parameter>
  <ac:rich-text-body>
    <p class="auto-cursor-target">
      <br/>
    </p>
    <table>
      <tbody>
        <tr>
          <th>
            <p>Name</p>
          </th>
          <th>
            <p>Due Date</p>
          </th>
          <th>
            <p>Status</p>
          </th>
          <th>
            <p>Estimated Time</p>
          </th>
          <th>
            <p>Actual Time</p>
          </th>
          <th>
            <p>Est/Act Time Diff</p>
          </th>
        </tr>
        <tr>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="468d9a43-5ad5-4f16-ae52-0e24c40e8c83" ac:name="text-data" ac:schema-version="1">
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Name</ac:parameter>
              <ac:rich-text-body>
                <p>
                  <br/>
                </p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </td>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="c0b7b6e2-0961-43fc-944e-27583a0e1728" ac:name="date-data" ac:schema-version="1">
              <ac:parameter ac:name="format">dd-MMM-yyyy</ac:parameter>
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Due Date</ac:parameter>
              <ac:plain-text-body><![CDATA[today]]></ac:plain-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </td>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="e8dbdf40-fc61-4ee2-bf05-83cc23c4478b" ac:name="list-data" ac:schema-version="1">
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Status</ac:parameter>
              <ac:rich-text-body>
                <p class="auto-cursor-target">
                  <br/>
                </p>
                <ac:structured-macro ac:macro-id="d62ea728-633c-4ed3-b8cd-643d67035f8c" ac:name="list-option" ac:schema-version="1">
                  <ac:parameter ac:name="value">Unstarted</ac:parameter>
                  <ac:rich-text-body>
                    <p>Unstarted</p>
                  </ac:rich-text-body>
                </ac:structured-macro>
                <p class="auto-cursor-target">
                  <br/>
                </p>
                <ac:structured-macro ac:macro-id="f2f5e018-eb06-4862-a184-a73af2e3ed3a" ac:name="list-option" ac:schema-version="1">
                  <ac:parameter ac:name="value">In progress</ac:parameter>
                  <ac:rich-text-body>
                    <p>In progress</p>
                  </ac:rich-text-body>
                </ac:structured-macro>
                <p class="auto-cursor-target">
                  <br/>
                </p>
                <ac:structured-macro ac:macro-id="65090020-04c0-4ee6-ac07-beafa37dfcf9" ac:name="list-option" ac:schema-version="1">
                  <ac:parameter ac:name="value">Awaiting approval</ac:parameter>
                  <ac:rich-text-body>
                    <p>Awaiting approval</p>
                  </ac:rich-text-body>
                </ac:structured-macro>
                <p>
                  <br/>
                </p>
                <ac:structured-macro ac:macro-id="d70dbd48-b7ee-4d24-a8ac-b46ed0e9bf0a" ac:name="list-option" ac:schema-version="1">
                  <ac:parameter ac:name="value">Completed</ac:parameter>
                  <ac:rich-text-body>
                    <p>Completed</p>
                  </ac:rich-text-body>
                </ac:structured-macro>
                <p class="auto-cursor-target">
                  <br/>
                </p>
              </ac:rich-text-body>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </td>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="d1514be3-aa84-4911-b34c-6502ff46ff34" ac:name="number-data" ac:schema-version="1">
              <ac:parameter ac:name="decimal">true</ac:parameter>
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Estimated Time</ac:parameter>
            </ac:structured-macro>
            <p>hrs</p>
          </td>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="5eb89cf0-eff7-45e9-947d-b0f14bd14711" ac:name="number-data" ac:schema-version="1">
              <ac:parameter ac:name="decimal">true</ac:parameter>
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Actual Time</ac:parameter>
            </ac:structured-macro>
            <p class="auto-cursor-target">
              <br/>
            </p>
          </td>
          <td>
            <p class="auto-cursor-target">
              <br/>
            </p>
            <ac:structured-macro ac:macro-id="6eca1ee2-16f3-4abe-8689-829f9ff7accc" ac:name="eval-data" ac:schema-version="1">
              <ac:parameter ac:name="format">#,##0.0#</ac:parameter>
              <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
              <ac:parameter ac:name="">Time Diff</ac:parameter>
              <ac:plain-text-body><![CDATA[ ${Actual Time}-${Estimated Time} ]]></ac:plain-text-body>
            </ac:structured-macro>
            <p>hrs</p>
          </td>
        </tr>
      </tbody>
    </table>
    <p class="auto-cursor-target">
      <br/>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p>
  <strong>Total Time:</strong>
</p>
<ac:structured-macro ac:macro-id="e00ee529-b9c3-4d6a-b249-3e65f60aa730" ac:name="eval-data" ac:schema-version="1">
  <ac:parameter ac:name="format">#,##0.0#</ac:parameter>
  <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
  <ac:parameter ac:name="">Total Time</ac:parameter>
  <ac:plain-text-body><![CDATA[sumtable("Milestones", "Actual Time")]]></ac:plain-text-body>
</ac:structured-macro>
<h2>Notes</h2>
<ac:structured-macro ac:macro-id="a4491bca-c3ab-42dd-ae5c-7c3155298cbd" ac:name="text-data" ac:schema-version="1">
  <ac:parameter ac:name="width">400px</ac:parameter>
  <ac:parameter ac:name="type">area</ac:parameter>
  <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
  <ac:parameter ac:name="height">150px</ac:parameter>
  <ac:parameter ac:name="">Notes</ac:parameter>
  <ac:rich-text-body>
    <p>
      <br/>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p class="auto-cursor-target">
  <br/>
</p>

Macro structure

You can recreate the example in the editor view: