mirror of
https://github.com/ntop/ntopng.git
synced 2026-04-30 16:09:32 +00:00
150 lines
3.9 KiB
Text
150 lines
3.9 KiB
Text
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="card card-shadow">
|
|
<div class="card-header">
|
|
{* template_utils.gen("pages/components/nav_tabs.template", menu) *}
|
|
</div>
|
|
{* template_utils.gen("pages/tabs/manage_data/" .. manage_data.page .. ".template", manage_data) *}
|
|
</div>
|
|
{* ui_utils.render_notes(manage_data.note) *}
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
|
|
function delete_data_show_modal() {
|
|
|
|
$(".modal-body #modal_host").html(" " + $('#delete_host').val());
|
|
|
|
if ($('#delete_vlan').val() != "") {
|
|
|
|
$(".modal-body #modal_vlan").html("@" + $('#delete_vlan').val());
|
|
}
|
|
|
|
$('#delete_data').modal('show');
|
|
|
|
return false;
|
|
}
|
|
|
|
function delete_data() {
|
|
const params = {};
|
|
params.ifid = '{{ tostring(getInterfaceId(ifname)) }}';
|
|
params.host = $('#delete_host').val();
|
|
params.vlan = $('#delete_vlan').val();
|
|
params.page = 'delete';
|
|
|
|
params.csrf = "{{ ntop.getRandomCSRFValue() }}";
|
|
|
|
const form = NtopUtils.paramsToForm('<form method="post"></form>', params);
|
|
|
|
aysResetForm($("#host_data_form_delete")); // clean the form to void alert message
|
|
form.appendTo('body').submit();
|
|
}
|
|
|
|
function delete_interfaces_data_show_modal(modal_id) {
|
|
|
|
$('#' + modal_id).modal('show');
|
|
/* abort submit */
|
|
return false;
|
|
}
|
|
|
|
function delete_interfaces_data(action) {
|
|
const params = {[action] : ''};
|
|
|
|
params.page = 'delete';
|
|
params.ifid = {{ getInterfaceId(ifname) }};
|
|
|
|
params.csrf = "{{ ntop.getRandomCSRFValue() }}";
|
|
|
|
var form = NtopUtils.paramsToForm('<form method="post"></form>', params);
|
|
|
|
form.appendTo('body').submit();
|
|
}
|
|
|
|
function setActiveHashTab(hash) {
|
|
$('#manage-data-nav a[href="' + hash + '"]').tab('show');
|
|
}
|
|
|
|
function prepare_typeahead(host_id, vlan_id, buttons_id) {
|
|
$('#' + host_id).val('');
|
|
$('#' + vlan_id).val('');
|
|
|
|
$('#' + host_id).typeahead({
|
|
source: function (query, process) {
|
|
return $.get('{{ ntop.getHttpPrefix() }}/lua/rest/v2/get/host/find.lua', { query: query, hosts_only: true }, function (data) {
|
|
return process(data.rsp.results);
|
|
});
|
|
},
|
|
afterSelect: function(item) {
|
|
$('#' + host_id).val(item.ip.split("@")[0]);
|
|
$('#' + vlan_id).val(item.ip.split("@")[1] || '');
|
|
|
|
/* retrigger validation */
|
|
const form = $('#' + host_id).closest("form");
|
|
form.removeClass('dirty');
|
|
form.validator('validate');
|
|
}
|
|
});
|
|
|
|
$('#' + buttons_id + ' :input').change(function() {
|
|
|
|
$('#' + vlan_id + ', #' + host_id).prop('disabled', this.id === "single_host" ? false : true);
|
|
|
|
if(this.id !== "single_host") {
|
|
$('#' + vlan_id).val('');
|
|
$('#' + host_id).val('');
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
function deleteHostValidator(input) {
|
|
|
|
if (hostOrMacValidator(input)) return true;
|
|
|
|
/* check for a /24-/32 IPv4 network */
|
|
/* mandatory mask */
|
|
|
|
if (NtopUtils.is_network_mask(input.val(), false)) {
|
|
|
|
const elems = input.val().split("/");
|
|
if ((elems.length == 2) && NtopUtils.is_good_ipv4(elems[0]) && (parseInt(elems[1]) >= 24))
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
$(document).ready(function(){
|
|
|
|
$('#host_data_form_delete').areYouSure();
|
|
|
|
prepare_typeahead('export_host', 'export_vlan', 'export_hosts_buttons');
|
|
prepare_typeahead('delete_host', 'delete_vlan', 'delete_hosts_buttons');
|
|
|
|
const validator_options = {
|
|
disable: true,
|
|
custom: {
|
|
host: deleteHostValidator,
|
|
},
|
|
errors: {
|
|
host: "{{ i18n('manage_data.mac_or_ip_required') }}.",
|
|
}
|
|
}
|
|
|
|
$("#host_data_form_delete").validator(validator_options);
|
|
|
|
aysHandleForm("#host_data_form_delete");
|
|
|
|
});
|
|
|
|
/* Handle tab state across requests */
|
|
$("ul.nav-tabs > li > a").on("shown.bs.tab", function(e) {
|
|
const id = $(e.target).attr("href").substr(1);
|
|
history.replaceState(null, null, "#"+id);
|
|
});
|
|
|
|
if (window.location.hash) setActiveHashTab(window.location.hash);
|
|
|
|
</script>
|