Merge pull request #10891 from overleaf/jel-features-page-test

[web] Setup split test for new features page

GitOrigin-RevId: c301089f2a251fef6cdc4434ac3c8356bb17545d
This commit is contained in:
Jessica Lawshe 2022-12-19 09:36:21 -06:00 committed by Copybot
parent eecea7dcb0
commit d7233870b9
8 changed files with 52 additions and 25 deletions

View file

@ -80,7 +80,10 @@ function initialize(webRouter, privateApiRouter, publicApiRouter) {
webRouter.get(
'*',
expressify(
SplitTestMiddleware.loadAssignmentsInLocals(['design-system-updates'])
SplitTestMiddleware.loadAssignmentsInLocals([
'design-system-updates',
'features-page',
])
)
)

View file

@ -1,3 +1,5 @@
- var featuresPageVariant = splitTestVariants && splitTestVariants['features-page']
footer.fat-footer.hidden-print
.fat-footer-container
.fat-footer-sections(class=hideFatFooter ? 'hidden' : undefined)
@ -41,7 +43,10 @@ footer.fat-footer.hidden-print
ul.list-unstyled
li
if !featuresPageVariant || featuresPageVariant === 'default'
a(href="/learn/how-to/Overleaf_premium_features") #{translate('premium_features')}
else
a(href="/about/features-overview") #{translate('features')}
li
a(href="/user/subscription/plans?itm_referrer=footer-for-indv-groups") !{translate('for_individuals_and_groups')}
li

View file

@ -29,6 +29,7 @@ nav.navbar.navbar-default.navbar-main
- var canDisplayAdminRedirect = canRedirectToAdminDomain()
- var canDisplaySplitTestMenu = hasFeature('saas') && (canDisplayAdminMenu || (getSessionUser() && getSessionUser().staffAccess && (getSessionUser().staffAccess.splitTestMetrics || getSessionUser().staffAccess.splitTestManagement)))
- var canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu
- var featuresPageVariant = splitTestVariants && splitTestVariants['features-page']
if (typeof(suppressNavbarRight) == "undefined")
.navbar-collapse.collapse(data-ol-navbar-main-collapse)
@ -94,12 +95,14 @@ nav.navbar.navbar-default.navbar-main
else
li
if child.url
if !child.splitTest || child.splitTest && child.splitTest === 'features-page' && child.splitTestVariant === featuresPageVariant
a(
href=child.url,
class=child.class,
event-tracking=child.event
event-tracking-mb="true"
event-tracking-trigger="click"
event-segmentation=child.eventSegmentation
) !{translate(child.text)}
else
| !{translate(child.text)}

View file

@ -15,6 +15,7 @@ nav.navbar.navbar-default.navbar-main
- var canDisplayAdminRedirect = canRedirectToAdminDomain()
- var canDisplaySplitTestMenu = hasFeature('saas') && (canDisplayAdminMenu || (getSessionUser() && getSessionUser().staffAccess && (getSessionUser().staffAccess.splitTestMetrics || getSessionUser().staffAccess.splitTestManagement)))
- var canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu
- var featuresPageVariant = splitTestVariants && splitTestVariants['features-page']
if (typeof(suppressNavbarRight) == "undefined")
.navbar-collapse.collapse(collapse="navCollapsed")
@ -70,12 +71,14 @@ nav.navbar.navbar-default.navbar-main
else
li
if child.url
if !child.splitTest || child.splitTest && child.splitTest === 'features-page' && child.splitTestVariant === featuresPageVariant
a(
href=child.url,
class=child.class,
event-tracking=child.event
event-tracking-mb="true"
event-tracking-trigger="click"
event-segmentation=child.eventSegmentation
) !{translate(child.text)}
else
| !{translate(child.text)}

View file

@ -1,3 +1,6 @@
- var featuresPageVariantNew = splitTestVariants && splitTestVariants['features-page'] && splitTestVariants['features-page'] === 'new'
- var featuresLink = featuresPageVariantNew ? "/about/features-overview" : "/learn/how-to/Overleaf_premium_features"
mixin current_plan()
if (usersBestSubscription)
.text-right.pull-right.current-plan
@ -21,7 +24,7 @@ mixin individual_plan_trial(subscription, plan, remainingTrialDays)
a.current-plan-label(
tooltip=translate('plan_tooltip', { plan: plan.name }),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
if (remainingTrialDays === 1)
| !{translate('trial_last_day')}
@ -34,7 +37,7 @@ mixin individual_plan_active(subscription, plan)
a.current-plan-label(
tooltip=translate('plan_tooltip', {plan: plan.name}),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
| !{translate('premium_plan_label')}
span.info-badge
@ -43,7 +46,7 @@ mixin group_plan_trial(subscription, plan, remainingTrialDays)
a.current-plan-label(
tooltip=translate(subscription.teamName != null ? 'group_plan_with_name_tooltip' : 'group_plan_tooltip', { plan: plan.name, groupName: subscription.teamName }),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
if (remainingTrialDays === 1)
| !{translate('trial_last_day')}
@ -56,7 +59,7 @@ mixin group_plan_active(subscription, plan)
a.current-plan-label(
tooltip=translate(subscription.teamName != null ? 'group_plan_with_name_tooltip' : 'group_plan_tooltip', { plan: plan.name, groupName: subscription.teamName }),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
| !{translate('premium_plan_label')}
span.info-badge
@ -65,7 +68,7 @@ mixin commons_plan(subscription, plan)
a.current-plan-label(
tooltip=translate('commons_plan_tooltip', { plan: plan.name, institution: subscription.name }),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
| !{translate('premium_plan_label')}
span.info-badge
@ -74,7 +77,7 @@ mixin free_plan()
a.current-plan-label(
tooltip=translate('free_plan_tooltip'),
tooltip-placement="bottom"
href="/learn/how-to/Overleaf_premium_features"
href=featuresLink
)
| !{translate('free_plan_label')}
span.info-badge

View file

@ -1 +1,6 @@
- var featuresPageVariantNew = splitTestVariants && splitTestVariants['features-page'] && splitTestVariants['features-page'] === 'new'
if featuresPageVariantNew
p !{translate("get_most_subscription_by_checking_features", {}, [{name: 'a', attrs: {href: '/about/features-overview'}}])}
else
p !{translate("get_most_subscription_by_checking_premium_features", {}, [{name: 'a', attrs: {href: '/learn/how-to/Overleaf_premium_features'}}])}

View file

@ -1,6 +1,10 @@
extends ../layout
block content
- var featuresPageVariantNew = splitTestVariants && splitTestVariants['features-page'] && splitTestVariants['features-page'] === 'new'
- var featuresLink = featuresPageVariantNew ? "/about/features-overview" : "/learn/how-to/Overleaf_premium_features"
- var featuresTranslationKey = featuresPageVariantNew ? 'get_most_subscription_by_checking_features' : 'get_most_subscription_by_checking_premium_features'
main.content.content-alt#main-content
.container
.row
@ -20,7 +24,7 @@ block content
a.btn.btn-primary.btn-large(href=`/manage/groups/${personalSubscription._id}/members`) #{translate("add_your_first_group_member_now")}
p.letter-from-founders
p #{translate("thanks_for_subscribing_you_help_sl", {planName:personalSubscription.plan.name})}
p !{translate("get_most_subscription_by_checking_premium_features", {}, [{name: 'a', attrs: {href: 'https://www.overleaf.com/learn/how-to/Overleaf_premium_features'}}])}
p !{translate(featuresTranslationKey, {}, [{name: 'a', attrs: {href: featuresLink}}])}
p #{translate("need_anything_contact_us_at")}
a(href=`mailto:${settings.adminEmail}`, ng-non-bindable) #{settings.adminEmail}
| .

View file

@ -1944,5 +1944,6 @@
"contact_sales": "Contact Sales",
"empower_your_organization_to_work_in_overleaf": "Empower your organization to work in __appName__! Get a group or organizational plan.",
"save_money_groups_companies_research_organizations_can_save_money": "<0>Save Money</0>! Groups, Companies and Research Organizations can save money with our Group and Enterprise plans — request information or a quote.",
"did_you_know_that_overleaf_offers": "Did you know that __appName__ offers group and organization-wide subscription options? Request information or a quote."
"did_you_know_that_overleaf_offers": "Did you know that __appName__ offers group and organization-wide subscription options? Request information or a quote.",
"get_most_subscription_by_checking_features": "Get the most out of your __appName__ subscription by checking out <0>__appName__s features</0>."
}