@@ 739-818 (lines=80) @@ | ||
736 | ||
737 | // If we need more credentials, output the form sent back to us. |
|
738 | if ( response.form ) { |
|
739 | // Display the form to gather the users credentials. |
|
740 | jQuery(el).slideDown('normal', function() { |
|
741 | jQuery(this).after('<div class="monsterinsights-addon-error">' + response.form + '</div>'); |
|
742 | $this.next().hide(); |
|
743 | }); |
|
744 | ||
745 | // Add a disabled attribute the install button if the creds are needed. |
|
746 | jQuery(button).attr('disabled', true); |
|
747 | ||
748 | jQuery('#monsterinsights-addons').on('click.installCredsAddon', '#upgrade', function(e) { |
|
749 | // Prevent the default action, let the user know we are attempting to install again and go with it. |
|
750 | e.preventDefault(); |
|
751 | $this.next().hide(); |
|
752 | jQuery(this).html('<i class="monsterinsights-cloud-download"></i> ' + monsterinsights_admin.installing); |
|
753 | jQuery(this).next().css({'display' : 'inline-block', 'margin-top' : '0px'}); |
|
754 | ||
755 | // Now let's make another Ajax request once the user has submitted their credentials. |
|
756 | var hostname = jQuery(this).parent().parent().find('#hostname').val(); |
|
757 | var username = jQuery(this).parent().parent().find('#username').val(); |
|
758 | var password = jQuery(this).parent().parent().find('#password').val(); |
|
759 | var proceed = jQuery(this); |
|
760 | var connect = jQuery(this).parent().parent().parent().parent(); |
|
761 | var cred_opts = { |
|
762 | url: ajaxurl, |
|
763 | type: 'post', |
|
764 | async: true, |
|
765 | cache: false, |
|
766 | dataType: 'json', |
|
767 | data: { |
|
768 | action: 'monsterinsights_install_addon', |
|
769 | nonce: monsterinsights_admin.install_nonce, |
|
770 | plugin: plugin, |
|
771 | hostname: hostname, |
|
772 | username: username, |
|
773 | password: password |
|
774 | }, |
|
775 | success: function(response) { |
|
776 | // If there is a WP Error instance, output it here and quit the script. |
|
777 | if ( response.error ) { |
|
778 | jQuery(el).slideDown('normal', function() { |
|
779 | jQuery(button).parent().parent().after('<div class="monsterinsights-addon-error"><strong>' + response.error + '</strong></div>'); |
|
780 | jQuery(button).html('<i class="monsterinsights-cloud-download"></i> ' + monsterinsights_admin.install); |
|
781 | $this.next().hide(); |
|
782 | jQuery('.monsterinsights-addon-error').delay(4000).slideUp(); |
|
783 | }); |
|
784 | return; |
|
785 | } |
|
786 | ||
787 | if ( response.form ) { |
|
788 | $this.next().hide(); |
|
789 | jQuery('.monsterinsights-inline-error').remove(); |
|
790 | jQuery(proceed).val(monsterinsights_admin.proceed); |
|
791 | jQuery(proceed).after('<span class="monsterinsights-inline-error">' + monsterinsights_admin.connect_error + '</span>'); |
|
792 | return; |
|
793 | } |
|
794 | ||
795 | // The Ajax request was successful, so let's update the output. |
|
796 | jQuery(connect).remove(); |
|
797 | jQuery(button).show(); |
|
798 | ||
799 | if ( monsterinsights_admin.isnetwork ) { |
|
800 | jQuery(button).text(monsterinsights_admin.networkactivate).removeClass('monsterinsights-install-addon').addClass('monsterinsights-activate-addon'); |
|
801 | } else { |
|
802 | jQuery(button).text(monsterinsights_admin.activate).removeClass('monsterinsights-install-addon').addClass('monsterinsights-activate-addon'); |
|
803 | } |
|
804 | ||
805 | jQuery(button).attr('rel', response.plugin); |
|
806 | jQuery(button).removeAttr('disabled'); |
|
807 | jQuery(message).text(monsterinsights_admin.inactive); |
|
808 | ||
809 | // Trick here to wrap a span around he last word of the status |
|
810 | var heading = jQuery(message), word_array, last_word, first_part; |
|
811 | ||
812 | word_array = heading.html().split(/\s+/); // split on spaces |
|
813 | last_word = word_array.pop(); // pop the last word |
|
814 | first_part = word_array.join(' '); // rejoin the first words together |
|
815 | ||
816 | heading.html([first_part, ' <span>', last_word, '</span>'].join('')); |
|
817 | // Proceed with CSS changes |
|
818 | jQuery(el).removeClass('monsterinsights-addon-not-installed').addClass('monsterinsights-addon-inactive'); |
|
819 | $this.next().hide(); |
|
820 | }, |
|
821 | error: function(xhr, textStatus ,e) { |
|
@@ 624-688 (lines=65) @@ | ||
621 | jQuery(el).removeClass('monsterinsights-addon-inactive').addClass('monsterinsights-addon-active'); |
|
622 | $this.next().hide(); |
|
623 | }, |
|
624 | error: function(xhr, textStatus ,e) { |
|
625 | $this.next().hide(); |
|
626 | return; |
|
627 | } |
|
628 | }; |
|
629 | $.ajax(opts); |
|
630 | }); |
|
631 | ||
632 | // Deactivate Addon |
|
633 | jQuery('#monsterinsights-addons').on('click.deactivateAddon', '.monsterinsights-deactivate-addon', function(e) { |
|
634 | e.preventDefault(); |
|
635 | var $this = jQuery(this); |
|
636 | ||
637 | // Remove any leftover error messages, output an icon and get the plugin basename that needs to be activated. |
|
638 | jQuery('.monsterinsights-addon-error').remove(); |
|
639 | jQuery(this).html('<i class="monsterinsights-toggle-on"></i> ' + monsterinsights_admin.deactivating); |
|
640 | jQuery(this).next().css({'display' : 'inline-block', 'margin-top' : '0px'}); |
|
641 | var button = jQuery(this); |
|
642 | var plugin = jQuery(this).attr('rel'); |
|
643 | var el = jQuery(this).parent().parent(); |
|
644 | var message = jQuery(this).parent().parent().find('.addon-status'); |
|
645 | ||
646 | // Process the Ajax to perform the activation. |
|
647 | var opts = { |
|
648 | url: ajaxurl, |
|
649 | type: 'post', |
|
650 | async: true, |
|
651 | cache: false, |
|
652 | dataType: 'json', |
|
653 | data: { |
|
654 | action: 'monsterinsights_deactivate_addon', |
|
655 | nonce: monsterinsights_admin.deactivate_nonce, |
|
656 | plugin: plugin, |
|
657 | isnetwork: monsterinsights_admin.isnetwork |
|
658 | }, |
|
659 | success: function(response) { |
|
660 | // If there is a WP Error instance, output it here and quit the script. |
|
661 | if ( response && true !== response ) { |
|
662 | jQuery(el).slideDown('normal', function() { |
|
663 | jQuery(this).after('<div class="monsterinsights-addon-error"><strong>' + response.error + '</strong></div>'); |
|
664 | $this.next().hide(); |
|
665 | jQuery('.monsterinsights-addon-error').delay(3000).slideUp(); |
|
666 | }); |
|
667 | return; |
|
668 | } |
|
669 | ||
670 | // The Ajax request was successful, so let's update the output. |
|
671 | if ( monsterinsights_admin.isnetwork ) { |
|
672 | jQuery(button).html('<i class="monsterinsights-toggle-on"></i> ' + monsterinsights_admin.networkactivate).removeClass('monsterinsights-deactivate-addon').addClass('monsterinsights-activate-addon'); |
|
673 | } else { |
|
674 | jQuery(button).html('<i class="monsterinsights-toggle-on"></i> ' + monsterinsights_admin.activate).removeClass('monsterinsights-deactivate-addon').addClass('monsterinsights-activate-addon'); |
|
675 | } |
|
676 | ||
677 | jQuery(message).text(monsterinsights_admin.inactive); |
|
678 | ||
679 | // Trick here to wrap a span around he last word of the status |
|
680 | var heading = jQuery(message), word_array, last_word, first_part; |
|
681 | ||
682 | word_array = heading.html().split(/\s+/); // split on spaces |
|
683 | last_word = word_array.pop(); // pop the last word |
|
684 | first_part = word_array.join(' '); // rejoin the first words together |
|
685 | ||
686 | heading.html([first_part, ' <span>', last_word, '</span>'].join('')); |
|
687 | // Proceed with CSS changes |
|
688 | jQuery(el).removeClass('monsterinsights-addon-active').addClass('monsterinsights-addon-inactive'); |
|
689 | $this.next().hide(); |
|
690 | }, |
|
691 | error: function(xhr, textStatus ,e) { |