Changeset 9643


Ignore:
Timestamp:
06/18/13 17:24:29 (6 years ago)
Author:
pfleck
Message:

#2063:
Added time selection for charts.
Implemented redrawing of charts using Ajax.

Location:
branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/App_Code/ChartHelper.cshtml

    r9628 r9643  
    5050            },
    5151            dataRenderer: ajaxDataRenderer,
    52             dataRendererOptions: {
    53                 unusedOptionalUrl: "@url"
    54             },
    5552            axes: {
    5653                xaxis: {
     
    9794    </script>
    9895}
     96
     97@helper RefreshChart(string destinationTag, string url, string startDateVar, string endDateVar) {
     98    @:$.ajax({url: "@(new HtmlString(url))?start=" + @startDateVar + "&end=" + @endDateVar, datatype: "json", success: function(result) {
     99    @:    for (var i = 0; i < result.length; i++) {
     100    @:        @(destinationTag)Plot.series[i].data = result[i];
     101    @:    }
     102    @:    @(destinationTag)Plot.replot( {resetAxes: true} )
     103    @:}});
     104}
  • branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Controllers/ChartDataController.cs

    r9628 r9643  
    8484
    8585      return from ci in db.FactClientInfos
    86              where ci.DimTime.Time > start && ci.DimTime.Time < end
    87              group ci by ci.DimTime.Time into timeGroup
     86             where ci.Time > start && ci.Time < end
     87             group ci by ci.Time into timeGroup
    8888             orderby timeGroup.Key
    8989             select timeGroup;
     
    9393      return selectors.Select(selector =>
    9494        data.Select(x => new[] {
    95           timeSelector(x).ToString("yyyy-MM-dd HH:mm"),
     95          //timeSelector(x).ToString("yyyy-MM-dd HH:mm"),
     96          timeSelector(x).ToUnixTimestamp(),
    9697          selector(x)
    9798        })
     
    99100    }
    100101  }
     102
     103  public static class DateTimeExtensions {
     104    public static long ToUnixTimestamp(this DateTime d) {
     105      var duration = d - new DateTime(1970, 1, 1, 0, 0, 0);
     106
     107      return (long)duration.TotalMilliseconds;
     108    }
     109  }
    101110}
  • branches/HiveStatistics/sources/HeuristicLab.Services.Hive.Statistics/3.3/Views/Home/Index.cshtml

    r9628 r9643  
    3636</section>
    3737
     38<fieldset>
     39        <legend>Range</legend>
     40        <ol>
     41            <li>Start</li>
     42            <li>
     43                @Html.TextBox("Start", (DateTime.Now - new TimeSpan(1, 0, 0, 0)).ToString("yyyy-MM-dd"), new { @class = "date" })
     44            </li>
     45            <li>End</li>
     46            <li>
     47                @Html.TextBox("End", DateTime.Now.ToString("yyyy-MM-dd"), new { @class = "date" })
     48            </li>
     49        </ol>
     50        <button id="refresh">Refresh</button>
     51    </fieldset>
     52
    3853<section class="charts">
    3954    <div id="AverageCpuUtilization"></div>
     
    4459@section Styles {
    4560    @Styles.Render("~/Styles/jqPlot/jquery.jqplot")
     61    @Styles.Render("~/Content/themes/base/css")
    4662}
    4763
    4864@section Scripts {
     65    @Scripts.Render("~/bundles/jqueryui")
     66    <script>
     67    $("#refresh").button({
     68        icons: {
     69            primary: "ui-icon-refresh"
     70        }
     71    });
     72    </script>
     73
    4974    @Scripts.Render("~/Scripts/jqPlot/jquery.jqplot")
    5075    @ChartHelper.AjaxDataRenderer()
     
    6893        title: "Memory / Used Memory (GB)",
    6994        minY: 0)
     95
     96    <script>
     97        $(document).ready(function () {
     98            $(".date").datepicker({
     99                dateFormat: "yy-mm-dd",
     100                onSelect: function () { refreshCharts(); }
     101            });
     102
     103            $("#refresh").click(function() {
     104                refreshCharts();
     105            });
     106
     107           
     108        });
     109       
     110        function refreshCharts() {
     111            var startDate = $('#Start').val();
     112            var endDate = $('#End').val();
     113           
     114                        @*
     115            var url = "@Url.Action("AverageCpuUtilization", "ChartData")?start=" + startDate + "&end" + endDate;
     116           
     117            @ChartHelper.LineChartTime(
     118                "AverageCpuUtilization",
     119                "url",
     120                title: "Avg. CPU Utilization History of all Slaves",
     121                axisYFormat: "%.2f%%",
     122                minY: 0, maxY: 100)
     123            *@
     124
     125            @ChartHelper.RefreshChart("AverageCpuUtilization", Url.Action("AverageCpuUtilization", "ChartData"), "startDate", "endDate")
     126            @ChartHelper.RefreshChart("UsedCores", Url.Action("UsedCores", "ChartData"), "startDate", "endDate")
     127            @ChartHelper.RefreshChart("UsedMemory", Url.Action("UsedMemory", "ChartData"), "startDate", "endDate")
     128        }
     129    </script>
    70130}
Note: See TracChangeset for help on using the changeset viewer.