forked from MapComplete/MapComplete
Fix loading of day-statistic files
This commit is contained in:
parent
5e291cda24
commit
640ff8e382
1 changed files with 56 additions and 13 deletions
|
@ -13,9 +13,10 @@ import MapState from "../Logic/State/MapState"
|
||||||
import BaseUIElement from "./BaseUIElement"
|
import BaseUIElement from "./BaseUIElement"
|
||||||
import Title from "./Base/Title"
|
import Title from "./Base/Title"
|
||||||
import { FixedUiElement } from "./Base/FixedUiElement"
|
import { FixedUiElement } from "./Base/FixedUiElement"
|
||||||
import UserDetails from "../Logic/Osm/OsmConnection";
|
import List from "./Base/List";
|
||||||
|
|
||||||
class StatisticsForOverviewFile extends Combine {
|
class StatisticsForOverviewFile extends Combine {
|
||||||
|
|
||||||
constructor(homeUrl: string, paths: string[]) {
|
constructor(homeUrl: string, paths: string[]) {
|
||||||
paths = paths.filter(p => !p.endsWith("file-overview.json"))
|
paths = paths.filter(p => !p.endsWith("file-overview.json"))
|
||||||
const layer = AllKnownLayouts.allKnownLayouts.get("mapcomplete-changes").layers[0]
|
const layer = AllKnownLayouts.allKnownLayouts.get("mapcomplete-changes").layers[0]
|
||||||
|
@ -54,6 +55,7 @@ class StatisticsForOverviewFile extends Combine {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
super([
|
super([
|
||||||
filterPanel,
|
filterPanel,
|
||||||
new VariableUiElement(
|
new VariableUiElement(
|
||||||
|
@ -94,7 +96,36 @@ class StatisticsForOverviewFile extends Combine {
|
||||||
const trs = layer.tagRenderings.filter(
|
const trs = layer.tagRenderings.filter(
|
||||||
(tr) => tr.mappings?.length > 0 || tr.freeform?.key !== undefined
|
(tr) => tr.mappings?.length > 0 || tr.freeform?.key !== undefined
|
||||||
)
|
)
|
||||||
const elements: BaseUIElement[] = []
|
|
||||||
|
const allKeys = new Set<string>()
|
||||||
|
for (const cs of overview._meta) {
|
||||||
|
for (const propertiesKey in cs.properties) {
|
||||||
|
allKeys.add(propertiesKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log("All keys:", allKeys)
|
||||||
|
|
||||||
|
const valuesToSum = [
|
||||||
|
"answer",
|
||||||
|
"move",
|
||||||
|
"deletion",
|
||||||
|
"add-image",
|
||||||
|
"plantnet-ai-detection",
|
||||||
|
"import",
|
||||||
|
"conflation",
|
||||||
|
"link-image",
|
||||||
|
"soft-delete"]
|
||||||
|
|
||||||
|
|
||||||
|
const elements: BaseUIElement[] = [
|
||||||
|
new Title("General statistics"),
|
||||||
|
new Combine([
|
||||||
|
overview._meta.length + " changesets match the filters",
|
||||||
|
new List(valuesToSum.map(key => key + ": " + overview.sum(key)))
|
||||||
|
]).SetClass("flex flex-col border rounded-xl"),
|
||||||
|
|
||||||
|
new Title("Breakdown")
|
||||||
|
]
|
||||||
for (const tr of trs) {
|
for (const tr of trs) {
|
||||||
let total = undefined
|
let total = undefined
|
||||||
if (tr.freeform?.key !== undefined) {
|
if (tr.freeform?.key !== undefined) {
|
||||||
|
@ -197,6 +228,17 @@ class ChangesetsOverview {
|
||||||
return new ChangesetsOverview(this._meta.filter(predicate))
|
return new ChangesetsOverview(this._meta.filter(predicate))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public sum(key: string): number {
|
||||||
|
let s = 0
|
||||||
|
for (const feature of this._meta) {
|
||||||
|
const parsed = Number(feature[key])
|
||||||
|
if (!isNaN(parsed)) {
|
||||||
|
s += parsed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
private static cleanChangesetData(cs: ChangeSetData): ChangeSetData {
|
private static cleanChangesetData(cs: ChangeSetData): ChangeSetData {
|
||||||
if (cs === undefined) {
|
if (cs === undefined) {
|
||||||
return undefined
|
return undefined
|
||||||
|
@ -222,7 +264,8 @@ class ChangesetsOverview {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
cs.properties.host = new URL(cs.properties.host).host
|
cs.properties.host = new URL(cs.properties.host).host
|
||||||
} catch (e) {}
|
} catch (e) {
|
||||||
|
}
|
||||||
return cs
|
return cs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue