Merge pull request #24697 from overleaf/jdt-show-addons-via-wf

Display When Ai Assist Is Granted Via Writefull

GitOrigin-RevId: 91f6e1843e2e1d1f7b3a49d95f31603e838c5545
This commit is contained in:
Jimmy Domagala-Tang
2025-04-23 08:05:30 +00:00
committed by Copybot
parent d492512d9e
commit f95bf41824
10 changed files with 177 additions and 44 deletions
@@ -154,6 +154,9 @@ async function userSubscriptionPage(req, res) {
)
}
const hasAiAssistViaWritefull =
await FeaturesUpdater.promises.hasFeaturesViaWritefull(user._id)
const data = {
title: 'your_subscription',
plans: plansData?.plans,
@@ -176,6 +179,7 @@ async function userSubscriptionPage(req, res) {
groupSettingsEnabledFor,
isManagedAccount: !!req.managedBy,
userRestrictions: Array.from(req.userRestrictions || []),
hasAiAssistViaWritefull,
}
res.render('subscriptions/dashboard-react', data)
}
@@ -322,13 +326,13 @@ async function previewAddonPurchase(req, res) {
subscriptionChange =
await SubscriptionHandler.promises.previewAddonPurchase(userId, addOnCode)
const hasBundleViaWritefull =
const hasAiAssistViaWritefull =
await FeaturesUpdater.promises.hasFeaturesViaWritefull(userId)
const isAiUpgrade =
PaymentProviderEntities.subscriptionChangeIsAiAssistUpgrade(
subscriptionChange
)
if (hasBundleViaWritefull && isAiUpgrade) {
if (hasAiAssistViaWritefull && isAiUpgrade) {
return res.redirect(
'/user/subscription?redirect-reason=writefull-entitled'
)
@@ -1,33 +1,34 @@
extends ../layout-react
block entrypointVar
- entrypoint = 'pages/user/subscription/dashboard'
- entrypoint = 'pages/user/subscription/dashboard'
block head-scripts
script(type="text/javascript", nonce=scriptNonce, src="https://js.recurly.com/v4/recurly.js")
script(type="text/javascript", nonce=scriptNonce, src="https://js.recurly.com/v4/recurly.js")
block append meta
meta(name="ol-subscription" data-type="json" content=personalSubscription)
meta(name="ol-userCanExtendTrial" data-type="boolean" content=userCanExtendTrial)
meta(name="ol-managedGroupSubscriptions" data-type="json" content=managedGroupSubscriptions)
meta(name="ol-memberGroupSubscriptions" data-type="json" content=memberGroupSubscriptions)
meta(name="ol-managedInstitutions" data-type="json" content=managedInstitutions)
meta(name="ol-managedPublishers" data-type="json" content=managedPublishers)
meta(name="ol-planCodesChangingAtTermEnd" data-type="json", content=planCodesChangingAtTermEnd)
meta(name="ol-currentInstitutionsWithLicence" data-type="json" content=currentInstitutionsWithLicence)
meta(name="ol-hasSubscription" data-type="boolean" content=hasSubscription)
meta(name="ol-fromPlansPage" data-type="boolean" content=fromPlansPage)
meta(name="ol-plans", data-type="json" content=plans)
meta(name="ol-groupSettingsAdvertisedFor", data-type="json" content=groupSettingsAdvertisedFor)
meta(name="ol-canUseFlexibleLicensing", data-type="boolean", content=canUseFlexibleLicensing)
meta(name="ol-showGroupDiscount", data-type="boolean", content=showGroupDiscount)
meta(name="ol-groupSettingsEnabledFor", data-type="json" content=groupSettingsEnabledFor)
meta(name="ol-user" data-type="json" content=user)
if (personalSubscription && personalSubscription.payment)
meta(name="ol-recurlyApiKey" content=settings.apis.recurly.publicKey)
meta(name="ol-recommendedCurrency" content=personalSubscription.payment.currency)
meta(name="ol-groupPlans" data-type="json" content=groupPlans)
meta(name="ol-subscription" data-type="json" content=personalSubscription)
meta(name="ol-userCanExtendTrial" data-type="boolean" content=userCanExtendTrial)
meta(name="ol-managedGroupSubscriptions" data-type="json" content=managedGroupSubscriptions)
meta(name="ol-memberGroupSubscriptions" data-type="json" content=memberGroupSubscriptions)
meta(name="ol-managedInstitutions" data-type="json" content=managedInstitutions)
meta(name="ol-managedPublishers" data-type="json" content=managedPublishers)
meta(name="ol-planCodesChangingAtTermEnd" data-type="json", content=planCodesChangingAtTermEnd)
meta(name="ol-currentInstitutionsWithLicence" data-type="json" content=currentInstitutionsWithLicence)
meta(name="ol-hasSubscription" data-type="boolean" content=hasSubscription)
meta(name="ol-fromPlansPage" data-type="boolean" content=fromPlansPage)
meta(name="ol-plans" data-type="json" content=plans)
meta(name="ol-groupSettingsAdvertisedFor" data-type="json" content=groupSettingsAdvertisedFor)
meta(name="ol-canUseFlexibleLicensing" data-type="boolean", content=canUseFlexibleLicensing)
meta(name="ol-showGroupDiscount" data-type="boolean", content=showGroupDiscount)
meta(name="ol-groupSettingsEnabledFor" data-type="json" content=groupSettingsEnabledFor)
meta(name="ol-hasAiAssistViaWritefull" data-type="boolean", content=hasAiAssistViaWritefull)
meta(name="ol-user" data-type="json" content=user)
if (personalSubscription && personalSubscription.payment)
meta(name="ol-recurlyApiKey" content=settings.apis.recurly.publicKey)
meta(name="ol-recommendedCurrency" content=personalSubscription.payment.currency)
meta(name="ol-groupPlans" data-type="json" content=groupPlans)
block content
main.content.content-alt#main-content
#subscription-dashboard-root
main.content.content-alt#main-content
#subscription-dashboard-root