--- a/src/pyams_skin/resources/js/myams.js Wed Oct 16 13:00:43 2019 +0200
+++ b/src/pyams_skin/resources/js/myams.js Wed Oct 16 13:01:12 2019 +0200
@@ -1947,16 +1947,16 @@
var button,
buttonData,
- buttonTarget;
- var data = form.data();
- var formOptions = data.amsFormOptions;
- var formData;
- var formDataCallback;
-
- var progressHandler;
- var progressInterval;
- var progressCallback;
- var progressEndCallback;
+ buttonTarget,
+ data = form.data(),
+ formOptions = data.amsFormOptions,
+ formData,
+ formDataCallback;
+
+ var progressHandler,
+ progressInterval,
+ progressCallback,
+ progressEndCallback;
// Inner progress status handler
function _getProgress(handler, progress_id) {
@@ -2129,8 +2129,8 @@
if (modal.exists()) {
ams.dialog && ams.dialog.close(form);
} else {
- var callback;
- var button = form.data('ams-submit-button');
+ var callback,
+ button = form.data('ams-submit-button');
if (button) {
callback = button.data('ams-form-submit-callback');
}
@@ -2228,8 +2228,8 @@
* @param message: the optional message
*/
initSubmit: function(target, message) {
- var form = $(this);
- var spin = '<i class="fa fa-3x fa-gear fa-spin"></i>';
+ var form = $(this),
+ spin = '<i class="fa fa-3x fa-gear fa-spin"></i>';
if (!message) {
message = form.data('ams-form-submit-message');
}
@@ -2275,8 +2275,8 @@
* @param message: the optional submit message
*/
initSubmitFooter: function(message) {
- var form = $(this);
- var spin = '<i class="fa fa-3x fa-gear fa-spin"></i>';
+ var form = $(this),
+ spin = '<i class="fa fa-3x fa-gear fa-spin"></i>';
if (!message) {
message = $(this).data('ams-form-submit-message');
}
@@ -2295,8 +2295,8 @@
* @param target: the form submit container target
*/
finalizeSubmitFooter: function(/*target*/) {
- var form = $(this);
- var footer = $('footer', form);
+ var form = $(this),
+ footer = $('footer', form);
if (footer) {
$('.row', footer).remove();
$('button', footer).show();
@@ -2331,8 +2331,8 @@
}
}
- var data = form.data();
- var dataType;
+ var data = form.data(),
+ dataType;
if (data.amsFormDatatype) {
dataType = data.amsFormDatatype;
} else {
@@ -2416,13 +2416,13 @@
if (!validators.length) {
return true;
}
- var output = [];
- var result = true;
+ var output = [],
+ result = true;
for (var index=0; index < validators.length; index++) {
- var validator = validators[index];
- var source = validator[0];
- var handler = validator[1];
- var validatorResult = ams.executeFunctionByName(handler, form, source);
+ var validator = validators[index],
+ source = validator[0],
+ handler = validator[1],
+ validatorResult = ams.executeFunctionByName(handler, form, source);
if (validatorResult === false) {
result = false;
} else if (typeof(validatorResult) === 'string') {
@@ -5061,45 +5061,75 @@
chart: function(element) {
var charts = $('.chart', element);
if (charts.length > 0) {
- ams.ajax && ams.ajax.check($.fn.plot,
- ams.baseURL + 'flot/jquery.flot' + ams.devext + '.js',
- function() {
- charts.each(function() {
-
- function checkPlugin(plugin) {
- for (var index in $.plot.plugins) {
- if ($.plot.plugins.hasOwnProperty(index)) {
- var pluginInfo = $.plot.plugins[index];
- if (pluginInfo.name === plugin) {
- return pluginInfo;
- }
- }
- }
- return null;
- }
-
- var chart = $(this);
- var data = chart.data();
- var dataOptions = {};
- var plugins = (data.amsChartPlugins || '').split(/\s+/);
- if (plugins.length > 0) {
- for (var index in plugins) {
- if (plugins.hasOwnProperty(index)) {
- var pluginName = plugins[index];
- if (!checkPlugin(pluginName)) {
- ams.getScript(ams.baseURL + 'flot/jquery.flot.' + pluginName + ams.devext + '.js');
- }
- }
- }
- }
- var settings = $.extend({}, dataOptions, data.amsChartOptions);
- settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings;
- var chartData = data.amsChartData;
- chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData;
- var plugin = chart.plot(chartData, settings);
- ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings);
- });
- });
+ ams.ajax && ams.ajax.check([window.Flot, $.color],
+ [ams.baseURL + 'ext/flot/jquery.canvaswrapper' + ams.devext + '.js',
+ ams.baseURL + 'ext/flot/jquery.colorhelpers' + ams.devext + '.js'],
+ function () {
+ ams.ajax.check($.fn.plot,
+ ams.baseURL + 'ext/flot/jquery.flot' + ams.devext + '.js',
+ function () {
+ charts.each(function () {
+
+ var chart = $(this),
+ data = chart.data(),
+ dataOptions = {},
+ plugin,
+ flotPlugins = (data.amsChartPlugins || '').split(/\s+/);
+
+ function checkPlugin(plugin) {
+ for (var index in $.plot.plugins) {
+ if ($.plot.plugins.hasOwnProperty(index)) {
+ var pluginInfo = $.plot.plugins[index];
+ if (pluginInfo.name === plugin) {
+ return pluginInfo;
+ }
+ }
+ }
+ return null;
+ }
+
+ function initChart() {
+ var settings = $.extend({}, dataOptions, data.amsChartOptions);
+ settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings;
+ var chartData = data.amsChartData,
+ chartDataLoader = data.amsChartDataLoader;
+ if (chartDataLoader) {
+ $.getJSON(chartDataLoader, chartData).done(function (data) {
+ settings = $.extend({}, settings, data.settings);
+ createChart(data.data, settings);
+ });
+ } else {
+ createChart(data, settings);
+ }
+ }
+
+ function createChart(chartData, settings) {
+ chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData;
+ plugin = chart.plot(chartData, settings);
+ ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings);
+ }
+
+ var deferred = [];
+ if (flotPlugins.length > 0) {
+ for (var index in flotPlugins) {
+ if (flotPlugins.hasOwnProperty(index)) {
+ var pluginName = flotPlugins[index];
+ if (!checkPlugin(pluginName)) {
+ deferred.push(ams.getScript(ams.baseURL + 'ext/flot/jquery.flot.' + pluginName + ams.devext + '.js'));
+ }
+ }
+ }
+ }
+ if (deferred.length > 0) {
+ $.when.apply($, deferred).then(function () {
+ initChart();
+ })
+ } else {
+ initChart();
+ }
+ });
+ });
+ });
}
},