forked from MapComplete/MapComplete
		
	Add statistics download button
This commit is contained in:
		
							parent
							
								
									16784270ce
								
							
						
					
					
						commit
						cd867bf2d1
					
				
					 2 changed files with 27 additions and 4 deletions
				
			
		|  | @ -345,11 +345,18 @@ export class GeoOperations { | ||||||
|         return <any>way |         return <any>way | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static toCSV(features: Feature[] | FeatureCollection): string { |     public static toCSV(features: Feature[] | FeatureCollection, options?: { | ||||||
|  |         ignoreTags?: RegExp | ||||||
|  |     }): string { | ||||||
|         const headerValuesSeen = new Set<string>() |         const headerValuesSeen = new Set<string>() | ||||||
|         const headerValuesOrdered: string[] = [] |         const headerValuesOrdered: string[] = [] | ||||||
| 
 | 
 | ||||||
|         function addH(key) { |         function addH(key: string) { | ||||||
|  |             if(options?.ignoreTags){ | ||||||
|  |                 if(key.match(options.ignoreTags)){ | ||||||
|  |                     return | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|             if (!headerValuesSeen.has(key)) { |             if (!headerValuesSeen.has(key)) { | ||||||
|                 headerValuesSeen.add(key) |                 headerValuesSeen.add(key) | ||||||
|                 headerValuesOrdered.push(key) |                 headerValuesOrdered.push(key) | ||||||
|  |  | ||||||
|  | @ -16,6 +16,11 @@ import mcChanges from "../../src/assets/generated/themes/mapcomplete-changes.jso | ||||||
| import SvelteUIElement from "./Base/SvelteUIElement" | import SvelteUIElement from "./Base/SvelteUIElement" | ||||||
| import Filterview from "./BigComponents/Filterview.svelte" | import Filterview from "./BigComponents/Filterview.svelte" | ||||||
| import FilteredLayer from "../Models/FilteredLayer" | import FilteredLayer from "../Models/FilteredLayer" | ||||||
|  | import DownloadButton from "./DownloadFlow/DownloadButton.svelte" | ||||||
|  | import { SubtleButton } from "./Base/SubtleButton" | ||||||
|  | import { GeoOperations } from "../Logic/GeoOperations" | ||||||
|  | import { Polygon } from "geojson" | ||||||
|  | import { Feature } from "geojson" | ||||||
| 
 | 
 | ||||||
| class StatsticsForOverviewFile extends Combine { | class StatsticsForOverviewFile extends Combine { | ||||||
|     constructor(homeUrl: string, paths: string[]) { |     constructor(homeUrl: string, paths: string[]) { | ||||||
|  | @ -185,6 +190,17 @@ class StatsticsForOverviewFile extends Combine { | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |                         elements.push(new SubtleButton( | ||||||
|  |                             undefined, "Download as csv" | ||||||
|  |                         ).onClick(() => { | ||||||
|  |                             const data = GeoOperations.toCSV(overview._meta, | ||||||
|  |                                 { | ||||||
|  |                                     ignoreTags: /^((deletion:node)|(import:node)|(move:node)|(soft-delete:))/ | ||||||
|  |                                 }) | ||||||
|  |                             Utils.offerContentsAsDownloadableFile(data , "statistics.csv", {mimetype: "text/csv"}) | ||||||
|  |                         })) | ||||||
|  | 
 | ||||||
|                         return new Combine(elements) |                         return new Combine(elements) | ||||||
|                     }, |                     }, | ||||||
|                     [filteredLayer.currentFilter] |                     [filteredLayer.currentFilter] | ||||||
|  | @ -249,7 +265,7 @@ class ChangesetsOverview { | ||||||
|         this._meta = Utils.NoNull(meta) |         this._meta = Utils.NoNull(meta) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public static fromDirtyData(meta: ChangeSetData[]) { |     public static fromDirtyData(meta: ChangeSetData[]): ChangesetsOverview { | ||||||
|         return new ChangesetsOverview(meta?.map((cs) => ChangesetsOverview.cleanChangesetData(cs))) |         return new ChangesetsOverview(meta?.map((cs) => ChangesetsOverview.cleanChangesetData(cs))) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -301,7 +317,7 @@ class ChangesetsOverview { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| interface ChangeSetData { | interface ChangeSetData extends Feature<Polygon> { | ||||||
|     id: number |     id: number | ||||||
|     type: "Feature" |     type: "Feature" | ||||||
|     geometry: { |     geometry: { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue