This is to solve a tricky edge case, when a page has no equations, and then an AJAX
action loads filtered content which contains an equation. (The glossary filter can do this).
To fix this I split the loading into configuration and typesetting. The config always happens,
but does not load the external mathjax libraries. The typesetting happens when an equation is
found - and is what triggers the load of MathJax. This can happen in response to an AJAX event.
* Remove all traces of mathjax from the atto equation editor - it is filter agnostic
* Add a M.core.event module for core events that can be published/subscribed to by plugins (loose coupling)
* Add a FILTER_CONTENT_UPDATED event so plugins can tell the filter system when nodes are added to the page
* Implement a listener for this event in the MathJax filter
* Fire this event from the equation editor and from the glossary filter
* Add a nolink tag to the mathjax filter, so equations will not be processed by the other filters
* Add a smarter throttle function to the equation editor preview updates (Y.throttle is dumb)
While the patch worked as intended, we discovered some other concerns
about use of this setting in testing.
This reverts commit 840c1c554d12d9214928da6f10989fc5546dbb43.
Instead we will create new MUC caches inside each filter plugin.
Please note that all cache filters should work with local caches
without the need of strict cache invalidation.
Conflicts:
filter/glossary/yui/build/moodle-filter_glossary-autolinker/moodle-filter_glossary-autolinker-debug.js
filter/glossary/yui/build/moodle-filter_glossary-autolinker/moodle-filter_glossary-autolinker-min.js
filter/glossary/yui/build/moodle-filter_glossary-autolinker/moodle-filter_glossary-autolinker.js
filter/glossary/yui/src/autolinker/js/autolinker.js -- M.core.alert api was changed.
Includes:
* each plugin has own thirdpartylibs.xml file
* added missing libraries
* fixed existing library infos
* new Site administration / Development / Third party libraries page
- Added configurable setting for path to mimetex binary
- Moved language strings from lang/en/admin.php to lang/en/filter_tex.php
- Config settings now stored in table config_plugins and retrieved
through get_config
- Added upgrade step to move TeX settings to the config_plugins table
and delete settings from the config table
AMOS BEGIN
MOV [configconvertformat,core_admin],[configconvertformat,filter_tex]
MOV [convertformat,core_admin],[convertformat,filter_tex]
MOV [latexpreamble,core_admin],[latexpreamble,filter_tex]
MOV [latexsettings,core_admin],[latexsettings,filter_tex]
MOV [pathconvert,core_admin],[pathconvert,filter_tex]
MOV [pathdvips,core_admin],[pathdvips,filter_tex]
MOV [pathlatex,core_admin],[pathlatex,filter_tex]
AMOS END
Includes:
* update checker refactored to \core\update\ namespace
* plugininfo classes refactored to \core\plugininfo\ namespace
* plugin_manager renamed to core_plugin_manager
* redirect back to original page after plugin uninstall
* fixed assign subplugin uninstall
* move assign subplugins under the assignment in admin tree
* fixed plugininfo for all question related plugin types
* auth uninstall support
* added missing block dependencies
* added theme uninstall
* subplugin types are following the plugin on plugin overview page
* several performance improvements in plugin manager
* new warnigns when plugininfo are outdated or missing
* multiple fixes and other improvements
* Implemented a new course and category management page.
* Deprecated the old management interface.
* Unit tests to cover the new API and core functions.
* Behat tests to cover the new interface.
This patch includes:
* version column removed from modules table, now using standard config, this allows decimal version for modules
* version column removed from block table, now using standard config, this allows decimal version for blocks
* module version.php can safely use $plugins instead of module
* new plugin_manager bulk caching, this should help with MUC performance when logged in as admin
* all missing plugins are now in plugin overview (previously only blocks and modules)
* simplified code and improved coding style
* reworked plugin_manager unit tests - now using real plugins instead of mocks
* unit tests now fail if any plugin does not contain proper version.php file
* allow uninstall of deleted filters