X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=share%2Fcollection.js;h=2cb6f306e28c841e2e75d8bb8b1a6bb05ff69f78;hp=4aacdd1e034d99d6c892cda61d3b717712042856;hb=202f278d38aaa14f73c7975706a67a19465ea3e9;hpb=f6521a3206ca097ab97112fc7306ce751630272a diff --git a/share/collection.js b/share/collection.js index 4aacdd1..2cb6f30 100644 --- a/share/collection.js +++ b/share/collection.js @@ -1,3 +1,174 @@ +var c4 = +{ + instances: [] +}; + +function graph_get_params (graph) +{ + var graph_selector = graph.graph_selector; + var inst_selector = graph.instance_selector; + var selector = {}; + + if (graph_selector.host == inst_selector.host) + { + selector.host = graph_selector.host; + } + else + { + selector.graph_host = graph_selector.host; + selector.inst_host = inst_selector.host; + } + + if (graph_selector.plugin == inst_selector.plugin) + { + selector.plugin = graph_selector.plugin; + } + else + { + selector.graph_plugin = graph_selector.plugin; + selector.inst_plugin = inst_selector.plugin; + } + + if (graph_selector.plugin_instance == inst_selector.plugin_instance) + { + selector.plugin_instance = graph_selector.plugin_instance; + } + else + { + selector.graph_plugin_instance = graph_selector.plugin_instance; + selector.inst_plugin_instance = inst_selector.plugin_instance; + } + + if (graph_selector.type == inst_selector.type) + { + selector.type = graph_selector.type; + } + else + { + selector.graph_type = graph_selector.type; + selector.inst_type = inst_selector.type; + } + + if (graph_selector.type_instance == inst_selector.type_instance) + { + selector.type_instance = graph_selector.type_instance; + } + else + { + selector.graph_type_instance = graph_selector.type_instance; + selector.inst_type_instance = inst_selector.type_instance; + } + + return (selector); +} /* graph_get_params */ + +function ident_clone (ident) +{ + var ret = {}; + + ret.host = ident.host; + ret.plugin = ident.plugin; + ret.plugin_instance = ident.plugin_instance; + ret.type = ident.type; + ret.type_instance = ident.type_instance; + + return (ret); +} /* ident_clone */ + +function json_graph_get_def (graph) +{ + if (!graph.def) + { + var params = ident_clone (graph.graph_selector); + params.action = "graph_def_json"; + + $.ajax({ + url: "collection.fcgi", + async: false, + dataType: 'json', + data: params, + success: function (data) + { + if (!data) + return; + + graph.def = data; + }}); + } + + if (graph.def) + return (graph.def); + return; +} /* json_graph_get_def */ + +function json_graph_update (index) +{ + var graph; + var def; + var params; + + graph = c4.instances[index]; + if (!graph) + return; + + def = json_graph_get_def (graph); + if (!def) + return; + + if (!graph.raphael) + { + graph.raphael = Raphael ("c4-graph" + index); + } + + params = graph_get_params (graph); + params.action = "graph_data_json"; + params.begin = graph.begin; + params.end = graph.end; + + $.getJSON ("collection.fcgi", params, + function (data) + { + var x_data = []; + var y_data = []; + var i; + + if (!data) + return; + + for (i = 0; i < data.length; i++) + { + var ds = data[i]; + + var j; + var x = []; + var y = []; + + for (j = 0; j < ds.data.length; j++) + { + var dp = ds.data[j]; + var t = dp[0]; + var v = dp[1]; + + if (v == null) + continue; + + x.push (t); + y.push (v); + } + + x_data.push (x); + y_data.push (y); + } + + graph.raphael.clear (); + if (def.title) + graph.raphael.g.text (250, 15, def.title); + if (def.vertical_label) + graph.raphael.g.text (5, 100, def.vertical_label).rotate (270); + graph.raphael.g.linechart(50, 25, 500, 150, x_data, y_data, {axis: "0 0 1 1"}); + }); /* getJSON */ +} /* json_graph_update */ + function format_instance(inst) { return ("
  • " ); }); + + var i; + for (i = 0; i < c4.instances.length; i++) + { + json_graph_update (i); + } }); /* vim: set sw=2 sts=2 et fdm=marker : */