forked from MapComplete/MapComplete
Fix #2002
This commit is contained in:
parent
1dc219c394
commit
ecfa7d3d1d
3 changed files with 17 additions and 9 deletions
|
@ -47,12 +47,14 @@
|
|||
async function closeNote() {
|
||||
await state.osmConnection.closeNote(id, txt.data)
|
||||
tags.data["closed_at"] = new Date().toISOString()
|
||||
NoteCommentElement.addCommentTo(txt.data, tags, state)
|
||||
tags.ping()
|
||||
}
|
||||
|
||||
async function reopenNote() {
|
||||
await state.osmConnection.reopenNote(id, txt.data)
|
||||
tags.data["closed_at"] = undefined
|
||||
NoteCommentElement.addCommentTo(txt.data, tags, state)
|
||||
tags.ping()
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -10,6 +10,8 @@ import { UIEventSource } from "../../../Logic/UIEventSource"
|
|||
import Constants from "../../../Models/Constants"
|
||||
import SvelteUIElement from "../../Base/SvelteUIElement"
|
||||
import Checkmark from "../../../assets/svg/Checkmark.svelte"
|
||||
import NoteCommentElement from "./NoteCommentElement"
|
||||
import Icon from "../../Map/Icon.svelte"
|
||||
|
||||
export class CloseNoteButton implements SpecialVisualization {
|
||||
public readonly funcName = "close_note"
|
||||
|
@ -62,10 +64,7 @@ export class CloseNoteButton implements SpecialVisualization {
|
|||
zoomButton: string
|
||||
} = <any>Utils.ParseVisArgs(this.args, args)
|
||||
|
||||
let icon: BaseUIElement = new SvelteUIElement(Checkmark)
|
||||
if (params.icon !== "checkmark.svg" && (args[2] ?? "") !== "") {
|
||||
icon = new Img(args[1])
|
||||
}
|
||||
let icon: BaseUIElement = new SvelteUIElement(Icon, {icon: params.icon ?? "checkmark.svg"})
|
||||
let textToShow = t.closeNote
|
||||
if ((params.text ?? "") !== "") {
|
||||
textToShow = Translations.T(args[0])
|
||||
|
@ -75,7 +74,9 @@ export class CloseNoteButton implements SpecialVisualization {
|
|||
const isClosed = tags.map((tags) => (tags["closed_at"] ?? "") !== "")
|
||||
closeButton.onClick(() => {
|
||||
const id = tags.data[args[2] ?? "id"]
|
||||
state.osmConnection.closeNote(id, args[3])?.then((_) => {
|
||||
const text = args[3]
|
||||
state.osmConnection.closeNote(id, text)?.then((_) => {
|
||||
NoteCommentElement.addCommentTo(text, tags, state)
|
||||
tags.data["closed_at"] = new Date().toISOString()
|
||||
tags.ping()
|
||||
})
|
||||
|
|
|
@ -6,8 +6,7 @@ import Translations from "../../i18n/Translations"
|
|||
import { Utils } from "../../../Utils"
|
||||
import Img from "../../Base/Img"
|
||||
import { SlideShow } from "../../Image/SlideShow"
|
||||
import { Stores, UIEventSource } from "../../../Logic/UIEventSource"
|
||||
import { OsmConnection } from "../../../Logic/Osm/OsmConnection"
|
||||
import { Store, Stores, UIEventSource } from "../../../Logic/UIEventSource"
|
||||
import { VariableUiElement } from "../../Base/VariableUIElement"
|
||||
import { SpecialVisualizationState } from "../../SpecialVisualization"
|
||||
import SvelteUIElement from "../../Base/SvelteUIElement"
|
||||
|
@ -50,7 +49,7 @@ export default class NoteCommentElement extends Combine {
|
|||
}
|
||||
|
||||
const userinfo = Stores.FromPromise(
|
||||
Utils.downloadJsonCached(
|
||||
Utils.downloadJsonCached<{user: { img: { href: string } }}>(
|
||||
"https://api.openstreetmap.org/api/0.6/user/" + comment.uid,
|
||||
24 * 60 * 60 * 1000
|
||||
)
|
||||
|
@ -114,10 +113,16 @@ export default class NoteCommentElement extends Combine {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the comment to the _visualisation_ of the given note; doesn't _actually_ upload
|
||||
* @param txt
|
||||
* @param tags
|
||||
* @param state
|
||||
*/
|
||||
public static addCommentTo(
|
||||
txt: string,
|
||||
tags: UIEventSource<any>,
|
||||
state: { osmConnection: OsmConnection }
|
||||
state: { osmConnection: {userDetails: Store<{ name: string, uid: number }>} }
|
||||
) {
|
||||
const comments: any[] = JSON.parse(tags.data["comments"])
|
||||
const username = state.osmConnection.userDetails.data.name
|
||||
|
|
Loading…
Reference in a new issue