Uploaded image for project: 'SR for Jira - Development'
  1. SR for Jira - Development
  2. SRJIRA-2676

Script fragments for web items that "run code and show a dialog" are being executed twice

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Done
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: 5.3.2, 5.3.2-rc5
    • Fix Version/s: 5.3.6
    • Component/s: None
    • Labels:
      None
    • Critical Points:
      0.7

      Description

      We make use of the script fragments that show a dialog - and in 5.3.2-rc5 the dialog is appearing twice. The web item provider seems to be unaffected - it's just the web item fragment that is executing twice per button click.

       

      Steps to repro:

      1.Create a rest endpoint with this code:

      import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
      import groovy.transform.BaseScript
      import javax.ws.rs.core.MediaType
      import javax.ws.rs.core.MultivaluedMap
      import javax.ws.rs.core.Response
      
      @BaseScript CustomEndpointDelegate delegate
      
      dialogTest(httpMethod: "GET") { MultivaluedMap queryParams -> 
      def dialog = """<section role="dialog" id="sr-dialog" class="aui-layer aui-dialog2 aui-dialog2-medium" aria-hidden="true" data-aui-remove-on-hide="true"> <header class="aui-dialog2-header"> <h2 class="aui-dialog2-header-main">One of two dialogs</h2> <a class="aui-dialog2-header-close"> <span class="aui-icon aui-icon-small aui-iconfont-close-dialog">Close</span> </a> </header> <div class="aui-dialog2-content"> <p>Body </div> <footer class="aui-dialog2-footer"> <div class="aui-dialog2-footer-actions"> <button id="dialog-submit" class="aui-button aui-button-link">Submit</button> </div> <div class="aui-dialog2-footer-hint">Hint</div> </footer> <script> AJS.\$("#dialog-submit").click(function(e) { console.log('Submitting...'); AJS.dialog2("#sr-dialog").hide(); }); </script> </section> """ 
      
      Response.ok().type(MediaType.TEXT_HTML).entity(dialog.toString()).build()
      }

      2. Create a custom web item with the following configuration:

       

      3. Go to an issue, you should see your button displayed like so:

      4. When you click the button, you will see this dialog:

      5. If you examine the html, at the very bottom you will see that there are two dialogs with the exact name id.

      6. You will need to click twice in the close cross to remove them completely. 

        Attachments

        1. Screen Shot 2018-02-13 at 14.33.51.png
          106 kB
          Daniel Yelamos [X]
        2. Screen Shot 2018-02-13 at 14.35.15.png
          13 kB
          Daniel Yelamos [X]
        3. Screen Shot 2018-02-13 at 14.35.58.png
          25 kB
          Daniel Yelamos [X]
        4. Screen Shot 2018-02-13 at 14.36.55.png
          62 kB
          Daniel Yelamos [X]

          Activity

            People

            Assignee:
            jechlin Jamie Echlin
            Reporter:
            dyelamos Daniel Yelamos [X] (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: