forked from MapComplete/MapComplete
Fix #691
This commit is contained in:
parent
b9546d8ea6
commit
3fb7cc90fc
12 changed files with 100 additions and 97 deletions
|
@ -2,22 +2,24 @@ import {UIElement} from "../UIElement";
|
|||
import BaseUIElement from "../BaseUIElement";
|
||||
import {UIEventSource} from "../../Logic/UIEventSource";
|
||||
import ExtraLinkConfig from "../../Models/ThemeConfig/ExtraLinkConfig";
|
||||
import MapControlButton from "../MapControlButton";
|
||||
import Link from "../Base/Link";
|
||||
import Img from "../Base/Img";
|
||||
import {SubtleButton} from "../Base/SubtleButton";
|
||||
import Toggle from "../Input/Toggle";
|
||||
import Loc from "../../Models/Loc";
|
||||
import Locale from "../i18n/Locale";
|
||||
import {Utils} from "../../Utils";
|
||||
import Svg from "../../Svg";
|
||||
import Translations from "../i18n/Translations";
|
||||
import {Translation} from "../i18n/Translation";
|
||||
|
||||
export default class ExtraLinkButton extends UIElement {
|
||||
private readonly _config: ExtraLinkConfig;
|
||||
private readonly state: {
|
||||
layoutToUse: {id: string};
|
||||
featureSwitchWelcomeMessage: UIEventSource<boolean>, locationControl: UIEventSource<Loc>};
|
||||
layoutToUse: { id: string, title: Translation };
|
||||
featureSwitchWelcomeMessage: UIEventSource<boolean>, locationControl: UIEventSource<Loc>
|
||||
};
|
||||
|
||||
constructor(state: {featureSwitchWelcomeMessage: UIEventSource<boolean>, locationControl: UIEventSource<Loc>, layoutToUse: {id: string}},
|
||||
constructor(state: { featureSwitchWelcomeMessage: UIEventSource<boolean>, locationControl: UIEventSource<Loc>, layoutToUse: { id: string, title: Translations } },
|
||||
config: ExtraLinkConfig) {
|
||||
super();
|
||||
this.state = state;
|
||||
|
@ -52,21 +54,25 @@ export default class ExtraLinkButton extends UIElement{
|
|||
return Utils.SubstituteKeys(c.href, subs)
|
||||
})
|
||||
|
||||
if(c.text === undefined){
|
||||
link = new MapControlButton(
|
||||
new Link(new Img(c.icon), href, c.newTab).SetClass("block w-full h-full p-1.5")
|
||||
)
|
||||
}else {
|
||||
let img : BaseUIElement = undefined
|
||||
|
||||
let img: BaseUIElement = Svg.pop_out_ui()
|
||||
if (c.icon !== undefined) {
|
||||
img = new Img(c.icon).SetClass("h-6")
|
||||
}
|
||||
|
||||
link = new SubtleButton(img,c.text, {url:
|
||||
href,
|
||||
newTab: c.newTab})
|
||||
let text: Translation
|
||||
if (c.text === undefined) {
|
||||
text = Translations.t.general.screenToSmall.Fuse(this.state.layoutToUse.title, "{theme}")
|
||||
} else {
|
||||
text = c.text.Clone()
|
||||
}
|
||||
|
||||
link = new SubtleButton(img, text, {
|
||||
url:
|
||||
href,
|
||||
newTab: c.newTab
|
||||
})
|
||||
|
||||
if (c.requirements.has("no-welcome-message")) {
|
||||
link = new Toggle(undefined, link, this.state.featureSwitchWelcomeMessage)
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import Combine from "./Base/Combine";
|
|||
import AddNewMarker from "./BigComponents/AddNewMarker";
|
||||
import FilteredLayer from "../Models/FilteredLayer";
|
||||
import ExtraLinkButton from "./BigComponents/ExtraLinkButton";
|
||||
import {SubtleButton} from "./Base/SubtleButton";
|
||||
|
||||
|
||||
/**
|
||||
|
@ -163,11 +164,22 @@ export default class DefaultGUI {
|
|||
() => new UserBadge(state)
|
||||
),
|
||||
Toggle.If(state.featureSwitchExtraLinkEnabled,
|
||||
() => new ExtraLinkButton(state, state.layoutToUse.extraLink)
|
||||
() => {
|
||||
if (state.layoutToUse.extraLink.text === undefined) {
|
||||
return Translations.t.general.screenToSmall
|
||||
}
|
||||
return new ExtraLinkButton(state, state.layoutToUse.extraLink);
|
||||
}
|
||||
)
|
||||
]).SetClass("flex flex-col")
|
||||
.AttachTo("userbadge")
|
||||
|
||||
const el = state.layoutToUse.extraLink
|
||||
new Combine([
|
||||
new ExtraLinkButton(state, {...state.layoutToUse.extraLink, newTab: true})
|
||||
]).SetClass("flex items-center justify-center normal-background h-full")
|
||||
.AttachTo("on-small-screen")
|
||||
|
||||
Toggle.If(state.featureSwitchSearch,
|
||||
() => new SearchAndGo(state))
|
||||
.AttachTo("searchbox");
|
||||
|
|
|
@ -1103,10 +1103,6 @@ video {
|
|||
max-height: 2rem;
|
||||
}
|
||||
|
||||
.max-h-6 {
|
||||
max-height: 1.5rem;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -1504,10 +1500,6 @@ video {
|
|||
padding: 0px;
|
||||
}
|
||||
|
||||
.p-1\.5 {
|
||||
padding: 0.375rem;
|
||||
}
|
||||
|
||||
.p-0\.5 {
|
||||
padding: 0.125rem;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,29 @@ Contains tweaks for small screens
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (min-height: 300px) and (min-width: 225px) {
|
||||
.very-small-screen {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
.hidden-on-very-small-screen {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@media not screen and (min-height: 300px) and (min-width: 225px) {
|
||||
.very-small-screen {
|
||||
}
|
||||
|
||||
.hidden-on-very-small-screen {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px), only screen and (max-height: 768px) {
|
||||
|
||||
|
||||
|
|
|
@ -189,6 +189,7 @@
|
|||
"removeLocationHistory": "Delete the location history",
|
||||
"returnToTheMap": "Return to the map",
|
||||
"save": "Save",
|
||||
"screenToSmall": "Open {theme} in a new window",
|
||||
"search": {
|
||||
"error": "Something went wrong…",
|
||||
"nothing": "Nothing found…",
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
"delete": {
|
||||
"cancel": "Batal",
|
||||
"cannotBeDeleted": "Fitur ini tidak dapat dihapus",
|
||||
"delete": "Hapus",
|
||||
"explanations": {
|
||||
"selectReason": "Silahkan pilih mengapa fitur ini harus dihapus"
|
||||
},
|
||||
"isntAPoint": "Hanya titik yang dapat dihapus, fitur yang dipilih adalah jalan, area, atau relasi.",
|
||||
"delete": "Hapus",
|
||||
"isDeleted": "Fitur ini telah dihapus"
|
||||
"isDeleted": "Fitur ini telah dihapus",
|
||||
"isntAPoint": "Hanya titik yang dapat dihapus, fitur yang dipilih adalah jalan, area, atau relasi."
|
||||
},
|
||||
"favourite": {
|
||||
"reload": "Muat ulang data"
|
||||
|
|
|
@ -11,17 +11,8 @@
|
|||
"0": {
|
||||
"then": "Bangunan ini tidak memiliki nomor rumah"
|
||||
}
|
||||
},
|
||||
"question": "Berapa nomor rumah ini?",
|
||||
"render": "Nomor rumah ini <b>{addr:housenumber}</b>"
|
||||
},
|
||||
"street": {
|
||||
"question": "Alamat ini di jalan apa?",
|
||||
"render": "Alamat ini ada di jalan <b>{addr:street}</b>"
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": "Alamat yang diketahui"
|
||||
}
|
||||
}
|
||||
},
|
||||
"artwork": {
|
||||
|
@ -386,14 +377,5 @@
|
|||
},
|
||||
"watermill": {
|
||||
"name": "Kincir Air"
|
||||
},
|
||||
"ambulancestation": {
|
||||
"name": "Peta stasiun ambulans",
|
||||
"presets": {
|
||||
"0": {
|
||||
"description": "Tambahkan stasiun ambulans ke peta",
|
||||
"title": "Stasiun ambulans"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -54,7 +54,7 @@
|
|||
"importTags": "Het element zal deze tags krijgen: {tags}",
|
||||
"officialThemesOnly": "In onofficiële thema's is de importeerknop uitgeschakeld om ongelukjes te vermijden",
|
||||
"wrongType": "Dit object is geen punt of lijn, en kan daarom niet geïmporteerd worden",
|
||||
"zoomInMore": "Zoom verder in om dit kaart-object te kunnen importeren"
|
||||
"zoomInMore": "Zoom verder in om dit object af te handelen"
|
||||
},
|
||||
"importTags": "Het object zal deze tags krijgen: {tags}",
|
||||
"intro": "Kies hieronder welk punt je wilt toevoegen<br/>",
|
||||
|
|
|
@ -13,12 +13,8 @@
|
|||
},
|
||||
"2": {
|
||||
"then": "Anjing diperbolehkan, tetapi mereka harus diikat"
|
||||
},
|
||||
"3": {
|
||||
"then": "Anjing diperbolehkan dan dapat berkeliaran dengan bebas"
|
||||
}
|
||||
},
|
||||
"question": "Apakah anjing diperbolehkan dalam bisnis ini?"
|
||||
}
|
||||
},
|
||||
"email": {
|
||||
"question": "Apa alamat surel dari {title()}?"
|
||||
|
@ -27,18 +23,6 @@
|
|||
"mappings": {
|
||||
"3": {
|
||||
"then": "Berlokasi di lantai pertama"
|
||||
},
|
||||
"1": {
|
||||
"then": "Terletak di lantai dasar"
|
||||
},
|
||||
"0": {
|
||||
"then": "Terletak di bawah tanah"
|
||||
},
|
||||
"2": {
|
||||
"then": "Terletak di lantai dasar"
|
||||
},
|
||||
"4": {
|
||||
"then": "Terletak di lantai basement pertama"
|
||||
}
|
||||
},
|
||||
"question": "Pada tingkat apa fitur ini diletakkan?"
|
||||
|
|
|
@ -879,6 +879,17 @@
|
|||
"question": "What kind of building is this?"
|
||||
}
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"tagRenderings": {
|
||||
"Import-button": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Did not yet calculate the metatags... Reopen this popup"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
"title": "Buka Peta Karya Seni"
|
||||
},
|
||||
"benches": {
|
||||
"title": "Bangku",
|
||||
"shortDescription": "Peta bangku"
|
||||
"title": "Bangku"
|
||||
},
|
||||
"cafes_and_pubs": {
|
||||
"title": "Kafe dan pub"
|
||||
|
@ -283,12 +282,5 @@
|
|||
},
|
||||
"waste_basket": {
|
||||
"title": "Keranjang Sampah"
|
||||
},
|
||||
"bicyclelib": {
|
||||
"title": "Perpustakaan sepeda"
|
||||
},
|
||||
"bicycle_rental": {
|
||||
"title": "Sewa sepeda",
|
||||
"shortDescription": "Peta dengan stasiun persewaan sepeda dan toko penyewaan sepeda"
|
||||
}
|
||||
}
|
|
@ -47,8 +47,9 @@
|
|||
<!-- DECORATION 0 END -->
|
||||
</div>
|
||||
|
||||
<div class="hidden md:hidden fixed inset-0 block z-above-controls" id="fullscreen"></div>
|
||||
<div class="z-index-above-map pointer-events-none" id="topleft-tools">
|
||||
<div class="very-small-screen fixed inset-0 block z-above-controls" id="on-small-screen"></div>
|
||||
<div class="hidden md:hidden fixed inset-0 block z-above-controls hidden-on-very-small-screen" id="fullscreen"></div>
|
||||
<div class="z-index-above-map pointer-events-none" id="topleft-tools">'
|
||||
<div class="p-3 flex flex-col items-end sm:items-start sm:flex-row sm:flex-wrap w-full sm:justify-between">
|
||||
<div class="shadow rounded-full h-min w-full overflow-hidden sm:max-w-sm pointer-events-auto"
|
||||
id="searchbox"></div>
|
||||
|
@ -83,7 +84,6 @@
|
|||
<div id="leafletDiv"></div>
|
||||
|
||||
|
||||
|
||||
<script src="./index.ts"></script>
|
||||
<script async data-goatcounter="https://pietervdvn.goatcounter.com/count" src="//gc.zgo.at/count.js"></script>
|
||||
|
||||
|
|
Loading…
Reference in a new issue