diff --git a/Logic/Osm/ChangesetHandler.ts b/Logic/Osm/ChangesetHandler.ts index 21fc42dd2f..b62f9374b6 100644 --- a/Logic/Osm/ChangesetHandler.ts +++ b/Logic/Osm/ChangesetHandler.ts @@ -347,13 +347,10 @@ export class ChangesetHandler { const self = this; return new Promise(function (resolve, reject) { - let path = window.location.pathname; - path = path.substr(1, path.lastIndexOf("/")); const metadata = [ ["created_by", `MapComplete ${Constants.vNumber}`], ["locale", Locale.language.data], - ["host", window.location.host], - ["path", path], + ["host", `${window.location.origin}${window.location.pathname}`], ["source", self.changes.state["currentUserLocation"]?.features?.data?.length > 0 ? "survey" : undefined], ["imagery", self.changes.state["backgroundLayer"]?.data?.id], ...changesetTags.map(cstag => [cstag.key, cstag.value]) @@ -408,4 +405,4 @@ export class ChangesetHandler { } -} \ No newline at end of file +} diff --git a/Logic/State/FeaturePipelineState.ts b/Logic/State/FeaturePipelineState.ts index 900a031f49..d6ed0f3151 100644 --- a/Logic/State/FeaturePipelineState.ts +++ b/Logic/State/FeaturePipelineState.ts @@ -140,12 +140,12 @@ export default class FeaturePipelineState extends MapState { } - public CreatePopup(tags:any , layer: LayerConfig): ScrollableFullScreen{ - if(this.popups.has(tags.id)){ - // return this.popups.get(tags.id) + public CreatePopup(tags:UIEventSource , layer: LayerConfig): ScrollableFullScreen{ + if(this.popups.has(tags.data.id)){ + return this.popups.get(tags.data.id) } const popup = new FeatureInfoBox(tags, layer, this) - this.popups.set(tags.id, popup) + this.popups.set(tags.data.id, popup) return popup } diff --git a/UI/DefaultGUI.ts b/UI/DefaultGUI.ts index 7a9786787c..cfbb9aabc6 100644 --- a/UI/DefaultGUI.ts +++ b/UI/DefaultGUI.ts @@ -141,7 +141,6 @@ export default class DefaultGUI { leafletMap: state.leafletMap, layerToShow: new LayerConfig(home_location_json, "all_known_layers", true), features: state.homeLocation, - popup: undefined, state }) diff --git a/UI/ExportPDF.ts b/UI/ExportPDF.ts index c4b9f6b4bc..efe0fffc07 100644 --- a/UI/ExportPDF.ts +++ b/UI/ExportPDF.ts @@ -95,7 +95,6 @@ export default class ExportPDF { features: tile, leafletMap: minimap.leafletMap, layerToShow: tile.layer.layerDef, - popup: undefined, doShowLayer: tile.layer.isDisplayed, state: undefined } diff --git a/UI/ImportFlow/MapPreview.ts b/UI/ImportFlow/MapPreview.ts index 1929cd09aa..0d632a4729 100644 --- a/UI/ImportFlow/MapPreview.ts +++ b/UI/ImportFlow/MapPreview.ts @@ -27,7 +27,7 @@ import CheckBoxes from "../Input/Checkboxes"; class PreviewPanel extends ScrollableFullScreen { - constructor(tags, layer) { + constructor(tags: UIEventSource, layer) { super( _ => new FixedUiElement("Element to import"), _ => new Combine(["The tags are:", diff --git a/UI/Input/LocationInput.ts b/UI/Input/LocationInput.ts index 8e66d4270a..5743cd8513 100644 --- a/UI/Input/LocationInput.ts +++ b/UI/Input/LocationInput.ts @@ -189,7 +189,6 @@ export default class LocationInput extends InputElement implements MinimapO console.log("Constructing the snap-to layer", this._snapTo) new ShowDataMultiLayer({ features: new StaticFeatureSource(this._snapTo, true), - popup: undefined, zoomToFeatures: false, leafletMap: this.map.leafletMap, layers: State.state.filteredLayers @@ -204,7 +203,6 @@ export default class LocationInput extends InputElement implements MinimapO }) new ShowDataLayer({ features: new StaticFeatureSource(matchPoint, true), - popup: undefined, zoomToFeatures: false, leafletMap: this.map.leafletMap, layerToShow: this._matching_layer, diff --git a/UI/Popup/AutoApplyButton.ts b/UI/Popup/AutoApplyButton.ts index f4eb867254..27c1d2a482 100644 --- a/UI/Popup/AutoApplyButton.ts +++ b/UI/Popup/AutoApplyButton.ts @@ -96,7 +96,6 @@ class ApplyButton extends UIElement { new ShowDataLayer({ leafletMap: previewMap.leafletMap, - popup: undefined, zoomToFeatures: true, features: new StaticFeatureSource(features, false), state: this.state, diff --git a/UI/Popup/ImportButton.ts b/UI/Popup/ImportButton.ts index f6f5337aa7..efacb975d7 100644 --- a/UI/Popup/ImportButton.ts +++ b/UI/Popup/ImportButton.ts @@ -237,7 +237,6 @@ ${Utils.special_visualizations_importRequirementDocs} // SHow all relevant data - including (eventually) the way of which the geometry will be replaced new ShowDataMultiLayer({ leafletMap: confirmationMap.leafletMap, - popup: undefined, zoomToFeatures: true, features: new StaticFeatureSource([feature], false), state: state, @@ -248,7 +247,6 @@ ${Utils.special_visualizations_importRequirementDocs} action.getPreview().then(changePreview => { new ShowDataLayer({ leafletMap: confirmationMap.leafletMap, - popup: undefined, zoomToFeatures: false, features: changePreview, state, diff --git a/UI/Popup/SplitRoadWizard.ts b/UI/Popup/SplitRoadWizard.ts index 8ae8b01588..51bf4ab6a4 100644 --- a/UI/Popup/SplitRoadWizard.ts +++ b/UI/Popup/SplitRoadWizard.ts @@ -81,7 +81,6 @@ export default class SplitRoadWizard extends Toggle { features: new StaticFeatureSource([roadElement], false), layers: state.filteredLayers, leafletMap: miniMap.leafletMap, - popup: undefined, zoomToFeatures: true, state }) @@ -90,7 +89,6 @@ export default class SplitRoadWizard extends Toggle { features: new StaticFeatureSource(splitPoints, true), leafletMap: miniMap.leafletMap, zoomToFeatures: false, - popup: undefined, layerToShow: SplitRoadWizard.splitLayerStyling, state }) diff --git a/UI/ShowDataLayer/ShowDataLayer.ts b/UI/ShowDataLayer/ShowDataLayer.ts index dd50db6ad3..72ab8f9097 100644 --- a/UI/ShowDataLayer/ShowDataLayer.ts +++ b/UI/ShowDataLayer/ShowDataLayer.ts @@ -44,7 +44,7 @@ export default class ShowDataLayer { */ private readonly leafletLayersPerId = new Map() private readonly showDataLayerid: number; - private readonly createPopup: (tags: any, layer: LayerConfig) => ScrollableFullScreen + private readonly createPopup: (tags: UIEventSource, layer: LayerConfig) => ScrollableFullScreen /** * Creates a datalayer. diff --git a/UI/ShowDataLayer/ShowDataLayerOptions.ts b/UI/ShowDataLayer/ShowDataLayerOptions.ts index e79fe00d44..a9ace1f8de 100644 --- a/UI/ShowDataLayer/ShowDataLayerOptions.ts +++ b/UI/ShowDataLayer/ShowDataLayerOptions.ts @@ -8,7 +8,7 @@ export interface ShowDataLayerOptions { features: FeatureSource, selectedElement?: UIEventSource, leafletMap: UIEventSource, - popup?: undefined | ((tags: any, layer: LayerConfig) => ScrollableFullScreen), + popup?: undefined | ((tags: UIEventSource, layer: LayerConfig) => ScrollableFullScreen), zoomToFeatures?: false | boolean, doShowLayer?: UIEventSource, state?: { allElements?: ElementStorage } diff --git a/UI/ShowDataLayer/ShowTileInfo.ts b/UI/ShowDataLayer/ShowTileInfo.ts index 1b6cc1d85a..7698de25a9 100644 --- a/UI/ShowDataLayer/ShowTileInfo.ts +++ b/UI/ShowDataLayer/ShowTileInfo.ts @@ -56,7 +56,6 @@ export default class ShowTileInfo { leafletMap: options.leafletMap, doShowLayer: options.doShowLayer, state: State.state, - popup: undefined }) } diff --git a/UI/SpecialVisualizations.ts b/UI/SpecialVisualizations.ts index 97b5943755..9f1fc857a7 100644 --- a/UI/SpecialVisualizations.ts +++ b/UI/SpecialVisualizations.ts @@ -268,7 +268,6 @@ export default class SpecialVisualizations { new ShowDataMultiLayer( { leafletMap: minimap["leafletMap"], - popup: undefined, zoomToFeatures: true, layers: state.filteredLayers, features: new StaticFeatureSource(featuresToShow, true) @@ -314,7 +313,6 @@ export default class SpecialVisualizations { new ShowDataLayer( { leafletMap: minimap["leafletMap"], - popup: undefined, zoomToFeatures: true, layerToShow: new LayerConfig(left_right_style_json, "all_known_layers", true), features: new StaticFeatureSource([copy], false), diff --git a/langs/id.json b/langs/id.json index 24ebe01a30..45ef6bea23 100644 --- a/langs/id.json +++ b/langs/id.json @@ -1,10 +1,19 @@ { "centerMessage": { "loadingData": "Memuat data…", - "ready": "Selesai!" + "ready": "Selesai!", + "retrying": "Memuat data gagal. Mencoba lagi dalam {count} detik…", + "zoomIn": "Perbesar untuk melihat atau mengedit data" }, "delete": { - "cancel": "Batal" + "cancel": "Batal", + "cannotBeDeleted": "Fitur ini tidak dapat dihapus", + "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" }, "favourite": { "reload": "Muat ulang data" @@ -106,4 +115,4 @@ "split": { "cancel": "Batal" } -} \ No newline at end of file +} diff --git a/langs/shared-questions/id.json b/langs/shared-questions/id.json index 3bf4b6d9d3..6cebfc7ad1 100644 --- a/langs/shared-questions/id.json +++ b/langs/shared-questions/id.json @@ -13,8 +13,12 @@ }, "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()}?" @@ -23,6 +27,18 @@ "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?" @@ -45,4 +61,4 @@ "question": "Apa situs web dari {title()}?" } } -} \ No newline at end of file +} diff --git a/langs/themes/id.json b/langs/themes/id.json index d9fabf17f0..efe1d30c2d 100644 --- a/langs/themes/id.json +++ b/langs/themes/id.json @@ -8,7 +8,8 @@ "title": "Buka Peta Karya Seni" }, "benches": { - "title": "Bangku" + "title": "Bangku", + "shortDescription": "Peta bangku" }, "cafes_and_pubs": { "title": "Kafe dan pub" @@ -282,5 +283,12 @@ }, "waste_basket": { "title": "Keranjang Sampah" + }, + "bicyclelib": { + "title": "Perpustakaan sepeda" + }, + "bicycle_rental": { + "title": "Sewa sepeda", + "shortDescription": "Peta dengan stasiun persewaan sepeda dan toko penyewaan sepeda" } -} \ No newline at end of file +}