feat: runner list filtered by created_via

This commit is contained in:
Philipp Dormann 2025-04-09 11:56:59 +02:00
parent aa720f2460
commit 991716a7f5
Signed by: philipp
GPG Key ID: 3BB9ADD52DCA4314
8 changed files with 29 additions and 15 deletions

View File

@ -43,7 +43,7 @@
},
"dependencies": {
"@fontsource/athiti": "^5.2.5",
"@odit/lfk-client-js": "1.2.2",
"@odit/lfk-client-js": "1.2.3",
"@paralleldrive/cuid2": "2.2.2",
"@tanstack/svelte-table": "8.9.1",
"bwip-js": "3.4.0",

10
pnpm-lock.yaml generated
View File

@ -12,8 +12,8 @@ importers:
specifier: ^5.2.5
version: 5.2.5
'@odit/lfk-client-js':
specifier: 1.2.2
version: 1.2.2
specifier: 1.2.3
version: 1.2.3
'@paralleldrive/cuid2':
specifier: 2.2.2
version: 2.2.2
@ -355,8 +355,8 @@ packages:
'@octokit/types@13.6.1':
resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==}
'@odit/lfk-client-js@1.2.2':
resolution: {integrity: sha512-6UflZ8T8rV3yaBCMGC/fbBbsQkcld2RijcGrtv48bTqHGoUUG8aXuMXU7741I+eucxfxcal2/JfHih/I87IX7A==}
'@odit/lfk-client-js@1.2.3':
resolution: {integrity: sha512-QXJUVfH57iwykKNHQQC4z18/f7rnpCNCjvxijrOmuBMLsBNuYSzvrrqXyno4ce1rr5f0PD4IYtKmhcgJsk49wQ==}
'@odit/license-exporter@0.2.0':
resolution: {integrity: sha512-RRyfQzDLoyLQlGSd8ThJQ3h0fiCe4tkmm935AUvSVQWP+p88FcnI4iaktKBJJVBnIpDhkv/7sDSA5dFc/QMM5w==}
@ -2176,7 +2176,7 @@ snapshots:
dependencies:
'@octokit/openapi-types': 22.2.0
'@odit/lfk-client-js@1.2.2': {}
'@odit/lfk-client-js@1.2.3': {}
'@odit/license-exporter@0.2.0':
dependencies:

View File

@ -136,9 +136,15 @@
</Route>
<Route path="/runners/*">
<Route path="/">
<Runners />
<Runners created_via="all" />
</Route>
<Route path="/:runnerid" let:params>
<Route path="/selfservice/">
<Runners created_via="selfservice" />
</Route>
<Route path="/kiosk/">
<Runners created_via="kiosk" />
</Route>
<Route path="/detail/:runnerid" let:params>
<RunnerDetail {params} />
</Route>
</Route>

View File

@ -6,7 +6,7 @@
{#if !runner}
{$_("non-blanko")}
{:else}
<a href={`/runners/${runner.id}`}>
<a href={`/runners/detail/${runner.id}`}>
{#if runner.middlename}
{runner.firstname} {runner.middlename} {runner.lastname}
{:else}

View File

@ -220,7 +220,7 @@
<StatCard
title={$_("runner_via_selfservice")}
value={stats.runnersViaSelfservice}
href="/runners/"
href="/runners/selfservice/"
>
<svg
height="24"
@ -237,7 +237,7 @@
<StatCard
title={$_('runners_via_kiosk')}
value={stats.runnersViaKiosk}
href="/runners/"
href="/runners/kiosk/"
>
<svg
height="24"

View File

@ -8,7 +8,7 @@
{:else}
<div class="text-sm font-medium text-gray-900">
<a
href="../runners/{runner.id}"
href="../runners/detail/{runner.id}"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800 border border-current"
>{runner.firstname}
{#if runner.middlename}{runner.middlename}{/if}

View File

@ -100,7 +100,7 @@
<nav class="w-full flex">
<ol class="list-none flex flex-row items-center justify-start">
<li class="flex items-center">
<a class="mr-2" href="./"
<a class="mr-2" href="/runners/"
><svg
xmlns="http://www.w3.org/2000/svg"
width="24"

View File

@ -32,6 +32,7 @@
$: active_delete = undefined;
let dataLoaded = false;
export let created_via = "all";
export let current_runners = [];
$: sponsoring_contracts_show = selected.length > 0;
$: cards_show = selected.length > 0;
@ -103,7 +104,7 @@
header: () => $_("action"),
cell: (info) => {
return renderComponent(TableActions, {
detailsLink: `./${info.row.original.id}`,
detailsLink: `/runners/detail/${info.row.original.id}`,
deleteAction: () => {
active_delete =
current_runners[
@ -161,7 +162,11 @@
let page = 0;
while (page >= 0) {
const runners = await RunnerService.runnerControllerGetAll(page, 500);
const runners = await RunnerService.runnerControllerGetAll(
page,
500,
created_via
);
if (runners.length == 0) {
page = -2;
}
@ -190,6 +195,9 @@
<h4 class="mb-1 text-3xl font-extrabold leading-tight">
{$_("runners")}
</h4>
{#if created_via !== "all"}
<p>created_via={created_via}</p>
{/if}
{#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:CREATE")}
<button
on:click={() => {