From 80f0dbe6e3e5a32a7c6a497bb636e4485dade459 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet MapComplete is an OpenStreetMap editor that is meant to help everyone to easily add information on a single theme. Only features relevant to a single theme are shown with a few predefined questions, in order to keep things simple and extremly user-friendly." +
+ "The theme maintainer can also choose a language for the interface, choose to disable elements or even to embed it into a different website without any UI-element at all. However, another important part of MapComplete is to always offer the next step to learn more about OpenStreetMap:" +
+ "
" +
+
+ "
" +
"Breng jouw buurtnatuur in kaart
" +
"Natuur maakt gelukkig. Aan de hand van deze website willen we de natuur dicht bij ons beter inventariseren. Met als doel meer mensen te laten genieten van toegankelijke natuur én te strijden voor meer natuur in onze buurten. \n" +
"" +
diff --git a/Customizations/Questions/WikipediaLink.ts b/Customizations/Questions/WikipediaLink.ts
index f230b87298..a3570696f6 100644
--- a/Customizations/Questions/WikipediaLink.ts
+++ b/Customizations/Questions/WikipediaLink.ts
@@ -32,10 +32,12 @@ export class WikipediaLink extends TagRenderingOptions {
key: "wikipedia",
template: "$$$",
renderTemplate:
- "" +
+ "" +
"" +
- "
" +
+ "
" +
"",
+
+
placeholder: ""
},
diff --git a/Customizations/TagRendering.ts b/Customizations/TagRendering.ts
index 644474b52e..34c0817383 100644
--- a/Customizations/TagRendering.ts
+++ b/Customizations/TagRendering.ts
@@ -172,23 +172,24 @@ TagRendering extends UIElement implements TagDependantUIElement {
this._editButton = new FixedUiElement("");
if (this._question !== undefined) {
- this._editButton = new FixedUiElement("
")
+ this._editButton = new FixedUiElement(
+ "
")
.onClick(() => {
self._editMode.setData(true);
self._questionElement.GetValue().setData(self.CurrentValue());
});
}
-
const cancelContents = this._editMode.map((isEditing) => {
if (isEditing) {
- return "";
+ return "";
} else {
- return "";
+ return "";
}
}, [Locale.language]);
// And at last, set up the skip button
- this._skipButton = new VariableUiElement(cancelContents).onClick(cancel) ;
+ this._skipButton = new VariableUiElement(cancelContents).onClick(cancel);
}
diff --git a/InitUiElements.ts b/InitUiElements.ts
index f3d9059293..fbe3a8266d 100644
--- a/InitUiElements.ts
+++ b/InitUiElements.ts
@@ -59,17 +59,34 @@ export class InitUiElements {
tabs.push({header: `
`, content: new ShareScreen()});
}
- if (State.state.featureSwitchMoreQuests.data){
-
+ if (State.state.featureSwitchMoreQuests.data) {
+
tabs.push({
- header: `
`
- , content: new MoreScreen()
+ header: `
`,
+ content: new VariableUiElement(State.state.osmConnection.userDetails.map(userdetails => {
+ if(userdetails.csCount < State.userJourney.moreScreenUnlock){
+ return "";
+ }
+ return new MoreScreen().Render()
+ }, [Locale.language]))
});
}
- const fullOptions = new TabbedComponent(tabs, State.state.welcomeMessageOpenedTab);
+ tabs.push({
+ header: `
`,
+ content: new VariableUiElement(State.state.osmConnection.userDetails.map(userdetails => {
+ if (userdetails.csCount < State.userJourney.mapCompleteHelpUnlock) {
+ return ""
+ }
+ return Translations.t.general.aboutMapcomplete.Render();
+ }, [Locale.language]))
+ }
+ );
+
+ const fullOptions = new TabbedComponent(tabs, State.state.welcomeMessageOpenedTab);
+ fullOptions.ListenTo(State.state.osmConnection.userDetails);
return fullOptions;
}
diff --git a/Logic/Osm/OsmConnection.ts b/Logic/Osm/OsmConnection.ts
index 525eca479e..9ece8f6978 100644
--- a/Logic/Osm/OsmConnection.ts
+++ b/Logic/Osm/OsmConnection.ts
@@ -117,6 +117,8 @@ export class OsmConnection {
public LogOut() {
this.auth.logout();
this.userDetails.data.loggedIn = false;
+ this.userDetails.data.csCount = 0;
+ this.userDetails.data.name = "";
this.userDetails.ping();
console.log("Logged out")
}
diff --git a/State.ts b/State.ts
index 7cd622e009..78f33e929b 100644
--- a/State.ts
+++ b/State.ts
@@ -23,15 +23,19 @@ export class State {
// The singleton of the global state
public static state: State;
- public static vNumber = "0.0.7e Fixing all the bugs";
+ public static vNumber = "0.0.7f";
// The user journey states thresholds when a new feature gets unlocked
public static userJourney = {
+ moreScreenUnlock: 5,
personalLayoutUnlock: 20,
tagsVisibleAt: 100,
+ mapCompleteHelpUnlock: 200,
tagsVisibleAndWikiLinked: 150,
themeGeneratorReadOnlyUnlock: 200,
- themeGeneratorFullUnlock: 500,
+ themeGeneratorFullUnlock: 500,
+
+
};
public static runningFromConsole: boolean = false;
diff --git a/UI/FullScreenMessageBoxHandler.ts b/UI/FullScreenMessageBoxHandler.ts
index d4685a266a..c1cb34bbb7 100644
--- a/UI/FullScreenMessageBoxHandler.ts
+++ b/UI/FullScreenMessageBoxHandler.ts
@@ -36,7 +36,7 @@ export class FullScreenMessageBox extends UIElement {
window.onhashchange = function () {
if (location.hash === "") {
// No more element: back to the map!
- self._uielement.setData(undefined);
+ self._uielement?.setData(undefined);
onClear();
}
}
@@ -58,7 +58,7 @@ export class FullScreenMessageBox extends UIElement {
if (this._uielement === undefined) {
return "";
}
- return new Combine([this._uielement, this.returnToTheMap]).SetStyle("").Render();
+ return new Combine([this._uielement, this.returnToTheMap]).Render();
}
diff --git a/UI/i18n/Translations.ts b/UI/i18n/Translations.ts
index e9a6a03799..7249c53359 100644
--- a/UI/i18n/Translations.ts
+++ b/UI/i18n/Translations.ts
@@ -1148,11 +1148,11 @@ export default class Translations {
},
morescreen: {
intro: new T({
- en: "
More quests
Do you enjoy collecting geodata?
There are more layers available.",
+ en: "More quests
Do you enjoy collecting geodata?
There are more themes available.",
ca: "Més peticions
T\'agrada captar dades?
Hi ha més capes disponibles.",
es: "Más peticiones
Te gusta captar datos?
Hay más capas disponibles.",
fr: "Plus de thème
Vous aimez collecter des données?
Il y a plus de thèmes disponible.",
- nl: "Meer thema's
Vind je het leuk om geodata te verzamelen?
Hier vind je meer opties.",
+ nl: "Meer thema's
Vind je het leuk om geodata te verzamelen?
Hier vind je meer kaartthemas.",
gl: "Máis tarefas
Góstache captar datos?
Hai máis capas dispoñíbeis."
}),
@@ -1232,7 +1232,40 @@ export default class Translations {
en: "Custom themes
These are previously visited user-generated themes.",
nl: "Onofficiële themea's
Je bezocht deze thema's gemaakt door andere OpenStreetMappers eerder",
gl: "Temas personalizados
Estes son temas xerados por usuarios previamente visitados."
- }),
+ }), aboutMapcomplete: new T({
+ en:"About MapComplete
" +
+ "" +
+ "
Do you notice an issue with MapComplete? Do you have a feature request? Do you want to help translating? " + + "Head over to the source code or issue tracker.
", + nl:"MapComplete is een OpenStreetMap-editor om eenvoudig informatie toe te voegen over één enkel onderwerp.
" + + "Om de editor zo simpel en gebruiksvriendelijk mogelijk te houden, worden enkel objecten relevant voor het thema getoond." + + "Voor deze objecten kunnen dan vragen beantwoord worden, of men kan een nieuw punt van dit thema toevoegen." + + "De maker van het thema kan er ook voor opteren om een aantal elementen van de gebruikersinterface uit te schakelen of de taal ervan in te stellen.
" + + + "Een ander belangrijk aspect is om bezoekers stap voor stap meer te leren over OpenStreetMap:" + + "
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker
", + + }) + }, favourite: { diff --git a/aed.html b/aed.html new file mode 100644 index 0000000000..8bcb9a866f --- /dev/null +++ b/aed.html @@ -0,0 +1,70 @@ + + + + + + +_3_PJu=^&J9qBf`@29dz4Vf~knRLjao`7^$qM#q87Bo_
zMiS$QFdmE%Ovq)RF9F%;_y9mNfm@hFGnkKqQOltJ2$K6H(f;PF4-Q@)+1sx3|4~K8
z3S4{dl#mP ?#`0GrOI0$P4o%ZdzY{-{Q+W(*%mz17KLfp>auOS1z-UJ8&Jqia)!*_4n
zrCN-eWXun^v3%~ofSqy>{VUR}t2F?f0M>F(J)yE}(G|O1keJKhTj9R7wH^XCOYk!%vX5?ZYR916q>O<2vS&fr`I@HR
z#mqMo(F_32Zi+rb7YOx`*hD?C4gQtek0^@6Hd0bRec@1
{-+Agci~ze+Xzh3d5sA@h7$@~Hx*P2~Lbwayp_@OpMi?5!uivwU7`
zs&BwR!VF8k5B>aD0%}Jj#