tune dashboard layout

This commit is contained in:
andreas 2021-11-10 16:28:55 +01:00
parent 48c57a1610
commit b02290d4d6
2 changed files with 50 additions and 3 deletions

View File

@ -184,6 +184,7 @@ body{
margin: 0;
box-sizing: border-box;
font-size: 1.2em;
justify-content: space-between;
}
div#dashboardPage {
display: flex;
@ -197,7 +198,12 @@ body{
.dashValue{
font-size: 1.6em;
text-align: center;
flex: 1;
}
.dashValue.formatLatitude {
font-size: 1.1em;
}
.dashValue.formatLongitude {
font-size: 1.1em;
}
.footer {
display: flex;

View File

@ -428,6 +428,44 @@ function handleTab(el) {
el.classList.add('active');
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 = {
formatCourse: {
f: function (v) {
@ -489,14 +527,16 @@ let valueFormatters = {
formatLatitude: {
f: function (v) {
let x = parseFloat(v);
return x.toFixed(4);
if (isNaN(x)) return '-----';
return formatLonLatsDecimal(x,'lat');
},
u: '°'
},
formatLongitude: {
f: function (v) {
let x = parseFloat(v);
return x.toFixed(4);
if (isNaN(x)) return '-----';
return formatLonLatsDecimal(x,'lon');
},
u: ''
},
@ -507,6 +547,7 @@ function createDashboardItem(name, def, parent) {
let value = addEl('span', 'dashValue', frame);
value.setAttribute('id', 'data_' + name);
let fmt=valueFormatters[def.format];
if (def.format) value.classList.add(def.format);
let footer = addEl('div','footer',frame);
let src= addEl('span','source',footer);
src.setAttribute('id','source_'+name);