Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-35672 META JavaScript performance issues
  3. MDL-35569

Rewrite init_url_select / init_select_autosubmit as YUI module and improve performance

    Details

    • Testing Instructions:
      Hide

      These testing instructions must be carried out in as many browsers as possible. At the very least the following combinations should be tested:

      [ ] Windows IE
      [ ] Windows Chrome
      [ ] Windows Firefox
      [ ] Windows Opera
      [ ] Mac OS Chrome
      [ ] Mac OS Safari
      [ ] Mac OS Firefox
      [ ] Mac OS Opera
      [ ] iOS Safari

      • Open a course
      • Turn editing on
      • Turn the Activity chooser off
      • Choose an activity from the dropdown
        • Confirm that the page redirected
      • Return back to the course page in editing mode
      • From the 'Add a block' block's dropdown, choose a block
        • Confirm that the page redirects and that the block is added
      • Return back to the course page in editing mode
      • Add a new Choice activity
      • Submit a choice for one or more users
      • View the submitted responses
      • Select a response and from the 'Choose an action...' dropdown, choose 'Delete'
        • Confirm that the page reloads and performs the action
      • Navigate to Site administration -> Courses -> Add/edit courses
      • Create a new category
      • Navigate to the category with your other courses
      • Select a course using the checkboxes
      • From the 'Move selected courses to...', choose your new category
        • Confirm that the page reloads and performs the action
      • Search for a course (/course/search.php?search=foo)
      • Select a course using the checkboxes
      • From the 'Move selected courses to...', choose your new category
        • Confirm that the page reloads and performs the action

      NOTE: There are other dropdowns in:

      • mod/feedback/analysis_course.php
      • mod/lesson/report.php
      • theme/mymobile/renderers.php

      I've not provided test instructions for these as I don't have test data to use them with.

      Show
      These testing instructions must be carried out in as many browsers as possible. At the very least the following combinations should be tested: [ ] Windows IE [ ] Windows Chrome [ ] Windows Firefox [ ] Windows Opera [ ] Mac OS Chrome [ ] Mac OS Safari [ ] Mac OS Firefox [ ] Mac OS Opera [ ] iOS Safari Open a course Turn editing on Turn the Activity chooser off Choose an activity from the dropdown Confirm that the page redirected Return back to the course page in editing mode From the 'Add a block' block's dropdown, choose a block Confirm that the page redirects and that the block is added Return back to the course page in editing mode Add a new Choice activity Submit a choice for one or more users View the submitted responses Select a response and from the 'Choose an action...' dropdown, choose 'Delete' Confirm that the page reloads and performs the action Navigate to Site administration -> Courses -> Add/edit courses Create a new category Navigate to the category with your other courses Select a course using the checkboxes From the 'Move selected courses to...', choose your new category Confirm that the page reloads and performs the action Search for a course (/course/search.php?search=foo) Select a course using the checkboxes From the 'Move selected courses to...', choose your new category Confirm that the page reloads and performs the action NOTE: There are other dropdowns in: mod/feedback/analysis_course.php mod/lesson/report.php theme/mymobile/renderers.php I've not provided test instructions for these as I don't have test data to use them with.
    • Affected Branches:
      MOODLE_23_STABLE
    • Fixed Branches:
      MOODLE_24_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-35569-master

      Description

      init_url_select is woefully inefficient, and init_select_autosubmit may have similar issues.
      We should rewrite it, possibly as a YUI module, and improve it's performance.
      We should try not to:

      • use loops of Y.use()
      • use loops of Y.Node.on()

      We also need to bear the accessibility issues in mind

      I believe that the attached branch should do that, but I'm not sure whether it's best to run it as a YUI module though or not.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Votes:
                  16 Vote for this issue
                  Watchers:
                  15 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Fix Release Date:
                    3/Dec/12