From 702b0d2d0f3e2dd4a683ea3edbd347406f738a34 Mon Sep 17 00:00:00 2001 From: Mohsin Malik Date: Wed, 19 Apr 2023 16:48:50 -0400 Subject: [PATCH] Add UI toggles (#1437) * Add UI toggles * Reset .env * Remove console.log * Remove more console.logs --- frontend/.env | 2 +- frontend/src/lib/components/EditorBar.svelte | 3 ++ frontend/src/lib/components/RunForm.svelte | 5 +++ .../src/lib/components/ScriptBuilder.svelte | 15 +++++-- .../src/lib/components/home/ItemsList.svelte | 8 ++-- .../components/sidebar/SidebarContent.svelte | 3 +- frontend/src/lib/consts.ts | 41 ++++++++++++++++++- .../src/routes/(root)/(logged)/+page.svelte | 7 +++- .../scripts/get/[...hash]/+page.svelte | 24 ++++++++--- .../(logged)/workspace_settings/+page.svelte | 5 +++ 10 files changed, 96 insertions(+), 17 deletions(-) diff --git a/frontend/.env b/frontend/.env index 9d768f91d4..41e34101df 100644 --- a/frontend/.env +++ b/frontend/.env @@ -1 +1 @@ -VITE_DEFAULT_WEBHOOK_TYPE=async \ No newline at end of file +VITE_DEFAULT_WEBHOOK_TYPE=async diff --git a/frontend/src/lib/components/EditorBar.svelte b/frontend/src/lib/components/EditorBar.svelte index 3a00e8c6dc..c208b62ae3 100644 --- a/frontend/src/lib/components/EditorBar.svelte +++ b/frontend/src/lib/components/EditorBar.svelte @@ -31,6 +31,7 @@ import Skeleton from './common/skeleton/Skeleton.svelte' import Popover from './Popover.svelte' import Kbd from './common/kbd/Kbd.svelte' + import { SCRIPT_EDITOR_SHOW_EXPLORE_OTHER_SCRIPTS } from '$lib/consts' export let lang: 'python3' | 'deno' | 'go' | 'bash' export let editor: Editor | undefined @@ -382,6 +383,7 @@ class="px-1" disablePopup={!iconOnly} > + {#if SCRIPT_EDITOR_SHOW_EXPLORE_OTHER_SCRIPTS} + {/if} Script diff --git a/frontend/src/lib/components/RunForm.svelte b/frontend/src/lib/components/RunForm.svelte index f422e67803..3547061131 100644 --- a/frontend/src/lib/components/RunForm.svelte +++ b/frontend/src/lib/components/RunForm.svelte @@ -19,6 +19,7 @@ import Toggle from './Toggle.svelte' import Tooltip from './Tooltip.svelte' import CollapseLink from './CollapseLink.svelte' + import { SCRIPT_VIEW_SHOW_RUN_FROM_CLI, SCRIPT_VIEW_SHOW_SCHEDULE_RUN_LATER } from '$lib/consts' export let runnable: | { @@ -141,6 +142,7 @@
+ {#if SCRIPT_VIEW_SHOW_SCHEDULE_RUN_LATER}
+ {/if} {#if viewOptions}
@@ -222,6 +225,7 @@ {#if viewCliRun}
+ {#if SCRIPT_VIEW_SHOW_RUN_FROM_CLI}
+ {/if} {#if viewCliOptions}
diff --git a/frontend/src/lib/components/ScriptBuilder.svelte b/frontend/src/lib/components/ScriptBuilder.svelte index fbeaebadbd..9364d78989 100644 --- a/frontend/src/lib/components/ScriptBuilder.svelte +++ b/frontend/src/lib/components/ScriptBuilder.svelte @@ -19,6 +19,7 @@ import { Pen } from 'lucide-svelte' import autosize from 'svelte-autosize' import type Editor from './Editor.svelte' + import { SCRIPT_SHOW_BASH, SCRIPT_SHOW_GO, SCRIPT_SHOW_PSQL, SCRIPT_CUSTOMISE_SHOW_KIND } from '$lib/consts' export let script: Script export let initialPath: string = '' @@ -39,10 +40,14 @@ const langs: [string, SupportedLanguage][] = [ ['Typescript', Script.language.DENO], - ['Python', Script.language.PYTHON3], - ['Go', Script.language.GO], - ['Bash', Script.language.BASH] + ['Python', Script.language.PYTHON3] ] + if(SCRIPT_SHOW_GO) { + langs.push(['Go', Script.language.GO]) + } + if(SCRIPT_SHOW_BASH) { + langs.push(['Bash', Script.language.BASH]) + } const scriptKindOptions: { value: Script.kind; title: string; desc?: string }[] = [ { value: Script.kind.SCRIPT, @@ -205,6 +210,7 @@ {label} {/each} + {#if SCRIPT_SHOW_PSQL} + {/if} diff --git a/frontend/src/lib/components/sidebar/SidebarContent.svelte b/frontend/src/lib/components/sidebar/SidebarContent.svelte index 6e8739f706..816aba2a04 100644 --- a/frontend/src/lib/components/sidebar/SidebarContent.svelte +++ b/frontend/src/lib/components/sidebar/SidebarContent.svelte @@ -15,6 +15,7 @@ import { faDiscord, faGithub } from '@fortawesome/free-brands-svg-icons' import MenuLink from './MenuLink.svelte' import { userStore } from '$lib/stores' + import { SIDEBAR_SHOW_SCHEDULES } from '$lib/consts' const mainMenuLinks = [ { label: 'Home', href: '/', icon: faHomeAlt }, @@ -24,7 +25,7 @@ ] $: secondaryMenuLinks = [ - { label: 'Schedules', href: '/schedules', icon: faCalendar, disabled: $userStore?.operator }, + { label: 'Schedules', href: '/schedules', icon: faCalendar, disabled: !SIDEBAR_SHOW_SCHEDULES || $userStore?.operator }, { label: 'Folders', href: '/folders', icon: faFolderOpen, disabled: $userStore?.operator }, { label: 'Groups', href: '/groups', icon: faUsersCog, disabled: $userStore?.operator }, { label: 'Audit Logs', href: '/audit_logs', icon: faEye, disabled: $userStore?.operator }, diff --git a/frontend/src/lib/consts.ts b/frontend/src/lib/consts.ts index 8b272a92e1..cf5f4be70b 100644 --- a/frontend/src/lib/consts.ts +++ b/frontend/src/lib/consts.ts @@ -1,2 +1,39 @@ -export const DEFAULT_WEBHOOK_TYPE: 'async' | 'sync' = - import.meta.env.VITE_DEFAULT_WEBHOOK_TYPE || 'async' +function strToBool(someStr) { + return (someStr || 'true') === 'true' +} + +export const DEFAULT_WEBHOOK_TYPE: 'async' | 'sync' = import.meta.env.VITE_DEFAULT_WEBHOOK_TYPE || 'async' + +export const HOME_SHOW_HUB = strToBool(import.meta.env.VITE_HOME_SHOW_HUB) + +export const HOME_SHOW_CREATE_FLOW = strToBool(import.meta.env.VITE_HOME_SHOW_CREATE_FLOW) +export const HOME_SEARCH_SHOW_FLOW = strToBool(import.meta.env.VITE_HOME_SEARCH_SHOW_FLOW) + +export const HOME_SHOW_CREATE_APP = strToBool(import.meta.env.VITE_HOME_SHOW_CREATE_APP) + +export const HOME_SEARCH_PLACEHOLDER = import.meta.env.VITE_HOME_SEARCH_PLACEHOLDER || 'Search Scripts, Flows & Apps' + +export const SIDEBAR_SHOW_SCHEDULES = strToBool(import.meta.env.VITE_SIDEBAR_SHOW_SCHEDULES) + +export const SCRIPT_SHOW_PSQL = strToBool(import.meta.env.VITE_SCRIPT_SHOW_PSQL) +export const SCRIPT_SHOW_GO = strToBool(import.meta.env.VITE_SCRIPT_SHOW_GO) +export const SCRIPT_SHOW_BASH = strToBool(import.meta.env.VITE_SCRIPT_SHOW_BASH) + +export const WORKSPACE_SHOW_SLACK_CMD = strToBool(import.meta.env.VITE_WORKSPACE_SHOW_SLACK_CMD) +export const WORKSPACE_SHOW_WEBHOOK_CLI_SYNC = strToBool(import.meta.env.VITE_WORKSPACE_SHOW_WEBHOOK_CLI_SYNC) + +export const SCRIPT_VIEW_SHOW_PUBLISH_TO_HUB = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_PUBLISH_TO_HUB) +export const SCRIPT_VIEW_SHOW_SCHEDULE = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_SCHEDULE) +export const SCRIPT_VIEW_SHOW_EXAMPLE_CURL = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_EXAMPLE_CURL) +export const SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON) +export const SCRIPT_VIEW_SHOW_RUN_FROM_CLI = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_RUN_FROM_CLI) +export const SCRIPT_VIEW_SHOW_SCHEDULE_RUN_LATER = strToBool(import.meta.env.VITE_SCRIPT_VIEW_SHOW_SCHEDULE_RUN_LATER) + +export const SCRIPT_VIEW_WEBHOOK_INFO_TIP = import.meta.env.VITE_SCRIPT_VIEW_WEBHOOK_INFO_TIP || `Pass the input as a json payload, the token as a Bearer token (header: 'Authorization: +Bearer XXXX') or as query arg \`?token=XXX\`, and pass as header: 'Content-Type: +application/json'` +export const SCRIPT_VIEW_WEBHOOK_INFO_LINK = import.meta.env.VITE_SCRIPT_VIEW_WEBHOOK_INFO_LINK || 'https://docs.windmill.dev/docs/core_concepts/webhooks' + +export const SCRIPT_EDITOR_SHOW_EXPLORE_OTHER_SCRIPTS = strToBool(import.meta.env.VITE_SCRIPT_EDITOR_SHOW_EXPLORE_OTHER_SCRIPTS) + +export const SCRIPT_CUSTOMISE_SHOW_KIND = strToBool(import.meta.env.VITE_SCRIPT_CUSTOMISE_SHOW_KIND) diff --git a/frontend/src/routes/(root)/(logged)/+page.svelte b/frontend/src/routes/(root)/(logged)/+page.svelte index 3f46efeebd..15a439149a 100644 --- a/frontend/src/routes/(root)/(logged)/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/+page.svelte @@ -20,6 +20,7 @@ import AppPreview from '$lib/components/apps/editor/AppPreview.svelte' import { writable } from 'svelte/store' import type { EditorBreakpoint } from '$lib/components/apps/types' + import { HOME_SHOW_HUB, HOME_SHOW_CREATE_FLOW, HOME_SHOW_CREATE_APP } from '$lib/consts' type Tab = 'hub' | 'workspace' @@ -191,8 +192,8 @@ {#if !$userStore?.operator} Create a new: - - + {#if HOME_SHOW_CREATE_FLOW}{/if} + {#if HOME_SHOW_CREATE_APP}{/if} {/if}
@@ -206,12 +207,14 @@ Workspace
+ {#if HOME_SHOW_HUB}
Hub
+ {/if}
{/if} diff --git a/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte b/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte index 169aa70d98..cd63dfdcb5 100644 --- a/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/scripts/get/[...hash]/+page.svelte @@ -46,7 +46,15 @@ import { Loader2 } from 'lucide-svelte' import { slide } from 'svelte/transition' import MoveDrawer from '$lib/components/MoveDrawer.svelte' - import { DEFAULT_WEBHOOK_TYPE } from '$lib/consts' + import { + DEFAULT_WEBHOOK_TYPE, + SCRIPT_VIEW_SHOW_PUBLISH_TO_HUB, + SCRIPT_VIEW_SHOW_SCHEDULE, + SCRIPT_VIEW_SHOW_EXAMPLE_CURL, + SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON, + SCRIPT_VIEW_WEBHOOK_INFO_LINK, + SCRIPT_VIEW_WEBHOOK_INFO_TIP + } from '$lib/consts' let userSettings: UserSettings let script: Script | undefined @@ -282,6 +290,7 @@
+ {#if SCRIPT_VIEW_SHOW_PUBLISH_TO_HUB} + {/if} + {#if SCRIPT_VIEW_SHOW_SCHEDULE} + {/if}
+ {/if} {/each} + {#if SCRIPT_VIEW_SHOW_EXAMPLE_CURL}
+ {/if} {#if viewWebhookCommand}
diff --git a/frontend/src/routes/(root)/(logged)/workspace_settings/+page.svelte b/frontend/src/routes/(root)/(logged)/workspace_settings/+page.svelte index 69a18443dd..41541dbec6 100644 --- a/frontend/src/routes/(root)/(logged)/workspace_settings/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/workspace_settings/+page.svelte @@ -14,6 +14,7 @@ import TableCustom from '$lib/components/TableCustom.svelte' import Toggle from '$lib/components/Toggle.svelte' import Tooltip from '$lib/components/Tooltip.svelte' + import { WORKSPACE_SHOW_SLACK_CMD, WORKSPACE_SHOW_WEBHOOK_CLI_SYNC } from '$lib/consts' import type { User } from '$lib/gen' import { OauthService, @@ -206,9 +207,11 @@
Users & Invites
+ {#if WORKSPACE_SHOW_SLACK_CMD}
Slack Command
+ {/if} {#if isCloudHosted()}
Premium Plans
@@ -217,9 +220,11 @@
Export & Delete Workspace
+ {#if WORKSPACE_SHOW_WEBHOOK_CLI_SYNC}
Webhook for CLI Sync
+ {/if}
{#if tab == 'users'}