diff --git a/src/lib/components/ControlModules/dialogs/dialog-shocker-add.svelte b/src/lib/components/ControlModules/dialogs/dialog-shocker-add.svelte new file mode 100644 index 00000000..d39945ff --- /dev/null +++ b/src/lib/components/ControlModules/dialogs/dialog-shocker-add.svelte @@ -0,0 +1,109 @@ + + + + + + Add Shocker + Register a new shocker to one of your hubs. + +
+ + + + RF ID + + + + + Model + + + {modelOptions.find((o) => o.value === data.model)?.label ?? 'Select model'} + + + + {#each modelOptions as option (option.value)} + {option.label} + {/each} + + + + + + + Hub + + + {hubs.find(([id]) => id === data.device)?.[1].name ?? 'Select hub'} + + + + {#each hubs as [id, hub] (id)} + {hub.name} + {/each} + + + + +
+ + + + diff --git a/src/lib/components/ControlModules/impl/ShockerMenu.svelte b/src/lib/components/ControlModules/impl/ShockerMenu.svelte index 6b92d1eb..fa95feaf 100644 --- a/src/lib/components/ControlModules/impl/ShockerMenu.svelte +++ b/src/lib/components/ControlModules/impl/ShockerMenu.svelte @@ -1,10 +1,15 @@ @@ -27,6 +69,25 @@ {/snippet} + + {#if pauseLoading} + + {:else if shocker.isPaused} + + {:else} + + {/if} + {shocker.isPaused ? 'Resume' : 'Pause'} + + + + Edit + View Logs + + + + Delete + diff --git a/src/routes/(app)/settings/sessions/+page.svelte b/src/routes/(app)/settings/sessions/+page.svelte index 0242b660..470477c7 100644 --- a/src/routes/(app)/settings/sessions/+page.svelte +++ b/src/routes/(app)/settings/sessions/+page.svelte @@ -22,7 +22,6 @@ import { toast } from 'svelte-sonner'; import DataTableActions from './data-table-actions.svelte'; - let loading = $state(false); let data = $state([]); let sorting = $state([]); @@ -48,18 +47,11 @@ }, ]; - function handleProblem(problem: ProblemDetails): boolean { - return false; - } - async function fetchSessions() { - loading = true; try { data = await sessionsApi.sessionsListSessions(); } catch (error) { - await handleApiError(error, handleProblem); - } finally { - loading = false; + await handleApiError(error); } } diff --git a/src/routes/(app)/shockers/[shockerId=guid]/edit/+page.svelte b/src/routes/(app)/shockers/[shockerId=guid]/edit/+page.svelte new file mode 100644 index 00000000..ad372995 --- /dev/null +++ b/src/routes/(app)/shockers/[shockerId=guid]/edit/+page.svelte @@ -0,0 +1,149 @@ + + + + {#if !shocker} +
+ + Loading shocker... +
+ {:else} +
+

Edit Shocker

+ + + + + RF ID + + + + + Model + + + {modelOptions.find((o) => o.value === model)?.label ?? 'Select model'} + + + + {#each modelOptions as option (option.value)} + {option.label} + {/each} + + + + + + + Pause State +
+ {}} + /> + + {shocker.isPaused ? 'Shocker is paused' : 'Shocker is active'} + +
+
+ + + +
+ +
+

Danger Zone

+

+ Permanently delete this shocker. This action cannot be undone. +

+ +
+
+ {/if} +
diff --git a/src/routes/(app)/shockers/own/+page.svelte b/src/routes/(app)/shockers/own/+page.svelte index 3276f58e..a54afd08 100644 --- a/src/routes/(app)/shockers/own/+page.svelte +++ b/src/routes/(app)/shockers/own/+page.svelte @@ -1,18 +1,27 @@ @@ -32,6 +63,9 @@

Shockers

+ - - + + + + {#snippet child({ props })} + + {/snippet} + + + + +