diff --git a/client/my-sites/upgrades/index.js b/client/my-sites/upgrades/index.js index 582d73b86513d..e853cebdb6dad 100644 --- a/client/my-sites/upgrades/index.js +++ b/client/my-sites/upgrades/index.js @@ -14,95 +14,62 @@ const controller = require( 'my-sites/controller' ), paths = require( './paths' ), adTracking = require( 'analytics/ad-tracking' ); -module.exports = function() { - SiftScience.recordUser(); +function registerMultiPage( { paths, handlers } ) { + paths.forEach( path => page( path, ...handlers ) ); +} - if ( config.isEnabled( 'upgrades/domain-management/list' ) ) { - page( - paths.domainManagementRoot(), - controller.siteSelection, - controller.sites - ); +function getCommonHandlers( { noSitePath = paths.domainManagementRoot(), warnIfJetpack = true } = {} ) { + const handlers = [ + controller.siteSelection, + controller.navigation + ]; - page( - paths.domainManagementList( ':site' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementList - ); + if ( noSitePath ) { + handlers.push( upgradesController.redirectIfNoSite( noSitePath ) ); + } - page( - paths.domainManagementEdit( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementEdit - ); + if ( warnIfJetpack ) { + handlers.push( controller.jetPackWarning ); + } - page( - paths.domainManagementPrivacyProtection( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - domainManagementController.domainManagementPrivacyProtection - ); + return handlers; +} - page( - paths.domainManagementPrimaryDomain( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementPrimaryDomain - ); - } +module.exports = function() { + SiftScience.recordUser(); if ( config.isEnabled( 'upgrades/domain-management/email' ) ) { page( - paths.domainManagementEmail( ':site', ':domain' ), + paths.domainManagementEmail(), controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementEmail + controller.sites ); - page( - paths.domainManagementEmail( ':site' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementEmail - ); + registerMultiPage( { + paths: [ + paths.domainManagementEmail( ':site', ':domain' ), + paths.domainManagementEmail( ':site' ) + ], + handlers: [ + ...getCommonHandlers( { noSitePath: paths.domainManagementEmail() } ), + domainManagementController.domainManagementEmail + ] + } ); - page( - paths.domainManagementAddGoogleApps( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementAddGoogleApps - ); - - page( - paths.domainManagementAddGoogleApps( ':site' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, - domainManagementController.domainManagementAddGoogleApps - ); + registerMultiPage( { + paths: [ + paths.domainManagementAddGoogleApps( ':site', ':domain' ), + paths.domainManagementAddGoogleApps( ':site' ) + ], + handlers: [ + ...getCommonHandlers(), + domainManagementController.domainManagementAddGoogleApps + ] + } ); page( paths.domainManagementEmailForwarding( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementEmailForwarding ); } @@ -110,10 +77,7 @@ module.exports = function() { if ( config.isEnabled( 'upgrades/domain-management/site-redirect' ) ) { page( paths.domainManagementRedirectSettings( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementRedirectSettings ); } @@ -121,19 +85,13 @@ module.exports = function() { if ( config.isEnabled( 'upgrades/domain-management/contacts-privacy' ) ) { page( paths.domainManagementContactsPrivacy( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementContactsPrivacy ); page( paths.domainManagementEditContactInfo( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementEditContactInfo ); } @@ -141,32 +99,55 @@ module.exports = function() { if ( config.isEnabled( 'upgrades/domain-management/name-servers' ) ) { page( paths.domainManagementDns( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementDns ); page( paths.domainManagementNameServers( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementNameServers ); } page( paths.domainManagementTransfer( ':site', ':domain' ), - controller.siteSelection, - controller.navigation, - upgradesController.redirectIfNoSite( paths.domainManagementRoot() ), - controller.jetPackWarning, + ...getCommonHandlers(), domainManagementController.domainManagementTransfer ); + if ( config.isEnabled( 'upgrades/domain-management/list' ) ) { + page( + paths.domainManagementRoot(), + controller.siteSelection, + controller.sites + ); + + page( + paths.domainManagementList( ':site' ), + ...getCommonHandlers(), + domainManagementController.domainManagementList + ); + + page( + paths.domainManagementEdit( ':site', ':domain' ), + ...getCommonHandlers(), + domainManagementController.domainManagementEdit + ); + + page( + paths.domainManagementPrivacyProtection( ':site', ':domain' ), + ...getCommonHandlers( { warnIfJetpack: false } ), + domainManagementController.domainManagementPrivacyProtection + ); + + page( + paths.domainManagementPrimaryDomain( ':site', ':domain' ), + ...getCommonHandlers(), + domainManagementController.domainManagementPrimaryDomain + ); + } + if ( config.isEnabled( 'upgrades/domain-search' ) ) { page( '/domains/add',