diff --git a/account/assets/js/panelHandlers/security/filter_ip.js b/account/assets/js/panelHandlers/security/filter_ip.js new file mode 100644 index 0000000..1424596 --- /dev/null +++ b/account/assets/js/panelHandlers/security/filter_ip.js @@ -0,0 +1,22 @@ +var ipModal = jQuery('.ip-filter-modal'); + +jQuery('._js_ip-filter-form').on('submit', function(e){ + e.preventDefault(); + + var requestData = {}; + requestData["ip"] = jQuery(this).find('input[name="ip"]').val(); + requestData["type"] = jQuery(this).find('input[name="type"]').val(); + + var xhr = new XMLHttpRequest(); + xhr.open(jQuery(this).attr('method'), jQuery(this).attr('action'), true); + xhr.send(JSON.stringify(requestData)); + + xhr.onloadend = function() { + if (xhr.status == 204) { + listFilteredIPs(requestData["type"]); + } + else { + alert("Something went wrong trying to filter that IP, please contact your administrator if problem persists."); + } + } +}); diff --git a/account/assets/js/panelHandlers/security/ipFiltering.js b/account/assets/js/panelHandlers/security/ipFiltering.js deleted file mode 100644 index 329c948..0000000 --- a/account/assets/js/panelHandlers/security/ipFiltering.js +++ /dev/null @@ -1,22 +0,0 @@ -var ipModal = jQuery('.ip-filter-modal'); - -jQuery('._js_ip-filtering-open').on('click', function(e){ - e.preventDefault(); - - var title; - switch(jQuery(this).attr('data')) { - case "general": - title = "General"; - break; - case "maintenance": - title = "Maintenance Mode"; - break; - default: - alert("Error, refresh and try again. If problem persists contact server administrator."); - return; - } - title += " IP Filtering"; - - ipModal.find('.modal-title').html(title); - ipModal.modal('show'); -}); diff --git a/account/assets/js/panelHandlers/security/ip_list.js b/account/assets/js/panelHandlers/security/ip_list.js new file mode 100644 index 0000000..3505ed5 --- /dev/null +++ b/account/assets/js/panelHandlers/security/ip_list.js @@ -0,0 +1,66 @@ +var ipModal = jQuery('.ip-filter-modal'); + +jQuery('._js_ip-filtering-open').on('click', function(e){ + e.preventDefault(); + + var title; + switch(jQuery(this).attr('data')) { + case "block": + title = "Block"; + ipModal.find('input[name="type"]').attr('value', 'block'); + ipModal.find('#filterIPHelp').html("Filtering this IP under the block filter type will disallow access to the website for all modes."); + break; + case "maintenance": + title = "Maintenance"; + ipModal.find('input[name="type"]').attr('value', 'maintenance'); + ipModal.find('#filterIPHelp').html("Whitelisting this IP under the maintenance filter type will allow access to the website during maintenance mode."); + break; + default: + alert("Error, refresh and try again. If problem persists contact server administrator."); + return; + } + title = "IP Filtering - " + title; + + ipModal.find('.modal-title').html(title); + + listFilteredIPs(jQuery(this).attr('data')); + + ipModal.modal('show'); +}); + +function listFilteredIPs(type) { + ipModal.find('._js_currently-filtered-ips').html(''); + + var requestData = {} + requestData["type"] = type; + + var xhr = new XMLHttpRequest(); + xhr.open('POST', 'api/ip/list', true); + xhr.send(JSON.stringify(requestData)); + + xhr.onloadend = function() { + if(xhr.status == 200) { + if(xhr.response != undefined && xhr.response.length != 0) { + jsonResponse = JSON.parse(xhr.response) + console.log(xhr.response); + jQuery.each(jsonResponse, function(k, v) { + ipModal.find('._js_currently-filtered-ips').append("
Coming soon!
+ + +