| 1 |
!function(a){"use strict";var t,e={settings:{iconActivate:"",iconDeactivate:"",iconInstall:"",iconSpinner:"Standby...",mediaFrame:!1},init:function(){t=this.settings,a(e.ready),a(document).on("CharitableDirReady",e.initAddons)},ready:function(){a(document).trigger("CharitableDirReady"),a("#charitable-admin-addons-search").val()&&a("#charitable-admin-addons-search").trigger("keyup")},initAddons:function(){if(a("#charitable-admin-addons").length){if(function(){function t(a,t,e){var i="";if(e){var n=new Date;n.setTime(n.getTime()+24*e*60*60*1e3),i="; expires="+n.toUTCString()}document.cookie=a+"="+(t||"")+i+"; path=/"}function e(a){for(var t=a+"=",e=document.cookie.split(";"),i=0;i<e.length;i++){for(var n=e[i];" "==n.charAt(0);)n=n.substring(1,n.length);if(0==n.indexOf(t))return n.substring(t.length,n.length)}return null}var i=a(".charitable-addons-section-header:not(.charitable-addons-section-header-featured)"),n=e("charitable_open_addon_sections"),d=(n=n?JSON.parse(n):[]).indexOf("featured");d>-1&&(n.splice(d,1),t("charitable_open_addon_sections",JSON.stringify(n),7)),i.each(function(){var t=a(this).data("section");n.includes(t)&&(a(this).addClass("open"),a("#charitable-addons-"+t).show())}),i.on("click",function(){var i=a(this).data("section"),n=a("#charitable-addons-"+i),d=e("charitable_open_addon_sections");if(d=d?JSON.parse(d):[],a(this).toggleClass("open"),n.slideToggle(),a(this).hasClass("open"))d.includes(i)||d.push(i);else{var s=d.indexOf(i);s>-1&&d.splice(s,1)}t("charitable_open_addon_sections",JSON.stringify(d),7)})}(),a("#charitable-addons").length){a("#charitable-admin-addons-search").on("keyup search input",function(){e.updateAddonSearchResult(this)}),a("#charitable-admin-addons-search").on("input",function(){var t=a(this).val();t?sessionStorage.setItem("charitable_addons_search",t):sessionStorage.removeItem("charitable_addons_search")});var t=sessionStorage.getItem("charitable_addons_search");t&&a("#charitable-admin-addons-search").val(t).trigger("keyup")}a(document).on("click","#charitable-admin-addons .charitable-addons-list-item button",function(t){if(t.preventDefault(),a(this).hasClass("disabledd6"))return!1;e.addonToggle(a(this))})}},updateAddonSearchResult:function(t){var i=a(t).val();i=i.replace(/[.,]/g," "),e.performCustomSearch(i),e.highlightSearchTerms(i)},performCustomSearch:function(t){var e=a("#charitable-addons .charitable-addons-list-item"),i=t.toLowerCase().split(" ").filter(function(a){return a.length>0});if(0===i.length)return e.show(),void a(".charitable-addons-section").show();e.each(function(){var t=a(this),e=t.find(".addon-link"),n=t.find(".addon-description"),d=e.text().toLowerCase(),s=n.text().toLowerCase(),o=!1;i.forEach(function(a){-1===d.indexOf(a)&&-1===s.indexOf(a)||(o=!0)}),o?(t.show(),!0):t.hide()}),a(".charitable-addons-section").each(function(){var t=a(this);t.find(".charitable-addons-list-item:visible").length>0?(t.show(),t.find(".charitable-addons-section-content").show(),t.find(".charitable-addons-section-header").addClass("open")):t.hide()})},highlightSearchTerms:function(t){if(t){var e=t.toLowerCase().split(" ").filter(function(a){return a.length>0});0!==e.length&&a(".charitable-addons-list-item:visible .addon-link, .charitable-addons-list-item:visible .addon-description").each(function(){var t=a(this),i=t.text(),n=i;e.forEach(function(a){if(a.length>0){var t=new RegExp("("+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+")","gi");n=n.replace(t,"<mark>$1</mark>")}}),n!==i&&t.html(n)})}else a(".addon-link, .addon-description").each(function(){var t=a(this);t.html(t.text())})},setAddonState:function(t,e,i,n){var d={activate:"charitable_activate_addon",install:"charitable_install_addon",deactivate:"charitable_deactivate_addon"}[e];if(d){var s={action:d,nonce:charitable_admin.nonce,plugin:t,type:i};a.post(charitable_admin.ajax_url,s,function(a){n(a)}).fail(function(a){console.log(a.responseText)})}},addonToggle:function(i){if(!i.prop("disabled")&&"invalid"!==i.attr("data-plugin")){var n,d,s,o,r,c,l=i.closest(".addon-item"),h=i.attr("data-plugin"),u=i.attr("data-type");if(i.hasClass("status-go-to-url"))window.open(i.attr("data-plugin"),"_blank");else{if(i.prop("disabled",!0).addClass("loading"),i.html(t.iconSpinner),i.hasClass("status-active"))n="deactivate",d="status-installed","plugin"!==u&&"addon"!==u||(d+=" button button-secondary"),s=charitable_admin.addon_inactive,o=charitable_admin.addon_activate,r=charitable_admin.addon_deactivate,"addon"===u&&(o=t.iconActivate+o,r=t.iconDeactivate+r);else if(i.hasClass("status-installed"))n="activate",d="status-active","plugin"!==u&&"addon"!==u||(d+=" button"),s=charitable_admin.addon_active,o=charitable_admin.addon_deactivate,"addon"===u?(o=t.iconDeactivate+o,r=t.iconActivate+charitable_admin.addon_activate):"plugin"===u&&(o=charitable_admin.addon_activated,r=charitable_admin.addon_activate);else{if(!i.hasClass("status-missing"))return;n="install",d="status-active","plugin"!==u&&"addon"!==u||(d+=" button disabled"),s=charitable_admin.addon_active,o=charitable_admin.addon_activated,r=t.iconInstall,"addon"===u&&(o=t.iconActivate+charitable_admin.addon_deactivate,r+=charitable_admin.addon_install)}e.setAddonState(h,n,u,function(e){if(e.success){if(e.data&&"object"==typeof e.data&&e.data.redirect)return void(window.location.href=e.data.redirect);"install"===n?(i.attr("data-plugin",e.data.basename),c=e.data.msg,e.data.is_activated?(d="status-active button",s=charitable_admin.addon_active,o=charitable_admin.addon_deactivate):(s=charitable_admin.addon_inactive,o="addon"===u?charitable_admin.addon_activate:t.iconActivate+charitable_admin.addon_activate,d="addon"===u?"status-installed button button-secondary":"status-installed")):c=e.data,l.find(".actions").append('<div class="msg success">'+c+"</div>"),l.find("span.status-label").removeClass("status-active status-installed status-missing").addClass(d).removeClass("button button-primary button-secondary disabled").text(s),i.removeClass("status-active status-installed status-missing").removeClass("button button-primary button-secondary disabled").addClass(d).html(o)}else{if("object"==typeof e.data)"addon"===u?l.find(".actions").append('<div class="msg error"><p>'+charitable_admin.addon_error+"</p></div>"):l.find(".actions").append('<div class="msg error"><p>'+charitable_admin.plugin_error+"</p></div>");else if("string"==typeof e){var h=JSON.parse(e);"string"==typeof h.error?l.find(".actions").append('<div class="msg error"><p>'+h.error+"</p></div>"):l.find(".actions").append('<div class="msg error"><p>There has been an error.</p></div>')}"install"===n&&"addon"===u&&i.addClass("status-go-to-url").removeClass("status-missing"),i.html(r)}i.prop("disabled",!1).removeClass("loading"),l.find(".actions").find(".msg.error").length||setTimeout(function(){a(".addon-item .msg").remove()},3e3)})}}},getQueryString:function(a){var t=new RegExp("[?&]"+a+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(a){e.isDebug()&&("object"==typeof a||a.constructor===Array?(console.log("Charitable Debug:"),console.log(a)):console.log("Charitable Debug: "+a))},isDebug:function(){return window.location.hash&&"#charitabledebug"===window.location.hash}};e.init(),window.CharitableDirAdmin=e}(jQuery); |