Açıklama Yok

jetpack-deactivate-dialog.js 2.8KB

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