PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.3
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 506 releases
jetpack / _inc / jetpack-deactivate-dialog.js

jetpack-deactivate-dialog.js in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.3, at _inc/jetpack-deactivate-dialog.js

100 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* globals analytics, deactivate_dialog, tb_remove */
2 /**
3 * Adds the Deactivation modal.
4 *
5 * Depends on _inc/lib/tracks/tracks-callables.js and //stats.wp.com/w.js
6 *
7 */
8 ( function ( $ ) {
9 // Initialize Tracks and bump stats.
10 var tracksUser = deactivate_dialog.tracksUserData;
11
12 analytics.initialize( tracksUser.userid, tracksUser.username );
13
14 var deactivateLinkElem = $(
15 'tr[data-slug=jetpack] > td.plugin-title > div > span.deactivate > a'
16 );
17
18 var deactivateJetpackURL = deactivateLinkElem.attr( 'href' );
19
20 window.deactivateJetpack = function () {
21 window.location.href = deactivateJetpackURL;
22 };
23
24 var observer = new MutationObserver( function ( mutations ) {
25 mutations.forEach( function ( mutation ) {
26 if ( mutation.type === 'childList' ) {
27 mutation.addedNodes.forEach( function ( addedNode ) {
28 if ( 'TB_window' === addedNode.id ) {
29 // NodeList is static, we need to modify this in the DOM
30
31 $( '#TB_window' ).addClass( 'jetpack-disconnect-modal' );
32 window.deactivationModalCentralize();
33
34 $( '#TB_closeWindowButton, #TB_overlay' ).on( 'click', function () {
35 window.deactivationModalTrackCloseEvent();
36 } );
37
38 document.onkeyup = function ( e ) {
39 var keycode;
40 if ( e === null ) {
41 // ie
42 keycode = event.keyCode;
43 } else {
44 // mozilla
45 keycode = e.which;
46 }
47 if ( keycode === 27 ) {
48 // close
49 window.deactivationModalTrackCloseEvent();
50 }
51 };
52
53 observer.disconnect();
54 }
55 } );
56 }
57 } );
58 } );
59
60 window.deactivationModalCentralize = function () {
61 var modal = $( '#TB_window.jetpack-disconnect-modal' );
62 var top = $( window ).height() / 2 - $( modal ).height() / 2;
63 $( modal ).css( 'top', top + 'px' );
64 };
65
66 window.deactivationModalTrackCloseEvent = function () {
67 analytics.tracks.recordEvent( 'jetpack_termination_dialog_close_click', tracksProps );
68 document.onkeyup = '';
69 };
70
71 var body = $( 'body' )[ 0 ];
72
73 var tracksProps = {
74 location: 'plugins',
75 purpose: 'deactivate',
76 };
77
78 deactivateLinkElem.attr( 'href', 'plugins.php#TB_inline?inlineId=jetpack_deactivation_dialog' );
79 deactivateLinkElem.attr( 'title', deactivate_dialog.title );
80 deactivateLinkElem.addClass( 'thickbox' );
81 deactivateLinkElem.html( deactivate_dialog.deactivate_label );
82 deactivateLinkElem.on( 'click', function () {
83 observer.observe( body, { childList: true } );
84 analytics.tracks.recordEvent( 'jetpack_termination_dialog_open', tracksProps );
85 } );
86
87 $( '#jetpack_deactivation_dialog_content__button-cancel' ).on( 'click', function () {
88 tb_remove();
89 window.deactivationModalTrackCloseEvent();
90 } );
91
92 $( '#jetpack_deactivation_dialog_content__button-deactivate' ).on( 'click', function ( e ) {
93 e.preventDefault();
94
95 $( this ).prop( 'disabled', true );
96 analytics.tracks.recordEvent( 'jetpack_termination_dialog_termination_click', tracksProps );
97 window.deactivateJetpack();
98 } );
99 } )( jQuery );
100