Current File : /home/virtualki/22346/wp-content/plugins/wp-fastest-cache/js/cdn/cdn.js |
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");
}
});
}
};