| 11 |
!function(t){"use strict";var a,i={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>'},init:function(){a=this.settings,t(i.ready)},ready:function(){t("#charitable-admin-addons").length&&t(document).on("click","#charitable-admin-addons .action-button button",i.handleAddonAction)},handleAddonAction:function(a){a.preventDefault();var n=t(this),e=n.parents(".addon-item"),s={active:"status-active",activating:"status-activating",incompatible:"status-incompatible",installed:"status-installed",missing:"status-missing",goToUrl:"status-go-to-url",withError:"status-with-error"};if(e.hasClass(s.goToUrl))window.open(n.attr("data-plugin"),"_blank");else{n.prop("disabled",!0);n.is(":checked");var d=n.attr("data-plugin"),o=n.attr("data-type"),c=n.parents(".addon-item"),l=i.getAddonState(e,s,n);i.updateAddonButton(n,l,!0),i.setAddonState(d,l,o,function(t){i.handleAddonStateResponse(t,c,n,l,o,void 0)},function(t){i.handleAddonStateError(t,c,n,l)})}},getAddonState:function(t,a,i){return t.hasClass(a.missing)?"install":t.hasClass(a.installed)?"activate":t.hasClass(a.active)?"deactivate":t.hasClass(a.incompatible)?"incompatible":i.hasClass("status-missing")?"install":i.hasClass("status-installed")?"activate":i.hasClass("status-active")?"deactivate":"install"},updateAddonButton:function(t,i,n){var e="",s="";if(n)e="install"===i?a.iconSpinner+" Installing...":"deactivate"===i?a.iconSpinner+" Deactivating...":a.iconSpinner+" Activating...",s="button button-secondary loading";else switch(i){case"install":e=a.iconInstall+" Install Plugin",s="status-missing button button-primary";break;case"activate":e=a.iconActivate+" Activate",s="status-installed button button-secondary";break;case"deactivate":e=a.iconDeactivate+" Deactivate",s="status-active button button-secondary";break;case"incompatible":e="Incompatible",s="status-incompatible button button-secondary disabled"}t.removeClass().addClass(s).html(e)},setAddonState:function(a,i,n,e,s){var d={activate:"charitable_addons_activate",install:"charitable_addons_install_wporg",deactivate:"charitable_addons_deactivate",incompatible:"charitable_addons_activate"}[i];if(d){var o={action:d,nonce:charitable_admin_addons.nonce,plugin:a,type:n};t.post(charitable_admin_addons.ajax_url,o,function(t){e(t)}).fail(function(t){s(t)})}},handleAddonStateResponse:function(n,e,s,d,o,c){if(s.prop("disabled",!1),s.removeClass("loading"),n.success){if(n.data&&"object"==typeof n.data&&n.data.redirect)return void(window.location.href=n.data.redirect);var l="",r="",u="";"install"===d?(s.attr("data-plugin",n.data.basename),l=n.data.msg,n.data.is_activated||(r="Inactive",u="plugin"===o?"Activate":a.iconActivate+" Activate",c="plugin"===o?"status-installed button button-secondary":"status-installed")):(l=n.data&&"object"==typeof n.data&&n.data.msg?n.data.msg:n.data,"activate"===d?(r="Active",u="plugin"===o?"Deactivate":a.iconDeactivate+" Deactivate",c="plugin"===o?"status-active button button-secondary":"status-active"):"deactivate"===d&&(r="Inactive",u="plugin"===o?"Activate":a.iconActivate+" Activate",c="plugin"===o?"status-installed button button-secondary":"status-installed")),e.find(".actions").append('<div class="msg success">'+l+"</div>"),e.find("span.status-label").removeClass("status-active status-installed status-missing").addClass(c).removeClass("button button-primary button-secondary disabled").text(r),s.removeClass("status-active status-installed status-missing").removeClass("button button-primary button-secondary disabled loading").addClass(c).html(u)}else"object"==typeof n.data&&"addon"===o?e.find(".actions").append('<div class="msg error"><p>Error installing addon</p></div>'):e.find(".actions").append('<div class="msg error"><p>'+n.data+"</p></div>"),s.removeClass("loading"),i.updateAddonButton(s,d,!1);setTimeout(function(){e.find(".msg").fadeOut(300,function(){t(this).remove()})},3e3)},handleAddonStateError:function(a,n,e,s){e.prop("disabled",!1),n.find(".actions").append('<div class="msg error"><p>Network error. Please try again.</p></div>'),i.updateAddonButton(e,s,!1),setTimeout(function(){n.find(".msg").fadeOut(300,function(){t(this).remove()})},3e3)}};t(document).ready(function(){i.init()})}(jQuery); |