1945 |
1945 |
1946 function _submitAjaxForm(form, options) { |
1946 function _submitAjaxForm(form, options) { |
1947 |
1947 |
1948 var button, |
1948 var button, |
1949 buttonData, |
1949 buttonData, |
1950 buttonTarget; |
1950 buttonTarget, |
1951 var data = form.data(); |
1951 data = form.data(), |
1952 var formOptions = data.amsFormOptions; |
1952 formOptions = data.amsFormOptions, |
1953 var formData; |
1953 formData, |
1954 var formDataCallback; |
1954 formDataCallback; |
1955 |
1955 |
1956 var progressHandler; |
1956 var progressHandler, |
1957 var progressInterval; |
1957 progressInterval, |
1958 var progressCallback; |
1958 progressCallback, |
1959 var progressEndCallback; |
1959 progressEndCallback; |
1960 |
1960 |
1961 // Inner progress status handler |
1961 // Inner progress status handler |
1962 function _getProgress(handler, progress_id) { |
1962 function _getProgress(handler, progress_id) { |
1963 |
1963 |
1964 var timeout; |
1964 var timeout; |
2127 success: function(result, status, request, form) { |
2127 success: function(result, status, request, form) { |
2128 var modal = $(form).parents('.modal-dialog'); |
2128 var modal = $(form).parents('.modal-dialog'); |
2129 if (modal.exists()) { |
2129 if (modal.exists()) { |
2130 ams.dialog && ams.dialog.close(form); |
2130 ams.dialog && ams.dialog.close(form); |
2131 } else { |
2131 } else { |
2132 var callback; |
2132 var callback, |
2133 var button = form.data('ams-submit-button'); |
2133 button = form.data('ams-submit-button'); |
2134 if (button) { |
2134 if (button) { |
2135 callback = button.data('ams-form-submit-callback'); |
2135 callback = button.data('ams-form-submit-callback'); |
2136 } |
2136 } |
2137 if (!callback) { |
2137 if (!callback) { |
2138 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
2138 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
2414 _checkSubmitValidators: function(form) { |
2414 _checkSubmitValidators: function(form) { |
2415 var validators = ams.form._getSubmitValidators(form); |
2415 var validators = ams.form._getSubmitValidators(form); |
2416 if (!validators.length) { |
2416 if (!validators.length) { |
2417 return true; |
2417 return true; |
2418 } |
2418 } |
2419 var output = []; |
2419 var output = [], |
2420 var result = true; |
2420 result = true; |
2421 for (var index=0; index < validators.length; index++) { |
2421 for (var index=0; index < validators.length; index++) { |
2422 var validator = validators[index]; |
2422 var validator = validators[index], |
2423 var source = validator[0]; |
2423 source = validator[0], |
2424 var handler = validator[1]; |
2424 handler = validator[1], |
2425 var validatorResult = ams.executeFunctionByName(handler, form, source); |
2425 validatorResult = ams.executeFunctionByName(handler, form, source); |
2426 if (validatorResult === false) { |
2426 if (validatorResult === false) { |
2427 result = false; |
2427 result = false; |
2428 } else if (typeof(validatorResult) === 'string') { |
2428 } else if (typeof(validatorResult) === 'string') { |
2429 output.push(validatorResult); |
2429 output.push(validatorResult); |
2430 } else if (result.length && (result.length > 0)) { |
2430 } else if (result.length && (result.length > 0)) { |
5059 * Flot charts |
5059 * Flot charts |
5060 */ |
5060 */ |
5061 chart: function(element) { |
5061 chart: function(element) { |
5062 var charts = $('.chart', element); |
5062 var charts = $('.chart', element); |
5063 if (charts.length > 0) { |
5063 if (charts.length > 0) { |
5064 ams.ajax && ams.ajax.check($.fn.plot, |
5064 ams.ajax && ams.ajax.check([window.Flot, $.color], |
5065 ams.baseURL + 'flot/jquery.flot' + ams.devext + '.js', |
5065 [ams.baseURL + 'ext/flot/jquery.canvaswrapper' + ams.devext + '.js', |
5066 function() { |
5066 ams.baseURL + 'ext/flot/jquery.colorhelpers' + ams.devext + '.js'], |
5067 charts.each(function() { |
5067 function () { |
5068 |
5068 ams.ajax.check($.fn.plot, |
5069 function checkPlugin(plugin) { |
5069 ams.baseURL + 'ext/flot/jquery.flot' + ams.devext + '.js', |
5070 for (var index in $.plot.plugins) { |
5070 function () { |
5071 if ($.plot.plugins.hasOwnProperty(index)) { |
5071 charts.each(function () { |
5072 var pluginInfo = $.plot.plugins[index]; |
5072 |
5073 if (pluginInfo.name === plugin) { |
5073 var chart = $(this), |
5074 return pluginInfo; |
5074 data = chart.data(), |
5075 } |
5075 dataOptions = {}, |
5076 } |
5076 plugin, |
5077 } |
5077 flotPlugins = (data.amsChartPlugins || '').split(/\s+/); |
5078 return null; |
5078 |
5079 } |
5079 function checkPlugin(plugin) { |
5080 |
5080 for (var index in $.plot.plugins) { |
5081 var chart = $(this); |
5081 if ($.plot.plugins.hasOwnProperty(index)) { |
5082 var data = chart.data(); |
5082 var pluginInfo = $.plot.plugins[index]; |
5083 var dataOptions = {}; |
5083 if (pluginInfo.name === plugin) { |
5084 var plugins = (data.amsChartPlugins || '').split(/\s+/); |
5084 return pluginInfo; |
5085 if (plugins.length > 0) { |
5085 } |
5086 for (var index in plugins) { |
5086 } |
5087 if (plugins.hasOwnProperty(index)) { |
5087 } |
5088 var pluginName = plugins[index]; |
5088 return null; |
5089 if (!checkPlugin(pluginName)) { |
5089 } |
5090 ams.getScript(ams.baseURL + 'flot/jquery.flot.' + pluginName + ams.devext + '.js'); |
5090 |
5091 } |
5091 function initChart() { |
5092 } |
5092 var settings = $.extend({}, dataOptions, data.amsChartOptions); |
5093 } |
5093 settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings; |
5094 } |
5094 var chartData = data.amsChartData, |
5095 var settings = $.extend({}, dataOptions, data.amsChartOptions); |
5095 chartDataLoader = data.amsChartDataLoader; |
5096 settings = ams.executeFunctionByName(data.amsChartInitCallback, chart, settings) || settings; |
5096 if (chartDataLoader) { |
5097 var chartData = data.amsChartData; |
5097 $.getJSON(chartDataLoader, chartData).done(function (data) { |
5098 chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData; |
5098 settings = $.extend({}, settings, data.settings); |
5099 var plugin = chart.plot(chartData, settings); |
5099 createChart(data.data, settings); |
5100 ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings); |
5100 }); |
5101 }); |
5101 } else { |
5102 }); |
5102 createChart(data, settings); |
|
5103 } |
|
5104 } |
|
5105 |
|
5106 function createChart(chartData, settings) { |
|
5107 chartData = ams.executeFunctionByName(data.amsChartInitData, chart, chartData) || chartData; |
|
5108 plugin = chart.plot(chartData, settings); |
|
5109 ams.executeFunctionByName(data.amsChartAfterInitCallback, chart, plugin, settings); |
|
5110 } |
|
5111 |
|
5112 var deferred = []; |
|
5113 if (flotPlugins.length > 0) { |
|
5114 for (var index in flotPlugins) { |
|
5115 if (flotPlugins.hasOwnProperty(index)) { |
|
5116 var pluginName = flotPlugins[index]; |
|
5117 if (!checkPlugin(pluginName)) { |
|
5118 deferred.push(ams.getScript(ams.baseURL + 'ext/flot/jquery.flot.' + pluginName + ams.devext + '.js')); |
|
5119 } |
|
5120 } |
|
5121 } |
|
5122 } |
|
5123 if (deferred.length > 0) { |
|
5124 $.when.apply($, deferred).then(function () { |
|
5125 initChart(); |
|
5126 }) |
|
5127 } else { |
|
5128 initChart(); |
|
5129 } |
|
5130 }); |
|
5131 }); |
|
5132 }); |
5103 } |
5133 } |
5104 }, |
5134 }, |
5105 |
5135 |
5106 /** |
5136 /** |
5107 * Sparkline graphs |
5137 * Sparkline graphs |