{#if !loaded} {:else if loadError} {:else if showForm} !selectedProviderType || c.provider_type === selectedProviderType).map(c => ({ value: c.id, label: c.name, icon: (c as any).icon || 'mdiCog' }))} templateConfigItems={templateConfigs.filter(c => !selectedProviderType || c.provider_type === selectedProviderType).map(c => ({ value: c.id, label: c.name, icon: (c as any).icon || 'mdiFileDocumentEdit' }))} {editing} {submitting} {linkCheckLoading} {error} providerType={selectedProviderType} onsave={save} ontoggleCollection={toggleCollection} {formatDate} /> {/if} {#if loaded && !loadError} {#if !showForm && allNotificationTrackers.length > 0}
{#if !globalProviderFilter.id}
{/if}
{/if} {#if allNotificationTrackers.length === 0 && !showForm} {:else if notificationTrackers.length === 0 && !showForm} {:else if !showForm}
{#each notificationTrackers as tracker (tracker.id)}

{tracker.name}

{tracker.enabled ? t('notificationTracker.active') : t('notificationTracker.paused')}

{(tracker.collection_ids || []).length} {getCollectionLabel(tracker)} · {t('notificationTracker.every')} {tracker.scan_interval}s · {(tracker.tracker_targets || []).length} {t('notificationTracker.linkedTargets')}

edit(tracker)} /> toggle(tracker)} disabled={toggling[tracker.id]} /> startDelete(tracker)} variant="danger" />
{#if expandedTracker === tracker.id} configsForTracker(tracker, configs)} onupdateLink={(tt, field, value) => updateTargetLink(tracker.id, tt, field, value)} onremoveLink={(ttId) => removeTargetLink(tracker.id, ttId)} onaddLink={() => addTargetLink(tracker.id)} onopenTestMenu={openTestMenu} onchangeNewTarget={(v) => newLinkTargetId = { ...newLinkTargetId, [tracker.id]: v }} onchangeNewTrackingConfig={(v) => newLinkTrackingConfigId = { ...newLinkTrackingConfigId, [tracker.id]: v }} onchangeNewTemplateConfig={(v) => newLinkTemplateConfigId = { ...newLinkTemplateConfigId, [tracker.id]: v }} /> {/if}
{/each}
{/if} {/if} testMenuOpen = null} /> { linkWarning = null; }} onautoCreate={autoCreateLinks} ondismiss={dismissLinkWarning} /> confirmDelete = null} />