- @switch (row.item.status) {
- @case ('queued') {
-
-
- }
- @case ('downloading') {
-
-
- }
- @case ('paused') {
-
-
-
- }
- @case ('failed') {
-
-
- }
- @case ('canceled') {
-
-
+ @if (isMissingFile(row)) {
+
+ } @else {
+ @switch (row.item.status) {
+ @case ('queued') {
+
+
+ }
+ @case ('downloading') {
+
+
+ }
+ @case ('paused') {
+
+
+
+ }
+ @case ('failed') {
+
+
+ }
+ @case ('canceled') {
+
+
+ }
}
}
@@ -245,6 +263,9 @@
more_vert
+
+ @if (isMissingFile(row)) {
+
+ }
diff --git a/libs/portal/downloads/feature/src/lib/download-queue.component.scss b/libs/portal/downloads/feature/src/lib/download-queue.component.scss
index 28cec0612..4e46bc5b7 100644
--- a/libs/portal/downloads/feature/src/lib/download-queue.component.scss
+++ b/libs/portal/downloads/feature/src/lib/download-queue.component.scss
@@ -68,6 +68,18 @@
opacity: 0.68;
}
}
+
+ &--missing {
+ background: color-mix(
+ in srgb,
+ var(--mat-sys-tertiary-container) 18%,
+ var(--mat-sys-surface-container-low)
+ );
+
+ .download-queue__artwork {
+ filter: saturate(0.42);
+ }
+ }
}
&__artwork {
@@ -206,6 +218,11 @@
background: var(--mat-sys-error-container);
color: var(--mat-sys-on-error-container);
}
+
+ &--missing {
+ background: var(--mat-sys-tertiary-container);
+ color: var(--mat-sys-on-tertiary-container);
+ }
}
&__bytes {
@@ -215,12 +232,6 @@
font-variant-numeric: tabular-nums;
}
- &__source {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
&__error {
min-width: 0;
max-width: 100%;
@@ -254,6 +265,14 @@
}
}
+ &__recover {
+ white-space: nowrap;
+
+ mat-icon {
+ margin-inline-end: 6px;
+ }
+ }
+
button:focus-visible {
outline: 2px solid var(--mat-sys-primary);
outline-offset: 2px;
diff --git a/libs/portal/downloads/feature/src/lib/download-queue.component.spec.ts b/libs/portal/downloads/feature/src/lib/download-queue.component.spec.ts
index f4b1e64b2..a91f76ab6 100644
--- a/libs/portal/downloads/feature/src/lib/download-queue.component.spec.ts
+++ b/libs/portal/downloads/feature/src/lib/download-queue.component.spec.ts
@@ -23,7 +23,9 @@ const TEST_TRANSLATIONS = {
PAUSED: 'Paused',
FAILED: 'Failed',
CANCELED: 'Canceled',
+ FILE_MISSING: 'File missing',
},
+ DOWNLOAD_AGAIN: 'Download again',
ARIA: {
OPEN: 'Open {{title}}',
POSTER_UNAVAILABLE: 'Artwork unavailable for {{title}}',
@@ -35,6 +37,12 @@ const TEST_TRANSLATIONS = {
RETRY: 'Retry {{title}}',
MORE_ACTIONS: 'More actions for {{title}}',
COPY_URL: 'Copy URL for {{title}}',
+ DOWNLOAD_AGAIN: 'Download {{title}} again',
+ },
+ },
+ PORTALS: {
+ MULTI_SOURCE: {
+ SOURCE: 'Source',
},
},
};
@@ -63,6 +71,7 @@ function createRow(
overrides: Partial