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 f230b8729..a3570696f 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 644474b52..34c081738 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 f3d905929..fbe3a8266 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 525eca479..9ece8f697 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 7cd622e00..78f33e929 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 d4685a266..c1cb34bbb 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 e9a6a0379..7249c5335 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 000000000..8bcb9a866 --- /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#