mirror of
https://github.com/penpot/penpot.git
synced 2026-05-18 06:23:49 +00:00
✨ Adapt subscription page to selfhost (#9466)
This commit is contained in:
parent
d620c86053
commit
83183e15c6
@ -99,14 +99,14 @@ export class BasePage {
|
||||
}
|
||||
}
|
||||
|
||||
static async mockConfigFlags(page, flags) {
|
||||
static async mockConfigFlags(page, flags, extras = {}) {
|
||||
const url = "**/js/config.js*";
|
||||
const config = { penpotFlags: flags.join(" "), ...extras };
|
||||
const body = Object.entries(config)
|
||||
.map(([key, value]) => `var ${key} = ${JSON.stringify(value)};`)
|
||||
.join("\n");
|
||||
return await page.route(url, (route) =>
|
||||
route.fulfill({
|
||||
status: 200,
|
||||
contentType: "application/javascript",
|
||||
body: `var penpotFlags = "${flags.join(" ")}";`,
|
||||
}),
|
||||
route.fulfill({ status: 200, contentType: "application/javascript", body }),
|
||||
);
|
||||
}
|
||||
|
||||
@ -128,8 +128,8 @@ export class BasePage {
|
||||
return BasePage.mockRPC(this.page, path, jsonFilename, options);
|
||||
}
|
||||
|
||||
async mockConfigFlags(flags) {
|
||||
return BasePage.mockConfigFlags(this.page, flags);
|
||||
async mockConfigFlags(flags, extras = {}) {
|
||||
return BasePage.mockConfigFlags(this.page, flags, extras);
|
||||
}
|
||||
|
||||
async mockFileMediaAsset(
|
||||
|
||||
@ -4,10 +4,11 @@ import SubscriptionProfilePage from "../pages/SubscriptionProfilePage";
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await SubscriptionProfilePage.init(page);
|
||||
|
||||
await SubscriptionProfilePage.mockConfigFlags(page, [
|
||||
"enable-subscriptions",
|
||||
"disable-onboarding",
|
||||
]);
|
||||
await SubscriptionProfilePage.mockConfigFlags(
|
||||
page,
|
||||
["enable-subscriptions", "disable-onboarding"],
|
||||
{ penpotIsSaas: true },
|
||||
);
|
||||
});
|
||||
|
||||
test.describe("Subscriptions: profile", () => {
|
||||
|
||||
@ -156,6 +156,7 @@
|
||||
(ts/asap #(.reload ^js location true))
|
||||
true))))
|
||||
|
||||
(def saas? (obj/get global "penpotIsSaas" false))
|
||||
(def terms-of-service-uri (obj/get global "penpotTermsOfServiceURI"))
|
||||
(def oidc-name (obj/get global "penpotOIDCName"))
|
||||
(def privacy-policy-uri (obj/get global "penpotPrivacyPolicyURI"))
|
||||
|
||||
@ -588,9 +588,15 @@
|
||||
(case subscription-type
|
||||
"professional"
|
||||
[:> plan-card* {:card-title (tr "subscription.settings.professional")
|
||||
:benefits [(tr "subscription.settings.professional.storage-benefit"),
|
||||
(tr "subscription.settings.professional.autosave-benefit"),
|
||||
(tr "subscription.settings.professional.teams-editors-benefit")]}]
|
||||
:benefits [(if cf/saas?
|
||||
(tr "subscription.settings.professional.storage-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.control-over-data")),
|
||||
(if cf/saas?
|
||||
(tr "subscription.settings.professional.autosave-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.unlimited-users")),
|
||||
(if cf/saas?
|
||||
(tr "subscription.settings.professional.teams-editors-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.community-support"))]}]
|
||||
|
||||
"unlimited"
|
||||
(if subscription-is-trial?
|
||||
@ -660,19 +666,25 @@
|
||||
[:> plan-card* {:card-title (tr "subscription.settings.professional")
|
||||
:price-value "$0"
|
||||
:price-period (tr "subscription.settings.price-editor-month")
|
||||
:benefits [(tr "subscription.settings.professional.storage-benefit"),
|
||||
(tr "subscription.settings.professional.autosave-benefit"),
|
||||
(tr "subscription.settings.professional.teams-editors-benefit")]
|
||||
:benefits [(if cf/saas?
|
||||
(tr "subscription.settings.professional.storage-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.control-over-data")),
|
||||
(if cf/saas?
|
||||
(tr "subscription.settings.professional.autosave-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.unlimited-users")),
|
||||
(if cf/saas?
|
||||
(tr "subscription.settings.professional.teams-editors-benefit")
|
||||
(tr "subscription.settings.professional.selfhost.community-support"))]
|
||||
:cta-text (tr "subscription.settings.subscribe")
|
||||
:cta-link (if (and (contains? cf/flags :nitrate) nitrate? (= subscription-type "nitrate"))
|
||||
(if (:licenses connectivity)
|
||||
(if (and (:licenses connectivity) (not (:manual nitrate-license)))
|
||||
dnt/go-to-nitrate-billing
|
||||
open-cancel-contact-sales-modal)
|
||||
go-to-payments)
|
||||
:cta-text-with-icon (tr "subscription.settings.more-information")
|
||||
:cta-link-with-icon go-to-pricing-page}])
|
||||
|
||||
(when (not= subscription-type "unlimited")
|
||||
(when (and (not= subscription-type "unlimited") cf/saas?)
|
||||
[:> plan-card* {:card-title (tr "subscription.settings.unlimited")
|
||||
:card-title-icon i/character-u
|
||||
:price-value "$7"
|
||||
@ -688,7 +700,7 @@
|
||||
:recommended (= subscription-type "professional")
|
||||
:show-button-cta (= subscription-type "professional")}])
|
||||
|
||||
(when (and (not= subscription-type "enterprise") (not (contains? cf/flags :nitrate)))
|
||||
(when (and (not= subscription-type "enterprise") cf/saas? (not (contains? cf/flags :nitrate)))
|
||||
[:> plan-card* {:card-title (tr "subscription.settings.enterprise")
|
||||
:card-title-icon i/character-e
|
||||
:price-value "$950"
|
||||
|
||||
@ -5346,6 +5346,15 @@ msgstr "10GB of storage"
|
||||
msgid "subscription.settings.professional.teams-editors-benefit"
|
||||
msgstr "Unlimited teams. Up to 8 editors across your owned teams."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.control-over-data"
|
||||
msgstr "Complete control over data and infrastructure."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.unlimited-users"
|
||||
msgstr "Unlimited users, teams and files."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.community-support"
|
||||
msgstr "All design and prototyping features Community support."
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:50
|
||||
msgid "subscription.settings.recommended"
|
||||
msgstr "Recommended"
|
||||
|
||||
@ -5255,6 +5255,15 @@ msgstr "10 GB de almacenamiento"
|
||||
msgid "subscription.settings.professional.teams-editors-benefit"
|
||||
msgstr "Equipos ilimitados. Hasta 8 editores en todos tus equipos."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.control-over-data"
|
||||
msgstr "Control total sobre los datos y la infraestructura."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.unlimited-users"
|
||||
msgstr "Número ilimitado de usuarios, equipos y archivos."
|
||||
|
||||
msgid "subscription.settings.professional.selfhost.community-support"
|
||||
msgstr "Todas las funciones de diseño y creación de prototipos. Asistencia de la comunidad."
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:50
|
||||
msgid "subscription.settings.recommended"
|
||||
msgstr "Recomendado"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user