X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=testing%2FMCTXWeb%2Fpublic_html%2Fstatic%2Fmctx.graph.js;h=4bb3e0632a904ea47908b54bf512fdc5a8213e8b;hb=fc0dc3b827eeff91373db42a78a098200cbf8fa6;hp=687db8413744dc05699a3b4d8d2f5c4de28c223b;hpb=450583abb79d5fedb0debabed073d9b191dac80c;p=matches%2FMCTX3420.git diff --git a/testing/MCTXWeb/public_html/static/mctx.graph.js b/testing/MCTXWeb/public_html/static/mctx.graph.js index 687db84..4bb3e06 100644 --- a/testing/MCTXWeb/public_html/static/mctx.graph.js +++ b/testing/MCTXWeb/public_html/static/mctx.graph.js @@ -15,6 +15,7 @@ mctx.graph.dependent = null; mctx.graph.independent = null; mctx.graph.timer = null; mctx.graph.running = false; +mctx.graph.chart = null; /** * Helper - Calculate pairs of (dependent, independent) values @@ -22,6 +23,15 @@ mctx.graph.running = false; * Appends each value pair to the result * @returns result */ +/** + * Helper - Calculate pairs of (dependent, independent) values + * Given input as (time, value) pairs for dependent and independent + * Appends each value pair to the result + * @param {array[][]} dependent Dependent data to be correlated with independent + * @param {array[][]} independent Independent data + * @param {array[][]} result Storage location + * @returns {dataMerge.result} + */ function dataMerge(dependent, independent, result) { var j = 0; for (var i = 0; i < dependent.length-1; ++i) { @@ -89,13 +99,29 @@ $.fn.setDevices = function() { $("#xaxis").deployDevices("radio", false, 'xaxis'); $("#yaxis").deployDevices("checkbox", true, 'yaxis'); $("#current_time").val(data.running_time); - //Add event listeners for when the inputs are changed + //Add event listeners for when the $(".change input").change(function () { $("#graph").setGraph(); }); }); }; +function setGraphStatus(on, failText) { + if (on) { + mctx.graph.running = true; + $("#status-text").html(" "); + $("#graph-run").text("Pause"); + } else { + mctx.graph.running = false; + if (failText) { + $("#status-text").text(failText).addClass("fail"); + } else { + $("#status-text").text("Graph stopped").removeClass("fail"); + } + $("#graph-run").text("Run"); + } +} + function graphUpdater() { var urls = { 'sensors' : mctx.graph.api.sensors, @@ -103,7 +129,6 @@ function graphUpdater() { } var updater = function () { - var time_limit = 20; var responses = []; var ctime = $("#current_time"); @@ -114,17 +139,17 @@ function graphUpdater() { var devices = mctx.graph.devices; if (xaxis.size() < 1 || yaxis.size() < 1) { - mctx.graph.running = false; + setGraphStatus(false, "No x or y axis selected."); return; } $.each(devices, function(key, val) { if (val.urltype in urls) { var parameters = {id : val.id}; - if (start_time != null) { + if (start_time !== null) { parameters.start_time = start_time; } - if (end_time != null) { + if (end_time !== null) { parameters.end_time = end_time; } responses.push($.ajax({url : urls[val.urltype], data : parameters}) @@ -152,26 +177,31 @@ function graphUpdater() { plot_data.push(devices[$(this).attr("alt")].data); } else { var result = [] - dataMerge(devices[xaxis.attr("alt")].data, devices[$(this).attr("alt")].data, result); - /* - var astr = "["; - for (var i = 0; i < result.length; ++i) - astr += "[" + result[i][0] + "," + result[i][1] + "]" + ","; - astr += "]"; - alert(astr); - */ + dataMerge(devices[xaxis.attr("alt")].data, + devices[$(this).attr("alt")].data, result); plot_data.push(result); } }); - $.plot("#graph", plot_data); + //$.plot("#graph", plot_data); + if (mctx.graph.chart !== null) { + mctx.graph.chart.setData(plot_data); + mctx.graph.chart.setupGrid(); + mctx.graph.chart.draw(); + } else { + mctx.graph.chart = $.plot("#graph", plot_data); + } if (mctx.graph.running) { mctx.graph.timer = setTimeout(updater, 1000); } - }, function () {mctx.graph.running=false; alert("Graph crashed");}); + }, function () { + setGraphStatus("Connection issue - graph stopped."); + //This will always happen when a user closes the page + //alert("Graph crashed"); + }); }; - mctx.graph.running = true; + setGraphStatus(true); updater(); return this; } @@ -186,6 +216,7 @@ $.fn.setGraph = function () { var yaxis = $("#yaxis input[name=yaxis]:checked"); if (xaxis.size() < 1 || yaxis.size() < 1) { //nothing to plot... + setGraphStatus(false, "No x or y axis selected."); return; } @@ -219,6 +250,7 @@ $.fn.setGraph = function () { if (!mctx.graph.running) { $("#graph-run").val("Pause"); + $("#status-text").text("") graphUpdater(); } @@ -226,14 +258,10 @@ $.fn.setGraph = function () { }; $.fn.runButton = function() { - //alert($(this).val()); - if ($(this).val() === "Run") { - $("#graph").setGraph(); - $(this).val("Pause"); - } - else { - mctx.graph.running = false; + if (mctx.graph.running) { + setGraphStatus(false); clearTimeout(mctx.graph.timer); - $(this).val("Run"); + } else { + $("#graph").setGraph(); } };