The patch converts the dock into a YUI shifter module and at
the same time improves several aspects of its operation.
The features of this patch include:
* Dock Module conversion.
* A loader that ensures we don't include the dock JS or its
requirements unless actually required.
* We no longer include the dock JS for themes that don't
enable it.
* Blocks no longer add registration events to the page
instead a dockable attribute is added to the html and the
loader looks for that.
* The dock module is properly documented and running YUIDoc
gives good quality documentation.
* We no longer need the dock module registration or
subcomponent.
* All events that can be delegated are now delegated.
* Removed unused variables and code left over after fixes.
* Support for docking blocks renderered using the new blocks
render method. Better support for custom block regions.
The biggest change is that the navigation block has been converted to a proper YUI module.
The following are the other changes made at the same time:
* A loading icon is displayed when a branch is being loaded by AJAX.
* Fixed a bug where you could trigger multiple AJAX requests by rapidly clicking an unloaded branch.
* Fixed a bug where empty branches weren't being marked as such after a successful AJAX load.
* When docked the width of the blocks dock panel is now inspected an increased if required to try avoid horizontal scrolling.
* Removed the no longer needed inclusion of the YUI2 dom library from the navigation and settings block.
* Expandable nodes are now passed as JS data allowing the navigation JS to be initialised through block_navigation::get_required_javascript.
* AJAX is now focused around the branch in question rather than the tree in general.
* Expansion of branches is now delegated to the tree rather than being an individual event on all branches.
* Tidied up the code in general removing unneeded-unused parameters.
* Themes can now check if a region is completely docked
* Dock now delegates events to improve performance
* Dock now completely YUI3
* No longer uses YUI overlay instead has custom control
Navigation has now been re-ordered in accordance with http://docs.moodle.org/en/Development:Navigation_2.0_structure.
This has led to several changes in the way in which navigation is generated included API changes, most notably using the
navigation_nodes add method now returns the newly added node rather than the key.
At the same time the global_navigation_tree block has been renamed to navigation and settings_navigation_tree to settings.