diff -r fa5083469321 -r 5ea89334a159 src/myams/resources/js/myams.js --- a/src/myams/resources/js/myams.js Fri Dec 11 08:47:56 2020 +0100 +++ b/src/myams/resources/js/myams.js Fri Dec 11 08:52:51 2020 +0100 @@ -2,7 +2,7 @@ * MyAMS * « My Application Management Skin » * - * Version: 0.1.43 (rev. 1) + * Version: 0.1.44 (rev. 1) * A bootstrap based application/administration skin * * Custom administration and application skin tools @@ -5085,69 +5085,64 @@ ams.ajax.check($.plot, ams.baseURL + 'ext/flot/jquery.flot' + ams.devext + '.js', function () { - ams.ajax.check($.plot.uiConstants, - ams.baseURL + 'ext/flot/jquery.flot.uiConstants' + 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; + + var flotPlugins = new Set(); + charts.each(function() { + var chart = $(this), + data = chart.data(), + chartPlugins = (data.amsChartPlugins || '').split(/\s+/); + $.each(chartPlugins, function(idx, elt) { + flotPlugins.add(elt); + }); + }); + + 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; } - - 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(); - } - }); + } + } + return null; + } + + var deferred = []; + for (var pluginName of flotPlugins.values()) { + if (!checkPlugin(pluginName)) { + deferred.push(ams.getScript(ams.baseURL + 'ext/flot/jquery.flot.' + pluginName + ams.devext + '.js')); + } + } + + $.when.apply($, deferred).then(function() { + + charts.each(function() { + + var chart = $(this), + data = chart.data(), + dataOptions = {}; + + function createChart(chartData, settings) { + chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData; + var plugin = chart.plot(chartData, settings); + ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings); + } + + 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(chartData, settings); + } + + }); }); }); });