mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-04 00:03:02 +00:00
fix route count update
This commit is contained in:
@@ -48,7 +48,6 @@
|
||||
parseTypescriptDeps
|
||||
} from '$lib/relative_imports'
|
||||
import Tooltip from './Tooltip.svelte'
|
||||
|
||||
$: token = $page.url.searchParams.get('wm_token') ?? undefined
|
||||
$: workspace = $page.url.searchParams.get('workspace') ?? undefined
|
||||
$: themeDarkRaw = $page.url.searchParams.get('activeColorTheme')
|
||||
@@ -482,10 +481,11 @@
|
||||
const testStepStore = writable<Record<string, any>>({})
|
||||
const selectedIdStore = writable('settings-metadata')
|
||||
const selectedTriggerStore = writable('webhooks')
|
||||
|
||||
const httpTriggersStore = writable(undefined)
|
||||
setContext<FlowEditorContext>('FlowEditorContext', {
|
||||
selectedId: selectedIdStore,
|
||||
selectedTrigger: selectedTriggerStore,
|
||||
httpTriggers: httpTriggersStore,
|
||||
schedule: scheduleStore,
|
||||
previewArgs: previewArgsStore,
|
||||
scriptEditorDrawer,
|
||||
|
||||
@@ -400,10 +400,13 @@
|
||||
selectedTriggerStore.set(selectedTrigger)
|
||||
}
|
||||
|
||||
const httpTriggersStore = writable(undefined)
|
||||
|
||||
let insertButtonOpen = writable<boolean>(false)
|
||||
setContext<FlowEditorContext>('FlowEditorContext', {
|
||||
selectedId: selectedIdStore,
|
||||
selectedTrigger: selectedTriggerStore,
|
||||
httpTriggers: httpTriggersStore,
|
||||
schedule: scheduleStore,
|
||||
previewArgs: previewArgsStore,
|
||||
scriptEditorDrawer,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
import EmailTriggerPanel from '$lib/components/details/EmailTriggerPanel.svelte'
|
||||
import RoutesPanel from '$lib/components/triggers/RoutesPanel.svelte'
|
||||
import RunPageSchedules from '$lib/components/RunPageSchedules.svelte'
|
||||
import { HttpTriggerService, ScheduleService, type HttpTrigger, type Schedule } from '$lib/gen'
|
||||
import { ScheduleService, type Schedule } from '$lib/gen'
|
||||
import { canWrite } from '$lib/utils'
|
||||
import { userStore, workspaceStore } from '$lib/stores'
|
||||
import FlowCard from '../common/FlowCard.svelte'
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
export let noEditor: boolean
|
||||
export let newFlow = false
|
||||
let triggers: (HttpTrigger & { canWrite: boolean })[] | undefined = undefined
|
||||
let path = ''
|
||||
|
||||
const { pathStore, selectedTrigger } = getContext<FlowEditorContext>('FlowEditorContext')
|
||||
@@ -37,26 +36,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function loadTriggers() {
|
||||
try {
|
||||
triggers = (
|
||||
await HttpTriggerService.listHttpTriggers({
|
||||
workspace: $workspaceStore ?? '',
|
||||
path,
|
||||
isFlow: true
|
||||
})
|
||||
).map((x) => {
|
||||
return { canWrite: canWrite(x.path, x.extra_perms!, $userStore), ...x }
|
||||
})
|
||||
} catch (e) {
|
||||
console.error('impossible to load http routes')
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
if (!newFlow) {
|
||||
loadSchedules()
|
||||
loadTriggers()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@@ -97,7 +79,7 @@
|
||||
|
||||
{#if $selectedTrigger === 'routes'}
|
||||
<div class="p-4">
|
||||
<RoutesPanel {newFlow} path={path ?? ''} isFlow={true} bind:triggers />
|
||||
<RoutesPanel {newFlow} path={path ?? ''} isFlow={true} />
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import type ScriptEditorDrawer from './content/ScriptEditorDrawer.svelte'
|
||||
import type { FlowState } from './flowState'
|
||||
import type { Schedule } from './scheduleUtils'
|
||||
import type { FlowBuilderWhitelabelCustomUi } from '../custom_ui'
|
||||
import { type HttpTrigger } from '$lib/gen'
|
||||
|
||||
export type FlowInput = Record<
|
||||
string,
|
||||
@@ -29,6 +30,7 @@ export type ExtendedOpenFlow = OpenFlow & {
|
||||
export type FlowEditorContext = {
|
||||
selectedId: Writable<string>
|
||||
selectedTrigger: Writable<string>
|
||||
httpTriggers: Writable<(HttpTrigger & { canWrite: boolean })[] | undefined>
|
||||
moving: Writable<{ module: FlowModule; modules: FlowModule[] } | undefined>
|
||||
schedule: Writable<Schedule>
|
||||
previewArgs: Writable<Record<string, any>>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { Calendar, Mail, Webhook } from 'lucide-svelte'
|
||||
import TriggerButton from './TriggerButton.svelte'
|
||||
import { NODE } from '../../util'
|
||||
import { HttpTriggerService, ScheduleService, type HttpTrigger, type Schedule } from '$lib/gen'
|
||||
import { HttpTriggerService, ScheduleService, type Schedule } from '$lib/gen'
|
||||
import { userStore, workspaceStore } from '$lib/stores'
|
||||
import Popover from '$lib/components/Popover.svelte'
|
||||
import TriggerCount from './TriggerCount.svelte'
|
||||
@@ -13,7 +13,6 @@
|
||||
import type { FlowEditorContext } from '../../../flows/types'
|
||||
|
||||
let schedules: Schedule[] | undefined = undefined
|
||||
let triggers: (HttpTrigger & { canWrite: boolean })[] | undefined = undefined
|
||||
|
||||
export let path: string
|
||||
export let isEditor: boolean
|
||||
@@ -45,7 +44,7 @@
|
||||
|
||||
async function loadTriggers() {
|
||||
try {
|
||||
triggers = (
|
||||
$httpTriggers = (
|
||||
await HttpTriggerService.listHttpTriggers({
|
||||
workspace: $workspaceStore ?? '',
|
||||
path,
|
||||
@@ -68,6 +67,7 @@
|
||||
})
|
||||
|
||||
const flowEditorContext = getContext<FlowEditorContext>('FlowEditorContext')
|
||||
const httpTriggers = flowEditorContext?.httpTriggers ?? { subscribe: () => () => {} }
|
||||
const selectedId = flowEditorContext?.selectedId ?? { subscribe: () => () => {} }
|
||||
const selectedTrigger = flowEditorContext?.selectedTrigger ?? { subscribe: () => () => {} }
|
||||
</script>
|
||||
@@ -149,7 +149,7 @@
|
||||
}}
|
||||
disabled={newFlow}
|
||||
>
|
||||
<TriggerCount count={triggers?.length} />
|
||||
<TriggerCount count={$httpTriggers?.length} />
|
||||
<Route size={12} />
|
||||
</TriggerButton>
|
||||
</Popover>
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
<script lang="ts">
|
||||
import { Button } from '../common'
|
||||
import { userStore, workspaceStore } from '$lib/stores'
|
||||
import { HttpTriggerService, type HttpTrigger } from '$lib/gen'
|
||||
import { HttpTriggerService } from '$lib/gen'
|
||||
import { RouteIcon } from 'lucide-svelte'
|
||||
import type { FlowEditorContext } from '$lib/components/flows/types'
|
||||
import { getContext } from 'svelte'
|
||||
|
||||
import Skeleton from '../common/skeleton/Skeleton.svelte'
|
||||
import RouteEditor from './RouteEditor.svelte'
|
||||
@@ -15,12 +17,10 @@
|
||||
|
||||
let routeEditor: RouteEditor
|
||||
|
||||
export let triggers: (HttpTrigger & { canWrite: boolean })[] | undefined = undefined
|
||||
|
||||
$: path && loadTriggers()
|
||||
export async function loadTriggers() {
|
||||
try {
|
||||
triggers = (
|
||||
$httpTriggers = (
|
||||
await HttpTriggerService.listHttpTriggers({
|
||||
workspace: $workspaceStore ?? '',
|
||||
path,
|
||||
@@ -33,6 +33,9 @@
|
||||
console.error('impossible to load http routes')
|
||||
}
|
||||
}
|
||||
|
||||
const { httpTriggers } = getContext<FlowEditorContext>('FlowEditorContext')
|
||||
$httpTriggers ?? loadTriggers()
|
||||
</script>
|
||||
|
||||
<RouteEditor
|
||||
@@ -55,20 +58,23 @@
|
||||
</Button>
|
||||
{/if}
|
||||
|
||||
{#if triggers}
|
||||
{#if triggers.length == 0}
|
||||
{#if $httpTriggers}
|
||||
{#if $httpTriggers.length == 0}
|
||||
<div class="text-xs text-secondary"> No http routes </div>
|
||||
{:else}
|
||||
<div class="flex flex-col divide-y pt-2">
|
||||
{#each triggers as trigger (trigger.path)}
|
||||
{#each $httpTriggers as $httpTriggers ($httpTriggers.path)}
|
||||
<div class="grid grid-cols-5 text-2xs items-center py-2">
|
||||
<div class="col-span-2 truncate">{trigger.path}</div>
|
||||
<div class="col-span-2 truncate">{$httpTriggers.path}</div>
|
||||
<div class="col-span-2 truncate">
|
||||
{trigger.http_method.toUpperCase()} /{trigger.route_path}
|
||||
{$httpTriggers.http_method.toUpperCase()} /{$httpTriggers.route_path}
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button on:click={() => routeEditor?.openEdit(trigger.path, isFlow)} class="px-2">
|
||||
{#if trigger.canWrite}
|
||||
<button
|
||||
on:click={() => routeEditor?.openEdit($httpTriggers.path, isFlow)}
|
||||
class="px-2"
|
||||
>
|
||||
{#if $httpTriggers.canWrite}
|
||||
Edit
|
||||
{:else}
|
||||
View
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
const testStepStore = writable<Record<string, any>>({})
|
||||
const selectedIdStore = writable('settings-metadata')
|
||||
const selectedTriggerStore = writable('webhooks')
|
||||
|
||||
const httpTriggersStore = writable(undefined)
|
||||
// function select(selectedId: string) {
|
||||
// selectedIdStore.set(selectedId)
|
||||
// }
|
||||
@@ -87,6 +87,7 @@
|
||||
setContext<FlowEditorContext>('FlowEditorContext', {
|
||||
selectedId: selectedIdStore,
|
||||
selectedTrigger: selectedTriggerStore,
|
||||
httpTriggers: httpTriggersStore,
|
||||
schedule: scheduleStore,
|
||||
previewArgs: previewArgsStore,
|
||||
scriptEditorDrawer,
|
||||
|
||||
Reference in New Issue
Block a user