mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
FEAT: Add back-end support for WispGate integration.
* Add the wispgate enable, API key and API url config options (as optional). * Set defaults. * Update the config UI to match. * Update the Python library to export `automatic_import_wispgate`, `wispgate_api_token` and `wispgate_api_url`
This commit is contained in:
parent
d7fd99eee3
commit
4f5dbec93c
@ -15,6 +15,8 @@ mod powercode_integration;
|
||||
mod sonar_integration;
|
||||
pub mod influxdb;
|
||||
mod flows;
|
||||
mod wispgate;
|
||||
|
||||
pub use bridge::*;
|
||||
pub use long_term_stats::LongTermStats;
|
||||
pub use tuning::Tunables;
|
@ -72,6 +72,9 @@ pub struct Config {
|
||||
/// InfluxDB Configuration
|
||||
pub influxdb: Option<super::influxdb::InfluxDbConfig>,
|
||||
|
||||
/// WispGate Integration
|
||||
pub wispgate_integration: Option<super::wispgate::WispGateIntegration>,
|
||||
|
||||
/// Option to disable the webserver for headless/CLI operation
|
||||
pub disable_webserver: Option<bool>,
|
||||
|
||||
@ -139,6 +142,7 @@ impl Default for Config {
|
||||
uisp_integration: super::uisp_integration::UispIntegration::default(),
|
||||
powercode_integration: super::powercode_integration::PowercodeIntegration::default(),
|
||||
sonar_integration: super::sonar_integration::SonarIntegration::default(),
|
||||
wispgate_integration: None,
|
||||
influxdb: None,
|
||||
packet_capture_time: 10,
|
||||
queue_check_period_ms: 1000,
|
||||
|
8
src/rust/lqos_config/src/etc/v15/wispgate.rs
Normal file
8
src/rust/lqos_config/src/etc/v15/wispgate.rs
Normal file
@ -0,0 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Default)]
|
||||
pub struct WispGateIntegration {
|
||||
pub enable_wispgate: bool,
|
||||
pub wispgate_api_token: String,
|
||||
pub wispgate_api_url: String,
|
||||
}
|
@ -94,6 +94,9 @@ fn liblqos_python(_py: Python, m: &PyModule) -> PyResult<()> {
|
||||
m.add_wrapped(wrap_pyfunction!(is_network_flat))?;
|
||||
m.add_wrapped(wrap_pyfunction!(blackboard_finish))?;
|
||||
m.add_wrapped(wrap_pyfunction!(blackboard_submit))?;
|
||||
m.add_wrapped(wrap_pyfunction!(automatic_import_wispgate))?;
|
||||
m.add_wrapped(wrap_pyfunction!(wispgate_api_token))?;
|
||||
m.add_wrapped(wrap_pyfunction!(wispgate_api_url))?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -736,4 +739,31 @@ pub fn blackboard_submit(subsystem: String, key: String, value: String) -> PyRes
|
||||
};
|
||||
let _ = run_query(vec![BusRequest::BlackboardData { subsystem, key, value }]);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn automatic_import_wispgate() -> PyResult<bool> {
|
||||
let config = lqos_config::load_config().unwrap();
|
||||
let Some(wisp_gate) = config.wispgate_integration.as_ref() else {
|
||||
return Ok(false);
|
||||
};
|
||||
Ok(wisp_gate.enable_wispgate)
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn wispgate_api_token() -> PyResult<String> {
|
||||
let config = lqos_config::load_config().unwrap();
|
||||
let Some(wisp_gate) = config.wispgate_integration.as_ref() else {
|
||||
return Ok(String::new());
|
||||
};
|
||||
Ok(wisp_gate.wispgate_api_token.clone())
|
||||
}
|
||||
|
||||
#[pyfunction]
|
||||
fn wispgate_api_url() -> PyResult<String> {
|
||||
let config = lqos_config::load_config().unwrap();
|
||||
let Some(wisp_gate) = config.wispgate_integration.as_ref() else {
|
||||
return Ok(String::new());
|
||||
};
|
||||
Ok(wisp_gate.wispgate_api_url.clone())
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
scripts=( index.js template.js login.js first-run.js shaped-devices.js tree.js help.js unknown-ips.js configuration.js circuit.js flow_map.js all_tree_sankey.js asn_explorer.js lts_trial.js config_general.js config_anon.js config_tuning.js config_queues.js config_lts.js config_iprange.js config_flows.js config_integration.js config_spylnx.js config_uisp.js config_powercode.js config_sonar.js config_interface.js config_network.js config_devices.js config_users.js )
|
||||
scripts=( index.js template.js login.js first-run.js shaped-devices.js tree.js help.js unknown-ips.js configuration.js circuit.js flow_map.js all_tree_sankey.js asn_explorer.js lts_trial.js config_general.js config_anon.js config_tuning.js config_queues.js config_lts.js config_iprange.js config_flows.js config_integration.js config_spylnx.js config_uisp.js config_powercode.js config_sonar.js config_interface.js config_network.js config_devices.js config_users.js config_wispgate.js )
|
||||
for script in "${scripts[@]}"
|
||||
do
|
||||
echo "Building {$script}"
|
||||
|
@ -0,0 +1,62 @@
|
||||
import {saveConfig, loadConfig} from "./config/config_helper";
|
||||
|
||||
function validateConfig() {
|
||||
// Validate required fields when enabled
|
||||
if (document.getElementById("enableWispgate").checked) {
|
||||
const apiKey = document.getElementById("wispgate_api_token").value.trim();
|
||||
if (!apiKey) {
|
||||
alert("API Key is required when WispGate integration is enabled");
|
||||
return false;
|
||||
}
|
||||
|
||||
const apiUrl = document.getElementById("wispgate_api_url").value.trim();
|
||||
if (!apiUrl) {
|
||||
alert("API URL is required when WispGate integration is enabled");
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
new URL(apiUrl);
|
||||
} catch {
|
||||
alert("API URL must be a valid URL");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function updateConfig() {
|
||||
// Update only the powercode_integration section
|
||||
window.config.wispgate_integration = {
|
||||
enable_wispgate: document.getElementById("enableWispgate").checked,
|
||||
wispgate_api_token: document.getElementById("wispgate_api_token").value.trim(),
|
||||
wispgate_api_url: document.getElementById("wispgate_api_url").value.trim()
|
||||
};
|
||||
}
|
||||
|
||||
loadConfig(() => {
|
||||
// window.config now contains the configuration.
|
||||
// Populate form fields with config values
|
||||
if (window.config && window.config.wispgate_integration) {
|
||||
const wispgateIntegration = window.config.wispgate_integration;
|
||||
|
||||
// Boolean field
|
||||
document.getElementById("enableWispgate").checked =
|
||||
wispgateIntegration.enable_wispgate ?? false;
|
||||
|
||||
// String fields
|
||||
document.getElementById("wispgate_api_token").value =
|
||||
wispgateIntegration.wispgate_api_token ?? "";
|
||||
document.getElementById("wispgate_api_url").value =
|
||||
wispgateIntegration.wispgate_api_url ?? "";
|
||||
|
||||
// Add save button click handler
|
||||
document.getElementById('saveButton').addEventListener('click', () => {
|
||||
if (validateConfig()) {
|
||||
updateConfig();
|
||||
saveConfig(() => {
|
||||
alert("Configuration saved successfully!");
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item active"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><i class="fa fa-map"></i> Network Layout</li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item active"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item active"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item active"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item active"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
@ -14,6 +14,7 @@
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item active"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
|
52
src/rust/lqosd/src/node_manager/static2/config_wispgate.html
Normal file
52
src/rust/lqosd/src/node_manager/static2/config_wispgate.html
Normal file
@ -0,0 +1,52 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<ul class="config-menu">
|
||||
<li class="config-menu-item"><a href="config_general.html" class="text-decoration-none"><i class="fa fa-server"></i> General</a></li>
|
||||
<li class="config-menu-item"><a href="config_anon.html" class="text-decoration-none"><i class="fa fa-user-secret"></i> Anonymous Usage Stats</a></li>
|
||||
<li class="config-menu-item"><a href="config_tuning.html" class="text-decoration-none"><i class="fa fa-warning"></i> Tuning</a></li>
|
||||
<li class="config-menu-item"><a href="config_interface.html" class="text-decoration-none"><i class="fa fa-chain"></i> Network Mode</a></li>
|
||||
<li class="config-menu-item"><a href="config_queues.html" class="text-decoration-none"><i class="fa fa-car"></i> Queues</a></li>
|
||||
<li class="config-menu-item"><a href="config_lts.html" class="text-decoration-none"><i class="fa fa-line-chart"></i> Long-Term Stats</a></li>
|
||||
<li class="config-menu-item"><a href="config_iprange.html" class="text-decoration-none"><i class="fa fa-address-card"></i> IP Ranges</a></li>
|
||||
<li class="config-menu-item"><a href="config_flows.html" class="text-decoration-none"><i class="fa fa-arrow-circle-down"></i> Flow Tracking</a></li>
|
||||
<li class="config-menu-item"><a href="config_integration.html" class="text-decoration-none"><i class="fa fa-link"></i> Integration - Common</a></li>
|
||||
<li class="config-menu-item"><a href="config_spylnx.html" class="text-decoration-none"><i class="fa fa-link"></i> Splynx</a></li>
|
||||
<li class="config-menu-item"><a href="config_uisp.html" class="text-decoration-none"><i class="fa fa-link"></i> UISP</a></li>
|
||||
<li class="config-menu-item"><a href="config_powercode.html" class="text-decoration-none"><i class="fa fa-link"></i> Powercode</a></li>
|
||||
<li class="config-menu-item"><a href="config_sonar.html" class="text-decoration-none"><i class="fa fa-link"></i> Sonar</a></li>
|
||||
<li class="config-menu-item active"><a href="config_wispgate.html" class="text-decoration-none"><i class="fa fa-link"></i> WispGate</a></li>
|
||||
<li class="config-menu-item"><a href="config_network.html" class="text-decoration-none"><i class="fa fa-map"></i> Network Layout</a></li>
|
||||
<li class="config-menu-item"><a href="config_devices.html" class="text-decoration-none"><i class="fa fa-table"></i> Shaped Devices</a></li>
|
||||
<li class="config-menu-item"><a href="config_users.html" class="text-decoration-none"><i class="fa fa-users"></i> LibreQoS Users</a></li>
|
||||
</ul>
|
||||
<hr class="mt-3 mb-3" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<form>
|
||||
<div class="mb-3 form-check">
|
||||
<input type="checkbox" class="form-check-input" id="enableWispgate">
|
||||
<label class="form-check-label" for="enableWispgate">Enable WispGate Integration</label>
|
||||
<div class="form-text">Enable integration with WispGate system</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="wispgate_api_token" class="form-label">API KEY</label>
|
||||
<input type="text" class="form-control" id="wispgate_api_token">
|
||||
<div class="form-text">WispGate API Token</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="wispgate_api_url" class="form-label">API URL</label>
|
||||
<input type="text" class="form-control" id="wispgate_api_url">
|
||||
<div class="form-text">WispGate API URL</div>
|
||||
</div>
|
||||
|
||||
|
||||
<button type="button" id="saveButton" class="btn btn-outline-primary">Save Changes</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="config_wispgate.js"></script>
|
@ -50,6 +50,7 @@ pub(super) fn static_routes() -> Result<Router> {
|
||||
"config_network.html",
|
||||
"config_devices.html",
|
||||
"config_users.html",
|
||||
"config_wispgate.html",
|
||||
];
|
||||
|
||||
// Iterate through pages and construct the router
|
||||
|
Loading…
Reference in New Issue
Block a user