diff --git a/src/routes/arr/views/CardView.svelte b/src/routes/arr/views/CardView.svelte
index 560bdae..05c5c60 100644
--- a/src/routes/arr/views/CardView.svelte
+++ b/src/routes/arr/views/CardView.svelte
@@ -74,7 +74,7 @@
{instance.name}
-
+
{#if instance.enabled}
Enabled
{:else}
@@ -85,22 +85,22 @@
-
-
diff --git a/src/routes/databases/views/CardView.svelte b/src/routes/databases/views/CardView.svelte
index c8b0e31..73771b8 100644
--- a/src/routes/databases/views/CardView.svelte
+++ b/src/routes/databases/views/CardView.svelte
@@ -113,21 +113,21 @@
-
diff --git a/src/routes/media-management/[databaseId]/media-settings/+page.svelte b/src/routes/media-management/[databaseId]/media-settings/+page.svelte
index bfdac0c..4892540 100644
--- a/src/routes/media-management/[databaseId]/media-settings/+page.svelte
+++ b/src/routes/media-management/[databaseId]/media-settings/+page.svelte
@@ -2,7 +2,9 @@
import ActionsBar from '$ui/actions/ActionsBar.svelte';
import ActionButton from '$ui/actions/ActionButton.svelte';
import SearchAction from '$ui/actions/SearchAction.svelte';
+ import ViewToggle from '$ui/actions/ViewToggle.svelte';
import TableView from './views/TableView.svelte';
+ import CardView from './views/CardView.svelte';
import { createDataPageStore } from '$lib/client/stores/dataPage';
import { goto } from '$app/navigation';
import { Plus } from 'lucide-svelte';
@@ -11,7 +13,7 @@
export let data: PageData;
// Initialize data page store
- const { search, filtered, setItems } = createDataPageStore(data.mediaSettingsConfigs, {
+ const { search, view, filtered, setItems } = createDataPageStore(data.mediaSettingsConfigs, {
storageKey: 'mediaSettingsView',
searchKeys: ['name']
});
@@ -27,6 +29,7 @@
icon={Plus}
on:click={() => goto(`/media-management/${data.currentDatabase.id}/media-settings/new`)}
/>
+
@@ -45,7 +48,9 @@
>
No media settings configs match your search
- {:else}
+ {:else if $view === 'table'}
+ {:else}
+
{/if}
diff --git a/src/routes/media-management/[databaseId]/media-settings/views/CardView.svelte b/src/routes/media-management/[databaseId]/media-settings/views/CardView.svelte
new file mode 100644
index 0000000..fb00a4f
--- /dev/null
+++ b/src/routes/media-management/[databaseId]/media-settings/views/CardView.svelte
@@ -0,0 +1,85 @@
+
+
+
+ {#each configs as config}
+ {@const prConfig = propersRepacksConfig[config.propers_repacks] || {
+ variant: 'neutral',
+ label: config.propers_repacks
+ }}
+
handleCardClick(config)}
+ on:keydown={(e) => e.key === 'Enter' && handleCardClick(config)}
+ role="button"
+ tabindex="0"
+ class="group flex cursor-pointer items-center gap-4 rounded-lg border border-neutral-200 bg-white p-3 transition-all hover:border-neutral-300 hover:shadow-md active:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900 dark:hover:border-neutral-700 dark:active:bg-neutral-800"
+ >
+
+
+
+ {#if !loadedImages.has(config.name)}
+
+ {/if}
+

handleImageLoad(config.name)}
+ />
+
+
+
+ {config.name}
+
+
+ {prConfig.label}
+ {#if config.enable_media_info}
+ Media Info
+ {:else}
+ No Media Info
+ {/if}
+
+
+
+
+ {/each}
+
diff --git a/src/routes/media-management/[databaseId]/naming/+page.svelte b/src/routes/media-management/[databaseId]/naming/+page.svelte
index fd1f654..46090d8 100644
--- a/src/routes/media-management/[databaseId]/naming/+page.svelte
+++ b/src/routes/media-management/[databaseId]/naming/+page.svelte
@@ -2,7 +2,9 @@
import ActionsBar from '$ui/actions/ActionsBar.svelte';
import ActionButton from '$ui/actions/ActionButton.svelte';
import SearchAction from '$ui/actions/SearchAction.svelte';
+ import ViewToggle from '$ui/actions/ViewToggle.svelte';
import TableView from './views/TableView.svelte';
+ import CardView from './views/CardView.svelte';
import { createDataPageStore } from '$lib/client/stores/dataPage';
import { goto } from '$app/navigation';
import { Plus } from 'lucide-svelte';
@@ -11,7 +13,7 @@
export let data: PageData;
// Initialize data page store
- const { search, filtered, setItems } = createDataPageStore(data.namingConfigs, {
+ const { search, view, filtered, setItems } = createDataPageStore(data.namingConfigs, {
storageKey: 'namingSettingsView',
searchKeys: ['name']
});
@@ -27,6 +29,7 @@
icon={Plus}
on:click={() => goto(`/media-management/${data.currentDatabase.id}/naming/new`)}
/>
+
@@ -45,7 +48,9 @@
>
No naming configs match your search
- {:else}
+ {:else if $view === 'table'}
+ {:else}
+
{/if}
diff --git a/src/routes/media-management/[databaseId]/naming/views/CardView.svelte b/src/routes/media-management/[databaseId]/naming/views/CardView.svelte
new file mode 100644
index 0000000..00415bf
--- /dev/null
+++ b/src/routes/media-management/[databaseId]/naming/views/CardView.svelte
@@ -0,0 +1,71 @@
+
+
+
+ {#each configs as config}
+
handleCardClick(config)}
+ on:keydown={(e) => e.key === 'Enter' && handleCardClick(config)}
+ role="button"
+ tabindex="0"
+ class="group flex cursor-pointer items-center gap-4 rounded-lg border border-neutral-200 bg-white p-3 transition-all hover:border-neutral-300 hover:shadow-md active:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900 dark:hover:border-neutral-700 dark:active:bg-neutral-800"
+ >
+
+
+
+ {#if !loadedImages.has(config.name)}
+
+ {/if}
+

handleImageLoad(config.name)}
+ />
+
+
+
+ {config.name}
+
+
+ {#if config.rename}
+ Rename Enabled
+ {:else}
+ Rename Disabled
+ {/if}
+
+
+
+
+ {/each}
+
diff --git a/src/routes/media-management/[databaseId]/quality-definitions/+page.svelte b/src/routes/media-management/[databaseId]/quality-definitions/+page.svelte
index 970b70a..e01db63 100644
--- a/src/routes/media-management/[databaseId]/quality-definitions/+page.svelte
+++ b/src/routes/media-management/[databaseId]/quality-definitions/+page.svelte
@@ -2,7 +2,9 @@
import ActionsBar from '$ui/actions/ActionsBar.svelte';
import ActionButton from '$ui/actions/ActionButton.svelte';
import SearchAction from '$ui/actions/SearchAction.svelte';
+ import ViewToggle from '$ui/actions/ViewToggle.svelte';
import TableView from './views/TableView.svelte';
+ import CardView from './views/CardView.svelte';
import { createDataPageStore } from '$lib/client/stores/dataPage';
import { goto } from '$app/navigation';
import { Plus } from 'lucide-svelte';
@@ -11,7 +13,7 @@
export let data: PageData;
// Initialize data page store
- const { search, filtered, setItems } = createDataPageStore(data.qualityDefinitionsConfigs, {
+ const { search, view, filtered, setItems } = createDataPageStore(data.qualityDefinitionsConfigs, {
storageKey: 'qualityDefinitionsView',
searchKeys: ['name']
});
@@ -27,6 +29,7 @@
icon={Plus}
on:click={() => goto(`/media-management/${data.currentDatabase.id}/quality-definitions/new`)}
/>
+
@@ -45,7 +48,9 @@
>
No quality definitions configs match your search
- {:else}
+ {:else if $view === 'table'}
+ {:else}
+
{/if}
diff --git a/src/routes/media-management/[databaseId]/quality-definitions/views/CardView.svelte b/src/routes/media-management/[databaseId]/quality-definitions/views/CardView.svelte
new file mode 100644
index 0000000..621e0b7
--- /dev/null
+++ b/src/routes/media-management/[databaseId]/quality-definitions/views/CardView.svelte
@@ -0,0 +1,67 @@
+
+
+
+ {#each configs as config}
+
handleCardClick(config)}
+ on:keydown={(e) => e.key === 'Enter' && handleCardClick(config)}
+ role="button"
+ tabindex="0"
+ class="group flex cursor-pointer items-center gap-4 rounded-lg border border-neutral-200 bg-white p-3 transition-all hover:border-neutral-300 hover:shadow-md active:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-900 dark:hover:border-neutral-700 dark:active:bg-neutral-800"
+ >
+
+
+
+ {#if !loadedImages.has(config.name)}
+
+ {/if}
+

handleImageLoad(config.name)}
+ />
+
+
+
+ {config.name}
+
+
+ {config.quality_count} qualities
+
+
+
+
+ {/each}
+