--- a/src/pyams_skin/resources/js/myams.js Tue Nov 15 10:36:29 2016 +0100
+++ b/src/pyams_skin/resources/js/myams.js Tue Nov 15 10:40:00 2016 +0100
@@ -2,7 +2,7 @@
* MyAMS
* « My Application Management Skin »
*
- * $Tag$ (rev. 11)
+ * $Tag$ (rev. 13)
* A bootstrap based application/administration skin
*
* Custom administration and application skin tools
@@ -441,6 +441,16 @@
/**
+ * Basic logging function which log all arguments to console
+ */
+ MyAMS.log = function() {
+ if (globals.console) {
+ globals.console.log(this, arguments);
+ }
+ };
+
+
+ /**
* Extract parameter value from given query string
*/
MyAMS.getQueryVar = function(src, varName) {
@@ -489,7 +499,7 @@
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
- return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
return uuid;
};
@@ -1365,7 +1375,9 @@
* Reset form changed flag
*/
resetChanged: function(form) {
- form.removeAttr('data-ams-form-changed');
+ if (form !== undefined) {
+ $(form).removeAttr('data-ams-form-changed');
+ }
},
/**
@@ -1440,7 +1452,7 @@
{progress_id: progress_id},
{error: _clearProgressStatus},
ams.getFunctionByName(progressCallback) || function(result, status) {
- if (status == 'success') {
+ if (status === 'success') {
if (result.status === 'running') {
if (result.message) {
button.text(result.message);
@@ -2172,6 +2184,13 @@
}
}
+ // Check for shown callbacks defined via data API
+ $('[data-ams-shown-callback]', modal).each(function() {
+ var callback = ams.getFunctionByName($(this).data('ams-shown-callback'));
+ if (callback) {
+ callback.call(modal, this);
+ }
+ });
// Call shown callbacks registered for this dialog
var index;
var callbacks = $('.modal-dialog', modal).data('shown-callbacks');
@@ -2215,7 +2234,14 @@
var modal = e.target;
// Call registered cleaning callbacks
ams.skin.cleanContainer(modal);
- // Call hide callbacks registered for this dialog
+ // Check for hidden callbacks defined via data API
+ $('[data-ams-hidden-callback]', modal).each(function() {
+ var callback = ams.getFunctionByName($(this).data('ams-hidden-callback'));
+ if (callback) {
+ callback.call(modal, this);
+ }
+ });
+ // Call hidden callbacks registered for this dialog
var index;
var callbacks = $('.modal-dialog', modal).data('hide-callbacks');
if (callbacks) {
@@ -2223,7 +2249,7 @@
callbacks[index].call(modal);
}
}
- // Call globally registered hide callbacks
+ // Call globally registered hidden callbacks
callbacks = ams.dialog._hide_callbacks;
if (callbacks) {
for (index=0; index < callbacks.length; index++) {
@@ -2414,7 +2440,6 @@
// Scan new element for plug-ins
var plugins = {};
- var plugin;
var name;
// Inner plug-in register function
@@ -2472,37 +2497,42 @@
}
});
+ // Inner plug-in loader function
+ var plugin;
+
+ function _loadPlugin() {
+ var index;
+ var callbacks = plugin.callbacks;
+ if (callbacks && callbacks.length) {
+ for (index=0; index < callbacks.length; index++) {
+ var called = ams.getFunctionByName(callbacks[index]);
+ if (plugin.register !== false) {
+ var enabled = ams.plugins.enabled;
+ if (enabled.hasOwnProperty(name)) {
+ enabled[name].push(called);
+ } else {
+ enabled[name] = [called];
+ }
+ }
+ }
+ } else {
+ if (plugin.register !== false) {
+ ams.plugins.enabled[name] = null;
+ }
+ }
+ // If running in async mode, registered plug-ins are run
+ // 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])(element);
+ }
+ }
+ }
+
for (name in plugins) {
if (ams.plugins.enabled[name] === undefined) {
plugin = plugins[name];
- ams.getScript(plugin.src, function() {
- var index;
- var callbacks = plugin.callbacks;
- if (callbacks && callbacks.length) {
- for (index=0; index < callbacks.length; index++) {
- var called = ams.getFunctionByName(callbacks[index]);
- if (plugin.register !== false) {
- var enabled = ams.plugins.enabled;
- if (enabled.hasOwnProperty(name)) {
- enabled[name].push(called);
- } else {
- enabled[name] = [called];
- }
- }
- }
- } else {
- if (plugin.register !== false) {
- ams.plugins.enabled[name] = null;
- }
- }
- // If running in async mode, registered plug-ins are run
- // 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])(element);
- }
- }
- }, {
+ ams.getScript(plugin.src, _loadPlugin, {
async: plugin.async === undefined ? true : plugin.async
});
}