8 changed files with 101 additions and 41 deletions
-
12djing/lib/tln/tln.py
-
24ip_pool/forms.py
-
18ip_pool/models.py
-
8ip_pool/templates/ip_pool/net_add.html
-
8ip_pool/templates/ip_pool/net_edit.html
-
49static/js/cidr.js
-
22static/js/my.js
-
1templates/all_base.html
@ -0,0 +1,49 @@ |
|||||
|
(function ($){ |
||||
|
$.fn.cidr_validator = function(opts){ |
||||
|
var IP4_REG = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/s; |
||||
|
var IP6_REG = /^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?$/s; |
||||
|
var settings = $.extend( { |
||||
|
res_label: this.find('.panel-title>span') |
||||
|
}, opts); |
||||
|
|
||||
|
var net_inp = this.find('#id_network'); |
||||
|
var mask_inp = this.find('#id_mask'); |
||||
|
/*var wrsi = this.children('#id_work_range_start_ip'); |
||||
|
var wrei = this.children('#id_work_range_end_ip');*/ |
||||
|
|
||||
|
var validate_ip_by_key = function(){ |
||||
|
var v = this.value; |
||||
|
var o = $(this).closest('.form-group-sm,.form-group'); |
||||
|
o.removeClass('has-error has-success'); |
||||
|
if(v.match(IP4_REG) !== null){ |
||||
|
mask_inp.val('24'); |
||||
|
o.addClass('has-success'); |
||||
|
}else |
||||
|
if(v.match(IP6_REG) !== null){ |
||||
|
mask_inp.val('64'); |
||||
|
o.addClass('has-success'); |
||||
|
}else |
||||
|
o.addClass('has-error'); |
||||
|
}; |
||||
|
var validate_ip_by_focus_lost = function(){ |
||||
|
console.log('Lost'); |
||||
|
var v = this.value; |
||||
|
if(v.includes('/')){ |
||||
|
var chunks = v.split('/'); |
||||
|
if(chunks[1] !== ""){ |
||||
|
net_inp.val(chunks[0]); |
||||
|
mask_inp.val(chunks[1]); |
||||
|
settings.res_label.text(v); |
||||
|
} |
||||
|
}else { |
||||
|
settings.res_label.text(v + '/' + mask_inp.val()); |
||||
|
} |
||||
|
}; |
||||
|
net_inp.on('keyup', validate_ip_by_key).on('focusout', validate_ip_by_focus_lost); |
||||
|
}; |
||||
|
})(jQuery); |
||||
|
|
||||
|
|
||||
|
$(document).ready(function () { |
||||
|
$('div.cidr-contain').cidr_validator(); |
||||
|
}); |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue