nf-upgrade-handler.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. jQuery(document).ready(function($) {
  2. $( '.nf-upgrade-complete' ).nfAdminModal( { title: nfUpgradeHandler.nf_upgrade_complete_title, buttons: '.nf-upgrade-complete-buttons' } );
  3. function UpgradeHandler( upgrade ) {
  4. this.upgrade = upgrade;
  5. this.process = function( step, total_steps, args ) {
  6. step = typeof step !== 'undefined' ? step : 0;
  7. total_step = typeof total_step !== 'undefined' ? total_step : 0;
  8. args = typeof args !== 'undefined' ? args : [];
  9. console.log( 'Upgrade: ' + this.upgrade );
  10. $.post(
  11. ajaxurl,
  12. {
  13. upgrade: this.upgrade,
  14. step: parseInt( step ),
  15. total_steps: parseInt( total_steps ),
  16. args: args,
  17. action: 'nf_upgrade_handler'
  18. },
  19. function (response) {
  20. var elem = $( '#nf_upgrade_' + upgradeHandler.upgrade );
  21. try {
  22. response = $.parseJSON(response);
  23. } catch( e ) {
  24. // TODO: move error display to Upgrade object
  25. elem.find( '.spinner' ).css( 'display', 'none' ).css( 'visibility', 'hidden' );
  26. elem.find( '.dashicons-no' ).css( 'display', 'block' );
  27. elem.find( '.nf-upgrade-handler__errors__text').html('Bad Response :\'(<br/>' + e + "<br />" + response );
  28. elem.find( '.nf-upgrade-handler__errors').slideDown();
  29. return;
  30. }
  31. console.log( 'DEBUG: NF_UpgradeHandler step response: ');
  32. console.log( response );
  33. if( undefined == response ) {
  34. // TODO: move error display to Upgrade object
  35. elem.find( '.spinner' ).css( 'display', 'none' ).css( 'visibility', 'hidden' );
  36. elem.find( '.dashicons-no' ).css( 'display', 'block' );
  37. elem.find( '.nf-upgrade-handler__errors__text').html('Empty Response :\'(');
  38. elem.find( '.nf-upgrade-handler__errors').slideDown();
  39. return;
  40. }
  41. if( response.errors ) {
  42. // TODO: move error display to Upgrade object
  43. elem.find( '.spinner' ).css( 'display', 'none' ).css( 'visibility', 'hidden' );
  44. elem.find( '.dashicons-no' ).css( 'display', 'block' );
  45. var error_text = '';
  46. $.each( response.errors, function( index, error ) {
  47. error_text = error_text + '[' + index + '] ' + error + '<br />';
  48. });
  49. elem.find( '.nf-upgrade-handler__errors__text').html('Processing Error :\'(<br />' + error_text );
  50. elem.find( '.nf-upgrade-handler__errors').slideDown();
  51. $( '#progressbar_' + response.upgrade).slideUp();
  52. return;
  53. }
  54. var progressbar = $( '#progressbar_' + response.upgrade ).progressbar({
  55. value: 100 * ( response.step / response.total_steps )
  56. });
  57. //TODO: move animations to Upgrade object
  58. elem.find( '.spinner' ).css( 'display', 'block' ).css( 'visibility', 'visible' );
  59. elem.find( '.dashicons-no' ).css( 'display', 'none' );
  60. elem.find( '.inside') .slideDown();
  61. if ( undefined != response.complete ) {
  62. //TODO: move animations to Upgrade object
  63. elem.find( '.inside' ).slideUp();
  64. elem.find( '.spinner' ).css( 'display', 'none' ).css( 'visibility', 'hidden' );
  65. elem.find( '.dashicons-yes').css( 'display', 'block' );
  66. if ( undefined != response.nextUpgrade ) {
  67. upgradeHandler.upgrade = response.nextUpgrade;
  68. $( '#nf_upgrade_' + upgradeHandler.upgrade ).find( '.spinner' ).css( 'display', 'block' ).css( 'visibility', 'visible' );
  69. $( '#nf_upgrade_' + upgradeHandler.upgrade ).find( '.inside') .slideDown();
  70. upgradeHandler.process();
  71. return;
  72. }
  73. console.log( 'DEBUG: NF_UpgradeHandler says "It is finished!"' );
  74. $( '.nf-upgrade-complete' ).nfAdminModal( 'open' );
  75. return;
  76. }
  77. upgradeHandler.process( response.step, response.total_steps, response.args );
  78. }
  79. ).fail(function() {
  80. alert( "error" );
  81. });
  82. };
  83. }
  84. function Upgrade( name ) {
  85. this.name = name;
  86. this.elem = '#nf_upgrade_' + name;
  87. this.open = function() {
  88. jQuery( this.elem).slideDown();
  89. };
  90. this.close = function() {
  91. jQuery( this.elem).slideUp();
  92. };
  93. }
  94. if( "undefined" != typeof nfUpgradeHandler ) {
  95. console.log('DEBUG: NF_UpgradeHandler first upgrades is ' + nfUpgradeHandler.upgrade);
  96. var upgradeHandler = new UpgradeHandler(nfUpgradeHandler.upgrade);
  97. $('.progressbar').progressbar({value: 0});
  98. var first_upgrade = $('#nf_upgrade_' + upgradeHandler.upgrade);
  99. //TODO: move animations to Upgrade object
  100. first_upgrade.find('.spinner').css('display', 'block').css('visibility', 'visible');
  101. first_upgrade.find('.dashicons-no').css('display', 'none');
  102. first_upgrade.find('.inside').slideDown();
  103. upgradeHandler.process();
  104. } else {
  105. // No Upgrades to run, return to All Forms Page
  106. document.location.href = "admin.php?page=ninja-forms";
  107. }
  108. });