feat: backups page cleanup before worlds (#5844)

* feat: card alignment + fix modals

* feat: change admon title in restore alert modal

* fix: lint

* feat: backups queue api into api-client

* feat: impl backup queue api endpoints into frontend

* feat: ack fix

* feat: bulk actions

* feat: bulk delete impl

* fix: lint

* fix: align error states

* fix: transition group

* feat: ready for qa

* fix: lint

* feat: qa

* feat: stacked admonitions component

* fix: issues with stacking

* feat: hook up admonition stacking + fix app csp for staging kyros nodes

* fix: logs.vue

* qa: close stack on admonitions click

* fix: all problems with stacked admonitions

* qa: admonition cleanup and copy overhaul draft

* fix: qa issues padding

* fix: padding bug

* feat: qa

* fix: intercom in app csp bug

* fix: positioning intercom

* feat: loading overlay on top of console + admon consistency changes

* feat: scroll indicator fade in backup delete modal + admon timestamp fix

* feat: move action bar behind modal

* fix: lint + i18n

* fix: server ping spam on filter (cache but clear on unmount)

* fix: 1 admon fade in flicker issue

* chore: temp staging undo

* qa: changes

* fix: lint

* chore: revert staging to use staging

* fix: scoping
This commit is contained in:
Calum H.
2026-04-27 20:03:48 +01:00
committed by GitHub
parent 85ae1f2074
commit 620894aecb
79 changed files with 4640 additions and 1656 deletions

View File

@@ -100,7 +100,13 @@ export function useBrowseSearch(options: UseBrowseSearchOptions): BrowseSearchSt
serverFilterTypes,
serverRequestParams,
createServerPageParams,
} = useServerSearch({ tags: options.tags, query, maxResults, currentPage })
} = useServerSearch({
tags: options.tags,
query,
maxResults,
currentPage,
providedFilters: options.providedFilters,
})
const effectiveRequestParams = computed(() =>
isServerType.value ? serverRequestParams.value : requestParams.value,

View File

@@ -174,7 +174,7 @@ const maxResultsOptions = computed<ComboboxOption<number>[]>(() =>
:disabled="action.disabled"
@click.stop="action.onClick"
>
<component :is="action.icon" />
<component :is="action.icon" :class="action.iconClass" />
<template v-if="!action.circular">{{ action.label }}</template>
</button>
</ButtonStyled>
@@ -241,7 +241,7 @@ const maxResultsOptions = computed<ComboboxOption<number>[]>(() =>
:disabled="action.disabled"
@click.stop="action.onClick"
>
<component :is="action.icon" />
<component :is="action.icon" :class="action.iconClass" />
<template v-if="!action.circular">{{ action.label }}</template>
</button>
</ButtonStyled>

View File

@@ -98,7 +98,7 @@ function getFilterOpenByDefault(filterId: string): boolean {
>
<Checkbox
v-model="ctx.hideInstalled!.value"
:label="ctx.hideInstalledLabel?.value ?? 'Hide installed content'"
:label="ctx.hideInstalledLabel?.value ?? 'Hide already installed content'"
class="filter-checkbox"
@update:model-value="ctx.onFilterChange()"
@click.prevent.stop

View File

@@ -30,6 +30,7 @@ export interface CardAction {
key: string
label: string
icon: Component
iconClass?: string
disabled?: boolean
color?: 'brand' | 'red'
type?: 'standard' | 'outlined' | 'transparent'