From 3341747dfabc5649714682d0512c72fe709c9ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= Date: Fri, 7 Feb 2020 23:00:51 +0100 Subject: [PATCH] GeoInfo: format icons via css --- src/GeoInfo.css | 54 ++++++++++++++++++++++++++++++++++++++++--------- src/GeoInfo.js | 36 ++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 25 deletions(-) diff --git a/src/GeoInfo.css b/src/GeoInfo.css index 9d0b66cc..fb232a39 100644 --- a/src/GeoInfo.css +++ b/src/GeoInfo.css @@ -1,22 +1,58 @@ .geo-info > div { display: flex; + position: relative; align-items: end; margin-top: 0.5em; } -.geo-info > div:first-of-type, +.geo-info > div:first-of-type { + margin-top: 0; +} .geo-info > div.empty { margin-top: 0; + display: none; } -.geo-info > div > .icon { - width: 15px; - height: 15px; +.geo-info > div::before { + width: 16px; + height: 16px; + content: ' '; margin-right: 0.5em; } -.geo-info > div > i.icon { - display: flex; + +.geo-info > .bbox-nw-corner::before { + background: url("../img/geo-info-bbox-nw.svg"); +} +.geo-info > .bbox-center::before { + background: url("../img/geo-info-bbox-center.svg"); +} +.geo-info > .bbox-se-corner::before { + background: url("../img/geo-info-bbox-se.svg"); +} +.geo-info > .object-shape::before { + background: url("../img/geo-info-object-shape.svg"); +} +.geo-info > .object-nw-corner::before { + background: url("../img/geo-info-object-nw.svg"); +} +.geo-info > .object-center::before { + background: url("../img/geo-info-object-center.svg"); +} +.geo-info > .object-se-corner::before { + background: url("../img/geo-info-object-se.svg"); +} +.geo-info > .zoom::before, +.geo-info > .location::before, +.geo-info > .mouse::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + font-size: 1.25em; + text-align: center; +} +.geo-info > .zoom::before { + content: "\f689"; } -.geo-info > div > i.icon::before { - margin: auto; +.geo-info > .location::before { + content: "\f3c5"; } -.geo-info > div > .value { +.geo-info > .mouse::before { + content: "\f245"; } diff --git a/src/GeoInfo.js b/src/GeoInfo.js index ca922890..4303eb78 100644 --- a/src/GeoInfo.js +++ b/src/GeoInfo.js @@ -19,29 +19,33 @@ register_hook('init', function () { tab.header.title = lang('geoinfo:header') let domZoom = document.createElement('div') + domZoom.className = 'zoom' domZoom.title = lang('geoinfo:zoom') tab.content.appendChild(domZoom) let domBBoxNW = document.createElement('div') + domBBoxNW.className = 'bbox-nw-corner' domBBoxNW.title = lang('geoinfo:nw-corner') tab.content.appendChild(domBBoxNW) let domCenter = document.createElement('div') + domCenter.className = 'bbox-center' domCenter.title = lang('geoinfo:center') tab.content.appendChild(domCenter) let domBBoxSE = document.createElement('div') + domBBoxSE.className = 'bbox-se-corner' domBBoxSE.title = lang('geoinfo:se-corner') tab.content.appendChild(domBBoxSE) let domMouse = document.createElement('div') + domMouse.className = 'mouse empty' domMouse.title = lang('geoinfo:mouse') - domMouse.className = 'empty' tab.content.appendChild(domMouse) let domLocation = document.createElement('div') domLocation.title = lang('geoinfo:location') - domLocation.className = 'empty' + domLocation.className = 'location empty' tab.content.appendChild(domLocation) function getPrecision () { @@ -58,12 +62,12 @@ register_hook('init', function () { let scale = formatUnits.distance(global.map.getMetersPerPixel()) let precision = getPrecision() - domZoom.innerHTML = 'z' + Math.round(global.map.getZoom()) + ', ' + scale + '/px' + domZoom.innerHTML = 'z' + Math.round(global.map.getZoom()) + ', ' + scale + '/px' let bounds = map.getBounds() - domBBoxNW.innerHTML = '' + formatUnits.coord(bounds.getNorthWest().wrap(), { precision }) + '' - domCenter.innerHTML = '' + formatUnits.coord(bounds.getCenter().wrap(), { precision }) + '' - domBBoxSE.innerHTML = '' + formatUnits.coord(bounds.getSouthEast().wrap(), { precision }) + '' + domBBoxNW.innerHTML = '' + formatUnits.coord(bounds.getNorthWest().wrap(), { precision }) + '' + domCenter.innerHTML = '' + formatUnits.coord(bounds.getCenter().wrap(), { precision }) + '' + domBBoxSE.innerHTML = '' + formatUnits.coord(bounds.getSouthEast().wrap(), { precision }) + '' updateTabHeader(tab.header) } @@ -75,8 +79,8 @@ register_hook('init', function () { if (e) { let precision = getPrecision() - domMouse.innerHTML = '' + formatUnits.coord(e.latlng.wrap(), { precision }) + '' - domMouse.className = '' + domMouse.innerHTML = '' + formatUnits.coord(e.latlng.wrap(), { precision }) + '' + domMouse.classList.remove('empty') } else { removeMouse() } @@ -87,7 +91,7 @@ register_hook('init', function () { function removeMouse () { lastMouseEvent = null domMouse.innerHTML = '' - domMouse.className = 'empty' + domMouse.classList.add('empty') } let lastLocation @@ -97,8 +101,8 @@ register_hook('init', function () { } if (e) { - domLocation.innerHTML = '' + formatUnits.coord(e.latlng.wrap()) + '' - domLocation.className = '' + domLocation.innerHTML = '' + formatUnits.coord(e.latlng.wrap(), { precision: 5 }) + '' + domLocation.classList.remove('empty') } } @@ -137,21 +141,21 @@ function geoInfoShowDetails (data, category, div) { let length = turf.length(geojson) * 1000 if (area !== 0 || length !== 0) { - result += '
' + - '' + + result += '
' + + '' + lang('geoinfo:length') + ': ' + formatUnits.distance(length) + (area === 0 ? '' : ', ' + lang('geoinfo:area') + ': ' + formatUnits.area(area)) + '
' } if (ob.bounds.minlat !== ob.bounds.maxlat || ob.bounds.minlon !== ob.bounds.maxlon) { - result += '
' + formatUnits.coord({ lat: ob.bounds.minlat, lng: ob.bounds.maxlon }) + '
' + result += '
' + formatUnits.coord({ lat: ob.bounds.minlat, lng: ob.bounds.maxlon }) + '
' } - result += '
' + formatUnits.coord({ lat: ob.center.lat, lng: ob.center.lon }) + '
' + result += '
' + formatUnits.coord({ lat: ob.center.lat, lng: ob.center.lon }) + '
' if (ob.bounds.minlat !== ob.bounds.maxlat || ob.bounds.minlon !== ob.bounds.maxlon) { - result += '
' + formatUnits.coord({ lat: ob.bounds.maxlat, lng: ob.bounds.minlon }) + '
' + result += '
' + formatUnits.coord({ lat: ob.bounds.maxlat, lng: ob.bounds.minlon }) + '
' } result += '
'