diff options
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  | 
