Uploaded image for project: 'Confluence Cloud'
  1. Confluence Cloud
  2. CONFCLOUD-72639

Unable to save static content macro with multiple attachments

XMLWordPrintable

      Issue Summary

      Static content macros defined with an attachment parameter allowing multiple attachments can not be saved. A minimal app has been produced to reproducing this: https://glitch.com/edit/#!/dx-static-macro-with-attach-param. It's connect descriptor is as follows:

      {
        "key": "dx-static-macro-with-attach-param",
        "version": "a",
        "name": "DX Static Macro with Attachment Parameter App",
        "baseUrl": "https://dx-static-macro-with-attach-param.glitch.me/",
        "authentication": {
          "type": "none"
        },
        "enableLicensing": false,
        "scopes": [],
        "modules": {
          "staticContentMacros": [{
            "key": "dx-static-macro-with-attach-param",
            "name": {
              "value": "DX Static Macro with Attachment Parameter"
            },
            "description": {
              "value": "A static content macro with a multiple attachment parameter"
            },
            "renderingMethod": "get",
            "width": "500px",
            "height": "500px",
            "url": "/macro-view.html?pageTitle={page.title}",
            "bodyType": "none",
            "outputType": "block",
            "parameters": [{
              "identifier": "the-attach",
              "name": {
                "value": "The attachments"
              },
              "type": "attachment",
              "multiple": true,
              "hidden": false,
              "indexing": {
                "enabled": false
              }
            }]
          }]
        }
      }

      Steps to Reproduce

      1. Install the minimal app using descriptor URL https://dx-static-macro-with-attach-param.glitch.me/connect.json.
      2. Create/edit a page.
      3. Add an attachment to the page.
      4. Insert the app's "DX Static Macro with Attachment Parameter" macro into the page.
      5. Open the browser's dev tools and observe the console messages.
      6. Open the macro editor and select the attachment added to the page.
      7. Observe the console messages again.
      8. Close the macro editor.
      9. Open the macro editor.
      10. Observe if the previously selected attachment is still selected.

      Expected Results

      At step 7, no new error messages are visible.

      At step 10, the previously selected attachment(s) are still selected.

      Actual Results

      At step 7, the following error messages are visible:

      react_devtools_backend.js:2842 Error getting placeholder ADF
      overrideMethod @ react_devtools_backend.js:2842
      u @ fetchMacroAttributes.ts:70
      async function (async)
      u @ fetchMacroAttributes.ts:56
      Ce @ manifest-helpers.ts:87
      l @ extension-provider.ts:314
      vh @ context-panel.js:130
      async function (async)
      vh @ context-panel.js:124
      onChange @ context-panel.js:73
      (anonymous) @ ConfigPanel.js:152
      async function (async)
      (anonymous) @ ConfigPanel.js:151
      (anonymous) @ ConfigPanel.js:113
      componentDidUpdate @ ConfigPanel.js:293
      cs @ react-dom.production.min.js:212
      wu @ react-dom.production.min.js:255
      t.unstable_runWithPriority @ scheduler.production.min.js:19
      $o @ react-dom.production.min.js:122
      _u @ react-dom.production.min.js:248
      su @ react-dom.production.min.js:239
      (anonymous) @ react-dom.production.min.js:123
      t.unstable_runWithPriority @ scheduler.production.min.js:19
      $o @ react-dom.production.min.js:122
      Ko @ react-dom.production.min.js:123
      Zo @ react-dom.production.min.js:122
      ru @ react-dom.production.min.js:230
      enqueueSetState @ react-dom.production.min.js:132
      _.setState @ react.production.min.js:12
      (anonymous) @ index.js:75
      setTimeout (async)
      (anonymous) @ index.js:71
      (anonymous) @ index.js:72
      (anonymous) @ index.js:48
      (anonymous) @ index.js:30
      emit @ index.js:30
      (anonymous) @ index.js:50
      apply @ index.js:33
      M.e.state.apply @ instrumented-plugin.js:21
      b.applyInner @ index.es.js:867
      b.applyTransaction @ index.es.js:831
      (anonymous) @ ReactEditorView.js:265
      dispatchTransaction @ ReactEditorView.js:337
      zt.dispatch @ index.es.js:4890
      (anonymous) @ plugin-state-factory.js:92
      (anonymous) @ context-panel.js:87
      onCancel @ context-panel.js:86
      (anonymous) @ usePlatformLeafEventHandler.js:55
      s @ react-dom.production.min.js:14
      h @ react-dom.production.min.js:14
      (anonymous) @ react-dom.production.min.js:14
      m @ react-dom.production.min.js:15
      st @ react-dom.production.min.js:52
      it @ react-dom.production.min.js:51
      ut @ react-dom.production.min.js:52
      dt @ react-dom.production.min.js:56
      D @ react-dom.production.min.js:287
      z @ react-dom.production.min.js:19
      Jt @ react-dom.production.min.js:70
      Xt @ react-dom.production.min.js:69
      t.unstable_runWithPriority @ scheduler.production.min.js:19
      $o @ react-dom.production.min.js:122
      N @ react-dom.production.min.js:287
      Zt @ react-dom.production.min.js:68
      Show 30 more frames
      transformers.ts:79 Uncaught (in promise) TypeError: Cannot read property 'parameters' of undefined
          at m (transformers.ts:79)
          at u (fetchMacroAttributes.ts:84)
          at async l (extension-provider.ts:314)
          at async vh (context-panel.js:130)
          at async onChange (context-panel.js:72)

      At step 10, the previously selected attachment(s) are not selected.

      Workaround

      None

              Unassigned Unassigned
              dmorrow@atlassian.com Dugald Morrow
              Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: