Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-75695

Use pagination for role assignment

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Critical Critical
    • role-strategy-plugin
    • None
    • 771.v3fa_85a_df2c50

      When there are many roles defined (>100 assuming one user per role) the UI becomes very laggy as the number of checkboxes is at least quadratic with the number of roles. In other tickets users claim to use over 400 roles. That result in over 160000 checkboxes.

      This has following effects:

      • Page loading is slow (~1min)
      • UI is very laggy
      • Scrolling takes several seconds
      • Huge memory consumption in the browser
      • Hitting limits in Jetty (number of max form items (default 10000), max form size (default 200000)) during submit

      To overcome this the way the checkboxes are shown has to be radically changed. 

      • the jelly will just provide an empty table. A template is already there for adding new assignments and can be reused
      • On page load the complete list of roles and assigned users is fetched as json and stored in a variable
      • Only a defined number of rows (20) is added to the table and shown
      • Scrolling can be achieved via buttons 
      • when clicking a checkbox the corresponding json needs to be updated
      • upon save/apply only the json is sent to the backend not the complete form
      • filtering should still be working to allow showing only the things a user needs to look at

       

            mawinter69 Markus Winter
            mawinter69 Markus Winter
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: