From cb3c0180b1e37f8fe4dfac0b0786cdb57f37396a Mon Sep 17 00:00:00 2001 From: Candy Tsai Date: Tue, 23 Jan 2024 19:49:01 +0800 Subject: [PATCH 1/3] Move Jetpack menu position for atomic wp-admin --- .../update-atomic-jetpack-menu-position | 4 +++ .../admin-menu/class-atomic-admin-menu.php | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 projects/plugins/jetpack/changelog/update-atomic-jetpack-menu-position diff --git a/projects/plugins/jetpack/changelog/update-atomic-jetpack-menu-position b/projects/plugins/jetpack/changelog/update-atomic-jetpack-menu-position new file mode 100644 index 0000000000000..6cb90ee7103f4 --- /dev/null +++ b/projects/plugins/jetpack/changelog/update-atomic-jetpack-menu-position @@ -0,0 +1,4 @@ +Significance: minor +Type: other + +Move Jetpack to the same menu position as standalone Jetpack site. diff --git a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php index 1397de0200172..33f207c9c3786 100644 --- a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php +++ b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php @@ -7,8 +7,10 @@ namespace Automattic\Jetpack\Dashboard_Customizations; +use Automattic\Jetpack\Assets\Logo; use Automattic\Jetpack\Connection\Client; use Automattic\Jetpack\Current_Plan as Jetpack_Plan; +use Automattic\Jetpack\Redirect; use Automattic\Jetpack\Status; require_once __DIR__ . '/class-admin-menu.php'; @@ -328,6 +330,35 @@ public function get_upsell_nudge() { } } + /** + * Adds Jetpack menu. + */ + public function add_jetpack_menu() { + if ( get_option( 'wpcom_admin_interface' ) === 'wp-admin' ) { + $icon = ( new Logo() )->get_base64_logo(); + $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, 2 ); + if ( ! $is_menu_updated ) { + add_menu_page( esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'jetpack', null, $icon, 2 ); + } + + add_submenu_page( 'jetpack', esc_attr__( 'Activity Log', 'jetpack' ), __( 'Activity Log', 'jetpack' ), 'manage_options', 'https://wordpress.com/activity-log/' . $this->domain, null, 2 ); + add_submenu_page( 'jetpack', esc_attr__( 'Backup', 'jetpack' ), __( 'Backup', 'jetpack' ), 'manage_options', 'https://wordpress.com/backup/' . $this->domain, null, 3 ); + + if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'jetpack' ) ) { + $this->hide_submenu_page( 'jetpack', 'jetpack#/settings' ); + $this->hide_submenu_page( 'jetpack', 'stats' ); + $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-backups' ) ) ); + $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-scanner' ) ) ); + } + if ( ! $is_menu_updated ) { + // Remove the submenu auto-created by Core just to be sure that there no issues on non-admin roles. + remove_submenu_page( 'jetpack', 'jetpack' ); + } + } else { + parent::add_jetpack_menu(); + } + } + /** * Adds Stats menu. */ From cfb513c102aadc785725711c9d2e7dbc34aa081a Mon Sep 17 00:00:00 2001 From: Candy Tsai Date: Tue, 23 Jan 2024 19:59:11 +0800 Subject: [PATCH 2/3] Add comments --- .../modules/masterbar/admin-menu/class-atomic-admin-menu.php | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php index 33f207c9c3786..78c86e8779005 100644 --- a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php +++ b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php @@ -334,6 +334,7 @@ public function get_upsell_nudge() { * Adds Jetpack menu. */ public function add_jetpack_menu() { + // This is supposed to be the same as class-admin-menu but with a different position specified for the Jetpack menu. if ( get_option( 'wpcom_admin_interface' ) === 'wp-admin' ) { $icon = ( new Logo() )->get_base64_logo(); $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, 2 ); From a85317d8a16e457ce9769c6477cf41e179d564be Mon Sep 17 00:00:00 2001 From: Candy Tsai Date: Fri, 26 Jan 2024 16:27:56 +0800 Subject: [PATCH 3/3] Move redundant code to create_jetpack_menu --- .../masterbar/admin-menu/class-admin-menu.php | 23 ++++++++++++++---- .../admin-menu/class-atomic-admin-menu.php | 24 ++----------------- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php index a911333ee9d1d..606a58ab5af30 100644 --- a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php +++ b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php @@ -387,15 +387,21 @@ public function add_options_menu() { } /** - * Adds Jetpack menu. + * Create Jetpack menu. + * + * @param int $position Menu position. + * @param bool $separator Whether to add a separator before the menu. */ - public function add_jetpack_menu() { - $this->add_admin_menu_separator( 50, 'manage_options' ); + public function create_jetpack_menu( $position = 50, $separator = true ) { + if ( $separator ) { + $this->add_admin_menu_separator( $position, 'manage_options' ); + ++$position; + } $icon = ( new Logo() )->get_base64_logo(); - $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, 51 ); + $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, $position ); if ( ! $is_menu_updated ) { - add_menu_page( esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'jetpack', null, $icon, 51 ); + add_menu_page( esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'jetpack', null, $icon, $position ); } add_submenu_page( 'jetpack', esc_attr__( 'Activity Log', 'jetpack' ), __( 'Activity Log', 'jetpack' ), 'manage_options', 'https://wordpress.com/activity-log/' . $this->domain, null, 2 ); @@ -414,6 +420,13 @@ public function add_jetpack_menu() { } } + /** + * Adds Jetpack menu. + */ + public function add_jetpack_menu() { + $this->create_jetpack_menu(); + } + /** * Add the calypso /woocommerce-installation/ menu item. * diff --git a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php index 75fc28ddc41e9..218eba1c2f789 100644 --- a/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php +++ b/projects/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php @@ -7,10 +7,8 @@ namespace Automattic\Jetpack\Dashboard_Customizations; -use Automattic\Jetpack\Assets\Logo; use Automattic\Jetpack\Connection\Client; use Automattic\Jetpack\Current_Plan as Jetpack_Plan; -use Automattic\Jetpack\Redirect; use Automattic\Jetpack\Status; require_once __DIR__ . '/class-admin-menu.php'; @@ -335,26 +333,8 @@ public function get_upsell_nudge() { */ public function add_jetpack_menu() { // This is supposed to be the same as class-admin-menu but with a different position specified for the Jetpack menu. - if ( get_option( 'wpcom_admin_interface' ) === 'wp-admin' ) { - $icon = ( new Logo() )->get_base64_logo(); - $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, 2 ); - if ( ! $is_menu_updated ) { - add_menu_page( esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'jetpack', null, $icon, 2 ); - } - - add_submenu_page( 'jetpack', esc_attr__( 'Activity Log', 'jetpack' ), __( 'Activity Log', 'jetpack' ), 'manage_options', 'https://wordpress.com/activity-log/' . $this->domain, null, 2 ); - add_submenu_page( 'jetpack', esc_attr__( 'Backup', 'jetpack' ), __( 'Backup', 'jetpack' ), 'manage_options', 'https://wordpress.com/backup/' . $this->domain, null, 3 ); - - if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'jetpack' ) ) { - $this->hide_submenu_page( 'jetpack', 'jetpack#/settings' ); - $this->hide_submenu_page( 'jetpack', 'stats' ); - $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-backups' ) ) ); - $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-scanner' ) ) ); - } - if ( ! $is_menu_updated ) { - // Remove the submenu auto-created by Core just to be sure that there no issues on non-admin roles. - remove_submenu_page( 'jetpack', 'jetpack' ); - } + if ( 'wp-admin' === get_option( 'wpcom_admin_interface' ) ) { + parent::create_jetpack_menu( 2, false ); } else { parent::add_jetpack_menu(); }