|
|
@@ -1,4 +1,6 @@
|
|
|
import { Component, Input } from '@angular/core';
|
|
|
+import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
|
|
+import { TracksApiService } from 'src/app/tracks-api.service';
|
|
|
import { Track } from '../track';
|
|
|
|
|
|
@Component({
|
|
|
@@ -9,4 +11,21 @@ import { Track } from '../track';
|
|
|
export class TrackListItemComponent {
|
|
|
@Input()
|
|
|
public track?: Track;
|
|
|
+
|
|
|
+ public downloadUrl: SafeUrl | null = null;
|
|
|
+ public downloadFileName?: string;
|
|
|
+
|
|
|
+ public constructor(
|
|
|
+ private readonly tracksApi: TracksApiService,
|
|
|
+ private readonly sanitizer: DomSanitizer
|
|
|
+ ) { }
|
|
|
+
|
|
|
+ public downloadGpx(): void {
|
|
|
+ this.tracksApi.downloadTrack(this.track!).then(file => {
|
|
|
+ if (file.blob) {
|
|
|
+ this.downloadUrl = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file.blob));
|
|
|
+ this.downloadFileName = file.filename
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|