| 
									
										
										
										
											2023-10-17 13:31:06 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     import { Utils } from "../Utils" | 
					
						
							|  |  |  |     import { Store, UIEventSource } from "../Logic/UIEventSource" | 
					
						
							|  |  |  |     import Loading from "./Base/Loading.svelte" | 
					
						
							|  |  |  |     import { OsmConnection } from "../Logic/Osm/OsmConnection" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const osmConnection = new OsmConnection({ | 
					
						
							|  |  |  |         attemptLogin: true | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     let loggedInContributor: Store<string> = osmConnection.userDetails.map(ud => ud.name) | 
					
						
							|  |  |  |     export let source = "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/picture-leaderboard.json" | 
					
						
							|  |  |  |     let data: Store<undefined | { | 
					
						
							|  |  |  |         leaderboard: { | 
					
						
							|  |  |  |             rank: number, | 
					
						
							|  |  |  |             name: string, | 
					
						
							|  |  |  |             account: string, | 
					
						
							|  |  |  |             nrOfImages: number | 
					
						
							|  |  |  |         }[], | 
					
						
							|  |  |  |         median: number, | 
					
						
							|  |  |  |         totalAuthors: number, | 
					
						
							|  |  |  |         byLicense: { | 
					
						
							|  |  |  |             license: string, total: number, authors: string[] | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         date: string | 
					
						
							|  |  |  |     }> = UIEventSource.FromPromise(Utils.downloadJsonCached(source)) | 
					
						
							| 
									
										
										
										
											2023-10-17 14:55:23 +02:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2023-10-17 13:31:06 +02:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <h1>Contributed images with MapComplete: leaderboard</h1> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | {#if $data} | 
					
						
							|  |  |  |   <table> | 
					
						
							|  |  |  |     <tr> | 
					
						
							|  |  |  |       <th>Rank</th> | 
					
						
							|  |  |  |       <th>Contributor</th> | 
					
						
							|  |  |  |       <th>Number of images contributed</th> | 
					
						
							|  |  |  |     </tr> | 
					
						
							|  |  |  |     {#each $data.leaderboard as contributor} | 
					
						
							|  |  |  |       <tr> | 
					
						
							|  |  |  |         <td> | 
					
						
							|  |  |  |           {contributor.rank} | 
					
						
							|  |  |  |         </td> | 
					
						
							|  |  |  |         <td> | 
					
						
							|  |  |  |           {#if $loggedInContributor === contributor.name} | 
					
						
							|  |  |  |             <a class="thanks" href="{contributor.account}">{contributor.name}</a> | 
					
						
							|  |  |  |           {:else} | 
					
						
							|  |  |  |             <a href="{contributor.account}">{contributor.name}</a> | 
					
						
							|  |  |  |           {/if} | 
					
						
							|  |  |  |         </td> | 
					
						
							|  |  |  |         <td> | 
					
						
							|  |  |  |           <b>{contributor.nrOfImages}</b> total images | 
					
						
							|  |  |  |         </td> | 
					
						
							|  |  |  |       </tr> | 
					
						
							|  |  |  |     {/each} | 
					
						
							|  |  |  |   </table> | 
					
						
							|  |  |  |   Statistics generated on {$data.date} | 
					
						
							|  |  |  | {:else} | 
					
						
							|  |  |  |   <Loading /> | 
					
						
							|  |  |  | {/if} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <div> | 
					
						
							|  |  |  |   Logged in as {$loggedInContributor} | 
					
						
							|  |  |  | </div> |