forked from MapComplete/MapComplete
		
	Fixes to import flow
This commit is contained in:
		
							parent
							
								
									2c1144cf10
								
							
						
					
					
						commit
						bce8ae3e34
					
				
					 4 changed files with 32 additions and 16 deletions
				
			
		|  | @ -13,19 +13,20 @@ export class ConfirmProcess extends Combine implements FlowStep<{ features: any[ | |||
| 
 | ||||
|     constructor(v: { features: any[], theme: string }) { | ||||
|         const t = Translations.t.importHelper.confirmProcess; | ||||
|         const toConfirm = [ | ||||
|         const elements = [ | ||||
|             new Link(t.readImportGuidelines, "https://wiki.openstreetmap.org/wiki/Import_guidelines", true), | ||||
|             t.contactedCommunity, | ||||
|             t.licenseIsCompatible, | ||||
|             t.wikipageIsMade | ||||
|         ]; | ||||
|         ] | ||||
|         const toConfirm = new CheckBoxes(elements); | ||||
| 
 | ||||
|         super([ | ||||
|             new Title(t.titleLong), | ||||
|             new CheckBoxes(toConfirm), | ||||
|             toConfirm, | ||||
|         ]); | ||||
|         this.SetClass("link-underline") | ||||
|         this.IsValid = new CheckBoxes(toConfirm).GetValue().map(selected => toConfirm.length == selected.length) | ||||
|         this.IsValid = toConfirm.GetValue().map(selected => elements.length == selected.length) | ||||
|         this.Value = new UIEventSource<{ features: any[], theme: string }>(v) | ||||
|     } | ||||
| } | ||||
|  | @ -217,7 +217,7 @@ export default class ConflationChecker extends Combine implements FlowStep<{ fea | |||
|             new Title(t.titleLive), | ||||
|             t.importCandidatesCount.Subs({count:toImport.features.length }), | ||||
|              new VariableUiElement(geojson.map(geojson => { | ||||
|                  if(geojson?.features?.length === undefined && geojson?.features?.length === 0){ | ||||
|                  if(geojson?.features?.length === undefined || geojson?.features?.length === 0){ | ||||
|                     return t.nothingLoaded.Subs(layer).SetClass("alert") | ||||
|                  } | ||||
|                  return new Combine([ | ||||
|  | @ -233,7 +233,7 @@ export default class ConflationChecker extends Combine implements FlowStep<{ fea | |||
|             new Combine([t.mapShowingNearbyIntro, nearbyCutoff]).SetClass("flex"), | ||||
|             new VariableUiElement(toImportWithNearby.features.map(feats =>  | ||||
|                 t.nearbyWarn.Subs({count: feats.length}).SetClass("alert"))), | ||||
|             ,t.setRangeToZero, | ||||
|             t.setRangeToZero, | ||||
|             matchedFeaturesMap]).SetClass("flex flex-col") | ||||
| 
 | ||||
|         super([ | ||||
|  | @ -246,7 +246,7 @@ export default class ConflationChecker extends Combine implements FlowStep<{ fea | |||
|                     return new Loading(t.states.running) | ||||
|                 } | ||||
|                 if (d["error"] !== undefined) { | ||||
|                     return t.states.error.Subs(d).SetClass("alert") | ||||
|                     return t.states.error.Subs({error: d["error"]}).SetClass("alert") | ||||
|                 } | ||||
| 
 | ||||
|                 if (d === "cached") { | ||||
|  |  | |||
|  | @ -9,12 +9,14 @@ import {FixedUiElement} from "../Base/FixedUiElement"; | |||
| import {SubtleButton} from "../Base/SubtleButton"; | ||||
| import Svg from "../../Svg"; | ||||
| import Translations from "../i18n/Translations"; | ||||
| import {Translation} from "../i18n/Translation"; | ||||
| 
 | ||||
| export class CreateNotes extends Combine { | ||||
|      | ||||
|     public static createNoteContents(feature: {properties: any, geometry: {coordinates: [number,number]}}, | ||||
|                                      options: {wikilink: string; intro: string; source: string, theme: string } | ||||
|                                      ): string[]{ | ||||
| 
 | ||||
|     public static createNoteContentsUi(feature: {properties: any, geometry: {coordinates: [number,number]}}, | ||||
|         options: {wikilink: string; intro: string; source: string, theme: string } | ||||
|     ): (Translation | string)[]{ | ||||
|         const src = feature.properties["source"] ?? feature.properties["src"] ?? options.source | ||||
|         delete feature.properties["source"] | ||||
|         delete feature.properties["src"] | ||||
|  | @ -41,14 +43,26 @@ export class CreateNotes extends Combine { | |||
|         return [ | ||||
|             options.intro, | ||||
|             extraNote, | ||||
|             note.datasource.Subs({source: src}).txt, | ||||
|             note.wikilink.Subs(options).txt, | ||||
|             note.datasource.Subs({source: src}), | ||||
|             note.wikilink.Subs(options), | ||||
|             '', | ||||
|             note.importEasily.txt, | ||||
|             note.importEasily, | ||||
|             `https://mapcomplete.osm.be/${options.theme}.html?z=18&lat=${lat}&lon=${lon}#import`, | ||||
|             ...tags] | ||||
|     } | ||||
| 
 | ||||
|     public static createNoteContents(feature: {properties: any, geometry: {coordinates: [number,number]}}, | ||||
|                                      options: {wikilink: string; intro: string; source: string, theme: string } | ||||
|     ): string[]{ | ||||
|         return CreateNotes.createNoteContentsUi(feature, options).map(trOrStr => { | ||||
|             if(typeof trOrStr === "string"){ | ||||
|                 return trOrStr | ||||
|             } | ||||
|             return trOrStr.txt | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     constructor(state: { osmConnection: OsmConnection }, v: { features: any[]; wikilink: string; intro: string; source: string, theme: string }) { | ||||
|         const t = Translations.t.importHelper.createNotes; | ||||
|         const createdNotes: UIEventSource<number[]> = new UIEventSource<number[]>([]) | ||||
|  | @ -83,7 +97,7 @@ export class CreateNotes extends Combine { | |||
|                 )))), | ||||
|                 new Combine([ | ||||
|                     Svg.party_svg().SetClass("w-24"), | ||||
|                     t.done.Subs(v.features.length).SetClass("thanks"), | ||||
|                     t.done.Subs({count: v.features.length}).SetClass("thanks"), | ||||
|                         new SubtleButton(Svg.note_svg(),  | ||||
|                            t.openImportViewer , { | ||||
|                             url: "import_viewer.html" | ||||
|  |  | |||
|  | @ -4,13 +4,14 @@ import {UIEventSource} from "../../Logic/UIEventSource"; | |||
| import Translations from "../i18n/Translations"; | ||||
| import Title from "../Base/Title"; | ||||
| import {CreateNotes} from "./CreateNotes"; | ||||
| import {FixedUiElement} from "../Base/FixedUiElement"; | ||||
| 
 | ||||
| export default class Introdution extends Combine implements FlowStep<void> { | ||||
|     readonly IsValid: UIEventSource<boolean>; | ||||
|     readonly Value: UIEventSource<void>; | ||||
| 
 | ||||
|     constructor() { | ||||
|         const example =  CreateNotes.createNoteContents({ | ||||
|         const example =  CreateNotes.createNoteContentsUi({ | ||||
|             properties:{ | ||||
|                 "some_key":"some_value", | ||||
|                 "note":"a note in the original dataset" | ||||
|  | @ -23,7 +24,7 @@ export default class Introdution extends Combine implements FlowStep<void> { | |||
|             intro: "There might be an XYZ here", | ||||
|             theme: "theme", | ||||
|             source: "source of the data" | ||||
|         }) | ||||
|         }).map(el => el === "" ? new FixedUiElement("").SetClass("block") : el) | ||||
|          | ||||
|         super([ | ||||
|             new Title(Translations.t.importHelper.introduction.title), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue