PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.0.3
Jetpack – WP Security, Backup, Speed, & Growth v12.0.3
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / masterbar / admin-menu / admin-menu.js
jetpack / modules / masterbar / admin-menu Last commit date
admin-menu-rtl.css 3 years ago admin-menu-rtl.min.css 3 years ago admin-menu.css 3 years ago admin-menu.js 3 years ago admin-menu.min.css 3 years ago class-admin-menu.php 3 years ago class-atomic-admin-menu.php 3 years ago class-base-admin-menu.php 3 years ago class-dashboard-switcher-tracking.php 3 years ago class-domain-only-admin-menu.php 3 years ago class-jetpack-admin-menu.php 3 years ago class-p2-admin-menu.php 4 years ago class-wpcom-admin-menu.php 3 years ago class-wpcom-email-subscription-checker.php 3 years ago dashicon-set.php 4 years ago globe-icon.svg 3 years ago load.php 3 years ago menu-mappings.php 3 years ago
admin-menu.js
155 lines
1 /* global ajaxurl, jetpackAdminMenu */
2
3 ( function () {
4 function init() {
5 var adminbar = document.querySelector( '#wpadminbar' );
6 var wpwrap = document.querySelector( '#wpwrap' );
7 var adminMenu = document.querySelector( '#adminmenu' );
8 var dismissClass = 'dismissible-card__close-icon';
9
10 if ( ! adminbar ) {
11 return;
12 }
13
14 function setAriaExpanded( value ) {
15 var anchors = adminbar.querySelectorAll( '#wp-admin-bar-blog a' );
16 for ( var i = 0; i < anchors.length; i++ ) {
17 anchors[ i ].setAttribute( 'aria-expanded', value );
18 }
19 }
20
21 setFocusOnActiveMenuItem();
22 setAriaExpanded( 'false' );
23
24 var adminbarBlog = adminbar.querySelector( '#wp-admin-bar-blog' );
25 // Toggle sidebar when toggle is clicked.
26 if ( adminbarBlog ) {
27 adminbarBlog.addEventListener( 'click', function ( event ) {
28 event.preventDefault();
29
30 // Close any open toolbar submenus.
31 var hovers = adminbar.querySelectorAll( '.hover' );
32 for ( var i = 0; i < hovers.length; i++ ) {
33 hovers[ i ].classList.remove( 'hover' );
34 }
35
36 wpwrap.classList.toggle( 'wp-responsive-open' );
37 if ( wpwrap.classList.contains( 'wp-responsive-open' ) ) {
38 setAriaExpanded( 'true' );
39 var first = document.querySelector( '#adminmenu a' );
40 if ( first ) {
41 first.focus();
42 }
43 } else {
44 setAriaExpanded( 'false' );
45 }
46 } );
47 }
48
49 if ( adminMenu ) {
50 var collapseButton = adminMenu.querySelector( '#collapse-button' );
51 // Nav-Unification feature:
52 // Saves the sidebar state in server when "Collapse menu" is clicked.
53 // This is needed so that we update WPCOM for this preference in real-time.
54 if ( collapseButton ) {
55 collapseButton.addEventListener( 'click', function ( event ) {
56 // Let's the core event listener be triggered first.
57 setTimeout( function () {
58 saveSidebarIsExpanded( event.target.parentNode.ariaExpanded );
59 }, 50 );
60 } );
61 }
62
63 adminMenu.addEventListener( 'click', function ( event ) {
64 if (
65 event.target.classList.contains( dismissClass ) ||
66 event.target.closest( '.' + dismissClass )
67 ) {
68 event.preventDefault();
69
70 const siteNotice = document.getElementById( 'toplevel_page_site-notices' );
71 if ( siteNotice ) {
72 siteNotice.style.display = 'none';
73 }
74
75 const jitmDismissButton = event.target;
76
77 makeAjaxRequest(
78 'POST',
79 ajaxurl,
80 'application/x-www-form-urlencoded; charset=UTF-8',
81 'id=' +
82 encodeURIComponent( jitmDismissButton.dataset.feature_id ) +
83 '&feature_class=' +
84 encodeURIComponent( jitmDismissButton.dataset.feature_class ) +
85 '&action=jitm_dismiss' +
86 '&_ajax_nonce=' +
87 jetpackAdminMenu.jitmDismissNonce
88 );
89 }
90 } );
91
92 makeAjaxRequest(
93 'GET',
94 ajaxurl + '?action=upsell_nudge_jitm&_ajax_nonce=' + jetpackAdminMenu.upsellNudgeJitm,
95 undefined,
96 null,
97 function ( xhr ) {
98 try {
99 if ( xhr.readyState === XMLHttpRequest.DONE ) {
100 if ( xhr.status === 200 && xhr.responseText ) {
101 adminMenu
102 .querySelector( '#toplevel_page_site_card' )
103 .insertAdjacentHTML( 'afterend', xhr.responseText );
104 }
105 }
106 } catch ( error ) {
107 // On failure, we just won't display an upsell nudge
108 }
109 }
110 );
111 }
112 }
113
114 function makeAjaxRequest( method, url, contentType, body = null, callback = null ) {
115 var xhr = new XMLHttpRequest();
116 xhr.open( method, url, true );
117 xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
118 if ( contentType ) {
119 xhr.setRequestHeader( 'Content-Type', contentType );
120 }
121 xhr.withCredentials = true;
122 if ( callback ) {
123 xhr.onreadystatechange = function () {
124 callback( xhr );
125 };
126 }
127 xhr.send( body );
128 }
129
130 function saveSidebarIsExpanded( expanded ) {
131 makeAjaxRequest(
132 'POST',
133 ajaxurl,
134 'application/x-www-form-urlencoded; charset=UTF-8',
135 'action=sidebar_state&expanded=' + expanded
136 );
137 }
138
139 function setFocusOnActiveMenuItem() {
140 var currentMenuItem = document.querySelector( '.wp-submenu .current > a' );
141
142 if ( ! currentMenuItem ) {
143 return;
144 }
145
146 currentMenuItem.focus( { preventScroll: true } );
147 }
148
149 if ( document.readyState === 'loading' ) {
150 document.addEventListener( 'DOMContentLoaded', init );
151 } else {
152 init();
153 }
154 } )();
155