@@ -21,7 +34,7 @@
@@ -69,6 +82,35 @@
let table = undefined;
let VUE_APP;
+ function start_navbar() {
+ let navbar_vue_options = {
+ components: {
+ 'page-navbar': Vue.defineAsyncComponent( () => ntopng_vue_loader.loadModule(`${base_path}/vue/components/page-navbar.vue`, ntopng_vue_loader.loadOptions) ),
+ },
+ /**
+ * First method called when the component is created.
+ */
+ created() {},
+ mounted() {
+ },
+ data() {
+ return {
+ navbar_context: navbar_context,
+ };
+ },
+ methods: {
+ click_item: function(item) {
+ ntopng_url_manager.set_key_to_url('page', item.page_name);
+ ntopng_url_manager.set_key_to_url('query_preset', '');
+ ntopng_url_manager.reload_url();
+ },
+ },
+ };
+ const navbar_vue = Vue.createApp(navbar_vue_options);
+ const vue_app = navbar_vue.mount("#navbar");
+ return vue_app;
+ }
+
function start_range_picker() {
let datatable_vue_options = {
props: {
@@ -84,8 +126,6 @@
mounted() {},
data() {
return {
- id_range_picker: `range_picker`,
- i18n: (t) => { return i18n(t); },
};
},
methods: {},
@@ -96,6 +136,7 @@
}
$(document).ready(async function(){
+ setTimeout(() => start_navbar(), 0);
if (ntopng_url_manager.get_url_entry("ifid") == null) {
ntopng_url_manager.add_obj_to_url({ifid: default_ifid});
}
@@ -109,7 +150,6 @@
VUE_APP = start_range_picker();
await ntopng_sync.on_ready("range_picker");
-
NtopUtils.hideOverlays();
ntopng_status_manager.on_status_change("datatable", (new_status) => {
diff --git a/httpdocs/vue/components/page-navbar.vue b/httpdocs/vue/components/page-navbar.vue
new file mode 100644
index 0000000000..ca79553b15
--- /dev/null
+++ b/httpdocs/vue/components/page-navbar.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
diff --git a/httpdocs/vue/components/range-picker.vue b/httpdocs/vue/components/range-picker.vue
index 904ad37f6e..900d31760b 100644
--- a/httpdocs/vue/components/range-picker.vue
+++ b/httpdocs/vue/components/range-picker.vue
@@ -145,7 +145,10 @@ const load_filters_data = async function() {
let options_string = value.split(",");
options_string.forEach((opt_stirng) => {
let [value, operator] = opt_stirng.split(";");
- if (operator == null || value == null || operator == "") {
+ if (
+ operator == null || value == null || operator == ""
+ || (filter_def.options != null && filter_def.options.find((opt) => opt.value == value) == null)
+ ) {
return;
}
filters.push({id: filter_def.id, operator: operator, value: value});
@@ -197,7 +200,7 @@ async function set_query_preset(range_picker_vue) {
});
}
if (range_picker_vue.query_presets == null || range_picker_vue.query_presets == "") {
- range_picker_vue.query_presets = query_preset[0].value;
+ range_picker_vue.query_presets = query_preset[0].value;
ntopng_url_manager.set_key_to_url("query_preset", query_preset[0].value);
}
range_picker_vue.query_preset = query_preset;
@@ -278,7 +281,7 @@ export default {
let filters = status.filters;
if (filters == null) { return; }
// delete all previous filter
- ntopng_url_manager.delete_params(this.last_filters.map((f) => f.id));
+ ntopng_url_manager.delete_params(FILTERS_CONST.map((f) => f.id));
TAGIFY.tagify.removeAllTags();
let filters_object = get_filters_object(filters);
ntopng_url_manager.add_obj_to_url(filters_object);
diff --git a/scripts/lua/alert_stats.lua b/scripts/lua/alert_stats.lua
index d56fa60d79..ed1f8681be 100644
--- a/scripts/lua/alert_stats.lua
+++ b/scripts/lua/alert_stats.lua
@@ -300,7 +300,7 @@ dofile(dirs.installdir .. "/scripts/lua/inc/menu.lua")
local url = ntop.getHttpPrefix() .. "/lua/alert_stats.lua?"
-page_utils.print_navbar(i18n("alerts_dashboard.alerts"), url, pages)
+-- page_utils.print_navbar(i18n("alerts_dashboard.alerts"), url, pages)
widget_gui_utils.register_timeseries_area_chart(CHART_NAME, 0, {
Datasource(endpoint_ts, {
@@ -718,6 +718,7 @@ local context = {
name = CHART_NAME
},
datatable = datatable,
+ navbar = json.encode(page_utils.get_navbar_context(i18n("alerts_dashboard.alerts"), url, pages)),
extra_js = "pages/alerts/datatable.js.template",
extra_js_context = {
ifid = ifid,
diff --git a/scripts/lua/modules/page_utils.lua b/scripts/lua/modules/page_utils.lua
index 34fa3b20b3..285e0d244c 100644
--- a/scripts/lua/modules/page_utils.lua
+++ b/scripts/lua/modules/page_utils.lua
@@ -407,6 +407,23 @@ end
-- #################################
+function page_utils.get_navbar_context(title, base_url, items_table, label_url, back_url)
+ local help_link = page_utils.menu_entries[active_entry].help_link or nil
+ local icon = page_utils.menu_sections[active_section].icon or ""
+
+ local navbar = {
+ main_icon = icon,
+ main_title = title,
+ base_url = base_url,
+ items_table = items_table,
+ label_url = label_url,
+ back_url = back_url,
+ help_link = help_link
+ }
+ return navbar
+end
+-- #################################
+
function page_utils.print_navbar(title, base_url, items_table, label_url, back_url)
local help_link = page_utils.menu_entries[active_entry].help_link or nil
local icon = page_utils.menu_sections[active_section].icon or ""