OwlCyberSecurity - MANAGER
Edit File: 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"); } }); } };