diff --git a/src/opnsense/www/js/widgets/Carp.js b/src/opnsense/www/js/widgets/Carp.js index 2a8e51e5e..c6b54c98b 100644 --- a/src/opnsense/www/js/widgets/Carp.js +++ b/src/opnsense/www/js/widgets/Carp.js @@ -53,6 +53,8 @@ export default class Carp extends BaseTableWidget { return; } + $('.carp-status-icon').tooltip('hide'); + let ifs = {}; data.rows.forEach(({ interface: iface, vhid, status, status_txt, subnet, mode, vhid_txt }) => { @@ -70,7 +72,7 @@ export default class Carp extends BaseTableWidget { let $intf = `
${primary.interface} @ VHID ${primary.vhid}
`; let vips = [ `
- @@ -83,7 +85,7 @@ export default class Carp extends BaseTableWidget { aliases.forEach(({ status, status_txt, subnet }) => { vips.push(`
- @@ -97,6 +99,6 @@ export default class Carp extends BaseTableWidget { this.updateTable('carp-table', [[$intf, vips]], `carp_${primary.interface}_${primary.vhid}`); }); - $('[data-toggle="tooltip"]').tooltip(); + $('.carp-status-icon').tooltip({container: 'body'}); } } diff --git a/src/opnsense/www/js/widgets/Gateways.js b/src/opnsense/www/js/widgets/Gateways.js index 660965253..b36ca2969 100644 --- a/src/opnsense/www/js/widgets/Gateways.js +++ b/src/opnsense/www/js/widgets/Gateways.js @@ -47,6 +47,7 @@ export default class Gateways extends BaseTableWidget { } async onWidgetTick() { + $('.gateways-status-icon').tooltip('hide'); const data = await this.ajaxCall('/api/routes/gateway/status'); if (data.items === undefined) { return; @@ -72,7 +73,7 @@ export default class Gateways extends BaseTableWidget { } let gw = `
-   @@ -91,6 +92,6 @@ export default class Gateways extends BaseTableWidget { this.updateTable('gateway-table', [[gw, stats]], `gw_${name}`); }); - $('[data-toggle="tooltip"]').tooltip(); + $('.gateways-status-icon').tooltip({container: 'body'}); } } diff --git a/src/opnsense/www/js/widgets/Interfaces.js b/src/opnsense/www/js/widgets/Interfaces.js index 4c93b9af5..27ed166c8 100644 --- a/src/opnsense/www/js/widgets/Interfaces.js +++ b/src/opnsense/www/js/widgets/Interfaces.js @@ -55,6 +55,8 @@ export default class Interfaces extends BaseTableWidget { return; } + $('.if-status-icon').tooltip('hide'); + let rows = []; data.rows.map((intf_data) => { if (!intf_data.hasOwnProperty('config') || intf_data.enabled == false) { @@ -69,7 +71,7 @@ export default class Interfaces extends BaseTableWidget { row.push($(`
- + ${intf_data.description} @@ -106,7 +108,7 @@ export default class Interfaces extends BaseTableWidget { super.updateTable('if-table', rows); - $('[data-toggle="tooltip"]').tooltip(); + $('.if-status-icon').tooltip({container: 'body'}); } onWidgetResize(elem, width, height) { diff --git a/src/opnsense/www/js/widgets/IpsecLeases.js b/src/opnsense/www/js/widgets/IpsecLeases.js index 2a618108e..1b027fc2a 100644 --- a/src/opnsense/www/js/widgets/IpsecLeases.js +++ b/src/opnsense/www/js/widgets/IpsecLeases.js @@ -80,6 +80,8 @@ export default class IpsecLeases extends BaseTableWidget { return; // No changes detected, do not update the UI } + $('.ipsecleases-status-icon').tooltip('hide'); + let users = {}; // Initialize an object to store user data indexed by user names // Organize leases by user @@ -121,7 +123,7 @@ export default class IpsecLeases extends BaseTableWidget { let row = `
-   @@ -138,6 +140,6 @@ export default class IpsecLeases extends BaseTableWidget { super.updateTable('ipsecLeaseTable', rows.map(row => [row])); // Activate tooltips for new dynamic elements - $('[data-toggle="tooltip"]').tooltip(); + $('.ipsecleases-status-icon').tooltip({container: 'body'}); } } diff --git a/src/opnsense/www/js/widgets/IpsecTunnels.js b/src/opnsense/www/js/widgets/IpsecTunnels.js index 1d9859d2b..58c483c05 100644 --- a/src/opnsense/www/js/widgets/IpsecTunnels.js +++ b/src/opnsense/www/js/widgets/IpsecTunnels.js @@ -79,6 +79,8 @@ export default class IpsecTunnels extends BaseTableWidget { return; // No changes detected, do not update the UI } + $('.ipsectunnels-status-icon').tooltip('hide'); + let tunnels = newTunnels.map(tunnel => ({ localAddrs: tunnel['local-addrs'], remoteAddrs: tunnel['remote-addrs'], @@ -104,7 +106,7 @@ export default class IpsecTunnels extends BaseTableWidget { tunnels.forEach(tunnel => { let row = `
-   @@ -121,6 +123,6 @@ export default class IpsecTunnels extends BaseTableWidget { super.updateTable('ipsecTunnelTable', rows.map(row => [row])); // Activate tooltips for new dynamic elements - $('[data-toggle="tooltip"]').tooltip(); + $('.ipsectunnels-status-icon').tooltip({container: 'body'}); } } diff --git a/src/opnsense/www/js/widgets/Monit.js b/src/opnsense/www/js/widgets/Monit.js index 645316644..ae925dd4c 100644 --- a/src/opnsense/www/js/widgets/Monit.js +++ b/src/opnsense/www/js/widgets/Monit.js @@ -86,6 +86,9 @@ export default class Monit extends BaseTableWidget { return; } + $('.monit-status-icon').tooltip('hide'); + $('.monit-type-icon').tooltip('hide'); + let rows = []; $.each(data['status']['service'], (index, service) => { let color = this.statusColors[service['status']] || "text-success"; @@ -93,11 +96,11 @@ export default class Monit extends BaseTableWidget { let $header = $(`
-   -   @@ -110,5 +113,8 @@ export default class Monit extends BaseTableWidget { }); this.updateTable('monit-table', rows); + + $('.monit-status-icon').tooltip({container: 'body'}); + $('.monit-type-icon').tooltip({container: 'body'}); } } diff --git a/src/opnsense/www/js/widgets/Services.js b/src/opnsense/www/js/widgets/Services.js index cdd353a2d..361188736 100644 --- a/src/opnsense/www/js/widgets/Services.js +++ b/src/opnsense/www/js/widgets/Services.js @@ -50,7 +50,7 @@ export default class Services extends BaseTableWidget { serviceControl(actions) { return actions.map(({ action, id, title, icon }) => ` `).join(''); @@ -68,6 +68,9 @@ export default class Services extends BaseTableWidget { return; } + $('.service-status').tooltip('hide'); + $('.srv_status_act2').tooltip('hide'); + for (const service of data.rows) { let name = service.name; let description = service.description; @@ -85,7 +88,7 @@ export default class Services extends BaseTableWidget { let $buttonContainer = $(`
@@ -97,7 +100,8 @@ export default class Services extends BaseTableWidget { super.updateTable('services-table', [[description, $buttonContainer.prop('outerHTML')]], service.id); } - $('[data-toggle="tooltip"]').tooltip(); + $('.service-status').tooltip({container: 'body'}); + $('.srv_status_act2').tooltip({container: 'body'}); $('.srv_status_act2').on('click', async (event) => { this.locked = true; diff --git a/src/opnsense/www/js/widgets/ThermalSensors.js b/src/opnsense/www/js/widgets/ThermalSensors.js index 1cd21e1ac..56cffa716 100644 --- a/src/opnsense/www/js/widgets/ThermalSensors.js +++ b/src/opnsense/www/js/widgets/ThermalSensors.js @@ -174,8 +174,8 @@ export default class ThermalSensors extends BaseWidget { this.chart = new Chart(context, config); - $(`#${this.id}-title`).append(` `); - $('[data-toggle="tooltip"]').tooltip({container: 'body', triger: 'hover'}); + $(`#${this.id}-title`).append(` `); + $('.thermalsensors-info-icon').tooltip({container: 'body'}); } async onWidgetTick() { diff --git a/src/opnsense/www/js/widgets/Wireguard.js b/src/opnsense/www/js/widgets/Wireguard.js index 22ae7bce1..991846aae 100644 --- a/src/opnsense/www/js/widgets/Wireguard.js +++ b/src/opnsense/www/js/widgets/Wireguard.js @@ -75,6 +75,7 @@ export default class Wireguard extends BaseTableWidget { } processTunnels(newTunnels) { + $('.wireguard-interface').tooltip('hide'); let tunnels = newTunnels.filter(row => row.type == 'peer').map(row => ({ ifname: row.ifname ? row.if + ' (' + row.ifname + ') ' : row.if, name: row.name, @@ -92,9 +93,9 @@ export default class Wireguard extends BaseTableWidget { tunnels.forEach(tunnel => { let row = `
-
+
${tunnel.ifname} - + ${tunnel.name}
@@ -112,6 +113,6 @@ export default class Wireguard extends BaseTableWidget { super.updateTable('wgTunnelTable', rows.map(row => [row])); // Activate tooltips for new dynamic elements - $('[data-toggle="tooltip"]').tooltip(); + $('.wireguard-interface').tooltip(); } }