5083 ams.baseURL + 'ext/flot/jquery.colorhelpers' + ams.devext + '.js'], |
5083 ams.baseURL + 'ext/flot/jquery.colorhelpers' + ams.devext + '.js'], |
5084 function () { |
5084 function () { |
5085 ams.ajax.check($.plot, |
5085 ams.ajax.check($.plot, |
5086 ams.baseURL + 'ext/flot/jquery.flot' + ams.devext + '.js', |
5086 ams.baseURL + 'ext/flot/jquery.flot' + ams.devext + '.js', |
5087 function () { |
5087 function () { |
5088 ams.ajax.check($.plot.uiConstants, |
5088 |
5089 ams.baseURL + 'ext/flot/jquery.flot.uiConstants' + ams.devext + '.js', |
5089 var flotPlugins = new Set(); |
5090 function() { |
5090 charts.each(function() { |
5091 charts.each(function () { |
5091 var chart = $(this), |
5092 |
5092 data = chart.data(), |
5093 var chart = $(this), |
5093 chartPlugins = (data.amsChartPlugins || '').split(/\s+/); |
5094 data = chart.data(), |
5094 $.each(chartPlugins, function(idx, elt) { |
5095 dataOptions = {}, |
5095 flotPlugins.add(elt); |
5096 plugin, |
5096 }); |
5097 flotPlugins = (data.amsChartPlugins || '').split(/\s+/); |
5097 }); |
5098 |
5098 |
5099 function checkPlugin(plugin) { |
5099 function checkPlugin(plugin) { |
5100 for (var index in $.plot.plugins) { |
5100 for (var index in $.plot.plugins) { |
5101 if ($.plot.plugins.hasOwnProperty(index)) { |
5101 if ($.plot.plugins.hasOwnProperty(index)) { |
5102 var pluginInfo = $.plot.plugins[index]; |
5102 var pluginInfo = $.plot.plugins[index]; |
5103 if (pluginInfo.name === plugin) { |
5103 if (pluginInfo.name === plugin) { |
5104 return pluginInfo; |
5104 return pluginInfo; |
5105 } |
|
5106 } |
|
5107 } |
|
5108 return null; |
|
5109 } |
5105 } |
5110 |
5106 } |
5111 function initChart() { |
5107 } |
5112 var settings = $.extend({}, dataOptions, data.amsChartOptions); |
5108 return null; |
5113 settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings; |
5109 } |
5114 var chartData = data.amsChartData, |
5110 |
5115 chartDataLoader = data.amsChartDataLoader; |
5111 var deferred = []; |
5116 if (chartDataLoader) { |
5112 for (var pluginName of flotPlugins.values()) { |
5117 $.getJSON(chartDataLoader, chartData).done(function (data) { |
5113 if (!checkPlugin(pluginName)) { |
5118 settings = $.extend({}, settings, data.settings); |
5114 deferred.push(ams.getScript(ams.baseURL + 'ext/flot/jquery.flot.' + pluginName + ams.devext + '.js')); |
5119 createChart(data.data, settings); |
5115 } |
5120 }); |
5116 } |
5121 } else { |
5117 |
5122 createChart(data, settings); |
5118 $.when.apply($, deferred).then(function() { |
5123 } |
5119 |
5124 } |
5120 charts.each(function() { |
5125 |
5121 |
5126 function createChart(chartData, settings) { |
5122 var chart = $(this), |
5127 chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData; |
5123 data = chart.data(), |
5128 plugin = chart.plot(chartData, settings); |
5124 dataOptions = {}; |
5129 ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings); |
5125 |
5130 } |
5126 function createChart(chartData, settings) { |
5131 |
5127 chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData; |
5132 var deferred = []; |
5128 var plugin = chart.plot(chartData, settings); |
5133 if (flotPlugins.length > 0) { |
5129 ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings); |
5134 for (var index in flotPlugins) { |
5130 } |
5135 if (flotPlugins.hasOwnProperty(index)) { |
5131 |
5136 var pluginName = flotPlugins[index]; |
5132 var settings = $.extend({}, dataOptions, data.amsChartOptions); |
5137 if (!checkPlugin(pluginName)) { |
5133 settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings; |
5138 deferred.push(ams.getScript(ams.baseURL + 'ext/flot/jquery.flot.' + pluginName + ams.devext + '.js')); |
5134 var chartData = data.amsChartData, |
5139 } |
5135 chartDataLoader = data.amsChartDataLoader; |
5140 } |
5136 if (chartDataLoader) { |
5141 } |
5137 $.getJSON(chartDataLoader, chartData).done(function(data) { |
5142 } |
5138 settings = $.extend({}, settings, data.settings); |
5143 if (deferred.length > 0) { |
5139 createChart(data.data, settings); |
5144 $.when.apply($, deferred).then(function () { |
5140 }); |
5145 initChart(); |
5141 } else { |
5146 }) |
5142 createChart(chartData, settings); |
5147 } else { |
5143 } |
5148 initChart(); |
5144 |
5149 } |
5145 }); |
5150 }); |
|
5151 }); |
5146 }); |
5152 }); |
5147 }); |
5153 }); |
5148 }); |
5154 } |
5149 } |
5155 }, |
5150 }, |