diff --git a/UI/AllThemesGui.ts b/UI/AllThemesGui.ts
index 0419b1489..ceb1fa33b 100644
--- a/UI/AllThemesGui.ts
+++ b/UI/AllThemesGui.ts
@@ -1,17 +1,19 @@
import {FixedUiElement} from "./Base/FixedUiElement";
-import State from "../State";
import Combine from "./Base/Combine";
import MoreScreen from "./BigComponents/MoreScreen";
import Translations from "./i18n/Translations";
import Constants from "../Models/Constants";
import UserRelatedState from "../Logic/State/UserRelatedState";
+import {Utils} from "../Utils";
export default class AllThemesGui {
constructor() {
new FixedUiElement("").AttachTo("centermessage")
const state = new UserRelatedState(undefined);
new Combine([new MoreScreen(state, true),
- Translations.t.general.aboutMapcomplete.SetClass("link-underline"),
+ Translations.t.general.aboutMapcomplete
+ .Subs({"osmcha_link": Utils.OsmChaLinkFor(7)})
+ .SetClass("link-underline"),
new FixedUiElement("v" + Constants.vNumber)
]).SetClass("block m-5 lg:w-3/4 lg:ml-40")
.SetStyle("pointer-events: all;")
diff --git a/UI/BigComponents/Attribution.ts b/UI/BigComponents/Attribution.ts
index 471556798..1bcdcbc9e 100644
--- a/UI/BigComponents/Attribution.ts
+++ b/UI/BigComponents/Attribution.ts
@@ -8,6 +8,7 @@ import Loc from "../../Models/Loc";
import {VariableUiElement} from "../Base/VariableUIElement";
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig";
import {BBox} from "../../Logic/BBox";
+import {Utils} from "../../Utils";
/**
* The bottom right attribution panel in the leaflet map
@@ -23,11 +24,7 @@ export default class Attribution extends Combine {
const reportBug = new Link(Svg.bug_ui().SetClass("small-image"), "https://github.com/pietervdvn/MapComplete/issues", true);
const layoutId = layoutToUse?.id;
- const now = new Date()
- // Note: getMonth is zero-index, we want 1-index but with one substracted, so it checks out!
- const startDate = now.getFullYear() + "-" + now.getMonth() + "-" + now.getDate()
- const osmChaLink = `https://osmcha.org/?filters=%7B%22comment%22%3A%5B%7B%22label%22%3A%22%23${layoutId}%22%2C%22value%22%3A%22%23${layoutId}%22%7D%5D%2C%22date__gte%22%3A%5B%7B%22label%22%3A%22${startDate}%22%2C%22value%22%3A%222020-07-05%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22MapComplete%22%2C%22value%22%3A%22MapComplete%22%7D%5D%7D`
- const stats = new Link(Svg.statistics_ui().SetClass("small-image"), osmChaLink, true)
+ const stats = new Link(Svg.statistics_ui().SetClass("small-image"), Utils.OsmChaLinkFor(31, layoutId), true)
const idLink = location.map(location => `https://www.openstreetmap.org/edit?editor=id#map=${location?.zoom ?? 0}/${location?.lat ?? 0}/${location?.lon ?? 0}`)
diff --git a/UI/BigComponents/FullWelcomePaneWithTabs.ts b/UI/BigComponents/FullWelcomePaneWithTabs.ts
index b4b3c3f69..3f6a8bf4d 100644
--- a/UI/BigComponents/FullWelcomePaneWithTabs.ts
+++ b/UI/BigComponents/FullWelcomePaneWithTabs.ts
@@ -79,15 +79,11 @@ export default class FullWelcomePaneWithTabs extends ScrollableFullScreen {
const tabs = FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown)
const tabsWithAboutMc = [...FullWelcomePaneWithTabs.ConstructBaseTabs(state, isShown)]
- const now = new Date()
- const lastWeek = new Date(now.getDate() - 7 * 24 * 60 * 60 * 1000)
- const date = lastWeek.getFullYear() + "-" + Utils.TwoDigits(lastWeek.getMonth() + 1) + "-" + Utils.TwoDigits(lastWeek.getDate())
- const osmcha_link = `https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%22${date}%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D`
-
+
tabsWithAboutMc.push({
header: Svg.help,
content: new Combine([Translations.t.general.aboutMapcomplete.Clone()
- .Subs({"osmcha_link": osmcha_link}), "
Version " + Constants.vNumber])
+ .Subs({"osmcha_link": Utils.OsmChaLinkFor(7)}), "
Version " + Constants.vNumber])
.SetClass("link-underline")
}
);
diff --git a/Utils.ts b/Utils.ts
index 51aaf072b..c3e8349f4 100644
--- a/Utils.ts
+++ b/Utils.ts
@@ -481,5 +481,16 @@ export class Utils {
}, false);
}
+
+ public static OsmChaLinkFor(daysInThePast, theme = undefined) : string {
+ const now = new Date()
+ const lastWeek = new Date(now.getTime() - daysInThePast * 24 * 60 * 60 * 1000)
+ const date = lastWeek.getFullYear() + "-" + Utils.TwoDigits(lastWeek.getMonth() + 1) + "-" + Utils.TwoDigits(lastWeek.getDate())
+ let osmcha_link = `{"date__gte":[{"label":"${date}","value":"${date}"}],"editor":[{"label":"mapcomplete","value":"mapcomplete"}]}`
+ if(theme !== undefined){
+ osmcha_link = osmcha_link + "," + `{"comment":[{"label":"#${theme}","value":"#${theme}"}]`
+ }
+ return "https://osmcha.org/?filters="+ encodeURIComponent(osmcha_link)
+ }
}