forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import Combine from "../Base/Combine";
 | |
| import {FlowStep} from "./FlowStep";
 | |
| import {UIEventSource} from "../../Logic/UIEventSource";
 | |
| import Link from "../Base/Link";
 | |
| import {FixedUiElement} from "../Base/FixedUiElement";
 | |
| import CheckBoxes from "../Input/Checkboxes";
 | |
| import Title from "../Base/Title";
 | |
| import {SubtleButton} from "../Base/SubtleButton";
 | |
| import Svg from "../../Svg";
 | |
| import {Utils} from "../../Utils";
 | |
| 
 | |
| export class ConfirmProcess extends Combine implements FlowStep<{ features: any[], theme: string }> {
 | |
| 
 | |
|     public IsValid: UIEventSource<boolean>
 | |
|     public Value: UIEventSource<{ features: any[],theme: string  }>
 | |
| 
 | |
|     constructor(v: { features: any[], theme: string  }) {
 | |
| 
 | |
|         const toConfirm = [
 | |
|             new Combine(["I have read the ", new Link("import guidelines on the OSM wiki", "https://wiki.openstreetmap.org/wiki/Import_guidelines", true)]),
 | |
|             new FixedUiElement("I did contact the (local) community about this import"),
 | |
|             new FixedUiElement("The license of the data to import allows it to be imported into OSM. They are allowed to be redistributed commercially, with only minimal attribution"),
 | |
|             new FixedUiElement("The process is documented on the OSM-wiki (you'll need this link later)")
 | |
|         ];
 | |
| 
 | |
|         const licenseClear = new CheckBoxes(toConfirm)
 | |
|         super([
 | |
|             new Title("Did you go through the import process?"),
 | |
|             licenseClear,
 | |
|             new FixedUiElement("Alternatively, you can download the dataset to import directly"),
 | |
|             new SubtleButton(Svg.download_svg(), "Download geojson").OnClickWithLoading("Preparing your download", 
 | |
|                 async ( ) => {
 | |
|                 const geojson = {
 | |
|                     type:"FeatureCollection",
 | |
|                     features: v.features
 | |
|                 }
 | |
|                 Utils.offerContentsAsDownloadableFile(JSON.stringify(geojson), "prepared_import_"+v.theme+".geojson",{
 | |
|                     mimetype: "application/vnd.geo+json"
 | |
|                 })
 | |
|             })
 | |
|         ]);
 | |
|         this.SetClass("link-underline")
 | |
|         this.IsValid = licenseClear.GetValue().map(selected => toConfirm.length == selected.length)
 | |
|         this.Value = new UIEventSource<{ features: any[], theme: string }>(v)
 | |
|     }
 | |
| } |