fix: provider-aware collection count labels in tracker list
"1 album(s)" now shows "1 device(s)" for NUT, "1 repo(s)" for Gitea, "1 board(s)" for Planka instead of hardcoded album label.
This commit is contained in:
@@ -183,6 +183,9 @@
|
|||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"confirmDelete": "Delete this tracker?",
|
"confirmDelete": "Delete this tracker?",
|
||||||
"albums_count": "album(s)",
|
"albums_count": "album(s)",
|
||||||
|
"repos_count": "repo(s)",
|
||||||
|
"boards_count": "board(s)",
|
||||||
|
"devices_count": "device(s)",
|
||||||
"every": "every",
|
"every": "every",
|
||||||
"trackImages": "Track images",
|
"trackImages": "Track images",
|
||||||
"trackVideos": "Track videos",
|
"trackVideos": "Track videos",
|
||||||
|
|||||||
@@ -183,6 +183,9 @@
|
|||||||
"delete": "Удалить",
|
"delete": "Удалить",
|
||||||
"confirmDelete": "Удалить этот трекер?",
|
"confirmDelete": "Удалить этот трекер?",
|
||||||
"albums_count": "альбом(ов)",
|
"albums_count": "альбом(ов)",
|
||||||
|
"repos_count": "репозиторий(ев)",
|
||||||
|
"boards_count": "доска(ок)",
|
||||||
|
"devices_count": "устройство(в)",
|
||||||
"every": "каждые",
|
"every": "каждые",
|
||||||
"trackImages": "Отслеживать фото",
|
"trackImages": "Отслеживать фото",
|
||||||
"trackVideos": "Отслеживать видео",
|
"trackVideos": "Отслеживать видео",
|
||||||
|
|||||||
@@ -277,6 +277,17 @@
|
|||||||
return p?.name || `#${id}`;
|
return p?.name || `#${id}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const collectionCountLabel: Record<string, string> = {
|
||||||
|
immich: 'notificationTracker.albums_count',
|
||||||
|
gitea: 'notificationTracker.repos_count',
|
||||||
|
planka: 'notificationTracker.boards_count',
|
||||||
|
nut: 'notificationTracker.devices_count',
|
||||||
|
};
|
||||||
|
function getCollectionLabel(tracker: Tracker): string {
|
||||||
|
const pt = getProviderType(tracker);
|
||||||
|
return t(collectionCountLabel[pt] || 'notificationTracker.albums_count');
|
||||||
|
}
|
||||||
|
|
||||||
function configsForTracker(tracker: Tracker, configs: (TrackingConfig | TemplateConfig)[]): (TrackingConfig | TemplateConfig)[] {
|
function configsForTracker(tracker: Tracker, configs: (TrackingConfig | TemplateConfig)[]): (TrackingConfig | TemplateConfig)[] {
|
||||||
const pt = getProviderType(tracker);
|
const pt = getProviderType(tracker);
|
||||||
return pt ? configs.filter((c) => c.provider_type === pt) : configs;
|
return pt ? configs.filter((c) => c.provider_type === pt) : configs;
|
||||||
@@ -423,7 +434,7 @@
|
|||||||
<CrossLink href="/providers" icon="mdiServer" label={getProviderName(tracker.provider_id)} entityId={tracker.provider_id} />
|
<CrossLink href="/providers" icon="mdiServer" label={getProviderName(tracker.provider_id)} entityId={tracker.provider_id} />
|
||||||
</div>
|
</div>
|
||||||
<p class="text-sm text-[var(--color-muted-foreground)]">
|
<p class="text-sm text-[var(--color-muted-foreground)]">
|
||||||
{(tracker.collection_ids || []).length} {t('notificationTracker.albums_count')} · {t('notificationTracker.every')} {tracker.scan_interval}s · {(tracker.tracker_targets || []).length} {t('notificationTracker.linkedTargets')}
|
{(tracker.collection_ids || []).length} {getCollectionLabel(tracker)} · {t('notificationTracker.every')} {tracker.scan_interval}s · {(tracker.tracker_targets || []).length} {t('notificationTracker.linkedTargets')}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-1 flex-wrap justify-end">
|
<div class="flex items-center gap-1 flex-wrap justify-end">
|
||||||
|
|||||||
Reference in New Issue
Block a user