diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-11-04 11:56:09 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:59 +0100 |
commit | de97b55bc330568ca68a50a252cccbb240480f9c (patch) | |
tree | ad1b58164c37a702a7a2acd21a57396609b46804 /ishtar_common/static/js/ishtar.js | |
parent | 697966da54cbfc76836abfba3816e3f4848fb53c (diff) | |
download | Ishtar-de97b55bc330568ca68a50a252cccbb240480f9c.tar.bz2 Ishtar-de97b55bc330568ca68a50a252cccbb240480f9c.zip |
Syndication - stats UI
Diffstat (limited to 'ishtar_common/static/js/ishtar.js')
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 84 |
1 files changed, 51 insertions, 33 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 8a8cbb8e9..b865c7153 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -1501,12 +1501,17 @@ var search_get_query_data = function(query_vars, table_name){ }; var registered_stats = false; +var extra_list = new Array(); +var sources = new Array(); var register_stats = function(query_vars, name, source){ if (registered_stats) return; registered_stats = true; - $("#stats-form-" + name + " select").on('change', function() { - _stats_submit_search(query_vars, name, source); + $("#stats-form-" + name + " select").on('change', + function() { + for (idx in extra_list){ + _stats_submit_search(query_vars, name, sources[idx], extra_list[idx]); + } } ); $('#chart-img-display-' + name).click(function(){ @@ -1520,11 +1525,12 @@ var register_stats = function(query_vars, name, source){ }); }; -var _stats_submit_search = function(query_vars, name, source){ +var _stats_submit_search = function(query_vars, name, source, extra){ + if (!extra) extra = ""; $('.modal-progress').modal('show'); var data = search_get_query_data(query_vars, name); - register_stats(query_vars, name, source); + register_stats(query_vars, name); var url = source + "json-stats?submited=1&" + data; var modality_1 = $("#stats_modality_1-" + name).val(); @@ -1537,7 +1543,8 @@ var _stats_submit_search = function(query_vars, name, source){ var timestamp = Math.floor(Date.now() / 1000); var stats_id = "stats-" + timestamp; $("#tab-content-stats-" + name).html( - render_stats(data, name)); + render_stats(data, name, extra) + ); if ($('.modal-progress').length > 0){ $('.modal-progress').modal('hide'); } @@ -1547,7 +1554,7 @@ var _stats_submit_search = function(query_vars, name, source){ var stats_showmarker = false; var stats_incompatible_modality = "This graph type accept only one modality."; -var stats_current_graph; +var stats_current_graph = new Array(); var _render_stats_empty = function(stats_values, name){ $("#charts-" + name).hide(); @@ -1563,7 +1570,7 @@ var _render_stats_too_many_values = function(name){ $("#stats-error-" + name).show(); } -var _render_stats_table = function(stats_values, name){ +var _render_stats_table = function(stats_values, name, extra){ var modality_1 = $("#stats_modality_1-" + name).val(); var modality_2 = $("#stats_modality_2-" + name).val(); var rows = new Array(); @@ -1625,21 +1632,23 @@ var _render_stats_table = function(stats_values, name){ } html += "</tbody></table>"; - $("#charts-" + name).hide(); - $("#stats-empty-" + name).hide(); - $("#stats-error-" + name).hide(); - $("#stats-table-content-" + name).html(html); - $("#stats-table-" + name).show(); + if (!extra) extra = "default"; + $("#charts-" + name + "-" + extra).hide(); + $("#stats-empty-" + name + "-" + extra).hide(); + $("#stats-error-" + name + "-" + extra).hide(); + $("#stats-table-content-" + name + "-" + extra).html(html); + $("#stats-table-" + name + "-" + extra).show(); var encoded_uri = encodeURI("data:text/csv;charset=utf-8,") + encodeURIComponent(Papa.unparse(rows)); - $("#stats-table-csv-" + name).attr("href", encoded_uri); - $("#stats-table-csv-" + name).attr("download", "ishtar-stats.csv"); + $("#stats-table-csv-" + name + "-" + extra).attr("href", encoded_uri); + $("#stats-table-csv-" + name + "-" + extra).attr("download", "ishtar-stats.csv"); }; var MAX_STATS_GRAPH_VALUES = 100; var MAX_STATS_GRAPH_MODALITY_VALUES = 100; +var jqvalues = new Array(); -var render_stats = function(stats_values, name){ +var render_stats = function(stats_values, name, extra){ var stats_type = $("#stats_renderer-" + name).val(); if (!stats_values || !stats_values['data'] @@ -1649,11 +1658,12 @@ var render_stats = function(stats_values, name){ stats_values = stats_values['data']; - if (stats_current_graph){ - stats_current_graph.destroy(); + if (!extra) extra = "default"; + if (stats_current_graph[extra]){ + stats_current_graph[extra].destroy(); } if (stats_type == "table"){ - return _render_stats_table(stats_values, name); + return _render_stats_table(stats_values, name, extra); } if (stats_values.length > MAX_STATS_GRAPH_VALUES){ @@ -1667,10 +1677,10 @@ var render_stats = function(stats_values, name){ } } - $("#stats-table-" + name).hide(); - $("#stats-empty-" + name).hide(); - $("#stats-error-" + name).hide(); - $("#charts-" + name).show(); + $("#stats-table-" + name + "-" + extra).hide(); + $("#stats-empty-" + name + "-" + extra).hide(); + $("#stats-error-" + name + "-" + extra).hide(); + $("#charts-" + name + "-" + extra).show(); var modality_1 = $("#stats_modality_1-" + name).val(); var modality_2 = $("#stats_modality_2-" + name).val(); stats_xaxis = { @@ -1700,7 +1710,7 @@ var render_stats = function(stats_values, name){ if (stats_values.length < 25){ stats_showmarker = true; } - var jqvalues = new Array(); + jqvalues[extra] = new Array(); var ticks = new Array(); var series = new Array(); var series_conf = new Array(); @@ -1722,16 +1732,16 @@ var render_stats = function(stats_values, name){ fill_values.push(0); } } - jqvalues.push(fill_values); + jqvalues[extra].push(fill_values); } current_serie_values.push(serie_value); var current_value = serie_values[inner_idx][1]; - jqvalues[series.indexOf(serie_value)].push(current_value); + jqvalues[extra][series.indexOf(serie_value)].push(current_value); } // put 0 for missing series for this item for (idx_serie in series){ if (current_serie_values.indexOf(series[idx_serie]) == -1){ - jqvalues[series.indexOf(series[idx_serie])].push(0); + jqvalues[extra][series.indexOf(series[idx_serie])].push(0); } } } @@ -1740,7 +1750,7 @@ var render_stats = function(stats_values, name){ for (idx in stats_values){ stats_values[idx][0] = text_truncate(stats_values[idx][0], 40); } - jqvalues = [stats_values]; + jqvalues[extra] = [stats_values]; series.push("Total"); if (stats_type != "pie"){ legend_conf = {}; @@ -1791,14 +1801,14 @@ var render_stats = function(stats_values, name){ }; if (stats_type != "pie"){ stats_options["cursor"] = { - show: true, - zoom: true, - showTooltip: false + show: true, + zoom: true, + showTooltip: false } } - - stats_current_graph = $.jqplot('chart-' + name, - jqvalues, stats_options + stats_current_graph[extra] = $.jqplot( + 'chart-' + name + "-" + extra, + jqvalues[extra], stats_options ); }; @@ -1901,4 +1911,12 @@ var inline_register_add_button = function(slug){ inline_total_forms.setAttribute('value', `${inline_form_num+1}`); } ); +}; + +var redraw_plots = function(name, key){ + if (stats_current_graph && stats_current_graph[key]){ + $('#chart-' + name + "-" + key).height($('#charts-' + name + "-" + key).height()*0.96 - 100); + $('#chart-' + name + "-" + key).width($('#charts-' + name + "-" + key).width()* 0.96); + stats_current_graph[key].replot({resetAxes: true}); + } };
\ No newline at end of file |