diff --git a/frontend/src/lib/components/sidebar/UserMenu.svelte b/frontend/src/lib/components/sidebar/UserMenu.svelte
index f64981a478..e65d07b4a7 100644
--- a/frontend/src/lib/components/sidebar/UserMenu.svelte
+++ b/frontend/src/lib/components/sidebar/UserMenu.svelte
@@ -3,7 +3,13 @@
import { userStore, usersWorkspaceStore, superadmin, usageStore } from '$lib/stores'
import { classNames, isCloudHosted } from '$lib/utils'
- import { faCrown, faPlay, faUser } from '@fortawesome/free-solid-svg-icons'
+ import {
+ faAngleDoubleDown,
+ faCrown,
+ faHardHat,
+ faPlay,
+ faUser
+ } from '@fortawesome/free-solid-svg-icons'
import { createEventDispatcher } from 'svelte'
import Icon from 'svelte-awesome'
@@ -32,7 +38,7 @@
{#if $userStore?.is_admin || $superadmin}
{:else if $userStore?.operator}
-
+
{/if}
{/if}
@@ -48,7 +54,7 @@
{#if $userStore?.is_admin}
Admin of this workspace
{:else if $userStore?.operator}
- Operator in this workspace
+ Operator in this workspace
{/if}
diff --git a/frontend/src/routes/workspace_settings.svelte b/frontend/src/routes/workspace_settings.svelte
index d13b1d6b49..1a3ad4a0eb 100644
--- a/frontend/src/routes/workspace_settings.svelte
+++ b/frontend/src/routes/workspace_settings.svelte
@@ -15,7 +15,7 @@
Script
} from '$lib/gen'
import type { User } from '$lib/gen'
- import { sendUserToast, msToSec } from '$lib/utils'
+ import { sendUserToast, isCloudHosted } from '$lib/utils'
import PageHeader from '$lib/components/PageHeader.svelte'
import { superadmin, userStore, usersWorkspaceStore, workspaceStore } from '$lib/stores'
import CenteredPage from '$lib/components/CenteredPage.svelte'
@@ -31,6 +31,8 @@
import Toggle from '$lib/components/Toggle.svelte'
import ToggleButtonGroup from '$lib/components/common/toggleButton/ToggleButtonGroup.svelte'
import ToggleButton from '$lib/components/common/toggleButton/ToggleButton.svelte'
+ import { onMount } from 'svelte'
+ import { Plane } from 'lucide-svelte'
let users: User[] | undefined = undefined
let invites: WorkspaceInvite[] = []
@@ -42,6 +44,7 @@
let auto_invite_domain: string | undefined
let itemKind: 'flow' | 'script' = 'flow'
let operatorOnly: boolean | undefined = undefined
+ let premium_info: { premium: boolean; usage: number } | undefined = undefined
// function getDropDownItems(username: string): DropdownItem[] {
// return [
@@ -99,6 +102,11 @@
allowedAutoDomain = await WorkspaceService.isDomainAllowed()
}
+ async function loadPremiumInfo() {
+ if (isCloudHosted()) {
+ premium_info = await WorkspaceService.getPremiumInfo({ workspace: $workspaceStore! })
+ }
+ }
$: domain = $userStore?.email.split('@')[1]
$: {
@@ -107,6 +115,7 @@
listUsers()
listInvites()
loadSettings()
+ loadPremiumInfo()
}
}
@@ -303,7 +312,29 @@
-
+
+ {#if isCloudHosted()}
+
+
+ {#if premium_info?.premium}This workspace is on a team plan. The number of executions is
+ tracked globally. Current number of executions in this workspace since it was switched to
+ the team Plan for this month: {premium_info.usage ?? 0}
+ {:else}
+ This workspace is NOT on a team plan. Users use their global free-tier quotas when
+ doing executions in this workspace. Upgrade to a Team plan to unlock unlimited execution in
+ this workspace.
+