mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-05 00:02:24 +00:00
* feat: add an approval skin to the approval page and slack/teams messages Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * chore: point ee-repo-ref at the teams approval skin commit Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * fix: resolve the approval skin from the step awaiting approval Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * fix: shorten the slack approval message to fit the button value limit Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * fix: rename skins to detailed/minimal and keep long slack messages Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * feat: title the minimal approval page from the step and flow summaries Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * feat: let wait_for_approval set the description approvers see Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * fix: keep a finished workflow's approval description, still gated Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * fix: keep a login-required approval locked after the run moves on Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * feat: hide the windmill version on the approval page Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KK2Ye4PizykReZVuMEm3m9 * chore: update ee-repo-ref to e92abc9d1fba3ba898640df0cfeb0af8a50849b4 This commit updates the EE repository reference after PR #786 was merged in windmill-ee-private. Previous ee-repo-ref: bf1766ff49458f62d3f11746f1a06893ae3c2325 New ee-repo-ref: e92abc9d1fba3ba898640df0cfeb0af8a50849b4 Automated by sync-ee-ref workflow. --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
90 lines
2.3 KiB
Svelte
90 lines
2.3 KiB
Svelte
<script lang="ts">
|
|
import { setLicense } from '$lib/enterpriseUtils'
|
|
import { twMerge } from 'tailwind-merge'
|
|
import { Loader2 } from 'lucide-svelte'
|
|
import LoginPageHeader from './LoginPageHeader.svelte'
|
|
|
|
interface Props {
|
|
subtitle?: string | undefined
|
|
/** Rendered under the title, for a subtitle that needs markup (a link, say).
|
|
* Sits below `subtitle` when both are given. */
|
|
subtitleSnippet?: import('svelte').Snippet
|
|
title?: string
|
|
large?: boolean
|
|
centerVertically?: boolean
|
|
loading?: boolean
|
|
containOverflow?: boolean
|
|
/** The Windmill version and update notice in the header. */
|
|
showVersion?: boolean
|
|
children?: import('svelte').Snippet
|
|
}
|
|
|
|
let {
|
|
subtitle = undefined,
|
|
subtitleSnippet = undefined,
|
|
title = 'Windmill',
|
|
large = false,
|
|
centerVertically = true,
|
|
loading = false,
|
|
containOverflow = false,
|
|
showVersion = true,
|
|
children
|
|
}: Props = $props()
|
|
|
|
setLicense()
|
|
|
|
let height = $state(0)
|
|
</script>
|
|
|
|
<div
|
|
class="flex justify-center h-screen p-4 relative bg-surface-secondary {containOverflow
|
|
? 'overflow-hidden'
|
|
: 'overflow-auto'}"
|
|
class:items-center={centerVertically}
|
|
style="scrollbar-gutter: stable both-edges;"
|
|
bind:clientHeight={height}
|
|
>
|
|
<div
|
|
class={twMerge(
|
|
'flex flex-col gap-2 items-center w-full pb-8',
|
|
containOverflow ? 'min-h-0' : 'h-fit',
|
|
containOverflow ? '' : height > 1080 ? 'pt-28' : 'pt-12'
|
|
)}
|
|
>
|
|
<div class="mb-4">
|
|
<!-- The mark moved to the header, so a page that is only waiting (logging out,
|
|
redirecting) needs its own thing that moves. -->
|
|
<h1
|
|
class="flex items-center justify-center gap-2 text-center text-lg text-emphasis font-semibold"
|
|
>
|
|
{title}
|
|
{#if loading}
|
|
<Loader2 size={16} class="animate-spin shrink-0 text-secondary" />
|
|
{/if}
|
|
</h1>
|
|
{#if subtitle}
|
|
<p class="text-xs font-normal text-primary text-center mt-2">
|
|
{subtitle}
|
|
</p>
|
|
{/if}
|
|
{#if subtitleSnippet}
|
|
<div class="text-center mt-2">{@render subtitleSnippet()}</div>
|
|
{/if}
|
|
</div>
|
|
|
|
{#if children}
|
|
<div
|
|
class="rounded-md bg-surface w-full {large
|
|
? 'max-w-5xl'
|
|
: 'max-w-[640px]'} p-4 sm:py-8 sm:px-10 z-10 {containOverflow
|
|
? 'flex-1 min-h-0 flex flex-col'
|
|
: ''}"
|
|
>
|
|
{@render children()}
|
|
</div>
|
|
{/if}
|
|
</div>
|
|
|
|
<LoginPageHeader {showVersion} />
|
|
</div>
|