Sexier layer selection panel
This commit is contained in:
parent
a6cc01982f
commit
0084e462e8
2 changed files with 33 additions and 7 deletions
|
@ -4,6 +4,8 @@ import Combine from "./Base/Combine";
|
||||||
import {Img} from "./Img";
|
import {Img} from "./Img";
|
||||||
import {State} from "../State";
|
import {State} from "../State";
|
||||||
import Translations from "./i18n/Translations";
|
import Translations from "./i18n/Translations";
|
||||||
|
import {FixedUiElement} from "./Base/FixedUiElement";
|
||||||
|
import {VariableUiElement} from "./Base/VariableUIElement";
|
||||||
|
|
||||||
export class LayerSelection extends UIElement {
|
export class LayerSelection extends UIElement {
|
||||||
|
|
||||||
|
@ -15,16 +17,36 @@ export class LayerSelection extends UIElement {
|
||||||
|
|
||||||
for (const layer of State.state.filteredLayers.data) {
|
for (const layer of State.state.filteredLayers.data) {
|
||||||
const checkbox = Img.checkmark;
|
const checkbox = Img.checkmark;
|
||||||
let icon = "";
|
let icon : UIElement;
|
||||||
if (layer.layerDef.icon && layer.layerDef.icon !== "") {
|
if (layer.layerDef.icon && layer.layerDef.icon !== "") {
|
||||||
icon = `<img width="20" height="20" src="${layer.layerDef.icon}">`
|
icon = new FixedUiElement(`<img style="height:2em;max-width: 2em;" src="${layer.layerDef.icon}">`);
|
||||||
|
}else{
|
||||||
|
icon = new FixedUiElement(Img.checkmark);
|
||||||
}
|
}
|
||||||
const name = Translations.WT(layer.layerDef.name).Clone()
|
|
||||||
.SetStyle("font-size:large;");
|
|
||||||
|
|
||||||
|
let iconUnselected : UIElement;
|
||||||
|
if (layer.layerDef.icon && layer.layerDef.icon !== "") {
|
||||||
|
iconUnselected = new FixedUiElement(`<img style="height:2em;max-width: 2em;" src="${layer.layerDef.icon}">`);
|
||||||
|
}else{
|
||||||
|
iconUnselected = new FixedUiElement("");
|
||||||
|
}
|
||||||
|
iconUnselected.SetStyle("opacity:0.2");
|
||||||
|
|
||||||
|
const name = Translations.WT(layer.layerDef.name).Clone()
|
||||||
|
.SetStyle("font-size:large;margin-left: 0.5em;");
|
||||||
|
|
||||||
|
|
||||||
|
const zoomStatus = new VariableUiElement(State.state.locationControl.map(location => {
|
||||||
|
if(location.zoom < layer.layerDef.minzoom){
|
||||||
|
return Translations.t.general.zoomInToSeeThisLayer
|
||||||
|
.SetClass("alert")
|
||||||
|
.Render();
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}))
|
||||||
this._checkboxes.push(new CheckBox(
|
this._checkboxes.push(new CheckBox(
|
||||||
new Combine([checkbox, icon, name]),
|
new Combine([icon, name, zoomStatus]),
|
||||||
new Combine([Img.no_checkmark, icon, name]),
|
new Combine([iconUnselected, "<del>",name,"</del>", zoomStatus]),
|
||||||
layer.isDisplayed)
|
layer.isDisplayed)
|
||||||
.SetStyle("margin:0.3em;")
|
.SetStyle("margin:0.3em;")
|
||||||
);
|
);
|
||||||
|
|
|
@ -498,7 +498,7 @@ export default class Translations {
|
||||||
"<p>Moltes persones i aplicacions ja utilitzen OpenStreetMap: <a href='https://maps.me/' target='_blank'>Maps.me</a>, <a href='https://osmAnd.net' target='_blank'>OsmAnd</a>, però també els mapes de Facebook, Instagram, Apple i Bing són (en part) impulsats per OpenStreetMap." +
|
"<p>Moltes persones i aplicacions ja utilitzen OpenStreetMap: <a href='https://maps.me/' target='_blank'>Maps.me</a>, <a href='https://osmAnd.net' target='_blank'>OsmAnd</a>, però també els mapes de Facebook, Instagram, Apple i Bing són (en part) impulsats per OpenStreetMap." +
|
||||||
"Si canvies alguna cosa aquí també es reflectirà en aquestes aplicacions en la seva propera actualització.</p>",
|
"Si canvies alguna cosa aquí també es reflectirà en aquestes aplicacions en la seva propera actualització.</p>",
|
||||||
nl: "<h3>Een open kaart</h3>" +
|
nl: "<h3>Een open kaart</h3>" +
|
||||||
"<p>Zou het niet fantastisch zijn als er een open kaart zou zijn die door iedereen aangepast én gebruikt kan worden? Een kaart iedereen zijn interesses aan zou kunnen toevoegen? " +
|
"<p>Zou het niet fantastisch zijn als er een open kaart zou zijn die door iedereen aangepast én gebruikt kan worden? Een kaart waar iedereen zijn interesses aan zou kunnen toevoegen? " +
|
||||||
"Dan zouden er geen duizend-en-één verschillende kleine kaartjes, websites, ... meer nodig zijn</p>" +
|
"Dan zouden er geen duizend-en-één verschillende kleine kaartjes, websites, ... meer nodig zijn</p>" +
|
||||||
"<p><b><a href='https://OpenStreetMap.org' target='_blank'>OpenStreetMap</a></b> is deze open kaart. Je mag de kaartdata gratis gebruiken (mits <a href='https://osm.org/copyright' target='_blank'>bronvermelding en herpublicatie van aanpassingen</a>). Daarenboven mag je de kaart ook gratis aanpassen als je een account maakt. " +
|
"<p><b><a href='https://OpenStreetMap.org' target='_blank'>OpenStreetMap</a></b> is deze open kaart. Je mag de kaartdata gratis gebruiken (mits <a href='https://osm.org/copyright' target='_blank'>bronvermelding en herpublicatie van aanpassingen</a>). Daarenboven mag je de kaart ook gratis aanpassen als je een account maakt. " +
|
||||||
"Ook deze website is gebaseerd op OpenStreetMap. Als je hier een vraag beantwoord, gaat het antwoord daar ook naartoe</p>" +
|
"Ook deze website is gebaseerd op OpenStreetMap. Als je hier een vraag beantwoord, gaat het antwoord daar ook naartoe</p>" +
|
||||||
|
@ -791,6 +791,10 @@ export default class Translations {
|
||||||
"en": "Background map",
|
"en": "Background map",
|
||||||
"nl": "Achtergrondkaart",
|
"nl": "Achtergrondkaart",
|
||||||
"de": "Hintergrundkarte"
|
"de": "Hintergrundkarte"
|
||||||
|
}),
|
||||||
|
zoomInToSeeThisLayer: new T({
|
||||||
|
"nl":"Vergroot de kaart om deze laag te zien",
|
||||||
|
"en":"Zoom in to see this layer"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
favourite: {
|
favourite: {
|
||||||
|
|
Loading…
Reference in a new issue