fix
This commit is contained in:
435
wp-content/plugins/wp-fastest-cache/js/cdn/cdn.js
Normal file
435
wp-content/plugins/wp-fastest-cache/js/cdn/cdn.js
Normal file
@@ -0,0 +1,435 @@
|
||||
var WpfcCDN = {
|
||||
values: {"name" : "", "cdnurl" : "", "originurl" : "", "file_types" : "", "keywords" : "", "excludekeywords" : ""},
|
||||
id : "",
|
||||
nonce: "",
|
||||
template_url : "",
|
||||
content : "",
|
||||
interval : false,
|
||||
init: function(obj){
|
||||
this.set_params(obj);
|
||||
this.open_wizard();
|
||||
},
|
||||
check_conditions: function(action, current_page_number){
|
||||
var self = this;
|
||||
|
||||
if(action == "next"){
|
||||
if(current_page_number == 2){
|
||||
self.check_url_exist();
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
set_params: function(obj){
|
||||
this.id = obj.id;
|
||||
this.nonce = obj.nonce;
|
||||
this.template_url = obj.template_main_url + "/" + this.id + ".php";
|
||||
|
||||
if(obj.values){
|
||||
this.values = obj.values;
|
||||
}
|
||||
},
|
||||
open_wizard: function(){
|
||||
var self = this;
|
||||
if(jQuery("#wpfc-modal-" + self.id).length == 0){
|
||||
self.load_template(function(){
|
||||
self.fill_integration_fields();
|
||||
self.set_buttons_action();
|
||||
self.click_event_add_new_keyword_button();
|
||||
self.add_new_keyword_keypress();
|
||||
|
||||
if(self.id == "other" || self.id == "cloudflare"){
|
||||
self.show_page("next");
|
||||
self.hide_button("back");
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
insert_keywords: function(modal, classname, keywords){
|
||||
var self = this;
|
||||
|
||||
if(keywords){
|
||||
jQuery.each(keywords.split(","), function( index, value ) {
|
||||
jQuery('<li class="' + classname + '"><a class="keyword-label">' + value + '</a></li>').insertBefore(modal.find(".wpfc-add-new-keyword").closest("." + classname)).click(function(){
|
||||
jQuery(this).remove();
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
fill_integration_fields: function(){
|
||||
var self = this;
|
||||
var modal;
|
||||
|
||||
jQuery(self.values).each(function(i, e){
|
||||
modal = jQuery("#wpfc-wizard-" + e.id);
|
||||
|
||||
modal.find("input#cdn-url").val(e.cdnurl);
|
||||
modal.find("select#cdn-url").val(e.cdnurl);
|
||||
modal.find("#origin-url").val(e.originurl);
|
||||
|
||||
self.insert_keywords(modal, "keyword-item", e.keywords);
|
||||
self.insert_keywords(modal, "keyword-item-exclude", e.excludekeywords);
|
||||
|
||||
if(e.file_types){
|
||||
modal.find(".wpfc-checkbox-list input[type='checkbox']").attr("checked", false);
|
||||
|
||||
jQuery.each(e.file_types.split(","), function( index, value ) {
|
||||
modal.find("#file-type-" + value).attr("checked", true);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
add_new_keyword_keypress: function(){
|
||||
jQuery(".wpfc-textbox-con .fixed-search input").keypress(function(e){
|
||||
if(e.keyCode == 13){
|
||||
var keyword = jQuery(e.target).val();
|
||||
var keyword_type_class = jQuery(e.target).closest("li[class*='keyword-item']").attr("class");
|
||||
|
||||
jQuery(".wpfc-textbox-con").hide();
|
||||
jQuery(e.target).val("");
|
||||
jQuery('<li class="' + keyword_type_class + '"><a class="keyword-label">' + keyword + '</a></li>').insertBefore(jQuery(e.target).closest("." + keyword_type_class)).click(function(){
|
||||
jQuery(this).remove();
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
click_event_add_new_keyword_button: function(){
|
||||
jQuery(".wpfc-add-new-keyword").click(function(){
|
||||
jQuery(this).next(".wpfc-textbox-con").show();
|
||||
jQuery(this).next(".wpfc-textbox-con").find(".fixed-search input").focus();
|
||||
});
|
||||
},
|
||||
set_buttons_action: function(){
|
||||
var self = this;
|
||||
var action = "";
|
||||
var current_page, next_page, current_page_number;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
|
||||
self.buttons();
|
||||
|
||||
modal.find("button.wpfc-dialog-buttons").click(function(e){
|
||||
action = modal.find(e.currentTarget).attr("action");
|
||||
current_page_number = modal.find(".wpfc-cdn-pages-container div.wiz-cont:visible").attr("wpfc-cdn-page");
|
||||
|
||||
if(action == "next"){
|
||||
if(self.check_conditions("next", current_page_number)){
|
||||
self.show_page("next");
|
||||
}
|
||||
}else if(action == "back"){
|
||||
self.show_page("back");
|
||||
}else if(action == "finish"){
|
||||
self.save_integration();
|
||||
}else if(action == "close"){
|
||||
Wpfc_Dialog.remove();
|
||||
}else if(action == "remove"){
|
||||
self.remove_integration();
|
||||
}else if(action == "pause"){
|
||||
self.pause_integration();
|
||||
}else if(action == "start"){
|
||||
self.start_integration();
|
||||
}
|
||||
});
|
||||
},
|
||||
start_integration: function(){
|
||||
var self = this;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
|
||||
self.disable_button("start");
|
||||
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_start_cdn_integration", "id" : self.id, "nonce" : self.nonce},
|
||||
success: function(res){
|
||||
self.show_button("pause");
|
||||
self.enable_button("pause");
|
||||
self.hide_button("start");
|
||||
|
||||
jQuery("div[wpfc-cdn-name='" + self.id + "']").find("div.meta").removeClass("pause");
|
||||
|
||||
},
|
||||
error: function(e) {
|
||||
self.enable_button("start");
|
||||
alert("unknown error");
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
pause_integration: function(){
|
||||
var self = this;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
|
||||
self.disable_button("pause");
|
||||
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_pause_cdn_integration", "id" : self.id, "nonce" : self.nonce},
|
||||
success: function(res){
|
||||
self.show_button("start");
|
||||
self.enable_button("start");
|
||||
self.hide_button("pause");
|
||||
|
||||
jQuery("div[wpfc-cdn-name='" + self.id + "']").find("div.meta").addClass("pause");
|
||||
|
||||
},
|
||||
error: function(e) {
|
||||
self.enable_button("pause");
|
||||
alert("unknown error");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
remove_integration: function(){
|
||||
var self = this;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
|
||||
self.disable_button("remove");
|
||||
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_remove_cdn_integration", "id" : self.id, "nonce" : self.nonce},
|
||||
success: function(res){
|
||||
self.values = jQuery.grep(self.values, function (e, i) {
|
||||
if(e.id == self.id){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
self.enable_button("remove");
|
||||
jQuery("div.tab7 div[wpfc-cdn-name='" + self.id + "']").find("div.meta").removeClass("isConnected");
|
||||
Wpfc_Dialog.remove();
|
||||
console.log(res);
|
||||
},
|
||||
error: function(e) {
|
||||
self.enable_button("remove");
|
||||
alert("unknown error");
|
||||
}
|
||||
});
|
||||
},
|
||||
save_integration: function(){
|
||||
var self = this;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
|
||||
self.buttons();
|
||||
self.values = {};
|
||||
self.values.id = self.id;
|
||||
|
||||
self.disable_button("finish");
|
||||
|
||||
if(modal.find("input#cdn-url").length == 1){
|
||||
self.values.cdnurl = modal.find("input#cdn-url").val();
|
||||
}else if(modal.find("select#cdn-url").length == 1){
|
||||
self.values.cdnurl = modal.find("select#cdn-url").val();
|
||||
}
|
||||
|
||||
|
||||
self.values.originurl = modal.find("input#origin-url").val();
|
||||
self.values.file_types = modal.find(".wpfc-checkbox-list input[type='checkbox']:checked").map(function(){return this.value;}).get().join(",");
|
||||
self.values.keywords = modal.find(".keyword-item-list li.keyword-item a.keyword-label").map(function(){return this.text;}).get().join(",");
|
||||
self.values.excludekeywords = modal.find(".keyword-item-list li.keyword-item-exclude a.keyword-label").map(function(){return this.text;}).get().join(",");
|
||||
|
||||
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_save_cdn_integration", "nonce" : self.nonce, "values" : self.values, "file_types" : self.values.file_types, "keywords" : self.values.keywords, "excludekeywords" : self.values.excludekeywords},
|
||||
success: function(res){
|
||||
jQuery("div[wpfc-cdn-name='" + self.id + "']").find("div.meta").addClass("isConnected");
|
||||
|
||||
self.enable_button("finish");
|
||||
|
||||
self.show_page("next");
|
||||
console.log(res);
|
||||
},
|
||||
error: function(e) {
|
||||
self.enable_button("finish");
|
||||
alert("unknown error");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
},
|
||||
enable_button: function(button_type){
|
||||
clearInterval(this.interval);
|
||||
|
||||
let self = this;
|
||||
let modal = jQuery("#wpfc-modal-" + self.id);
|
||||
let button = modal.find(".wpfc-dialog-buttons[action='" + button_type + "']");
|
||||
|
||||
button.attr("disabled", false);
|
||||
button.text(button.text().replace(/\.+$/, ""));
|
||||
},
|
||||
disable_button: function(button_type){
|
||||
let self = this;
|
||||
let modal = jQuery("#wpfc-modal-" + self.id);
|
||||
let button = modal.find(".wpfc-dialog-buttons[action='" + button_type + "']");
|
||||
let text = button.text();
|
||||
let dot = 0;
|
||||
|
||||
button.attr("disabled", true);
|
||||
|
||||
button.text(text + ".");
|
||||
|
||||
self.interval = setInterval(function(){
|
||||
text = button.text();
|
||||
dot = text.match(/\./g);
|
||||
|
||||
console.log(dot);
|
||||
console.log(button);
|
||||
|
||||
if(dot){
|
||||
if(dot.length < 3){
|
||||
button.text(text + ".");
|
||||
}else{
|
||||
button.text(text.replace(/\.+$/, ""));
|
||||
}
|
||||
}else{
|
||||
button.text(text + ".");
|
||||
}
|
||||
}, 300);
|
||||
},
|
||||
check_url_exist: function(){
|
||||
var self = this;
|
||||
var modal = jQuery("#wpfc-modal-" + self.id);
|
||||
var cdn_url = modal.find("#cdn-url").val();
|
||||
var origin_url = modal.find("#origin-url").val();
|
||||
|
||||
if(!cdn_url || !origin_url){
|
||||
if(!cdn_url){
|
||||
modal.find("#cdn-url").css("background-color", "red");
|
||||
}else{
|
||||
modal.find("#cdn-url").css("background-color", "white");
|
||||
}
|
||||
|
||||
if(!origin_url){
|
||||
modal.find("#origin-url").css("background-color", "red");
|
||||
}else{
|
||||
modal.find("#origin-url").css("background-color", "white");
|
||||
}
|
||||
|
||||
return;
|
||||
}else{
|
||||
modal.find("#cdn-url").css("background-color", "white");
|
||||
modal.find("#origin-url").css("background-color", "white");
|
||||
}
|
||||
|
||||
modal.find("#cdn-url-loading").show();
|
||||
modal.find(".wpfc-cdn-pages-container div.wiz-cont:visible #cdn-url").nextAll("label").html("");
|
||||
jQuery.ajax({
|
||||
type: 'GET',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_check_url", "url" : cdn_url, "origin_url" : origin_url, "type" : WpfcCDN.id, "nonce" : self.nonce},
|
||||
success: function(res){
|
||||
modal.find("#cdn-url-loading").hide();
|
||||
if(res.success){
|
||||
self.show_page("next");
|
||||
modal.find("#cdn-url").css("background-color", "white");
|
||||
modal.find("#origin-url").css("background-color", "white");
|
||||
}else{
|
||||
if(WpfcCDN.id == "cloudflare"){
|
||||
modal.find("label.wiz-error-msg").html(res.error_message);
|
||||
}else{
|
||||
modal.find(".wpfc-cdn-pages-container div.wiz-cont:visible #cdn-url").nextAll("label").html(res.error_message);
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function(e) {
|
||||
modal.find("#cdn-url-loading").hide();
|
||||
alert("unknown error");
|
||||
}
|
||||
});
|
||||
},
|
||||
show_page: function(type){
|
||||
var current_page = jQuery("#wpfc-modal-" + this.id).find(".wpfc-cdn-pages-container div.wiz-cont:visible");
|
||||
current_page.hide();
|
||||
|
||||
if(type == "next"){
|
||||
current_page.next().show();
|
||||
}else if(type == "back"){
|
||||
current_page.prev().show();
|
||||
}
|
||||
this.buttons();
|
||||
},
|
||||
buttons: function(){
|
||||
var self = this;
|
||||
var current_page, next_pages;
|
||||
|
||||
current_page = jQuery("#wpfc-modal-" + this.id).find(".wpfc-cdn-pages-container div.wiz-cont:visible");
|
||||
next_pages = current_page.nextAll(".wiz-cont");
|
||||
|
||||
jQuery(".wpfc-dialog-buttons[action]").hide();
|
||||
|
||||
jQuery(self.values).each(function(i, e){
|
||||
if(e.id == self.id){
|
||||
self.show_button("remove");
|
||||
|
||||
if(typeof e.status != "undefined" && e.status == "pause"){
|
||||
self.show_button("start");
|
||||
}else{
|
||||
self.show_button("pause");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(next_pages.length){
|
||||
if(next_pages.length > 1){
|
||||
self.show_button("next");
|
||||
}else if(next_pages.length == 1){
|
||||
self.show_button("finish");
|
||||
}
|
||||
|
||||
if(jQuery("#wpfc-modal-" + this.id).find(".wpfc-cdn-pages-container div.wiz-cont:visible").attr("wpfc-cdn-page") > 1){
|
||||
if(current_page.attr("wpfc-cdn-page") == 2){
|
||||
if(self.id == "maxcdn"){
|
||||
self.show_button("back");
|
||||
}
|
||||
}else{
|
||||
self.show_button("back");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
self.show_button("close");
|
||||
}
|
||||
|
||||
},
|
||||
show_button: function(type){
|
||||
jQuery("#wpfc-modal-" + this.id + " .wpfc-dialog-buttons[action='" + type + "']").show();
|
||||
},
|
||||
hide_button: function(type){
|
||||
jQuery("#wpfc-modal-" + this.id + " .wpfc-dialog-buttons[action='" + type + "']").hide();
|
||||
},
|
||||
load_template: function(callbak){
|
||||
var self = this;
|
||||
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
url: ajaxurl,
|
||||
data : {"action": "wpfc_cdn_template", "id": self.id},
|
||||
success: function(res){
|
||||
jQuery("body").append(res.content);
|
||||
Wpfc_Dialog.dialog("wpfc-modal-" + self.id);
|
||||
callbak();
|
||||
jQuery("#revert-loader-toolbar").hide();
|
||||
},
|
||||
error: function(e) {
|
||||
alert("CDN Template Error");
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user