@@ -13,3 +13,9 @@
|
||||
<h4>Pump Depth: <span data-updatevalue="vfd_fault"><%=channels["advvfdipp.pumpdepth"].value %></span> ft.</h4>
|
||||
<% } %>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<a href="#"
|
||||
data-channelId="<%= channels["advvfdipp.alarmlog"].channelId %>"
|
||||
class="data-table btn-block btn btn-theme animated"
|
||||
title="Alarm Log"><i style='margin-left: 0.5em; cursor: pointer' class="fa fa-th-list icon-theme"></i> Alarm Log</a>
|
||||
</div>
|
||||
|
||||
@@ -309,31 +309,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row box-me">
|
||||
<div class='col-xs-12 text-center'>
|
||||
<h3 class='subdued'>Alarm History</h3>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-xs-offset-3" style='padding: 1.5em 15px'>
|
||||
<div class="input-daterange input-group" id="datepicker">
|
||||
<input data-chartid="chart7" id="fromDate" data-daysofhistory="7" type="text" class="form-control" name="start">
|
||||
<span class="input-group-addon">to</span>
|
||||
<input class="form-control" data-chartid="chart7" id="toDate" type="text" name="end">
|
||||
<span class="input-group-btn">
|
||||
<a href="#!" id='runHistory' data-chartid="chart7" data-otherchartids="chart8" class="btn btn-theme animated">Run</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<ol id='alarms' class='list-unstyled'>
|
||||
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
#note-modal{
|
||||
position: absolute;
|
||||
@@ -405,117 +380,4 @@
|
||||
letter-spacing: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.slice.node-detail hr {
|
||||
border-color: #ccc;
|
||||
}
|
||||
.slice.node-detail #alarms li {
|
||||
margin-bottom: 1em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.slice.node-detail #alarms li:nth-child(even){
|
||||
background-color: whiteSmoke;
|
||||
}
|
||||
.slice.node-detail #alarms li span {
|
||||
margin-left: 1em;
|
||||
color: #aaa;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var nodeID = <%= node.nodeId %>;
|
||||
var nodeType = '<%= node.nodetypeName %>';
|
||||
|
||||
var alarmChannels = [
|
||||
{
|
||||
chId:<%= channels["advvfdipp.alarmflowrate"].channelId %>,
|
||||
chName: 'Flow Alarm'
|
||||
},
|
||||
{
|
||||
chId:<%= channels["advvfdipp.alarmintakepressure"].channelId %>,
|
||||
chName: 'Intake Pressure Alarm'
|
||||
},
|
||||
{
|
||||
chId:<%= channels["advvfdipp.alarmintaketemperature"].channelId %>,
|
||||
chName: 'Intake Temperature Alarm'
|
||||
},
|
||||
{
|
||||
chId:<%= channels["advvfdipp.alarmtubingpressure"].channelId %>,
|
||||
chName: 'Tubing Pressure Alarm'
|
||||
},
|
||||
{
|
||||
chId:<%= channels["advvfdipp.alarmvfd"].channelId %>,
|
||||
chName: 'VFD Alarm'
|
||||
}
|
||||
];
|
||||
|
||||
var formatDate = function(str){
|
||||
var c1, c2;
|
||||
c1 = new Date(str);
|
||||
c2 = (c1.getTime() / 1000);
|
||||
c2 = Math.floor(c2);
|
||||
return c2.toString();
|
||||
};
|
||||
|
||||
var updateTable = function(){
|
||||
var $output = $('#alarms');
|
||||
var allAlarms = [];
|
||||
var ajaxResults = [];
|
||||
_.each(alarmChannels, function(ac){
|
||||
var channelID = ac.chId;
|
||||
var channelName = ac.chName;
|
||||
var apiData, start, end, finalURL, dateString;
|
||||
|
||||
finalURL = '<%= rootURL %>' + "/api2/Nodechannels";
|
||||
start = $('#datepicker').find('#fromDate');
|
||||
dateString = start.val().replace(/-/g, "/");
|
||||
start = formatDate(dateString);
|
||||
end = $('#datepicker').find('#toDate');
|
||||
dateString = end.val().replace(/-/g, "/");
|
||||
end = formatDate(dateString);
|
||||
apiData = "&nodelist[0][nodeId]=" + nodeID.toString() + "&nodelist[0][channelId]=" + channelID.toString();
|
||||
apiData += "&start=" + start + "&end=" + end;
|
||||
|
||||
ajaxResults.push($.ajax({
|
||||
url: finalURL,
|
||||
data: apiData,
|
||||
type: "GET",
|
||||
success: function(data) {
|
||||
var alarms = data.listofstreams[0].stream;
|
||||
_.each(alarms, function(alarm){
|
||||
var timestamp = alarm.x;
|
||||
var value = alarm.y;
|
||||
if (value !== "OK"){
|
||||
allAlarms.push({alarm: channelName, timestamp:timestamp, value:value});
|
||||
}
|
||||
});
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
$.when.apply(this, ajaxResults).done(function(){
|
||||
if (allAlarms.length > 0){
|
||||
var html = '';
|
||||
_.each(_.sortBy(allAlarms, "timestamp").reverse(), function(al_in_order) {
|
||||
console.log(al_in_order.timestamp);
|
||||
html += "<li>" + al_in_order.alarm + ": " + al_in_order.value + "<span>" + moment(al_in_order.timestamp, "X").add(5, 'hours').format("dddd, MMMM Do YYYY, h:mm:ss a"); + "</span></li>";
|
||||
})
|
||||
$output.html(html);
|
||||
} else {
|
||||
$output.html("<li>No Alarms for this time range</li>");
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
};
|
||||
|
||||
$('#runHistory').on('click', function(e){
|
||||
e.preventDefault();
|
||||
updateTable();
|
||||
});
|
||||
|
||||
updateTable();
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user