From 5e268aa9ca51e37d0ea77c172731c79dc195a03c Mon Sep 17 00:00:00 2001
From: Lucio Zambon <lucio.zambon@elettra.eu>
Date: Tue, 5 Nov 2024 07:12:19 +0000
Subject: [PATCH] Update panther2d.js

---
 panther2d.js | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/panther2d.js b/panther2d.js
index 5fb31a9..1414591 100644
--- a/panther2d.js
+++ b/panther2d.js
@@ -474,16 +474,30 @@
 				const machineFolder = gui.addFolder('toggle facility');
 				for (let i in lattice) {if (i!='conf') facilities.push(i);}
 				menuParams[' '] = false; machineFolder.add(menuParams, ' ').onChange(toggleFacility);
-				for (let i=0; i<facilities.length; i++) if (facilities[i]!='') {menuParams[facilities[i]] = true; machineFolder.add(menuParams, facilities[i]).onChange(toggleFacility);}
+				// for (let i=0; i<facilities.length; i++) if (facilities[i]!='') {menuParams[facilities[i]] = true;}
 				for (let i in lattice) {
 					if (i == 'conf') continue;
-					menuParams[i] = false;
+					menuParams[i] = document.location.search.indexOf(i+'=hide')==-1;
 					if (i != 'servicearea' && i != 'bl') measurementDevice[i] = i;
+					console.log(i, menuParams[i]);
 					// logic XOR https://stackoverflow.com/questions/2335979/is-there-anyway-to-implement-xor-in-javascript
-					if ((document.location.search.indexOf('servicearea')==-1) != (i=='servicearea')) initLattice(lattice[i].sections, i); else {
-						if (document.location.search.indexOf('+servicearea')>-1) initLattice(lattice[i].sections, i); else initSearch(lattice[i].sections, i);
+					if ((document.location.search.indexOf('servicearea')==-1) != (i=='servicearea')) {
+						initLattice(lattice[i].sections, i);
+						// menuParams[i] = true;
+					} 
+					else {
+						initLattice(lattice[i].sections, i);
+						console.log('.', i, menuParams[i]);
+						if (document.location.search.indexOf('+servicearea')>-1) {
+							// menuParams[i] = true;
+						}
+						else {
+							menuParams[i] = false;
+						}
 					}
+					if (!menuParams[i]) $('.'+i).hide();
 				}
+				for (let i=0; i<facilities.length; i++) if (facilities[i]!='') {machineFolder.add(menuParams, facilities[i]).onChange(toggleFacility);}
 				machineFolder.close();
 				gui.add(menuParams, 'measurement device', measurementDevice).onChange(measurementFacility);
 				if (document.location.search.indexOf('measurement')==-1) measurementToggle(false);
-- 
GitLab