MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / showNetworkSubtab

Function showNetworkSubtab

web/scripts/ragnar_modern.js:1199–1225  ·  view source on GitHub ↗
(name)

Source from the content-addressed store, hash-verified

1197 const cfg = config || await fetchAPI('/api/config');
1198 if (cfg && Object.prototype.hasOwnProperty.call(cfg, RUSENSE_TAB_KEY)) {
1199 localStorage.setItem(RUSENSE_TAB_KEY, cfg[RUSENSE_TAB_KEY] ? '1' : '0');
1200 applyRusenseTabVisibility();
1201 }
1202 } catch (e) { /* offline — keep the localStorage value */ }
1203}
1204
1205function onRusenseTabToggled(cb) {
1206 localStorage.setItem(RUSENSE_TAB_KEY, cb.checked ? '1' : '0');
1207 applyRusenseTabVisibility();
1208 // Persist server-side so it's shared/persistent for everyone, not just here.
1209 postAPI('/api/config', { [RUSENSE_TAB_KEY]: cb.checked })
1210 .catch(err => console.warn('Failed to persist RuSense tab visibility:', err));
1211 if (cb.checked) showTab('rusense');
1212}
1213
1214// ── Ragnar Mesh tab visibility (toggle in Settings; ON by default) ──────────
1215// Same server-backed + localStorage-cache pattern as the RuSense tab, but the
1216// default is VISIBLE: absent the key the tab shows, and only an explicit '0'
1217// hides it. Hiding is cosmetic — it never joins or leaves the mesh (that is
1218// mesh_enabled); it only removes the nav entry.
1219const MESH_TAB_KEY = 'mesh_tab_enabled';
1220
1221function _meshTabVisible() {
1222 return localStorage.getItem(MESH_TAB_KEY) !== '0'; // default on
1223}
1224
1225function syncMeshTabToggle() {
1226 const cb = document.getElementById('mesh-tab-enabled');
1227 if (cb) cb.checked = _meshTabVisible();
1228}

Callers 1

showTabFunction · 0.70

Calls 10

loadLldpFunction · 0.85
loadNetworkIdentityFunction · 0.85
loadInterfacesFunction · 0.85
populateMtrSourcesFunction · 0.85
_setSubtabActiveFunction · 0.70
loadAllNetworksDataFunction · 0.70
loadNetworkMapFunction · 0.70
loadNetworkDataFunction · 0.70
keysMethod · 0.45

Tested by

no test coverage detected