This change fixes a couple of consistency issues in the navigation block.
At the same time it fixes it the CSS for the navigation block as it had
really degraded over the last years.
Notable points about this change:
* Fixed icon display by wrapping content in a span allowing columns to
be styled.
* Re-wrote the CSS entirely as it could be done much better.
* Fixed inconsistencies between the php and JS for rendering nodes.
When making a request which fails, we need to ensure that the AJAX query
was not aborted before displaying the error.
This ensures that if the navigation tree is being requested at the same
time as a page load is being processed, the abortion of the AJAX request is
not displayed before the page reloads.
Previously, any inappropriate whitespace found whilst building the admin
tree caused a JSON error and for the site administration tree retrieval to
fail.
This change ensures that access to the site administration tree is unbroken
for non-developers, whilst still alerting developers that there is an
issue.
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.
This introduces some behat tests to verify that
the display of enrolled courses in the navigation
block works as expected, both when a plain list
or a nested list is configured.
Personally I'm not happy with the way to select
expected text via css element. I'd love to see
something in an higher level like
I should see the text|link "xxxxx" in the "yyyy" "element"
with element being "block, header, footer, main...."
But that's another issue.