fix movie request page not loading

This commit is contained in:
maxDorninger
2025-07-19 14:33:35 +02:00
parent 6224d418be
commit 608bdf32e7
6 changed files with 37 additions and 26 deletions

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import { getFullyQualifiedMediaName, getTorrentQualityString } from '$lib/utils.js';
import type { SeasonRequest, User } from '$lib/types.js';
import type { MovieRequest, SeasonRequest, User } from '$lib/types.js';
import CheckmarkX from '$lib/components/checkmark-x.svelte';
import * as Table from '$lib/components/ui/table/index.js';
import { getContext } from 'svelte';
@@ -13,13 +13,11 @@
const apiUrl = env.PUBLIC_API_URL;
let {
requests,
filter = () => {
return true;
},
filter = () => true,
isShow = true
}: {
requests: SeasonRequest[];
filter?: (request: SeasonRequest) => boolean;
requests: (SeasonRequest | MovieRequest)[];
filter?: (request: SeasonRequest | MovieRequest) => boolean;
isShow: boolean;
} = $props();
const user: () => User = getContext('user');
@@ -114,14 +112,14 @@
<Table.Row>
<Table.Cell>
{#if isShow}
{getFullyQualifiedMediaName(request.show)}
{getFullyQualifiedMediaName((request as SeasonRequest).show)}
{:else}
{getFullyQualifiedMediaName(request.show)}
{getFullyQualifiedMediaName((request as MovieRequest).movie)}
{/if}
</Table.Cell>
{#if isShow}
<Table.Cell>
{request.season.number}
{(request as SeasonRequest).season.number}
</Table.Cell>
{/if}
<Table.Cell>
@@ -154,7 +152,7 @@
class=""
size="sm"
variant="outline"
onclick={() => goto(base + '/dashboard/tv/' + request.show.id)}
onclick={() => goto(base + '/dashboard/tv/' + (request as SeasonRequest).show.id)}
>
Download manually
</Button>
@@ -163,7 +161,8 @@
class=""
size="sm"
variant="outline"
onclick={() => goto(base + '/dashboard/tv/' + request.show.id)}
onclick={() =>
goto(base + '/dashboard/movies/' + (request as MovieRequest).movie.id)}
>
Download manually
</Button>

View File

@@ -53,13 +53,14 @@
} catch (error) {
console.error('Error updating user:', error);
toast.error(
'Error updating user: ' + (error instanceof Error ? error.message : String(error))
'Error updating user: ' + (error instanceof Error ? error.message : String(error))
);
} finally {
newPassword = '';
}
}
</script>
<Table.Root>
<Table.Caption>A list of all users.</Table.Caption>
<Table.Header>
@@ -175,11 +176,11 @@
<div>
<Label class="mb-1 block text-sm font-medium" for="superuser">Password</Label>
<Input
bind:value={newEmail}
class="w-full"
id="email"
placeholder={selectedUser?.email}
type="text"
bind:value={newEmail}
class="w-full"
id="email"
placeholder={selectedUser?.email}
type="text"
/>
</div>
<!-- Password -->

View File

@@ -215,20 +215,20 @@ export interface RichMovieTorrent {
torrents: Torrent[];
}
interface SeasonRequestBase {
interface RequestBase {
min_quality: Quality;
wanted_quality: Quality;
}
export interface CreateSeasonRequest extends SeasonRequestBase {
export interface CreateSeasonRequest extends RequestBase {
season_id: string;
}
export interface UpdateSeasonRequest extends SeasonRequestBase {
export interface UpdateRequest extends RequestBase {
id: string;
}
export interface SeasonRequest extends SeasonRequestBase {
export interface SeasonRequest extends RequestBase {
id: string;
season: Season;
requested_by?: User;
@@ -237,6 +237,15 @@ export interface SeasonRequest extends SeasonRequestBase {
show: Show;
}
export interface MovieRequest extends RequestBase {
id: string;
movie: Movie;
movie_id: string;
requested_by?: User;
authorized: boolean;
authorized_by?: User;
}
export interface LibraryItem {
name: string;
path: string;

View File

@@ -6,7 +6,7 @@
import RequestsTable from '$lib/components/season-requests-table.svelte';
import { base } from '$app/paths';
let requests = $state(page.data.requestsData);
let requests = page.data.requestsData;
</script>
<svelte:head>

View File

@@ -1,8 +1,8 @@
import { env } from '$env/dynamic/public';
import type { LayoutLoad } from './$types';
import type { PageLoad } from './$types';
const apiUrl = env.PUBLIC_API_URL;
export const load: LayoutLoad = async ({ fetch }) => {
export const load: PageLoad = async ({ fetch }) => {
try {
const requests = await fetch(`${apiUrl}/movies/requests`, {
method: 'GET',

View File

@@ -11,8 +11,10 @@
import type { User } from '$lib/types';
let currentUser: () => User = getContext('user');
let users: User[] = $derived(page.data.users.filter((user: User) => user.id !== currentUser().id));
$inspect(users)
let users: User[] = $derived(
page.data.users.filter((user: User) => user.id !== currentUser().id)
);
$inspect(users);
console.log('Current user:', currentUser());
</script>