--- a/viewcalls.php +++ b/viewcalls.php @@ -1,93 +1,111 @@ <?php include('common.inc.php'); $tgid = 44028; +$from = (isset($_REQUEST['from']) ? $_REQUEST['from'] : strtotime("2012-09-12")); +$to = (isset($_REQUEST['to']) ? $_REQUEST['to'] : strtotime("2012-12-12")); include_header("fdds"); +$sth = $conn->prepare('select distinct date_trunc(\'day\', call_timestamp) as rdate from recordings order by rdate'); + +$sth->execute(); +foreach ($sth->fetchAll() as $row) { + echo '<a href="?from=' . strtotime($row['rdate']) . '&to=' . strtotime($row['rdate'] . ' +1 day') . '">' . $row['rdate'] . '</a> <br>'; +} + ?> <div class="span12"> -<table width="100%" height="375px"><tr><td valign="middle"><span class="arrow-w" style="font-size:2em;"><</span></td><td width="95%"><div id="placeholder" style="width:100%;height:375px;"></div></td><td valign="middle"><span class="arrow-e" style="font-size:2em;">></span></td></tr></table> -<script> + <table width="100%" height="775px"> + <tr> + <td valign="middle"><span class="arrow-w" style="font-size:2em;"><</span></td> + <td width="95%"> + <div id="placeholder" style="width:100%;height:575px;"></div> + </td> + <td valign="middle"><span class="arrow-e" style="font-size:2em;">></span></td> + </tr> + </table> + <script> var data = []; var plot; - var options = { + var options = { lines: { show: true }, points: { show: true }, - xaxis: { mode: "time" }, - crosshair: { mode: "x" }, + xaxis: { + mode: 'time', + labelsAngle: 45 + }, + selection: { mode: 'x', fps: 30 }, series: { lines: { show: true }, points: { show: true } }, - grid: { hoverable: true, clickable: true } + mouse: { + track: true, + relative: true + } }; $(function () { - // graph - - - var placeholder = document.getElementById("placeholder"); - - var plot = Flotr.draw(placeholder, data, options); + // graph - $("#placeholder").bind("plothover", function (event, pos, item) { - - if (item) { - if (previousPoint != item.dataIndex) { - previousPoint = item.dataIndex; - - $("#tooltip").remove(); - var x = item.datapoint[0].toFixed(2), - y = item.datapoint[1].toFixed(2); - var d = new Date(); - d.setTime(x); - var time = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() - + " " + d.getUTCHours() + ':'+ (d.getUTCMinutes().toString().length == 1 ? '0'+ d.getMinutes(): d.getUTCMinutes()); - showTooltip(item.pageX, item.pageY, - item.series.label + " at " + time + " = " + y); - } + var placeholder = document.getElementById("placeholder"); + + drawGraph(options); + + // Hook into the 'flotr:select' event. + Flotr.EventAdapter.observe(placeholder, 'flotr:select', function (area) { + + // Draw graph with new area + graph = drawGraph({ + xaxis: {min: area.x1, max: area.x2, mode: 'time', labelsAngle: 45}, + yaxis: {min: area.y1, max: area.y2} + }); + }); + + // When graph is clicked, draw the graph with default area. + Flotr.EventAdapter.observe(placeholder, 'flotr:click', function () { + drawGraph(); + }); + + + getData('<?php echo $tgid; ?>', '<?php echo $from ?>', '<?php echo $to ?>'); + + }); + + // Draw graph with default options, overwriting with passed options + function drawGraph(opts) { + + // Clone the options, so the 'options' variable always keeps intact. + var o = Flotr._.extend(Flotr._.clone(options), opts || {}); + + // Return a new graph. + return Flotr.draw( + placeholder, + data, + o + ); + } + + + function onDataReceived(series) { + data = [] + for (var key in series.data) { + data[data.length] = {label: key, data: series.data[key]}; } - else { - $("#tooltip").remove(); - previousPoint = null; - } - - }); - - getData('<?php echo $tgid; ?>','<?php echo strtotime("10/10/2012") ?>','<?php echo strtotime("10/21/2012") ?>'); - - }); - - function onDataReceived(series) { - data =[] - data[data.length] = series; - - plot =Flotr.draw(placeholder, data, options); - } - function getData(sensorID,from,to) { - $.ajax({ - url: "<?php echo $basePath; ?>calls.json.php?action=graph&tgid="+sensorID+"&from="+from+"&to="+to, - method: 'GET', - dataType: 'json', - success: onDataReceived - }); - } + drawGraph(options); + } + function getData(sensorID, from, to) { + $.ajax({ + url: "<?php echo $basePath; ?>calls.json.php?action=graphcount&tgid=" + sensorID + "&from=" + from + "&to=" + to, + method: 'GET', + dataType: 'json', + success: onDataReceived + }); + } - function showTooltip(x, y, contents) { - $('<div id="tooltip">' + contents + '</div>').css( { - position: 'absolute', - display: 'none', - top: y + 5, - left: x + 5, - border: '1px solid #fdd', - padding: '2px', - 'background-color': '#fee', - opacity: 0.80 - }).appendTo("body").fadeIn(200); - } - -</script> + </script> </div> <?php include_footer(); ?> +