@@ -584,30 +584,23 @@ class Popup{
584
584
585
585
function bindHardwareEventListeners ( sensorsElements )
586
586
{
587
- //New toggle indoor-outoor events
587
+ // Environment and equipment toggle listening
588
588
const toggleElemOutIn = document . getElementById ( "toggle-outdoor-indoor" ) ;
589
+ const toggleElemNodSer = document . getElementById ( "toggle-node-server" ) ;
590
+
591
+ let sceneEnvironment = toggleElemOutIn . checked ? 'outdoor' : 'indoor' ;
592
+ let nodesOrServers = toggleElemNodSer . checked ? 'nodes' : 'servers' ;
593
+
589
594
toggleElemOutIn . addEventListener ( 'change' , ( ) => {
590
- let sceneEnvironment ;
591
- if ( toggleElemOutIn . checked ) {
592
- sceneEnvironment = 'outdoor'
593
- } else {
594
- sceneEnvironment = 'indoor'
595
- }
596
- disableSensorsConsideringEnvironment ( sceneEnvironment ) ;
595
+ sceneEnvironment = toggleElemOutIn . checked ? 'outdoor' : 'indoor' ;
597
596
sceneManager . changeEnvironment ( sceneEnvironment ) ;
597
+ disableSensorsConsideringEnvironmentAndEquipment ( sceneEnvironment , nodesOrServers ) ;
598
598
} ) ;
599
599
600
- //New toggle node-server events
601
- // TODO
602
- const toggleElemNodSer = document . getElementById ( "toggle-node-server" ) ;
603
600
toggleElemNodSer . addEventListener ( 'change' , ( ) => {
604
- if ( toggleElemNodSer . checked ) {
605
- nodesOrServers = "nodes"
606
- } else {
607
- nodesOrServers = "servers"
608
- }
609
- disableSensorsConsideringNodesAndServers ( nodesOrServers )
610
- } )
601
+ nodesOrServers = toggleElemNodSer . checked ? 'nodes' : 'servers' ;
602
+ disableSensorsConsideringEnvironmentAndEquipment ( sceneEnvironment , nodesOrServers ) ;
603
+ } ) ;
611
604
612
605
// OLD Switch indoor-outdoor events
613
606
// const switchElement = document.getElementById('hardware-switch-indoor-outdoor');
@@ -751,7 +744,6 @@ class Popup{
751
744
//New function
752
745
function disableSensorsConsideringNodesAndServers ( nodesOrServers )
753
746
{
754
- //TODO
755
747
sensorsCompatible . forEach ( s => {
756
748
if ( s . usedWith . includes ( nodesOrServers ) ) {
757
749
document . getElementById ( s . textId ) . classList . remove ( "hidden" ) ;
@@ -762,6 +754,28 @@ class Popup{
762
754
} ) ;
763
755
}
764
756
757
+ //NEW FUNCTION A CORRIGER
758
+ function disableSensorsConsideringEnvironmentAndEquipment ( environment , nodesOrServers )
759
+ {
760
+ let disabledSensorsNumber = 0 ;
761
+
762
+ sensorsCompatible . forEach ( s => {
763
+ if ( s . canBeUsed . includes ( environment ) && s . usedWith . includes ( nodesOrServers ) ) {
764
+ document . getElementById ( s . textId ) . classList . remove ( "hidden" ) ;
765
+ } else {
766
+ document . getElementById ( s . textId ) . classList . add ( "hidden" ) ;
767
+ disabledSensorsNumber ++ ;
768
+ }
769
+ } ) ;
770
+
771
+ if ( sensorsCompatible . length === disabledSensorsNumber ) {
772
+ document . getElementById ( 'hardware-warning-message' ) . classList . remove ( "hidden" ) ;
773
+ } else {
774
+ document . getElementById ( 'hardware-warning-message' ) . classList . add ( "hidden" ) ;
775
+ selectFirstSensorAvailable ( ) ;
776
+ }
777
+ }
778
+
765
779
function selectFirstSensorAvailable ( )
766
780
{
767
781
const sensorsDiv = document . getElementById ( 'multi-select-sensors' ) ;
0 commit comments