--- a/src/pyams_skin/resources/js/myams.js Fri Apr 17 11:51:18 2015 +0200
+++ b/src/pyams_skin/resources/js/myams.js Fri Apr 17 11:52:11 2015 +0200
@@ -1968,6 +1968,55 @@
},
/**
+ * Register a new plug-in through Javascript instead of HTML data attributes
+ *
+ * @plugin: plugin function caller or object containing plug-in properties
+ * @name: if @plugin is a function, defines plug-in name
+ * @callback: a callback function which can be called after plug-in registry
+ */
+ register: function(plugin, name, callback) {
+ if (typeof(name) == 'function') {
+ callback = name;
+ name = null;
+ }
+ name = name || plugin.name;
+ if (ams.plugins.enabled.indexOf(name) >= 0) {
+ if (window.console)
+ console.warn("Plugin "+name+" is already registered!");
+ return;
+ }
+ if (typeof(plugin) == 'object') {
+ var src = plugin.src;
+ if (src) {
+ ams.ajax.check(plugin.callback, src, function(first_load) {
+ if (first_load) {
+ ams.plugins.enabled[name] = ams.getFunctionByName(plugin.callback);
+ if (plugin.css) {
+ ams.getCSS(plugin.css, name + '_css');
+ }
+ if (callback) {
+ ams.executeFunctionByName(callback);
+ }
+ }
+ })
+ } else {
+ ams.plugins.enabled[name] = ams.getFunctionByName(plugin.callback);
+ if (plugin.css) {
+ ams.getCSS(plugin.css, name + '_css');
+ }
+ if (callback) {
+ ams.executeFunctionByName(callback);
+ }
+ }
+ } else if (typeof(plugin) == 'function') {
+ ams.plugins.enabled[name] = plugin;
+ if (callback) {
+ ams.executeFunctionByName(callback);
+ }
+ }
+ },
+
+ /**
* Map of enabled plug-ins
* This map can be extended by external plug-ins.
*