removed non pottery bits (door closed, cooling fan icons) and fixed display to look OK on a phone sized screen

pull/1/head
Peter Shanks 2019-01-05 21:10:57 +11:00
rodzic 32da13412f
commit 40053547f3
3 zmienionych plików z 191 dodań i 186 usunięć

Wyświetl plik

@ -1,17 +1,17 @@
@font-face{
font-family: "Digi";
src: url('/picoreflow/assets/fonts/digital-7-webfont.eot');
src: url('/kilncontroller/assets/fonts/digital-7-webfont.eot');
src: local("Digital 7"),
url('/picoreflow/assets/fonts/digital-7-webfont.woff') format("woff"),
url('/picoreflow/assets/fonts/digital-7-webfont.ttf') format("truetype");
url('/kilncontroller/assets/fonts/digital-7-webfont.woff') format("woff"),
url('/kilncontroller/assets/fonts/digital-7-webfont.ttf') format("truetype");
}
@font-face{
font-family: "Tables";
src: url('/picoreflow/assets/fonts/tables.eot');
src: url('/kilncontroller/assets/fonts/tables.eot');
src: local("Tables"),
url('/picoreflow/assets/fonts/tables.woff') format("woff"),
url('/picoreflow/assets/fonts/tables.ttf') format("truetype");
url('/kilncontroller/assets/fonts/tables.woff') format("woff"),
url('/kilncontroller/assets/fonts/tables.ttf') format("truetype");
}
body {
@ -32,6 +32,10 @@ body {
box-shadow: 0 0 1.1em 0 rgba(0,0,0,0.55);
}
#graph_container {
height: 300px;
}
.display {
display: inline-block;
text-align: right;
@ -41,12 +45,12 @@ body {
height: 40px;
line-height: 40px;
vertical-align: middle;
color: #d8d3c5;
color: #42f749;
border-color: #000000;
}
.ds-panel {
background: #3F3E3A url('/picoreflow/assets/images/panel_bg.png') repeat;
background: #3F3E3A url('/kilncontroller/assets/images/panel_bg.png') repeat;
-moz-box-shadow: inset 0 0 42px 0 #000;
-webkit-box-shadow: inset 0 0 42px 0 #000;
box-shadow: inset 0 0 42px 0 #000;
@ -59,13 +63,13 @@ body {
-moz-border-radius-topright: 6px;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
background-image: -webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));
background-image: -webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);
background-image: -moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);
background-image: linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);
background-image: -webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#3f3e3a));
background-image: -webkit-linear-gradient(top,#f5f5f5 0,#3f3e3a 100%);
background-image: -moz-linear-gradient(top,#f5f5f5 0,#3f3e3a 100%);
background-image: linear-gradient(to bottom,#f5f5f5 0,#3f3e3a 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0);
height: 18px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ff3f3e3a',GradientType=0);
/*height: 18px;*/
}
.ds-title {
@ -73,18 +77,19 @@ body {
font-size: 10px;
height: 18px;
line-height: 18px;
width: 100px;
border-right: 1px solid #b9b6af;
/* width: 100px; */
/*border-right: 1px solid #b9b6af;*/
vertical-align: top;
text-align: center;
color: #8B8989;
color: #000;
text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.75);
}
.ds-num {
width: 100px;
/* width: 100px; */
text-align: center;
font-family: "Digi";
border-right: 1px solid #b9b6af;
/*border-right: 1px solid #b9b6af;*/
white-space: nowrap;
text-shadow: 0 0 25px rgba(0, 0, 0, 1);
}
@ -94,7 +99,7 @@ body {
font-family: "Digi";
font-size: 24px;
text-shadow: 0 0 12px rgba(0, 0, 0, 1);
background: #3F3E3A url('/picoreflow/assets/images/panel_bg.png') repeat;
background: #3F3E3A url('/kilncontroller/assets/images/panel_bg.png') repeat;
-moz-box-shadow: inset 0 0 12px 0 #000;
-webkit-box-shadow: inset 0 0 12px 0 #000;
box-shadow: inset 0 0 12px 0 #000;
@ -118,7 +123,7 @@ body {
text-align: center;
color: #1F1E1A;
text-shadow: 0 0 5px #000, 0 0 5px #000;
border-left: 1px solid #b9b6af;
/*border-left: 1px solid #b9b6af;*/
height: 40px;
width: 42px;
display: inline-block;
@ -189,16 +194,7 @@ body {
.ds-state {
border: none;
width: initial;
text-align: center;
width: 168px;
padding: 0;
}
.ds-state {
border: none;
width: initial;
text-align: center;
width: 210px;
text-align: right;
padding: 0;
}
@ -237,11 +233,11 @@ body {
-webkit-box-shadow: 0 0 1.5em 0 rgba(0,0,0,0.55);
box-shadow: 0 0 1.1em 0 rgba(0,0,0,0.55);
margin-top: 15px;
background: #3F3E3A url('/picoreflow/assets/images/panel_bg.png') repeat;
background: #3F3E3A url('/kilncontroller/assets/images/panel_bg.png') repeat;
}
.panel-heading {
background: #fafafa url('/picoreflow/assets/images/page_bg.png') repeat-x;
background: #fafafa url('/kilncontroller/assets/images/page_bg.png') repeat-x;
overflow: hidden;
padding: 10px;
-webkit-border-top-left-radius: 5px;

Wyświetl plik

@ -454,7 +454,7 @@ $(document).ready(function()
{
console.log("Status Socket has been opened");
$.bootstrapGrowl("<span class=\"glyphicon glyphicon-exclamation-sign\"></span> <b>Yay</b><br/>I'm alive",
$.bootstrapGrowl("<span class=\"glyphicon glyphicon-exclamation-sign\"></span> <b>Initialising</b><br/>Give me a minute to get things together",
{
ele: 'body', // which element to append to
type: 'success', // (null, 'info', 'error', 'success')
@ -539,7 +539,7 @@ $(document).ready(function()
eta = new Date(left * 1000).toISOString().substr(11, 8);
updateProgress(parseFloat(x.runtime)/parseFloat(x.totaltime)*100);
$('#state').html('<span class="glyphicon glyphicon-time" style="font-size: 22px; font-weight: normal"></span><span style="font-family: Digi; font-size: 40px;">' + eta + '</span>');
$('#state').html('<span class="" style="font-size: 22px; font-weight: normal"></span><span style="font-family: Digi; font-size: 40px;">' + eta + '</span>');
$('#target_temp').html(parseInt(x.target));
@ -554,10 +554,12 @@ $(document).ready(function()
$('#act_temp').html(parseInt(x.temperature));
if (x.heat > 0.5) { $('#heat').addClass("ds-led-heat-active"); } else { $('#heat').removeClass("ds-led-heat-active"); }
if (x.cool > 0.5) { $('#cool').addClass("ds-led-cool-active"); } else { $('#cool').removeClass("ds-led-cool-active"); }
if (x.air > 0.5) { $('#air').addClass("ds-led-air-active"); } else { $('#air').removeClass("ds-led-air-active"); }
if (x.temperature > hazardTemp()) { $('#hazard').addClass("ds-led-hazard-active"); } else { $('#hazard').removeClass("ds-led-hazard-active"); }
if ((x.door == "OPEN") || (x.door == "UNKNOWN")) { $('#door').addClass("ds-led-door-open"); } else { $('#door').removeClass("ds-led-door-open"); }
// the commented out icons below were from the old reflow oven code
// I don't worry about them for my kiln, but you might find a use for them some time
// if (x.cool > 0.5) { $('#cool').addClass("ds-led-cool-active"); } else { $('#cool').removeClass("ds-led-cool-active"); }
// if (x.air > 0.5) { $('#air').addClass("ds-led-air-active"); } else { $('#air').removeClass("ds-led-air-active"); }
// if (x.temperature > hazardTemp()) { $('#hazard').addClass("ds-led-hazard-active"); } else { $('#hazard').removeClass("ds-led-hazard-active"); }
// if ((x.door == "OPEN") || (x.door == "UNKNOWN")) { $('#door').addClass("ds-led-door-open"); } else { $('#door').removeClass("ds-led-door-open"); }
state_last = state;

Wyświetl plik

@ -1,158 +1,165 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>picoReflow</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="assets/js/jquery-1.10.2.min.js"></script>
<script src="assets/js/jquery.event.drag-2.2.js"></script>
<script src="assets/js/jquery.flot.js"></script>
<script src="assets/js/jquery.flot.resize.js"></script>
<script src="assets/js/jquery.flot.draggable.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/jquery.bootstrap-growl.min.js"></script>
<script src="assets/js/select2.min.js"></script>
<script src="assets/js/picoreflow.js"></script>
<link rel="stylesheet" href="assets/css/bootstrap.min.css"/>
<link rel="stylesheet" href="assets/css/bootstrap-theme.min.css"/>
<link rel="stylesheet" href="assets/css/bootstrap-modal.css"/>
<link rel="stylesheet" href="assets/css/select2.css"/>
<link rel="stylesheet" href="assets/css/picoreflow.css"/>
</head>
<body>
<div class="container">
<div id="status">
<div class="ds-title-panel">
<div class="ds-title">Sensor Temp</div>
<div class="ds-title">Target Temp</div>
<div class="ds-title ds-state pull-right" style="border-left: 1px solid #ccc;">Status</div>
</div>
<div class="clearfix"></div>
<div class="ds-panel">
<div class="display ds-num"><span id="act_temp">25</span><span class="ds-unit" id="act_temp_scale" >&deg;C</span></div>
<div class="display ds-num ds-target"><span id="target_temp">---</span><span class="ds-unit" id="target_temp_scale">&deg;C</span></div>
<div class="display ds-num ds-text" id="state"></div>
<div class="display pull-right ds-state" style="padding-right:0"><span class="ds-led" id="heat">&#92;</span><span class="ds-led" id="cool">&#108;</span><span class="ds-led" id="air">&#91;</span><span class="ds-led" id="hazard">&#73;</span><span class="ds-led" id="door">&#9832;</span></div>
</div>
<div class="clearfix"></div>
<div>
<div class="progress progress-striped active">
<div id="progressBar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
<span class="sr-only"></span>
</div>
<head>
<title>picoReflow</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="assets/js/jquery-1.10.2.min.js"></script>
<script src="assets/js/jquery.event.drag-2.2.js"></script>
<script src="assets/js/jquery.flot.js"></script>
<script src="assets/js/jquery.flot.resize.js"></script>
<script src="assets/js/jquery.flot.draggable.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/jquery.bootstrap-growl.min.js"></script>
<script src="assets/js/select2.min.js"></script>
<script src="assets/js/picoreflow.js"></script>
<link rel="stylesheet" href="assets/css/bootstrap.min.css"/>
<link rel="stylesheet" href="assets/css/bootstrap-theme.min.css"/>
<link rel="stylesheet" href="assets/css/bootstrap-modal.css"/>
<link rel="stylesheet" href="assets/css/select2.css"/>
<link rel="stylesheet" href="assets/css/picoreflow.css"/>
</head>
<body>
<div class="container">
<div class="row ds-title-panel">
<div class="col-xs-6 col-md-2">
<div class="ds-title">Sensor Temp</div><br>
<div class="display ds-num">
<span id="act_temp">18</span><span class="ds-unit" id="act_temp_scale" >&deg;C</span>
</div>
</div>
<div class="col-xs-6 col-md-2">
<div class="ds-title">Target Temp</div><br>
<div class="display ds-num">
<span id="target_temp">---</span><span class="ds-unit" id="target_temp_scale">&deg;C</span>
</div>
</div>
<!-- <div class="clearfix visible-xs-inline"></div> -->
<div class="col-xs-8 col-md-5">
<div class="ds-title">Time Remaining</div><br>
<div class="display ds-num ds-text" id="state">
</div>
</div>
<div class="col-xs-4 col-md-3">
<div class="ds-state ds-title">&nbsp;</div><br>
<div class="display pull-right ds-state" style="padding-right:0">
<span class="ds-led" id="heat">&#92;</span>
<!-- <span class="ds-led" id="cool">&#108;</span>
<span class="ds-led" id="air">&#91;</span> -->
<!-- <span class="ds-led" id="hazard">&#73;</span> -->
<!-- <span class="ds-led" id="door">&#9832;</span> -->
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="row">
<div class="progress progress-striped active col-xs-12">
<div id="progressBar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
<span class="sr-only"></span>
</div>
</div>
</div>
<div class="panel panel-default row">
<div class="panel-heading col-xs-12">
<div id="profile_selector" class="pull-left">
<select id="e2" class="select2" style="margin-top: 4px"></select>
<button id="btn_edit" type="button" class="btn btn-default" onclick="enterEditMode()"><span class="glyphicon glyphicon-edit"></span></button>
<button id="btn_new" type="button" class="btn btn-default" onclick="enterNewMode(selected_profile)"><span class="glyphicon glyphicon-plus"></span></button>
</div>
<div id="btn_controls" class="pull-right" style="margin-top: 3px">
<div id="nav_start" class="btn-group" style="display:none">
<button type="button" class="btn btn-default" onclick="runTaskSimulation();">Simulate</button>
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#jobSummaryModal"><span class="glyphicon glyphicon-play"></span> Start</button>
</div>
<button id="nav_stop" type="button" class="btn btn-danger" onclick="abortTask()" style="display:none" ><span class="glyphicon glyphicon-stop"></span> Stop</button>
</div>
<div id="edit" style="display:none;">
<div class="input-group">
<span class="input-group-addon">Profile Name</span>
<input id="form_profile_name" type="text" class="form-control" />
<span class="input-group-btn">
<button class="btn btn-success" type="button" onclick="saveProfile();">Save</button>
<button id="btn_exit" type="button" class="btn btn-default" onclick="leaveEditMode()"><span class="glyphicon glyphicon-remove"></span></button>
</span>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_newPoint" type="button" class="btn btn-default" onclick="newPoint()"><span class="glyphicon glyphicon-plus"></span></button>
<button id="btn_delPoint" type="button" class="btn btn-default" onclick="delPoint()"><span class="glyphicon glyphicon-minus"></span></button>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_table" type="button" class="btn btn-default" onclick="toggleTable()"><span class="glyphicon glyphicon-list"></span></button>
<button id="btn_live" type="button" class="btn btn-default" onclick="toggleLive()"><span class="glyphicon glyphicon-eye-open"></span></button>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_delProfile" type="button" class="btn btn-danger" data-toggle="modal" data-target="#delProfileModal"><span class="glyphicon glyphicon-trash"></span></button>
</div>
</div>
</div>
<div class="panel-body">
<div id="graph_container" class="graph"></div>
</div>
<div id="profile_table" class="panel-footer" style="display:none;"></div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div id="profile_selector" class="pull-left">
<select id="e2" class="select2" style="margin-top: 4px"></select>
<button id="btn_edit" type="button" class="btn btn-default" onclick="enterEditMode()"><span class="glyphicon glyphicon-edit"></span></button>
<button id="btn_new" type="button" class="btn btn-default" onclick="enterNewMode(selected_profile)"><span class="glyphicon glyphicon-plus"></span></button>
<div id="jobSummaryModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="jobSummaryModalLabel">Task Overview</h3>
</div>
<div class="modal-body">
<table class="table table-bordered">
<tr><td>Selected Profile</td><td><b><span id="sel_prof"></span></b></td></tr>
<tr><td>Estimated Runtime</td><td><b><span id="sel_prof_eta"></span></b></td></tr>
<tr><td>Estimated Power consumption</td><td><b><span id="sel_prof_cost"></span></b></td></tr>
</table>
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="runTask()">Yes, start the Run</button>
</div>
</div>
</div>
</div>
<div id="btn_controls" class="pull-right" style="margin-top: 3px">
<div id="nav_start" class="btn-group" style="display:none">
<button type="button" class="btn btn-default" onclick="runTaskSimulation();">Simulate</button>
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#jobSummaryModal"><span class="glyphicon glyphicon-play"></span> Start</button>
</div>
<button id="nav_stop" type="button" class="btn btn-danger" onclick="abortTask()" style="display:none" ><span class="glyphicon glyphicon-stop"></span> Stop</button>
</div>
<div id="edit" style="display:none;">
<div class="input-group">
<span class="input-group-addon">Profile Name</span>
<input id="form_profile_name" type="text" class="form-control" />
<span class="input-group-btn">
<button class="btn btn-success" type="button" onclick="saveProfile();">Save</button>
<button id="btn_exit" type="button" class="btn btn-default" onclick="leaveEditMode()"><span class="glyphicon glyphicon-remove"></span></button>
</span>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_newPoint" type="button" class="btn btn-default" onclick="newPoint()"><span class="glyphicon glyphicon-plus"></span></button>
<button id="btn_delPoint" type="button" class="btn btn-default" onclick="delPoint()"><span class="glyphicon glyphicon-minus"></span></button>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_table" type="button" class="btn btn-default" onclick="toggleTable()"><span class="glyphicon glyphicon-list"></span></button>
<button id="btn_live" type="button" class="btn btn-default" onclick="toggleLive()"><span class="glyphicon glyphicon-eye-open"></span></button>
</div>
<div class="btn-group btn-group-sm" style="margin-top: 10px">
<button id="btn_delProfile" type="button" class="btn btn-danger" data-toggle="modal" data-target="#delProfileModal"><span class="glyphicon glyphicon-trash"></span></button>
</div>
</div>
</div>
<div class="panel-body">
<div id="graph_container" class="graph"></div>
</div>
<div id="profile_table" class="panel-footer" style="display:none;"></div>
</div>
</div>
<div id="jobSummaryModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="jobSummaryModalLabel">Task Overview</h3>
<div id="delProfileModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="delProfileModalLabel">Delete this profile?</h3>
</div>
<div class="modal-body">
Do your really want to delete this profile?
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="deleteProfile()">Yes, delete the profile</button>
</div>
</div>
</div>
</div>
<div class="modal-body">
<table class="table table-bordered">
<tr><td>Selected Profile</td><td><b><span id="sel_prof"></span></b></td></tr>
<tr><td>Estimated Runtime</td><td><b><span id="sel_prof_eta"></span></b></td></tr>
<tr><td>Estimated Power consumption</td><td><b><span id="sel_prof_cost"></span></b></td></tr>
</table>
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="runTask()">Yes, start the Run</button>
</div>
</div>
</div>
</div>
</div>
<div id="delProfileModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="delProfileModalLabel">Delete this profile?</h3>
<div id="overwriteProfileModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="overwriteProfileModalLabel">Overwrite this profile?</h3>
</div>
<div class="modal-body">
Do your really want to overwrite this profile?
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="deleteProfile()">Yes, delete the profile</button>
</div>
</div>
</div>
</div>
<div class="modal-body">
Do your really want to delete this profile?
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="deleteProfile()">Yes, delete the profile</button>
</div>
</div>
</div>
</div>
</div>
<div id="overwriteProfileModal" class="modal fade" tabindex="-1" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3 class="modal-title" id="overwriteProfileModalLabel">Overwrite this profile?</h3>
</div>
<div class="modal-body">
Do your really want to overwrite this profile?
</div>
<div class="modal-footer">
<div class="btn-group" style="width: 100%">
<button type="button" class="btn btn-danger" style="width: 50%" data-dismiss="modal">No, take me back</button>
<button type="button" class="btn btn-success" style="width: 50%" data-dismiss="modal" onclick="deleteProfile()">Yes, delete the profile</button>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
</html>