When you add a module or otherwise cause a Moodle dialogue to appear, this
enables the 'lock scroll' feature (the scrollbar disappears).
On some browsers this causes the width of the viewport to change, which can
cause centered/right-aligned theme elements to move distractingly.
This change temporarily sets body max-width while lock scroll is active.
The YUI notification dialogues will now set the appropriate
aria attributes when they are shown/hidden to allow screen
readers to navigate them correctly.
When the dialogue is shown all background elements will be marked
as hidden while the dialogue is marked as visible to a screen reader.
When the dialogue is closed the modified elements will be reverted
to their previous state and the dialogue will be marked as hidden to
a screen reader.
The upgrade key can be defined in the main config.php as
$CFG->upgradekey. If it is defined there, then its value must be
provided every time the site is being upgraded, regardless the
administrator is logged in or not.
- Add reset_dirty_state method to formchangechecker. This is useful when used in combination with a modal.
- Modify hide method of sendmessage to reset formchangechecker dirty state on modal close.
All of these changes make use of already
fetched grade data. Without these changes,
the gradebook regrade process does not scale
well with very large courses because it fetches
many grade records, one at a time.
We previously had a global Y (simpleyui) and a separate Y created
to put Y in scope for all our modules. This meant that we had 2
separate sandboxes for YUI, which means that modules are duplicated,
and events do not fire across YUI instances.
This change merges the 2 instances, so any code refering to Y will
get the same instance of YUI (amd code, yui modules, static init code etc).
Thanks to Andrew Nicols!
When nodes are added to the dom, they may need to be re-processed by a JS based
filter. To do this we need to trigger the legacy YUI event filter-content-updated.
To make this easier I added some wrappers to template that will insert the node, run any
JS and trigger the event.
I also changed existing yui code to call the amd function to trigger the event. This way
all jquery and yui listeners will always be notified.