plugin-install.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. (function( wp, $ ) {
  2. 'use strict';
  3. if ( ! wp ) {
  4. return;
  5. }
  6. function activatePlugin( url, el ) {
  7. var message = el.data( 'message' );
  8. $.ajax( {
  9. async: true,
  10. type: 'GET',
  11. dataType: 'html',
  12. url: url,
  13. success: function() {
  14. el.removeClass( 'sab-updating' );
  15. el.text( message );
  16. }
  17. } );
  18. }
  19. $( function() {
  20. $( document ).on( 'click', '.sab-plugin-button', function( event ) {
  21. var action = $( this ).data( 'action' ),
  22. url = $( this ).attr( 'href' ),
  23. slug = $( this ).data( 'slug' );
  24. event.preventDefault();
  25. if ( 'install' === action ) {
  26. $( this ).addClass( 'sab-updating disabled' );
  27. wp.updates.installPlugin( {
  28. slug: slug
  29. } );
  30. } else if ( 'activate' === action ) {
  31. $( this ).addClass( 'sab-updating disabled' );
  32. activatePlugin( url, $( this ) );
  33. }
  34. } );
  35. $( document ).on( 'wp-plugin-install-success', function( response, data ) {
  36. var el = $( '.sab-plugin-button[data-slug="' + data.slug + '"]' );
  37. event.preventDefault();
  38. activatePlugin( data.activateUrl, el );
  39. } );
  40. } );
  41. })( window.wp, jQuery );