mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-22 10:51:02 +01:00
style: reduce top padding above tabs on entity pages
fix: remove unfinished arr types from instance form
This commit is contained in:
@@ -26,9 +26,7 @@
|
||||
function getTypeBadgeClasses(type: string): string {
|
||||
const colors: Record<string, string> = {
|
||||
radarr: 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400',
|
||||
sonarr: 'bg-sky-100 text-sky-800 dark:bg-sky-900/30 dark:text-sky-400',
|
||||
lidarr: 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400',
|
||||
chaptarr: 'bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400'
|
||||
sonarr: 'bg-sky-100 text-sky-800 dark:bg-sky-900/30 dark:text-sky-400'
|
||||
};
|
||||
return colors[type] || 'bg-neutral-100 text-neutral-800 dark:bg-neutral-800 dark:text-neutral-200';
|
||||
}
|
||||
@@ -62,7 +60,7 @@
|
||||
<EmptyState
|
||||
icon={Server}
|
||||
title="No Arr Instances"
|
||||
description="Add a Radarr, Sonarr, Lidarr, or Chaptarr instance to get started."
|
||||
description="Add a Radarr or Sonarr instance to get started."
|
||||
buttonText="Add Instance"
|
||||
buttonHref="/arr/new"
|
||||
buttonIcon={Plus}
|
||||
@@ -74,7 +72,7 @@
|
||||
<div>
|
||||
<h1 class="text-3xl font-bold text-neutral-900 dark:text-neutral-50">Arr Instances</h1>
|
||||
<p class="mt-1 text-neutral-600 dark:text-neutral-400">
|
||||
Manage your Radarr, Sonarr, Lidarr, and Chaptarr instances
|
||||
Manage your Radarr and Sonarr instances
|
||||
</p>
|
||||
</div>
|
||||
<a
|
||||
|
||||
@@ -191,7 +191,7 @@ export const actions: Actions = {
|
||||
try {
|
||||
const { createArrClient } = await import('$arr/factory.ts');
|
||||
const { DelayProfileSyncer } = await import('$lib/server/sync/delayProfiles.ts');
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr' | 'lidarr' | 'chaptarr', instance.url, instance.api_key);
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr', instance.url, instance.api_key);
|
||||
const syncer = new DelayProfileSyncer(client, id, instance.name);
|
||||
const result = await syncer.sync();
|
||||
|
||||
@@ -225,7 +225,7 @@ export const actions: Actions = {
|
||||
try {
|
||||
const { createArrClient } = await import('$arr/factory.ts');
|
||||
const { QualityProfileSyncer } = await import('$lib/server/sync/qualityProfiles.ts');
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr' | 'lidarr' | 'chaptarr', instance.url, instance.api_key);
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr', instance.url, instance.api_key);
|
||||
const syncer = new QualityProfileSyncer(client, id, instance.name, instance.type as 'radarr' | 'sonarr');
|
||||
const result = await syncer.sync();
|
||||
|
||||
@@ -259,8 +259,8 @@ export const actions: Actions = {
|
||||
try {
|
||||
const { createArrClient } = await import('$arr/factory.ts');
|
||||
const { MediaManagementSyncer } = await import('$lib/server/sync/mediaManagement.ts');
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr' | 'lidarr' | 'chaptarr', instance.url, instance.api_key);
|
||||
const syncer = new MediaManagementSyncer(client, id, instance.name, instance.type as 'radarr' | 'sonarr' | 'lidarr' | 'chaptarr');
|
||||
const client = createArrClient(instance.type as 'radarr' | 'sonarr', instance.url, instance.api_key);
|
||||
const syncer = new MediaManagementSyncer(client, id, instance.name, instance.type as 'radarr' | 'sonarr');
|
||||
const result = await syncer.sync();
|
||||
|
||||
await logger.info(`Manual media management sync completed for "${instance.name}"`, {
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
$: title = mode === 'create' ? 'Add Arr Instance' : 'Edit Instance';
|
||||
$: description =
|
||||
mode === 'create'
|
||||
? 'Configure a new Radarr, Sonarr, Lidarr, or Chaptarr instance'
|
||||
? 'Configure a new Radarr or Sonarr instance'
|
||||
: `Update the configuration for ${instance?.name || 'this instance'}`;
|
||||
$: submitButtonText = mode === 'create' ? 'Save' : 'Save';
|
||||
$: successMessage =
|
||||
@@ -144,7 +144,7 @@
|
||||
bind:value={name}
|
||||
required
|
||||
placeholder="e.g., Main Radarr, 4K Sonarr"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -176,13 +176,11 @@
|
||||
bind:value={type}
|
||||
on:change={resetConnectionStatus}
|
||||
required
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:focus:border-neutral-500"
|
||||
>
|
||||
<option value="">Select type...</option>
|
||||
<option value="radarr">Radarr</option>
|
||||
<option value="sonarr">Sonarr</option>
|
||||
<option value="lidarr">Lidarr</option>
|
||||
<option value="chaptarr">Chaptarr</option>
|
||||
</select>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -246,7 +244,7 @@
|
||||
on:input={resetConnectionStatus}
|
||||
required
|
||||
placeholder="http://localhost:7878"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -266,7 +264,7 @@
|
||||
on:input={resetConnectionStatus}
|
||||
required
|
||||
placeholder={mode === 'edit' ? 'Enter API key to test connection' : 'Enter API key'}
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm font-mono text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm font-mono text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
{#if mode === 'edit'}
|
||||
<p class="mt-1 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { Actions } from '@sveltejs/kit';
|
||||
import { arrInstancesQueries } from '$db/queries/arrInstances.ts';
|
||||
import { logger } from '$logger/logger.ts';
|
||||
|
||||
const VALID_TYPES = ['radarr', 'sonarr', 'lidarr', 'chaptarr'];
|
||||
const VALID_TYPES = ['radarr', 'sonarr'];
|
||||
|
||||
export const actions = {
|
||||
default: async ({ request }) => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { RequestHandler } from '@sveltejs/kit';
|
||||
import { createArrClient } from '$arr/factory.ts';
|
||||
import type { ArrType } from '$arr/types.ts';
|
||||
|
||||
const VALID_TYPES = ['radarr', 'sonarr', 'lidarr', 'chaptarr'];
|
||||
const VALID_TYPES = ['radarr', 'sonarr'];
|
||||
|
||||
export const POST: RequestHandler = async ({ request }) => {
|
||||
try {
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
<title>Custom Formats - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Tabs -->
|
||||
<Tabs {tabs} />
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
bind:value={name}
|
||||
required
|
||||
placeholder="e.g., Main Database, 4K Profiles"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
<p class="mt-1 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
A friendly name to identify this database
|
||||
@@ -127,7 +127,7 @@
|
||||
required
|
||||
disabled={mode === 'edit'}
|
||||
placeholder="https://github.com/username/database"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 disabled:cursor-not-allowed disabled:bg-neutral-100 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:disabled:bg-neutral-900"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none disabled:cursor-not-allowed disabled:bg-neutral-100 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:disabled:bg-neutral-900 dark:focus:border-neutral-500"
|
||||
/>
|
||||
{#if mode === 'edit'}
|
||||
<p class="mt-1 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
@@ -155,7 +155,7 @@
|
||||
name="branch"
|
||||
bind:value={branch}
|
||||
placeholder="main"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
<p class="mt-1 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
Branch to checkout on link. Leave empty to use the default branch. You can change this later.
|
||||
@@ -177,7 +177,7 @@
|
||||
name="personal_access_token"
|
||||
bind:value={personalAccessToken}
|
||||
placeholder="ghp_..."
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 placeholder-neutral-400 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:placeholder-neutral-500 dark:focus:border-neutral-500"
|
||||
/>
|
||||
<p class="mt-1 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
Required for private repositories to clone and for developers to push back to GitHub.
|
||||
@@ -207,7 +207,7 @@
|
||||
id="sync_strategy"
|
||||
name="sync_strategy"
|
||||
bind:value={syncStrategy}
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100"
|
||||
class="mt-1 block w-full rounded-lg border border-neutral-300 bg-white px-3 py-2 text-sm text-neutral-900 focus:border-neutral-400 focus:outline-none dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100 dark:focus:border-neutral-500"
|
||||
>
|
||||
<option value={0}>Manual (no auto-sync)</option>
|
||||
<option value={5}>Every 5 minutes</option>
|
||||
@@ -231,7 +231,7 @@
|
||||
name="auto_pull"
|
||||
bind:checked={autoPull}
|
||||
value="1"
|
||||
class="mt-0.5 h-4 w-4 rounded border-neutral-300 text-blue-600 focus:ring-2 focus:ring-blue-500 dark:border-neutral-700 dark:bg-neutral-800"
|
||||
class="mt-0.5 h-4 w-4 rounded border-neutral-300 text-neutral-600 focus:ring-0 dark:border-neutral-700 dark:bg-neutral-800"
|
||||
/>
|
||||
<div>
|
||||
<label
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<title>Delay Profiles - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Tabs -->
|
||||
<Tabs {tabs} />
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<title>Media Management - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Database Tabs -->
|
||||
<Tabs tabs={databaseTabs} />
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<title>Quality Profiles - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Tabs -->
|
||||
<Tabs {tabs} />
|
||||
|
||||
|
||||
@@ -354,7 +354,7 @@
|
||||
<title>Entity Testing - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Database Tabs -->
|
||||
<Tabs {tabs} />
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<title>Regular Expressions - {data.currentDatabase.name} - Profilarr</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="space-y-6 p-8">
|
||||
<div class="space-y-6 px-8 pt-4 pb-8">
|
||||
<!-- Tabs -->
|
||||
<Tabs {tabs} />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user