From 6c7871596e37e4286f85ba8bb1d45a0db987a4af Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Thu, 19 Jan 2017 11:30:58 +0100 Subject: [PATCH] Host pools UI improvements --- httpdocs/js/ntopng_utils.js | 64 ++++++++++++++++++----------- scripts/locales/en.lua | 3 +- scripts/lua/admin/host_pools.lua | 12 ++++-- scripts/lua/if_stats.lua | 6 +-- scripts/lua/inc/add_user_dialog.lua | 6 --- 5 files changed, 54 insertions(+), 37 deletions(-) diff --git a/httpdocs/js/ntopng_utils.js b/httpdocs/js/ntopng_utils.js index 0f080f8496..5509e8591f 100644 --- a/httpdocs/js/ntopng_utils.js +++ b/httpdocs/js/ntopng_utils.js @@ -51,35 +51,53 @@ function is_mac_address(what) { return /^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/.test(what); } -function is_valid_pool_member(what) { - return is_mac_address(what) || is_network_mask(what); -} - -function is_network_mask(what) { +function is_network_mask(what, optional_mask) { var elems = what.split("/"); - var mask; + var mask = null; + var ip_addr; - if(elems.length != 2) - return(false); + if(elems.length != 2) { + if (! optional_mask) + return null; + else + ip_addr = what; + } else { + ip_addr = elems[0]; - if(!isNumeric(elems[1])) { - return(false); - } + if(!isNumeric(elems[1])) + return null; - mask = parseInt(elems[1]); - if(mask < 0) { - return(false); - } + mask = parseInt(elems[1]); - if(is_good_ipv4(elems[0])) { - if(mask > 32) { return(false); } - return(true); - } else if(is_good_ipv6(elems[0])) { - if(mask > 128) { return(false); } - return(true); - } + if(mask < 0) + return null; + } - return(false); + if(is_good_ipv4(ip_addr)) { + if (mask === null) + mask = 32; + else if (mask > 32) + return null; + + return { + type: "ipv4", + address: ip_addr, + mask: mask + }; + } else if(is_good_ipv6(elems[0])) { + if (mask === null) + mask = 128; + else if (mask > 128) + return(false); + + return { + type: "ipv6", + address: ip_addr, + mask: mask + }; + } + + return null; } function makeUniqueValidator(items_function) { diff --git a/scripts/locales/en.lua b/scripts/locales/en.lua index de49de77ac..e63244b5ec 100644 --- a/scripts/locales/en.lua +++ b/scripts/locales/en.lua @@ -183,6 +183,7 @@ local en = { }, host_pools = { + edit_host_pools = "Edit Host Pools", pool = "Pool Name", manage_pools = "Manage Pools", create_pools = "Create Pools", @@ -193,7 +194,7 @@ local en = { default_pool_read_only = "The default pool is where unassigned hosts will go. Create new pools from the 'Create Pools' tab to start modifing them.", member_address = "Member Address", specify_pool_name = "Specify a pool name", - specify_member_address = "Specify a IPv4/IPv6 address or a MAC address", + specify_member_address = "Specify an IPv4/IPv6 address or network or a MAC address", invalid_member = "Invalid member address format", duplicate_member = "Duplicate member address", duplicate_pool = "Duplicate pool name", diff --git a/scripts/lua/admin/host_pools.lua b/scripts/lua/admin/host_pools.lua index f8bb624d0a..7c8bd17708 100644 --- a/scripts/lua/admin/host_pools.lua +++ b/scripts/lua/admin/host_pools.lua @@ -116,7 +116,7 @@ end print [[
-

Edit Host Pools

+

]] print(i18n("host_pools.edit_host_pools")) print[[