blob: 214f161ce6de5cee5c5d11c70407bd3619e466c5 [file]
@extends('layout.basic')
@section('page-header')
@parent
{{ HTML::style('css/admin.css')}}
{{ HTML::style('css/datetimepicker.css')}}
@stop
@section('content')
<div id="wrapper">
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
@include( 'partials/dashboard-block')
<div id="page-wrapper">
<div class="col-md-12">
<h2>Experiments</h2>
</div>
<div class="container-fluid">
<div class="well form-group form-horizontal col-md-12">
<label class="col-md-3">Enter Experiment Id to View Summary :</label>
<div class="col-md-6">
<input type="text" class="form-control experimentId"/>
</div>
<button class="col-md-3 btn btn-primary get-experiment">Get</button>
<div class="loading-img hide text-center"><img src="{{URL::to('/')}}/assets/ajax-loader.gif"/></div>
</div>
</div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist" id="myTabs">
<li role="presentation" class="active"><a href="#overview" aria-controls="overview" role="tab" data-toggle="tab">Overview</a></li>
<!--
<li role="presentation"><a href="#expsummary" aria-controls="expsummary" role="tab" data-toggle="tab">Experiment Summary</a></li>
-->
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="overview">
<div class="well col-md-12">
<div class="col-md-10">
<div class='col-md-5'>
<div class="form-group">
<input type='button' class="oneDayExp form-control btn-primary" value="Get Experiments from Last 24 hours"/>
</div>
</div>
<div class='col-md-5'>
<div class="form-group">
<input type='button' class="oneWeekExp form-control btn-primary" value="Get Experiments from Last Week"/>
</div>
</div>
<div class="col-md-12">
<h4>Or Select dates between which you want to review experiment statistics.</h4>
</div>
<div class='col-md-5'>
<div class="form-group">
<div class='input-group date' id='datetimepicker9'>
<input type='text' class="form-control" placeholder="From Date" name="from-date"/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class='col-md-5'>
<div class="form-group">
<div class='input-group date' id='datetimepicker10'>
<input type='text' class="form-control" placeholder="To Date" name="to-date"/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="col-md-2">
<button name="getStatistics" id="getStatistics" type="submit" class="btn btn-primary"
value="GetStatistics"><span
class="glyphicon glyphicon-search"></span> Get Statistics
</button>
</div>
</div>
</div>
<div class="experiment-statistics"></div>
<div class="loading-img-statistics hide text-center"><img src="{{URL::to('/')}}/assets/ajax-loader.gif"/></div>
<!--<div class="row">-->
<!-- <div class="col-lg-12">-->
<!-- <div class="panel panel-primary">-->
<!-- <div class="panel-heading">-->
<!-- <h3 class="panel-title"><i class="fa fa-bar-chart-o"></i>Experiment v/s Time Graph</h3>-->
<!-- </div>-->
<!-- <div class="panel-body">-->
<!-- <div class="flot-chart">-->
<!-- <div class="flot-chart-content" id="flot-line-chart" style="padding: 0px; position: relative;">-->
<!-- <canvas class="base" width="1596" height="400"></canvas>-->
<!-- <canvas class="overlay" width="1596" height="400"-->
<!-- style="position: absolute; left: 0px; top: 0px;"></canvas>-->
<!-- <div class="tickLabels" style="font-size:smaller">-->
<!-- <div class="xAxis x1Axis" style="color:#545454">-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:-33px;top:383px;width:122px">0-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:97px;top:383px;width:122px">1-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:228px;top:383px;width:122px">2-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:358px;top:383px;width:122px">3-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:488px;top:383px;width:122px">4-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:619px;top:383px;width:122px">5-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:749px;top:383px;width:122px">6-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:879px;top:383px;width:122px">7-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:1010px;top:383px;width:122px">8-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:1140px;top:383px;width:122px">9-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:1270px;top:383px;width:122px">10-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:center;left:1401px;top:383px;width:122px">11-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="yAxis y1Axis" style="color:#545454">-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:right;top:337px;right:1575px;width:21px">-1.0-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:right;top:259px;right:1575px;width:21px">-0.5-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:right;top:182px;right:1575px;width:21px">0.0-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:right;top:104px;right:1575px;width:21px">0.5-->
<!-- </div>-->
<!-- <div class="tickLabel"-->
<!-- style="position:absolute;text-align:right;top:26px;right:1575px;width:21px">1.0-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="legend">-->
<!-- <div-->
<!-- style="position: absolute; width: 45px; height: 34px; top: 9px; right: 9px; opacity: 0.85; background-color: rgb(255, 255, 255);"></div>-->
<!-- <table style="position:absolute;top:9px;right:9px;;font-size:smaller;color:#545454">-->
<!-- <tbody>-->
<!-- <tr>-->
<!-- <td class="legendColorBox">-->
<!-- <div style="border:1px solid #ccc;padding:1px">-->
<!-- <div-->
<!-- style="width:4px;height:0;border:5px solid rgb(237,194,64);overflow:hidden"></div>-->
<!-- </div>-->
<!-- </td>-->
<!-- <td class="legendLabel">Canceled Experiments</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="legendColorBox">-->
<!-- <div style="border:1px solid #ccc;padding:1px">-->
<!-- <div-->
<!-- style="width:4px;height:0;border:5px solid rgb(175,216,248);overflow:hidden"></div>-->
<!-- </div>-->
<!-- </td>-->
<!-- <td class="legendLabel">Successful Experiments</td>-->
<!-- </tr>-->
<!-- </tbody>-->
<!-- </table>-->
<!-- </div>-->
<!-- </div>-->
<!---->
<!---->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!--</div>-->
<!---->
<!--<div class="row">-->
<!-- <h1 class="text-center well alert alert-danger">Proposed UI to view flow of one experiment.</h1>-->
<!---->
<!-- <div class="tree">-->
<!-- <ul>-->
<!-- <li>-->
<!-- <span><i class="icon-calendar"></i>Experiment 1</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <span class="badge badge-success"><i class="icon-minus-sign"></i>Pre Processing</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <a href=""><span class="alert alert-success"><i class="icon-time"></i>2015-04-17 15:21:21</span> &ndash;-->
<!-- PGA to Airavata Authentication Successful</a>-->
<!-- </li>-->
<!-- <li>-->
<!-- <a href=""><span class="alert alert-success"><i class="icon-time"></i>2015-04-17 15:21:21</span> &ndash;-->
<!-- Airavata to Resource Authentication Successful</a>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- <li>-->
<!-- <span class="badge badge-success"><i class="icon-minus-sign"></i>Input Staging</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <span class="alert alert-success"><i-->
<!-- class="icon-time"></i>2015-04-17 15:21:21</span> &ndash; <a href="">PGA to
-->
<!-- Airavata File Transfer Successful</a>-->
<!-- </li>-->
<!-- <li>-->
<!-- <span class="alert alert-success" abhi><i-->
<!-- class="icon-time"></i>2015-04-17 15:21:21</span> &ndash; <a href="">Airavata to
-->
<!-- Resource File Transfer Successful</a>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- <li>-->
<!-- <span class="badge badge-warning"><i class="icon-minus-sign"></i>Job Description</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <a href=""><span>-->
<!-- Long Script of Job Description / PBS Script <br/>-->
<!-- <br/>-->
<!-- <p>-->
<!-- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean-->
<!-- commodo ligula eget dolor. Aenean massa. Cum sociis natoque-->
<!-- penatibus et magnis dis parturient montes, nascetur ridiculus-->
<!-- mus. Donec quam felis, ultricies nec, pellentesque eu, pretium-->
<!-- quis, sem. Nulla consequat massa quis enim. Donec pede justo,-->
<!-- fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo,-->
<!-- rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum-->
<!-- felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.-->
<!-- Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.-->
<!-- Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac,-->
<!-- enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a,-->
<!-- tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque-->
<!-- rutrum. Aenean-->
<!-- </p>-->
<!-- </span></a>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- <li>-->
<!-- <span class="badge badge-important"><i class="icon-minus-sign"></i>Execution</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <a href=""><span class="alert alert-success"><i class="icon-time"></i>2015-04-17 15:21:21</span> &ndash;-->
<!-- Execution of Job Description - No errors</a>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!---->
<!-- <li>-->
<!-- <span class="badge badge-important"><i class="icon-minus-sign"></i>Experiment Complete</span>-->
<!-- <ul>-->
<!-- <li>-->
<!-- <a href=""><span class="alert alert-danger"><i class="icon-time"></i>2015-04-17 15:21:21</span> &ndash;-->
<!-- Output Transfer from Resource to Airavata UnSuccessful</a>-->
<!-- <br/>-->
<!-- <span> Some text about failure</span>-->
<!-- </li>-->
<!-- <li>-->
<!-- <a href=""><span class="alert alert-danger"><i class="icon-time"></i>2015-04-17 15:21:21</span> &ndash;-->
<!-- Output Transfer from Airavata to PGA UnSuccessful</a>-->
<!-- <br/>-->
<!-- <span> Some text about failure</span>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!---->
<!---->
<!-- </ul>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </div>-->
<!--</div>-->
</div>
<!--
<div role="tabpanel" class="tab-pane" id="expsummary">
<div class="experiment-info col-md-12">
</div>
-->
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- /#page-wrapper -->
</div>
@stop
@section('scripts')
@parent
{{ HTML::script('js/gateway.js') }}
{{ HTML::script('js/moment.js')}}
{{ HTML::script('js/datetimepicker.js')}}
<!-- Morris Charts JavaScript -->
<!--
to be uncommented when actually in use.
{{ HTML::script('js/morris/raphael.min.js')}}
{{ HTML::script('js/morris/morris.min.js')}}
{{ HTML::script('js/morris/morris-data.js')}}
-->
<!-- Flot Charts JavaScript -->
{{ HTML::script('js/flot/jquery.flot.js')}}
{{ HTML::script('js/flot/jquery.flot.tooltip.min.js')}}
{{ HTML::script('js/flot/jquery.flot.resize.js')}}
{{ HTML::script('js/flot/jquery.flot.pie.js')}}
{{ HTML::script('js/flot/flot-data.js')}}
{{ HTML::script('js/moment.js')}}
{{ HTML::script('js/datetimepicker.js')}}
{{ HTML::script('js/time-conversion.js')}}
<script>
//make first tab of accordion open by default.
//temporary fix
$("#accordion2").children(".panel").children(".collapse").addClass("in");
$(".add-tenant").slideUp();
$(".toggle-add-tenant").click(function () {
$(".add-tenant").slideDown();
});
$('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
$('.tree li.parent_li > span').on('click', function (e) {
var children = $(this).parent('li.parent_li').find(' > ul > li');
if (children.is(":visible")) {
children.hide('fast');
$(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
} else {
children.show('fast');
$(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
}
e.stopPropagation();
});
$(".get-experiment").click(function () {
$(".loading-img").removeClass("hide");
$.ajax({
url: 'experiment/summary?expId=' + $(".experimentId").val(),
type: 'get',
success: function (data) {
//$(".experiment-info").html(data);
$("#myTabs").append('<li role="presentation"><a href="#' + $(".experimentId").val() + '" aria-controls="' + $(".experimentId").val() + '" role="tab" data-toggle="tab">' + $(".experimentId").val() + '</a></li>');
$(".tab-content").append('<div role="tabpanel" class="tab-pane" id="' + $(".experimentId").val() + '">' + data + '</div>');
$('#myTabs a[href="#' + $(".experimentId").val() + '"]').tab('show') // Select tab by name
//$('#myTabs a[href="#expsummary"]').tab('show') // Select tab by name
//from time-conversion.js
updateTime();
}
}).complete(function () {
$(".loading-img").addClass("hide");
});
});
//Experiment stages are under development.
$(".tree").parent().addClass("hide");
/* making datetimepicker work for exp stat search */
$('#datetimepicker9').datetimepicker({
pick12HourFormat: false
});
$('#datetimepicker10').datetimepicker({
pick12HourFormat: false
});
$("#datetimepicker9").on("dp.change", function (e) {
$('#datetimepicker10').data("DateTimePicker").setMinDate(e.date);
});
$("#datetimepicker10").on("dp.change", function (e) {
$('#datetimepicker9').data("DateTimePicker").setMaxDate(e.date);
});
$(".oneDayExp").click( function(){
var todayDate = getCurrentDate();
var ydayDate = getCurrentDate(1);
$("#datetimepicker9").find("input").val( ydayDate);
$("#datetimepicker10").find("input").val( todayDate);
todayDate = moment(todayDate).utc().format('MM/DD/YYYY hh:mm a');
ydayDate = moment(ydayDate).utc().format('MM/DD/YYYY hh:mm a');
var msg = "Experiments statistics from last 24 hours";
getExperiments( ydayDate, todayDate, msg);
});
$(".oneWeekExp").click( function(){
var todayDate = getCurrentDate();
var ydayDate = getCurrentDate(7);
$("#datetimepicker9").find("input").val( ydayDate);
$("#datetimepicker10").find("input").val( todayDate);
todayDate = moment(todayDate).utc().format('MM/DD/YYYY hh:mm a');
ydayDate = moment(ydayDate).utc().format('MM/DD/YYYY hh:mm a');
var msg = "Experiments statistics from last week";
getExperiments( ydayDate, todayDate, msg);
})
$("#getStatistics").click(function () {
$fromTime = $("#datetimepicker9").find("input").val();
$fromTime = moment($fromTime).utc().format('MM/DD/YYYY hh:mm a');
$toTime = $("#datetimepicker10").find("input").val();
$toTime = moment($toTime).utc().format('MM/DD/YYYY hh:mm a');
if ($fromTime == '' || $toTime == '') {
alert("Please Select Valid Date Inputs!");
} else {
getExperiments( $fromTime, $toTime);
}
});
// Load experiments from the last 24 hours on page load.
$(".oneDayExp").click();
function getExperiments( startTime, endTime, msg){
$(".experiment-statistics").html("");
$(".loading-img-statistics").removeClass("hide");
$.ajax({
url: 'experimentStatistics?fromTime=' + startTime + '&' + 'toTime=' + endTime,
type: 'get',
success: function (data) {
if( msg == null)
msg = "Experiment Statistics from " + startTime + " to " + endTime;
$(".experiment-statistics").html( "<h2 class='text-center'>" + msg + "</h2><hr/>" + data);
}
}).complete(function () {
$(".loading-img-statistics").addClass("hide");
});
}
function getCurrentDate( subtractDaysFromToday){
var cd = new Date();
var hours = cd.getUTCHours();
month = cd.getMonth() + 1; //getmonth()starts from 0 for some reason
var timeOfDay = "AM";
if(hours >= 12)
{
timeOfDay = "PM"
if(hours != 12)
hours = hours - 12;
}
var date = cd.getDate();
if( subtractDaysFromToday!= null)
date = date - subtractDaysFromToday;
var todayDate = month + "/" + date + "/" + cd.getFullYear() + " " + hours + ":" + cd.getUTCMinutes() + " " + timeOfDay;
return todayDate;
}
</script>
@stop