BlueSpice comes with the ExtJS JavaScript Framework by Sencha Inc. We use version 6.2.0.981, which is the lastest build from the V6 line released under the GPL licence. In version 3 of BlueSpice, the ExtJS framework has been removed from "BlueSpiceFoundation" and put into a seperate extension called "ExtJSBase". This new extension is now a requirement of "BlueSpiceFoundation". In "BlueSpiceFoundation" remain only special components and store backend classes. ==Using it in extensions== When developing an extension create a "base namespace" folder in your extensions "resources/" or "modules/" directory. The "base namespace" should be a unique identifier for your extension. E.g. "BS.MyExtension". Within this directory you can place your class definitions ('Ext.define' calls). If you seperate your code into subnamespaces, every portion of the namespace should be a subfolder. E.g for class 'BS.MyExtension.dialog.EditRow' the structure would be: /extensions/MyExtension/resources/ BS.MyExtension/ dialog/ EditRow.js By using this convention ExtJS will load the class files on demand. There is no need to add the files from the "base namespace" folder to a dedicated RL module. You can also modify the ExtJS autoloader by calling 'setPath' on 'Ext.Loader': Ext.Loader.setPath( 'BS.NotMyExtension.something', mw.config.get('wgScriptPath') + '/extensions/MyExtension/resources/BS.NotMyExtension.something' ); Don't forget to run this code only when 'ext.bluespice.extjs' is loaded ('mw.loader.using')! ==API documentation== For a complete documentation of the ExtJS framework see http://docs.sencha.com/extjs/6.2.0