mirror of
https://github.com/alexta69/metube.git
synced 2026-03-18 22:43:51 +00:00
Add "Downloaded" timestamp column to completed downloads list
Display the completion time for each download in the done list. The backend already stores a nanosecond timestamp on DownloadInfo; this wires it up to the frontend using Angular's DatePipe.
This commit is contained in:
@@ -490,6 +490,7 @@
|
|||||||
</th>
|
</th>
|
||||||
<th scope="col">Video</th>
|
<th scope="col">Video</th>
|
||||||
<th scope="col">File Size</th>
|
<th scope="col">File Size</th>
|
||||||
|
<th scope="col">Downloaded</th>
|
||||||
<th scope="col" style="width: 8rem;"></th>
|
<th scope="col" style="width: 8rem;"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -556,6 +557,11 @@
|
|||||||
<span>{{ entry[1].size | fileSize }}</span>
|
<span>{{ entry[1].size | fileSize }}</span>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
|
<td class="text-nowrap">
|
||||||
|
@if (entry[1].timestamp) {
|
||||||
|
<span>{{ entry[1].timestamp / 1000000 | date:'yyyy-MM-dd HH:mm' }}</span>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@if (entry[1].status === 'error') {
|
@if (entry[1].status === 'error') {
|
||||||
@@ -585,6 +591,7 @@
|
|||||||
<span>{{ chapterFile.size | fileSize }}</span>
|
<span>{{ chapterFile.size | fileSize }}</span>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<a href="{{buildChapterDownloadLink(entry[1], chapterFile.filename)}}" download
|
<a href="{{buildChapterDownloadLink(entry[1], chapterFile.filename)}}" download
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AsyncPipe, KeyValuePipe } from '@angular/common';
|
import { AsyncPipe, DatePipe, KeyValuePipe } from '@angular/common';
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { AfterViewInit, Component, ElementRef, viewChild, inject, OnInit } from '@angular/core';
|
import { AfterViewInit, Component, ElementRef, viewChild, inject, OnInit } from '@angular/core';
|
||||||
import { Observable, map, distinctUntilChanged } from 'rxjs';
|
import { Observable, map, distinctUntilChanged } from 'rxjs';
|
||||||
@@ -21,6 +21,7 @@ import { MasterCheckboxComponent , SlaveCheckboxComponent} from './components/';
|
|||||||
FormsModule,
|
FormsModule,
|
||||||
KeyValuePipe,
|
KeyValuePipe,
|
||||||
AsyncPipe,
|
AsyncPipe,
|
||||||
|
DatePipe,
|
||||||
FontAwesomeModule,
|
FontAwesomeModule,
|
||||||
NgbModule,
|
NgbModule,
|
||||||
NgSelectModule,
|
NgSelectModule,
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export interface Download {
|
|||||||
eta: number;
|
eta: number;
|
||||||
filename: string;
|
filename: string;
|
||||||
checked: boolean;
|
checked: boolean;
|
||||||
|
timestamp?: number;
|
||||||
size?: number;
|
size?: number;
|
||||||
error?: string;
|
error?: string;
|
||||||
deleting?: boolean;
|
deleting?: boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user