(add): Baskets function

This commit is contained in:
dbob16 committed 2026-06-25 17:31:56 -04:00
1 parent e5b6fbd7c5
commit 9d6473d4bf
33 files changed
+987 -463

No files matched your search

+4 -4
View File
@@ -1,6 +1,6 @@
import { getSettings } from "$lib/server/settings";
import { getSettings } from '$lib/server/settings';
export const load = () => {
const settings = getSettings();
return { settings };
}
const settings = getSettings();
return { settings };
};
+82 -71
View File
@@ -1,85 +1,96 @@
<script>
import { onMount } from 'svelte';
import { resolve } from '$app/paths'
import { bS, iS, tS } from '$lib/client/styles';
import HeaderBar from '$lib/client/components/HeaderBar.svelte'
import { onMount } from 'svelte';
import { resolve } from '$app/paths';
import { bS, iS, tS } from '$lib/client/styles';
import HeaderBar from '$lib/client/components/HeaderBar.svelte';
let { data } = $props();
let settings = $state({});
let status = $state({
message: '',
color: 'green'
})
let { data } = $props();
let settings = $state({});
let status = $state({
message: '',
color: 'green'
});
const pageTitle = 'Settings | TAM';
const pageTitle = 'Settings | TAM';
onMount(() => {
settings = {...data.settings};
})
onMount(() => {
settings = { ...data.settings };
});
</script>
<svelte:head>
<title>{pageTitle}</title>
<title>{pageTitle}</title>
</svelte:head>
<HeaderBar>
<div>Settings Sections:</div>
{#if data.settings.remote_server}
<a href={resolve('/settings/auth-keys')} class={bS.gray}>Auth Keys</a>
{/if}
<a href={resolve('/settings/prefixes')} class={bS.gray}>Prefixes</a>
<div>Settings Sections:</div>
{#if data.settings.remote_server}
<a href={resolve('/settings/auth-keys')} class={bS.gray}>Auth Keys</a>
{/if}
<a href={resolve('/settings/prefixes')} class={bS.gray}>Prefixes</a>
</HeaderBar>
<div id="app_container" class="p-1">
<h1 class="text-xl font-bold">{pageTitle}</h1>
<div class="flex flex-col gap-1 w-full py-1">
<h2 class="text-lg font-bold">Remote Mode:</h2>
<div class="flex flex-row gap-1 items-center">
<div>Remote Server:</div>
<input type="text" class={iS.normal} bind:value={settings.remote_server}>
</div>
<div class="flex flex-row gap-1 items-center">
<div>Remote Port:</div>
<input type="text" class={iS.normal} bind:value={settings.remote_port}>
</div>
<div class="flex flex-row gap-1 items-center">
<div>Remote TLS:</div>
<button class={bS.gray} onclick={() => {
settings.remote_tls = !settings.remote_tls
}}>{settings.remote_tls ? 'Yes' : 'No'}</button>
</div>
<h2 class="text-lg font-bold">Default Preferences:</h2>
<div class="flex flex-row gap-1 items-center">
<div>Contact Preference:</div>
<button class={bS.gray} onclick={() => {
settings.default_pref === 'CALL' ? settings.default_pref = 'TEXT' : settings.default_pref = 'CALL';
}}>{settings.default_pref}</button>
</div>
<div class="flex flex-row gap-1 items-center">
<div>Venue Name:</div>
<input type="text" class={iS.normal} bind:value={settings.venue_name}>
</div>
<div class="flex flex-row gap-1 items-center">
<button class={bS.gray} onclick={async () => {
const res = await fetch('/api/settings', {
method: 'POST',
body: JSON.stringify(settings),
headers: {'Content-Type': 'application/json'}
})
if (!res.ok) {
status.message = `Error Code: ${res.status}`;
status.color = 'red';
} else {
const resData = await res.json();
settings = {...resData};
status.message = 'Settings saved successfully!';
status.color = 'green';
}
}}>Save</button>
<button class={bS.gray}>Cancel</button>
</div>
<div>
<p class={tS[status.color]}>{status.message}</p>
</div>
</div>
<h1 class="text-xl font-bold">{pageTitle}</h1>
<div class="flex flex-col gap-1 w-full py-1">
<h2 class="text-lg font-bold">Remote Mode:</h2>
<div class="flex flex-row gap-1 items-center">
<div>Remote Server:</div>
<input type="text" class={iS.normal} bind:value={settings.remote_server} />
</div>
<div class="flex flex-row gap-1 items-center">
<div>Remote Port:</div>
<input type="text" class={iS.normal} bind:value={settings.remote_port} />
</div>
<div class="flex flex-row gap-1 items-center">
<div>Remote TLS:</div>
<button
class={bS.gray}
onclick={() => {
settings.remote_tls = !settings.remote_tls;
}}>{settings.remote_tls ? 'Yes' : 'No'}</button
>
</div>
<h2 class="text-lg font-bold">Default Preferences:</h2>
<div class="flex flex-row gap-1 items-center">
<div>Contact Preference:</div>
<button
class={bS.gray}
onclick={() => {
settings.default_pref === 'CALL'
? (settings.default_pref = 'TEXT')
: (settings.default_pref = 'CALL');
}}>{settings.default_pref}</button
>
</div>
<div class="flex flex-row gap-1 items-center">
<div>Venue Name:</div>
<input type="text" class={iS.normal} bind:value={settings.venue_name} />
</div>
<div class="flex flex-row gap-1 items-center">
<button
class={bS.gray}
onclick={async () => {
const res = await fetch('/api/settings', {
method: 'POST',
body: JSON.stringify(settings),
headers: { 'Content-Type': 'application/json' }
});
if (!res.ok) {
status.message = `Error Code: ${res.status}`;
status.color = 'red';
} else {
const resData = await res.json();
settings = { ...resData };
status.message = 'Settings saved successfully!';
status.color = 'green';
}
}}>Save</button
>
<button class={bS.gray}>Cancel</button>
</div>
<div>
<p class={tS[status.color]}>{status.message}</p>
</div>
</div>
</div>
@@ -1,6 +1,6 @@
import { getSettings } from "$lib/server/settings";
import { getSettings } from '$lib/server/settings';
export const load = () => {
const s = getSettings();
return { authKey: s.remote_key };
}
const s = getSettings();
return { authKey: s.remote_key };
};
@@ -91,10 +91,10 @@
headers: { 'TAM-PWD': auth.pwd }
});
if (res.ok) {
setTimeout(() => {
const newKeys = authKeys.filter(i => i.auth_key !== key.auth_key);
authKeys = [...newKeys];
}, 1)
setTimeout(() => {
const newKeys = authKeys.filter((i) => i.auth_key !== key.auth_key);
authKeys = [...newKeys];
}, 1);
}
}}>Delete</button
>
@@ -109,17 +109,17 @@
<button
class={bS.gray}
onclick={async () => {
if (newDesc) {
const res = await fetch('/api/auth', {
method: 'POST',
headers: { 'TAM-PWD': auth.pwd, 'Content-Type': 'application/json' },
body: JSON.stringify({ description: newDesc })
});
if (res.ok) {
newDesc = '';
const data = await res.json();
authKeys = [...authKeys, data];
}
if (newDesc) {
const res = await fetch('/api/auth', {
method: 'POST',
headers: { 'TAM-PWD': auth.pwd, 'Content-Type': 'application/json' },
body: JSON.stringify({ description: newDesc })
});
if (res.ok) {
newDesc = '';
const data = await res.json();
authKeys = [...authKeys, data];
}
}
}}>New Key</button
>
@@ -1,5 +1,5 @@
export const load = async ({ fetch }) => {
const res = await fetch('/api/prefixes');
const prefixes = await res.json();
return { prefixes };
}
const res = await fetch('/api/prefixes');
const prefixes = await res.json();
return { prefixes };
};