From be3b59052f7c75eddd02fc2a359e519c430e7ccd Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Tue, 13 Dec 2022 23:09:33 +0100 Subject: [PATCH] team plan --- .../lib/components/sidebar/UserMenu.svelte | 12 +++++-- frontend/src/routes/workspace_settings.svelte | 35 +++++++++++++++++-- 2 files changed, 42 insertions(+), 5 deletions(-) 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. +
+ +
+ {/if} + {/if} + +
{#if auto_invite_domain != domain}