Completes IPP-166. Also converts overview screen to gauge-style

This commit is contained in:
Patrick McDonagh
2016-10-03 18:46:40 -05:00
parent c5e001d819
commit 46783af1a0
3 changed files with 296 additions and 13 deletions

View File

@@ -84,10 +84,10 @@
</div>
</div>
<div class="col-md-6 box-me" id="intakepressuresetpoint">
<div class="col-md-6 box-me" id="fluidlevelsetpoint">
<div class="pad15">
<h2>Intake Pressure Setpoint
<% if (channels["advvfdipp.pidcontrolmode"].value == "Intake Pressure"){ %>
<h2>Fluid Level Setpoint
<% if (channels["advvfdipp.pidcontrolmode"].value == "Fluid Level"){ %>
<span class="label label-success">ACTIVE</span>
<% } %>
</h2>
@@ -96,12 +96,12 @@
<input class="form-control val_box"
type="number"
step="any"
value="<%=channels['advvfdipp.intakepressuresetpoint'].value %>">
value="<%=channels['advvfdipp.fluidlevelsetpoint'].value %>">
</div>
<a href="#"
data-refreshpause="3"
data-command=""
data-staticsend="[{'com':'1','values':[ ['cfg_PID_IntakePressureSP',<%=channels['advvfdipp.intakepressuresetpoint'].value %>] ] }]"
data-staticsend="[{'com':'1','values':[ ['cfg_PID_FluidLevelSP',<%=channels['advvfdipp.fluidlevelsetpoint'].value %>] ] }]"
data-channelId="<%= channels['advvfdipp.modbuswrite'].channelId %>"
data-techname="<%=channels['advvfdipp.modbuswrite'].techName %>"
data-name="<%= channels['advvfdipp.modbuswrite'].name%>"
@@ -112,17 +112,17 @@
</form>
<a href="#"
style="width:95%"
data-confirm-message="Are you sure you want to activate Intake Pressure Control Mode?"
data-confirm-message="Are you sure you want to activate Fluid Level Control Mode?"
data-refreshpause="3"
data-command=""
data-staticsend="[{'com':'1','values':[ ['cfg_PID_IntakePressure',1] ] }]"
data-staticsend="[{'com':'1','values':[ ['cfg_PID_FluidLevel',1] ] }]"
data-channelId="<%= channels['advvfdipp.modbuswrite'].channelId %>"
data-techname="<%=channels['advvfdipp.modbuswrite'].techName %>"
data-name="<%= channels['advvfdipp.modbuswrite'].name%>"
data-nodechannelcurrentId="<%= channels['advvfdipp.modbuswrite'].nodechannelcurrentId %>"
id="<%= channels['advvfdipp.modbuswrite'].channelId %>"
class="btn btn-large btn-theme animated confirmstatic pad15">
Activate Intake Pressure Control</a>
Activate Fluid Level Control</a>
</div>
</div>

View File

@@ -47,17 +47,18 @@
<div class='row row-flex box-me'>
<div class='col-xs-4 text-center'>
<h2>Downhole Temperature</h2>
<div class="gauge-box" data-valueupdate="intaketemperature">
<gauge type="angular" channel="intaketemperature" max="300" label="deg F" classes="extra" height="250" />
<span data-timeupdate="intaketemperature"><%= channels["advvfdipp.intaketemperature"].timestamp %></span>
<h2>Motor Frequency</h2>
<div class="gauge-box" data-valueupdate="vfdfrequency">
<gauge type="angular" channel="vfdfrequency" max="300" label="Hz" classes="extra" height="250" />
<span data-timeupdate="vfdfrequency"><%= channels["advvfdipp.vfdfrequency"].timestamp %></span>
</div>
</div>
<div class='col-xs-8'>
<div style="height:300px" id="chart-intaketemperature" data-chart="chart" data-nodename1="advvfdipp.intaketemperature" data-datalabel1="Downhole Temperature" data-daysofhistory="2" data-chartlabel="Intake Temperature" data-ylabel="" data-xlabel="Date" data-units=" &deg; F"></div>
<div style="height:300px" id="chart-vfdfrequency" data-chart="chart" data-nodename1="advvfdipp.vfdfrequency" data-datalabel1="Downhole Temperature" data-daysofhistory="2" data-chartlabel="VFD Frequency" data-ylabel="" data-xlabel="Date" data-units=" Hz"></div>
</div>
</div>
<div class='row row-flex box-me'>
<div class='col-xs-4 text-center'>
<h2>Motor Current</h2>
@@ -84,6 +85,18 @@
</div>
</div>
<div class='row row-flex box-me'>
<div class='col-xs-4 text-center'>
<h2>Downhole Temperature</h2>
<div class="gauge-box" data-valueupdate="intaketemperature">
<gauge type="angular" channel="intaketemperature" max="300" label="deg F" classes="extra" height="250" />
<span data-timeupdate="intaketemperature"><%= channels["advvfdipp.intaketemperature"].timestamp %></span>
</div>
</div>
<div class='col-xs-8'>
<div style="height:300px" id="chart-intaketemperature" data-chart="chart" data-nodename1="advvfdipp.intaketemperature" data-datalabel1="Downhole Temperature" data-daysofhistory="2" data-chartlabel="Intake Temperature" data-ylabel="" data-xlabel="Date" data-units=" &deg; F"></div>
</div>
</div>

View File

@@ -0,0 +1,270 @@
<div class="row row-flex box-me">
<div class='col-xs-12' id="systemStatusTimelineContainer">
<h2>Well Status</h2>
<div id="statusTimeline"
data-chart="timeline"
data-nodename="advvfdipp.wellstatus"
data-daysofhistory="2"
data-chartlabel=""
data-xlabel='Date'
data-colors="Running:#3AFF83,Pumped Off:#dbda35,Alarmed:#e9821b,Locked Out:#cd2f34,Stopped:#3699b4"></div>
</div>
</div>
<div class='row row-flex box-me'>
<div class='col-xs-4 text-center box-me'>
<h2>Fluid Level</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-fluidlevel"
data-chart="solidgauge"
data-nodename="advvfdipp.fluidlevel"
data-units="ft."
data-min="0"
data-max="500"
data-decimalplaces="2"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.fluidlevel'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="fluidlevel">
<%= channels["advvfdipp.fluidlevel"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Flow Rate</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-flowrate"
data-chart="solidgauge"
data-nodename="advvfdipp.flowrate"
data-units="GPM"
data-min="0"
data-max="250"
data-decimalplaces="2"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.flowrate'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="flowrate">
<%= channels["advvfdipp.flowrate"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Intake Pressure</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-intakepressure"
data-chart="solidgauge"
data-nodename="advvfdipp.intakepressure"
data-units="PSI"
data-min="0"
data-max="500"
data-decimalplaces="1"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.intakepressure'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="intakepressure">
<%= channels["advvfdipp.intakepressure"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Motor Frequency</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-vfdfrequency"
data-chart="solidgauge"
data-nodename="advvfdipp.vfdfrequency"
data-units="Hz"
data-min="0"
data-max="75"
data-decimalplaces="2"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.vfdfrequency'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="vfdfrequency">
<%= channels["advvfdipp.vfdfrequency"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Motor Current</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-vfdcurrent"
data-chart="solidgauge"
data-nodename="advvfdipp.vfdcurrent"
data-units="A"
data-min="0"
data-max="100"
data-decimalplaces="2"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.vfdcurrent'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="vfdcurrent">
<%= channels["advvfdipp.vfdcurrent"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Tubing Pressure</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-tubingpressure"
data-chart="solidgauge"
data-nodename="advvfdipp.tubingpressure"
data-units="PSI"
data-min="0"
data-max="250"
data-decimalplaces="2"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.tubingpressure'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="tubingpressure">
<%= channels["advvfdipp.tubingpressure"].timestamp %>
</span>
</div>
</div>
<div class='col-xs-4 text-center box-me'>
<h2>Intake Temperature</h2>
<div class="gauge-box">
<div data-labelheight="10"
style="height: 170px; background: transparent; margin: 0 auto;"
id="gauge-intaketemperature"
data-chart="solidgauge"
data-nodename="advvfdipp.intaketemperature"
data-units="&deg F"
data-min="0"
data-max="200"
data-decimalplaces="1"
data-colors="0.1:#DF5353,0.5:#DDDF0D,0.9:#55BF3B"
data-valuefontsize="18px">
</div>
<div class- "timestamp-box">
<a href="#" data-ChannelId="<%= channels['advvfdipp.intaketemperature'].ChannelId %>" class="data-csv-all" title="Download Channel History">
<i class="fa fa-download"></i>
</a>
</div>
<span data-timeupdate="intaketemperature">
<%= channels["advvfdipp.intaketemperature"].timestamp %>
</span>
</div>
</div>
</div>
<div class="row box-me">
<div class='col-xs-12'>
<div style="height:300px"
id="chart-overview"
data-chart="chart"
data-nodename1="advvfdipp.fluidlevel"
data-datalabel1="Fluid Level"
data-nodename2="advvfdipp.flowrate"
data-datalabel2="Flow Rate"
data-nodename3="advvfdipp.vfdcurrent"
data-datalabel3="Motor Current"
data-nodename4="advvfdipp.vfdfrequency"
data-datalabel4="Motor Frequency"
data-daysofhistory="2"
data-chartlabel="Last 48 Hours"
data-ylabel=""
data-xlabel="Date"
data-units=""></div>
</div>
</div>
<style>
.box-me {
position: relative;
padding: 0.5em;
padding-bottom: 1.5em;
border: 1px solid #eee;
/*margin: 1em 0;*/
}
.box-me .gauge-box {
margin-top: -0.25em;
}
.pad15 {
margin: 15px 15px;
}
.box-me h2 {
text-transform: uppercase;
font-size: 14px;
color: #666;
font-weight: 400;
letter-spacing: 1px;
z-index: 100;
}
.dynamic-chart-form {
background-color: whiteSmoke;
padding: 1em 0.5em;
margin-top: 1em;
}
.row-flex {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
flex-wrap: wrap;
}
.row-flex > [class*='col-'] {
display: flex;
flex-direction: column;
}
#systemStatusTimelineContainer h2 {
text-transform: uppercase;
font-size: 14px;
color: #666;
font-weight: 400;
letter-spacing: 1px;
z-index: 100;
}
</style>