layout-react.pug 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //- This is used for pages that are migrated to Bootstrap 5 but don't use Bootstrap's own JS, instead using
  2. //- react-bootstrap for all Bootstrap components
  3. extends ./layout-base
  4. include ./_mixins/formMessages
  5. include ./_mixins/bootstrap_js
  6. block entrypointVar
  7. - entrypoint = 'marketing'
  8. block isApplicationPageVar
  9. - isApplicationPage = true
  10. block append meta
  11. if bootstrapVersion === 5
  12. - const canDisplayAdminMenu = hasAdminAccess()
  13. - const canDisplayAdminRedirect = canRedirectToAdminDomain()
  14. - const sessionUser = getSessionUser()
  15. - const staffAccess = sessionUser?.staffAccess
  16. - const canDisplaySplitTestMenu = hasFeature('saas') && (canDisplayAdminMenu || staffAccess?.splitTestMetrics || staffAccess?.splitTestManagement)
  17. - const canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu
  18. - const canDisplayScriptLogMenu = hasFeature('saas') && canDisplayAdminMenu
  19. - const enableUpgradeButton = projectDashboardReact && usersBestSubscription && (usersBestSubscription.type === 'free' || usersBestSubscription.type === 'standalone-ai-add-on')
  20. - const showSignUpLink = hasFeature('registration-page')
  21. meta(name="ol-navbar" data-type="json" content={
  22. customLogo: settings.nav.custom_logo,
  23. title: nav.title,
  24. canDisplayAdminMenu,
  25. canDisplayAdminRedirect,
  26. canDisplaySplitTestMenu,
  27. canDisplaySurveyMenu,
  28. canDisplayScriptLogMenu,
  29. enableUpgradeButton,
  30. suppressNavbarRight: !!suppressNavbarRight,
  31. suppressNavContentLinks: !!suppressNavContentLinks,
  32. showSubscriptionLink: nav.showSubscriptionLink,
  33. showSignUpLink: showSignUpLink,
  34. currentUrl: currentUrl,
  35. sessionUser: sessionUser ? { email: sessionUser.email} : undefined,
  36. adminUrl: settings.adminUrl,
  37. items: cloneAndTranslateText(nav.header_extras)
  38. })
  39. meta(name="ol-footer" data-type="json" content={
  40. showThinFooter: showThinFooter,
  41. showPoweredBy: !hasFeature('saas') && !settings.nav.hide_powered_by,
  42. subdomainLang: settings.i18n.subdomainLang,
  43. translatedLanguages: settings.translatedLanguages,
  44. leftItems: cloneAndTranslateText(settings.nav.left_footer),
  45. rightItems: settings.nav.right_footer
  46. })
  47. block body
  48. if (typeof suppressNavbar === "undefined")
  49. if bootstrapVersion === 5
  50. include layout/navbar-marketing-react-bootstrap-5
  51. else
  52. include layout/navbar-marketing
  53. block content
  54. if (typeof suppressFooter === "undefined")
  55. if showThinFooter
  56. if bootstrapVersion === 5
  57. include layout/thin-footer-bootstrap-5
  58. else
  59. include layout/thin-footer
  60. else
  61. if bootstrapVersion === 5
  62. include layout/fat-footer-react-bootstrap-5
  63. else
  64. include layout/fat-footer
  65. if (typeof suppressCookieBanner === "undefined")
  66. include _cookie_banner
  67. if bootstrapVersion === 3
  68. != moduleIncludes("contactModal-marketing", locals)
  69. block prepend foot-scripts
  70. //- Only include Bootstrap JS if using Bootstrap 3
  71. if bootstrapVersion === 3
  72. +bootstrap-js(3)