X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=testing%2FMCTXWeb%2Fpublic_html%2Fstatic%2Fmctx.graph.js;h=22d14d787db5d11a14b5444aa64827a68363c25c;hb=bd5fabfeabdd16cf38642c8cfb2232aab495de31;hp=e79b6a88b703ba69d79e41ed52b4827d32c3d270;hpb=e0132025a1df98f88b2415e9e5f75ce7304efb33;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 e79b6a8..22d14d7 100644 --- a/testing/MCTXWeb/public_html/static/mctx.graph.js +++ b/testing/MCTXWeb/public_html/static/mctx.graph.js @@ -23,6 +23,15 @@ mctx.graph.chart = null; * 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) { @@ -97,19 +106,19 @@ $.fn.setDevices = function() { }); }; -function setGraphStatus(on, failText) { +function setGraphStatus(on, failText, keep) { if (on) { mctx.graph.running = true; $("#status-text").html(" "); - $("#graph-run").text("Pause"); + $("#graph-run").prop("value", "Pause"); } else { mctx.graph.running = false; if (failText) { $("#status-text").text(failText).addClass("fail"); - } else { + } else if (!keep) { $("#status-text").text("Graph stopped").removeClass("fail"); } - $("#graph-run").text("Run"); + $("#graph-run").prop("value", "Run"); } } @@ -146,6 +155,11 @@ function graphUpdater() { responses.push($.ajax({url : urls[val.urltype], data : parameters}) .done(function(json) { //alert("Hi from " + json.name); + if (!$("#status-text").checkStatus(json)) { + setGraphStatus(false, null, true); //Don't reset text, checkstatus just set it. + return; + } + var dev = val.data; for (var i = 0; i < json.data.length; ++i) { if (dev.length <= 0 || json.data[i][0] > dev[dev.length-1][0]) { @@ -160,29 +174,29 @@ function graphUpdater() { //... When the response is received, then() will happen (I think?) $.when.apply(this, responses).then(function () { - var plot_data = []; - yaxis.each(function() { - //alert("Add " + $(this).val() + " to plot"); - if (xaxis.attr("alt") === "time") { - //alert("Against time"); - plot_data.push(devices[$(this).attr("alt")].data); + if (mctx.graph.running) { + var plot_data = []; + + yaxis.each(function() { + //alert("Add " + $(this).val() + " to plot"); + if (xaxis.attr("alt") === "time") { + //alert("Against time"); + plot_data.push(devices[$(this).attr("alt")].data); + } else { + var result = [] + dataMerge(devices[xaxis.attr("alt")].data, + devices[$(this).attr("alt")].data, result); + plot_data.push(result); + } + }); + + if (mctx.graph.chart !== null) { + mctx.graph.chart.setData(plot_data); + mctx.graph.chart.setupGrid(); + mctx.graph.chart.draw(); } else { - var result = [] - dataMerge(devices[xaxis.attr("alt")].data, - devices[$(this).attr("alt")].data, result); - plot_data.push(result); + mctx.graph.chart = $.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 () {