tune dashboard layout
This commit is contained in:
parent
48c57a1610
commit
b02290d4d6
|
@ -184,6 +184,7 @@ body{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
div#dashboardPage {
|
div#dashboardPage {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -197,7 +198,12 @@ body{
|
||||||
.dashValue{
|
.dashValue{
|
||||||
font-size: 1.6em;
|
font-size: 1.6em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
flex: 1;
|
}
|
||||||
|
.dashValue.formatLatitude {
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
.dashValue.formatLongitude {
|
||||||
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
.footer {
|
.footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
45
web/index.js
45
web/index.js
|
@ -428,6 +428,44 @@ function handleTab(el) {
|
||||||
el.classList.add('active');
|
el.classList.add('active');
|
||||||
activeTab.classList.remove('hidden');
|
activeTab.classList.remove('hidden');
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {number} coordinate
|
||||||
|
* @param axis
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
function formatLonLatsDecimal(coordinate,axis){
|
||||||
|
coordinate = (coordinate+540)%360 - 180; // normalize for sphere being round
|
||||||
|
|
||||||
|
let abscoordinate = Math.abs(coordinate);
|
||||||
|
let coordinatedegrees = Math.floor(abscoordinate);
|
||||||
|
|
||||||
|
let coordinateminutes = (abscoordinate - coordinatedegrees)/(1/60);
|
||||||
|
let numdecimal=2;
|
||||||
|
//correctly handle the toFixed(x) - will do math rounding
|
||||||
|
if (coordinateminutes.toFixed(numdecimal) == 60){
|
||||||
|
coordinatedegrees+=1;
|
||||||
|
coordinateminutes=0;
|
||||||
|
}
|
||||||
|
if( coordinatedegrees < 10 ) {
|
||||||
|
coordinatedegrees = "0" + coordinatedegrees;
|
||||||
|
}
|
||||||
|
if (coordinatedegrees < 100 && axis == 'lon'){
|
||||||
|
coordinatedegrees = "0" + coordinatedegrees;
|
||||||
|
}
|
||||||
|
let str = coordinatedegrees + "\u00B0";
|
||||||
|
|
||||||
|
if( coordinateminutes < 10 ) {
|
||||||
|
str +="0";
|
||||||
|
}
|
||||||
|
str += coordinateminutes.toFixed(numdecimal) + "'";
|
||||||
|
if (axis == "lon") {
|
||||||
|
str += coordinate < 0 ? "W" :"E";
|
||||||
|
} else {
|
||||||
|
str += coordinate < 0 ? "S" :"N";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
};
|
||||||
let valueFormatters = {
|
let valueFormatters = {
|
||||||
formatCourse: {
|
formatCourse: {
|
||||||
f: function (v) {
|
f: function (v) {
|
||||||
|
@ -489,14 +527,16 @@ let valueFormatters = {
|
||||||
formatLatitude: {
|
formatLatitude: {
|
||||||
f: function (v) {
|
f: function (v) {
|
||||||
let x = parseFloat(v);
|
let x = parseFloat(v);
|
||||||
return x.toFixed(4);
|
if (isNaN(x)) return '-----';
|
||||||
|
return formatLonLatsDecimal(x,'lat');
|
||||||
},
|
},
|
||||||
u: '°'
|
u: '°'
|
||||||
},
|
},
|
||||||
formatLongitude: {
|
formatLongitude: {
|
||||||
f: function (v) {
|
f: function (v) {
|
||||||
let x = parseFloat(v);
|
let x = parseFloat(v);
|
||||||
return x.toFixed(4);
|
if (isNaN(x)) return '-----';
|
||||||
|
return formatLonLatsDecimal(x,'lon');
|
||||||
},
|
},
|
||||||
u: ''
|
u: ''
|
||||||
},
|
},
|
||||||
|
@ -507,6 +547,7 @@ function createDashboardItem(name, def, parent) {
|
||||||
let value = addEl('span', 'dashValue', frame);
|
let value = addEl('span', 'dashValue', frame);
|
||||||
value.setAttribute('id', 'data_' + name);
|
value.setAttribute('id', 'data_' + name);
|
||||||
let fmt=valueFormatters[def.format];
|
let fmt=valueFormatters[def.format];
|
||||||
|
if (def.format) value.classList.add(def.format);
|
||||||
let footer = addEl('div','footer',frame);
|
let footer = addEl('div','footer',frame);
|
||||||
let src= addEl('span','source',footer);
|
let src= addEl('span','source',footer);
|
||||||
src.setAttribute('id','source_'+name);
|
src.setAttribute('id','source_'+name);
|
||||||
|
|
Loading…
Reference in New Issue