mirror of
https://github.com/fosrl/pangolin.git
synced 2026-09-23 10:55:54 +02:00
Show information about how to get more licenses and when you have them
This commit is contained in:
+5
-1
@@ -235,7 +235,7 @@
|
|||||||
"privateResourcesBannerTitle": "Zero-Trust Private Access",
|
"privateResourcesBannerTitle": "Zero-Trust Private Access",
|
||||||
"privateResourcesBannerDescription": "Private resources use zero-trust security, ensuring users and machines can only access resources you explicitly grant. Connect user devices or machine clients to access these resources over a secure virtual private network.",
|
"privateResourcesBannerDescription": "Private resources use zero-trust security, ensuring users and machines can only access resources you explicitly grant. Connect user devices or machine clients to access these resources over a secure virtual private network.",
|
||||||
"licenseBillingBannerTitle": "Manage License Billing",
|
"licenseBillingBannerTitle": "Manage License Billing",
|
||||||
"licenseBillingBannerDescription": "To manage billing for your license keys, including payment methods and invoices, visit the billing page.",
|
"licenseBillingBannerDescription": "To manage billing for your license keys, including payment methods and invoices, visit the billing page. You can generate additional licenses below to increase server capacity or deploy more instances.",
|
||||||
"licenseBillingBannerButton": "Go to Billing",
|
"licenseBillingBannerButton": "Go to Billing",
|
||||||
"resourcesSearch": "Search resources...",
|
"resourcesSearch": "Search resources...",
|
||||||
"resourceAdd": "Add Resource",
|
"resourceAdd": "Add Resource",
|
||||||
@@ -558,6 +558,10 @@
|
|||||||
"licenseBannerDescription": "Unlock enterprise features for your self-hosted Pangolin instance. Purchase a license key to activate premium capabilities, then add it below.",
|
"licenseBannerDescription": "Unlock enterprise features for your self-hosted Pangolin instance. Purchase a license key to activate premium capabilities, then add it below.",
|
||||||
"licenseBannerGetLicense": "Get a License",
|
"licenseBannerGetLicense": "Get a License",
|
||||||
"licenseBannerViewDocs": "View Documentation",
|
"licenseBannerViewDocs": "View Documentation",
|
||||||
|
"licenseUpgradeBannerTitle": "Need More Capacity?",
|
||||||
|
"licenseUpgradeBannerDescription": "If you need to increase your site or user capacity, you can buy more licenses from the app.pangolin.net portal and add them below to upgrade your instance.",
|
||||||
|
"licenseUpgradeBannerButton": "Buy More Licenses",
|
||||||
|
"licenseMultipleKeysDescription": "You have multiple licenses activated on this server. The highest tier is used.",
|
||||||
"communityEdition": "Community Edition",
|
"communityEdition": "Community Edition",
|
||||||
"licenseAboutDescription": "This is for business and enterprise users who are using Pangolin in a commercial environment. If you are using Pangolin for personal use, you can ignore this section.",
|
"licenseAboutDescription": "This is for business and enterprise users who are using Pangolin in a commercial environment. If you are using Pangolin for personal use, you can ignore this section.",
|
||||||
"licenseKeyActivated": "License key activated",
|
"licenseKeyActivated": "License key activated",
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ import {
|
|||||||
ExternalLink,
|
ExternalLink,
|
||||||
Heart,
|
Heart,
|
||||||
InfoIcon,
|
InfoIcon,
|
||||||
|
ShoppingCart,
|
||||||
TicketCheck
|
TicketCheck
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
@@ -64,6 +65,8 @@ import { useTranslations } from "next-intl";
|
|||||||
const ENTERPRISE_DOCS_URL =
|
const ENTERPRISE_DOCS_URL =
|
||||||
"https://docs.pangolin.net/self-host/enterprise-edition";
|
"https://docs.pangolin.net/self-host/enterprise-edition";
|
||||||
const ENTERPRISE_PRICING_URL = "https://pangolin.net/pricing#Self-Hosted";
|
const ENTERPRISE_PRICING_URL = "https://pangolin.net/pricing#Self-Hosted";
|
||||||
|
const LICENSE_PORTAL_URL =
|
||||||
|
"https://app.pangolin.net/auth/login?internal_redirect=/settings/license?generate";
|
||||||
|
|
||||||
function getTierLabel(
|
function getTierLabel(
|
||||||
tier: LicenseKeyTier | undefined,
|
tier: LicenseKeyTier | undefined,
|
||||||
@@ -392,6 +395,33 @@ export default function LicensePage() {
|
|||||||
</DismissableBanner>
|
</DismissableBanner>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{licenseStatus?.isLicenseValid && rows.length > 0 && (
|
||||||
|
<DismissableBanner
|
||||||
|
storageKey="license-upgrade-banner-dismissed"
|
||||||
|
version={1}
|
||||||
|
title={t("licenseUpgradeBannerTitle")}
|
||||||
|
titleIcon={
|
||||||
|
<ShoppingCart className="w-5 h-5 text-primary" />
|
||||||
|
}
|
||||||
|
description={t("licenseUpgradeBannerDescription")}
|
||||||
|
>
|
||||||
|
<Link
|
||||||
|
href={LICENSE_PORTAL_URL}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
|
<Button
|
||||||
|
variant="outline"
|
||||||
|
size="sm"
|
||||||
|
className="gap-2 hover:bg-primary/10 hover:border-primary/50 transition-colors"
|
||||||
|
>
|
||||||
|
{t("licenseUpgradeBannerButton")}
|
||||||
|
<ExternalLink className="w-4 h-4" />
|
||||||
|
</Button>
|
||||||
|
</Link>
|
||||||
|
</DismissableBanner>
|
||||||
|
)}
|
||||||
|
|
||||||
{/* <Alert variant="neutral" className="mb-6"> */}
|
{/* <Alert variant="neutral" className="mb-6"> */}
|
||||||
{/* <InfoIcon className="h-4 w-4" /> */}
|
{/* <InfoIcon className="h-4 w-4" /> */}
|
||||||
{/* <AlertTitle className="font-semibold"> */}
|
{/* <AlertTitle className="font-semibold"> */}
|
||||||
@@ -538,6 +568,11 @@ export default function LicensePage() {
|
|||||||
<div className="text-lg">
|
<div className="text-lg">
|
||||||
{getTierLabel(licenseStatus?.tier, t)}
|
{getTierLabel(licenseStatus?.tier, t)}
|
||||||
</div>
|
</div>
|
||||||
|
{rows.length > 1 && (
|
||||||
|
<div className="text-sm text-muted-foreground">
|
||||||
|
{t("licenseMultipleKeysDescription")}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
{licenseStatus?.hostId && (
|
{licenseStatus?.hostId && (
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user