--- a/src/pyams_skin/resources/js/myams.js Fri Nov 25 16:11:03 2016 +0100
+++ b/src/pyams_skin/resources/js/myams.js Mon Nov 28 14:51:08 2016 +0100
@@ -2,7 +2,7 @@
* MyAMS
* « My Application Management Skin »
*
- * $Tag$ (rev. 14)
+ * $Tag$ (rev. 15)
* A bootstrap based application/administration skin
*
* Custom administration and application skin tools
@@ -2447,8 +2447,10 @@
if (plugins.hasOwnProperty(name)) {
var plugin = plugins[name];
plugin.css = plugin.css || new_plugin.css;
- plugin.callbacks.push(new_plugin.callback);
- plugin.contexts.push(new_plugin.context);
+ plugin.callbacks.push({
+ callback: new_plugin.callback,
+ context: new_plugin.context
+ });
if (new_plugin.register) {
plugin.register = true;
}
@@ -2459,8 +2461,10 @@
plugins[name] = {
src: new_plugin.src,
css: new_plugin.css,
- callbacks: new_plugin.callback ? [new_plugin.callback] : [],
- contexts: [new_plugin.context],
+ callbacks: [{
+ callback: new_plugin.callback,
+ context: new_plugin.context
+ }],
register: new_plugin.register,
async: new_plugin.async
};
@@ -2503,17 +2507,18 @@
function _loadPlugin() {
var index;
- var callbacks = plugin.callbacks;
- var contexts = plugin.contexts;
+ var callbacks = plugin.callbacks,
+ callback;
if (callbacks && callbacks.length) {
for (index=0; index < callbacks.length; index++) {
- var called = ams.getFunctionByName(callbacks[index]);
+ callback = callbacks[index];
+ callback.callback = ams.getFunctionByName(callback.callback);
if (plugin.register !== false) {
var enabled = ams.plugins.enabled;
if (enabled.hasOwnProperty(name)) {
- enabled[name].push(called);
+ enabled[name].push(callback);
} else {
- enabled[name] = [called];
+ enabled[name] = [callback];
}
}
}
@@ -2526,7 +2531,8 @@
// before callback is called so we call plug-in manually
if (callbacks && callbacks.length && (plugin.async !== false)) {
for (index=0; index < callbacks.length; index++) {
- ams.getFunctionByName(callbacks[index])(contexts[index]);
+ callback = callbacks[index];
+ ams.executeFunctionByName(callback.callback, element, callback.context);
}
}
}
@@ -2557,8 +2563,12 @@
default:
for (var cbIndex = 0; cbIndex < callbacks.length; cbIndex++) {
var callback = callbacks[cbIndex];
- if (typeof(callback) === 'function') {
- callback(element);
+ switch (typeof(callback)) {
+ case 'function':
+ callback(element);
+ break;
+ default:
+ callback.callback(callback.context);
}
}
}