D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
homehopshortterm
/
www
/
wp-content
/
plugins
/
wp-fastest-cache-premium
/
pro
/
js
/
Filename :
statics.js
back
Copy
var WpFcStatics = { ajax_url: "", plugin_dir_url: "", current_page: 0, total_page: 0, per_page: 5, statics: {}, country_code: "", init: function(ajax_url, plugin_dir_url, country_code){ this.country_code = country_code; this.ajax_url = ajax_url; this.plugin_dir_url = plugin_dir_url; this.set_click_event_show_hide_button(); this.set_click_event_optimize_image_button(); this.set_click_event_search_button(); this.set_click_event_paging(); this.set_click_event_clear_search_text(); this.set_click_event_filter(); this.set_click_event_per_page(); this.set_click_event_buy_image_credit(); this.set_click_event_auto_optimize(); }, set_click_event_auto_optimize: function(){ jQuery("#auto-optimize-link").click(function(){ Wpfc_New_Dialog.dialog("wpfc-modal-auto-optimize", { close: function(e){ let modal = jQuery(e).closest("div[id^='wpfc-modal-auto-optimize']"); modal.remove(); }, }, function(dialog){ Wpfc_New_Dialog.show_button("close"); }); }); }, set_click_event_buy_image_credit: function(){ var self = this; //jQuery("#buy-image-credit-link").click(function(){ jQuery("#wpfc-optimized-statics-credit").closest("h1").click(function(){ Wpfc_New_Dialog.dialog("wpfc-modal-buy-crdit", { finish: function(e){ let modal = jQuery(e).closest("div[id^='wpfc-modal-buy-crdit']"); if(modal.find("input[type='radio']:checked").length == 1){ modal.find("form").submit(); } }, }, function(dialog){ Wpfc_New_Dialog.show_button("finish"); }); }); }, event_on_shop: function(){ jQuery("#wpfc-product-selection-list li").hover(function(e){ jQuery("#wpfc-product-selection-list li label").removeClass("hover"); jQuery(e.target).addClass("hover"); }); jQuery("#wpfc-product-selection-list li").click(function(e){ jQuery("#wpfc-product-selection-list li label").removeClass("checked"); jQuery(e.currentTarget).find("label").addClass("checked"); jQuery(e.currentTarget).find("input").attr("checked", true); }); jQuery("#wpfc-cancel-buy-credit").click(function(){ jQuery("#wpfc-shop-modal").remove(); }); }, set_click_event_per_page: function(){ var self = this; jQuery("#wpfc-image-per-page").change(function(e){ self.update_image_list(0); }); }, set_click_event_filter: function(){ var self = this; jQuery("#wpfc-image-list-filter").change(function(e){ self.update_image_list(0); }); }, set_click_event_clear_search_text: function(){ var self = this; jQuery("span.deleteicon span").click(function(e){ jQuery("#wpfc-image-search-input").val(""); jQuery(e.target).addClass("cleared"); self.update_image_list(0); }); jQuery("#wpfc-image-search-input").keyup(function(e){ if(jQuery(e.target).val().length > 0){ jQuery("span.deleteicon span").removeClass("cleared"); }else{ jQuery("span.deleteicon span").addClass("cleared"); if(e.keyCode == 8){ self.update_image_list(0); } } if(e.keyCode == 13){ self.update_image_list(0); } }); }, set_click_event_paging: function(){ var self = this; jQuery(".wpfc-image-list-next-page, .wpfc-image-list-prev-page, .wpfc-image-list-first-page, .wpfc-image-list-last-page").click(function(e){ if(jQuery(e.target).hasClass("wpfc-image-list-next-page")){ self.update_image_list(self.current_page + 1); }else if(jQuery(e.target).hasClass("wpfc-image-list-prev-page")){ self.update_image_list(self.current_page - 1); }else if(jQuery(e.target).hasClass("wpfc-image-list-first-page")){ self.update_image_list(0); }else if(jQuery(e.target).hasClass("wpfc-image-list-last-page")){ self.update_image_list(self.total_page - 1); } }); }, set_click_event_search_button: function(){ var self = this; jQuery("#wpfc-image-search-button").click(function(){ self.update_image_list(0); }); }, set_click_event_optimize_image_button: function(){ var self = this; jQuery("#wpfc-optimize-images-button").click(function(){ //jQuery("[id^='wpfc-optimized-statics-']").addClass("wpfc-loading-statics"); //jQuery("[id^='wpfc-optimized-statics-']").html(""); jQuery(this).attr("disabled", true); self.optimize_image(self, false, true, false); }); }, update_image_list: function(page, search){ var self = this; self.per_page = jQuery("#wpfc-image-per-page").val(); if(page !== 0 && (page < 0 || (page > self.total_page - 1))){ return; } jQuery("#revert-loader").show(); var search = jQuery("#wpfc-image-search-input").val(); var filter = jQuery("#wpfc-image-list-filter").val(); jQuery.ajax({ type: 'GET', url: self.ajax_url, data : {"action": "wpfc_update_image_list_ajax_request", "page": page, "search" : search, "filter" : filter, 'per_page' : self.per_page}, dataType : "json", cache: false, success: function(data){ if(typeof data != "undefined" && data){ self.total_page = Math.ceil(data.result_count/self.per_page); self.total_page = self.total_page > 0 ? self.total_page : 1; self.current_page = page; jQuery(".wpfc-current-page").text(self.current_page + 1); jQuery("#the-list").html(data.content); jQuery(".wpfc-total-pages").html(self.total_page); jQuery("#revert-loader").hide(); jQuery(".wpfc-image-list-prev-page").removeClass("disabled"); jQuery(".wpfc-image-list-next-page").removeClass("disabled"); jQuery(".wpfc-image-list-first-page").removeClass("disabled"); jQuery(".wpfc-image-list-last-page").removeClass("disabled"); if((self.current_page + 1) == self.total_page){ jQuery(".wpfc-image-list-next-page").addClass("disabled"); jQuery(".wpfc-image-list-last-page").addClass("disabled"); } if(self.current_page === 0){ jQuery(".wpfc-image-list-prev-page").addClass("disabled"); jQuery(".wpfc-image-list-first-page").addClass("disabled"); } self.set_click_event_revert_image(); self.set_click_event_collapse_image_details(); }else{ alert("Error: Image List Problem. Please refresh..."); } } }); }, set_click_event_show_hide_button: function(){ var self = this; jQuery("#show-image-list, #hide-image-list").click(function(e){ if(e.target.id == "show-image-list"){ jQuery(e.target).hide(); jQuery("#hide-image-list").show(); jQuery("#wpfc-image-list").show(); jQuery("#wpfc-image-static-panel").hide(); self.update_image_list(0); }else if(e.target.id == "hide-image-list"){ jQuery(e.target).hide(); jQuery("#show-image-list").show(); jQuery("#wpfc-image-list").hide(); jQuery("#wpfc-image-static-panel").show(); WpFcStatics.update_statics(); } }); jQuery("div[data-click-action='errors']").click(function(){ jQuery("#show-image-list").hide(); jQuery("#hide-image-list").show(); jQuery("#wpfc-image-list").show(); jQuery("#wpfc-image-static-panel").hide(); jQuery("#wpfc-image-list-filter").val("error_code"); self.update_image_list(0); }); }, wpfc_get_server_time: function(servers){ var html = function(value){ return '<div style="width: 70px;float:left;">' + '<input value="' + value.url + '" name="wpfc-server-url" type="text" style="display:none;">' + '<input value="' + value.key + '" name="wpfc-server-location" type="radio" style="vertical-align: top; padding-top: 0px; margin-top: 0px;"><img>' + '<div style="color:black;float: right; width: 62px; text-align: center;font-weight:bold;">' + value.location + '</div>' + '<div class="server-time" style="float: right; width: 62px; text-align: center;font-weight:bold;">' + value.time.time + '</div>' + '</div>'; }; var ajaxTime= new Date().getTime(); var div; jQuery.ajax({ type: 'GET', url: WpFcCacheStatics.admin_ajax_url, data : {"action" : "get_server_time_ajax_request", "servers" : servers}, dataType : "json", cache: false, error: function(x, t, m) { //alert(t); jQuery(servers).each(function(key, value){ jQuery("#wpfc-server-list").prepend(html(value)); }); }, success: function(data){ jQuery(data).each(function(key, value){ if(value.time.success){ if(jQuery("#wpfc-server-list > div").length == 0){ jQuery("#wpfc-server-list").prepend(html(value)); }else{ jQuery("#wpfc-server-list > div").each(function(i, e){ if(value.time.time < parseFloat(jQuery(e).find("div.server-time").text())){ jQuery(e).before(html(value)); return false; }else{ if(jQuery(e).next().length == 0){ jQuery(e).after(html(value)); return false; }else{ if(value.time.time < parseFloat(jQuery(e).next().find("div.server-time").text())){ jQuery(e).after(html(value)); return false; } } } }); } }else{ if(key === 0){ alert("Neither fsockopen nor curl exist in the server"); } } }); }, timeout: 10000 }); }, wpfc_get_servers: function(){ var self = this; var servers = { "naw": [ {"key": "la", "time":0,"flag":"us","location":"Los Ang","color":"red", "url":"https://la.wpfastestcache.com"}, {"key": "dal", "time":0,"flag":"us","location":"Dallas","color":"red", "url":"https://dallas.wpfastestcache.com"}, {"key": "nev", "time":0,"flag":"us","location":"Nevada","color":"red", "url":"https://nevada.wpfastestcache.com"} ], "nae": [ {"key": "dc", "time":0,"flag":"us","location":"New York","color":"red", "url":"https://dc.wpfastestcache.com"}, {"key": "stlo", "time":0,"flag":"us","location":"St. Louis","color":"red", "url":"https://stlouis.wpfastestcache.com"}, ], "euw": [ {"key": "fran", "time":0,"flag":"de","location":"Frankfurt","color":"red", "url":"https://frankfurt.wpfastestcache.com"}, {"key": "it", "time":0,"flag":"it","location":"Italy","color":"red", "url":"https://it.wpfastestcache.com"}, {"key": "nl", "time":0,"flag":"nl","location":"Holland","color":"red", "url":"https://nl.wpfastestcache.com"}, {"key": "de", "time":0,"flag":"de","location":"Nuremberg","color":"red", "url":"https://nuremberg.wpfastestcache.com"}, {"key": "uk", "time":0,"flag":"gb","location":"UK","color":"red", "url":"https://uk.wpfastestcache.com"}, ], "eue": [ {"key": "bg", "time":0,"flag":"bg","location":"Bulgaria","color":"red", "url":"https://bulgaria.wpfastestcache.com"}, {"key": "pl", "time":0,"flag":"de","location":"Poland","color":"red", "url":"https://pl.wpfastestcache.com"}, {"key": "ru", "time":0,"flag":"de","location":"Russia","color":"red", "url":"https://russia.wpfastestcache.com"}, {"key": "se", "time":0,"flag":"de","location":"Sweden","color":"red", "url":"https://sweden.wpfastestcache.com"}, {"key": "tr", "time":0,"flag":"de","location":"Turkey","color":"red", "url":"https://tr.wpfastestcache.com"}, ], "as": [ {"key": "au", "time":0,"flag":"sg","location":"Australia","color":"red", "url":"https://au.wpfastestcache.com"}, {"key": "jp", "time":0,"flag":"jp","location":"Japan","color":"red", "url":"https://jp.wpfastestcache.com"} ] }; //http://www.countryareacode.net/en/list-of-countries-according-to-continent/ var america = "AI, AR, AW, BS, BB, BZ, BM, BO, BR, VG, CA, KY, CL, CO, CR, CU, CW, DM, DO, EC, SV, FK, GL, GP, GT, GY, HT, HN, JM, MX, MS, NI, PA, PY, PE, PR, BL, KN, LC, MF, PM, VC, SR, TT, US, UY, VE"; var oceania = "AS, AU, CK, TL, FJ, PF, GU, KI, MH, FM, NR, NC, NZ, NU, NF, MP, PW, PG, PN, WS, SB, TK, TV, VU"; var asia = "AF, AM, AZ, BH, BD, BT, BN, KH, CN, GE, HK, IN, ID, IR, IQ, JP, JO, KW, KG, LA, LB, MO, MY, MV, MN, MM, NP, KP, OM, PK, PH, QA, SA, SG, KR, LK, SY, TW, TJ, TH, TM, AE, UZ, VN, YE"; var w_europe = "AD, AT, BE, DK, FO, FR, DE, GI, IS, IE, IM, IT, LI, LU, MT, MC, NL, PT, SM, ES, CH, GB, VA"; var e_europe = "AL, BY, BA, BG, HR, CY, CZ, EE, FI, GR, HU, KZ, IL, XK, LV, LT, MK, MD, ME, NO, PL, RO, RU, RS, SK, SI, SE, TR, UA"; var africa = "DZ, AO, BJ, BW, BF, BI, CM, CV, CF, KM, CD, DJ, EG, GQ, ER, ET, GA, GM, GH, GN, GW, CI, KE, LS, LR, LY, MG, MW, ML, MR, MU, MA, MZ, NA, NE, NG, CG, RE, RW, SH, ST, SN, SC, SL, SO, ZA, SS, SD, SZ, TZ, TG, TN, UG, EH, ZM, ZW"; var time_out = 4000; jQuery("#revert-loader-toolbar").show(); jQuery("#wpfc-server-list").html(""); if(self.country_code){ if(america.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.naw); self.wpfc_get_server_time(servers.nae); }else if(w_europe.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.euw); }else if(e_europe.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.eue); }else if(oceania.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.as); }else if(asia.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.as); time_out = 5000; }else if(africa.search(self.country_code) > -1){ self.wpfc_get_server_time(servers.euw); self.wpfc_get_server_time(servers.eue); }else if(self.country_code == "XX"){ self.wpfc_get_server_time(servers.naw); self.wpfc_get_server_time(servers.euw); self.wpfc_get_server_time(servers.as); }else{ setTimeout(function(){ alert("Unknown Country Code: " + self.country_code); }, 1000); } }else{ setTimeout(function(){ alert("Empty Country Code!"); }, 1000); } setTimeout(function(){ jQuery("#revert-loader-toolbar").hide(); jQuery("#wpfc-optimize-images-button").attr("disabled", false); }, time_out); //self.wpfc_get_server_time(server_key, value); }, optimize_image: function(self, id, recursive, last){ function set_loading_bar(percentage){ jQuery("#wpfc-opt-image-loading div").width(percentage + "%"); }; // if(typeof id == "undefined"){ // jQuery("[id^='wpfc-optimized-statics-']").addClass("wpfc-loading-statics"); // jQuery("[id^='wpfc-optimized-statics-']").html(""); // } if(jQuery("#wpfc-server-list input[name='wpfc-server-url']").length > 0){ var server_url = jQuery("#wpfc-server-list input[name='wpfc-server-url']").val(); }else{ WpFcStatics.wpfc_get_servers(); return 0; } if(!id){ id = ""; } jQuery.ajax({ type: 'GET', url: self.ajax_url, dataType : "json", data : {"action": "wpfc_optimize_image_ajax_request", "id" : id, "last" : last, "server_url": server_url}, cache: false, timeout: 20000, error: function(x, t, m) { console.log("first" + JSON.stringify(x)); console.log(x.status + "---" + x.statusText); console.log("second" + JSON.stringify(t)); console.log("third" + JSON.stringify(m)); var reload = false; if(t === "timeout" || t == "Internal Server Error") { reload = true; }else if(m == "Not Found" || m == "Internal Server Errors" || m == "Forbidden"){ reload = true; }else if(x.status == 404 || x.status == 503){ reload = true; }else if(x.status == 200 && (x.responseText.match(/Error\sestablishing\sa\sdatabase\sconnection/i))){ reload = true; }else{ if(typeof window.wpfc_last_error_time == "undefined"){ window.wpfc_last_error_time = Math.floor(Date.now() / 1000); reload = true; }else{ if((Math.floor(Date.now() / 1000) - window.wpfc_last_error_time) > 30){ alert(t); } } } if(reload){ if(recursive){ setTimeout(function(){ self.modify_statics_html(); self.optimize_image(self, id, true, false); }, 10000); } } }, success: function(data){ if(data && data.success == "success"){ if(data.message != "finish"){ console.log(data); //to check first call or not set_loading_bar(data.percentage); if(data.percentage == 100){ if(id){ if(recursive){ self.optimize_image(self, false, true, false); } }else{ self.update_statics(function(){ set_loading_bar(0); if(recursive){ self.optimize_image(self, false, true, false); } }); } }else{ if(recursive){ self.optimize_image(self, data.id, true, false); if(id == false){ if((data.percentage > 0) && (data.percentage < 30)){ for (var last_i = 1; last_i <= (100/(data.percentage*2)); last_i++){ self.optimize_image(self, data.id, false, "last-" + last_i); } } } } } }else{ jQuery("#wpfc-optimize-images-button").attr("disabled", false); self.update_statics(); } }else{ self.update_statics(); if(data && typeof data.message != "undefined" && data.message){ if(data.message.match(/Error\sCode\:\s101/) || data.message.match(/^500$/)){ if(jQuery("#wpfc-opt-image-loading div").width() > 0){ if(recursive){ setTimeout(function(){ self.optimize_image(self, id, true, false); }, 900); } } }else{ if(data.message.match(/no\sdecode\sdelegate\sfor\sthis\simage\sformat/i)){ // toDO } if(data.message.match(/text\schunk\(s\)\sfound\safter\sPNG\sIDAT\s\(fixed\)/i) || data.message.match(/cURL\serror\s28\:\sResolving\stimed\sout\safter/i)){ //[minor] Text chunk(s) found after PNG IDAT (fixed) //cURL error 28: Resolving timed out after 10000 milliseconds if(recursive){ setTimeout(function(){ self.optimize_image(self, id, true, false); }, 900); } }else{ alert(data.message); jQuery("#wpfc-optimize-images-button").attr("disabled", false); } } }else{ alert("Please try later..."); } } } }); }, update_statics: function(callback){ var self = this; var credit = false; var str_callback = false; jQuery("[id^='wpfc-optimized-statics-']").addClass("wpfc-loading-statics"); jQuery("[id^='wpfc-optimized-statics-']").html(""); if(callback){ str_callback = callback.toString(); if(str_callback.match(/set_loading_bar\(0\)/)){ credit = true; } } jQuery.ajax({ type: 'GET', url: self.ajax_url, dataType : "json", data : {"action": "wpfc_statics_ajax_request", "credit" : credit}, cache: false, success: function(data){ if(callback){ callback(); } self.statics = data; self.modify_statics_html(); } }); }, modify_statics_html: function(){ var self = this; jQuery.each(this.statics, function(e, i){ var el = jQuery("#wpfc-optimized-statics-" + e); if(el.length === 1){ if(e == "percent"){ var percent = i*3.6; if(percent > 180){ jQuery("#wpfc-pie-chart-big-container-first").show(); jQuery("#wpfc-pie-chart-big-container-second-right").show(); jQuery('#wpfc-pie-chart-big-container-second-left').animate({ borderSpacing: (percent - 180) }, { step: function(now,fx) { jQuery(this).css('-webkit-transform','rotate('+now+'deg)'); jQuery(this).css('-moz-transform','rotate('+now+'deg)'); jQuery(this).css('transform','rotate('+now+'deg)'); }, duration:'slow' },'linear'); }else{ jQuery("#wpfc-pie-chart-big-container-first").hide(); jQuery("#wpfc-pie-chart-big-container-second-right").hide(); jQuery('#wpfc-pie-chart-little').animate({ borderSpacing: percent }, { step: function(now,fx) { jQuery(this).css('-webkit-transform','rotate('+now+'deg)'); jQuery(this).css('-moz-transform','rotate('+now+'deg)'); jQuery(this).css('transform','rotate('+now+'deg)'); }, duration:'slow' },'linear'); } } el.removeClass("wpfc-loading-statics"); el.html(i); } }); }, set_click_event_collapse_image_details: function(){ jQuery("td.open-image-details").click(function(e){ var sub = jQuery("tr[post-id='" + jQuery(e.target).closest("tr[post-id]").attr("post-id") + "'][post-type='detail']"); if(sub.is(":hidden")){ sub.show(); jQuery(this).find("span").attr('class', 'dashicons dashicons-arrow-up-alt2') }else{ sub.hide(); jQuery(this).find("span").attr('class', 'dashicons dashicons-arrow-down-alt2'); } }); }, set_click_event_revert_image: function(){ var self = this; jQuery("div.revert").click(function(e){ jQuery("#revert-loader").show(); var id = jQuery(e.target).find("input")[0].value; jQuery.ajax({ type: 'GET', url: self.ajax_url, dataType : "json", data : {"action": "wpfc_revert_image_ajax_request", "id" : id}, cache: false, success: function(data){ try{ if(data.success == "true"){ self.update_statics(function(){ jQuery("tr[post-id='" + id + "']").hide(100, function(){ if(jQuery("#the-list tr:visible").length === 0){ self.update_image_list(0); }else{ jQuery("#revert-loader").hide(); } }); }); }else if(data.success == "false"){ jQuery("#revert-loader").hide(); if(typeof data.message != "undefined" && data.message){ alert(data.message); }else{ alert("Revert Image: " + 'data.success == "false"'); } } }catch(err){ alert("Revert Image: " + err.message); } } }); }); } };