MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    jumping of modules

    Scheduled Pinned Locked Moved Troubleshooting
    23 Posts 3 Posters 14.8k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K Offline
      kclemen
      last edited by

      @MichMich, Could it be that this is a “fault” in the system?

      1 Reply Last reply Reply Quote 0
      • K Offline
        kclemen
        last edited by kclemen

        Adding setTimeout works for the gesture up, so hiding the defaultclass. But it does not work to show the defaultclass again with gesture down. Then the screen stays black. Removal of the 2nd setTimeout results back in showing the fefaultclass again. Is it possible that it is not possible to use 2 times setTimeout in the same file or so???

        Module.register("MMM-skywriter",{
        	
        	// Default module config.
        	defaults: {
        		gesture_up: 0,
        		gesture_right: 0,
        		
        	},
        
        	// Override socket notification handler.
        	socketNotificationReceived: function(notification, payload) {
        		if (notification === "gesture_observed"){
        			
        			console.log ("socketnotificationreceived.");
        		
        			//self.sendNotification(notification, payload);
        			
        			if (payload === "up"){
        				if (this.config.gesture_up == 0) {
        						
        						MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
        							module.hide(1000, function() {
        								Log.log(module.name + ' is hidden.');
        							});
        						});
        						
        						setTimeout(function() {
        								MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
        									module.show(1000, function() {
        										Log.log(module.name + ' is shown.');
        									});
        								});
        						}, 1000);		
        								this.config.gesture_up = this.config.gesture_up+1;
        
        								console.log("gesture_up is nu 1");
        						
        				}
        				else if (this.config.gesture_up == 1) {
        						this.config.gesture_up = this.config.gesture_up+1;
        						console.log (this.config.gesture_up)
        				}
        			}
        			else if (payload === "left"){
        				console.log("test - left");
        			}
        			else if (payload === "down") {
        				if (this.config.gesture_up == 1){
        					MM.getModules().withClass("class_up_1_show").enumerate(function(module) {
        						module.hide(1000, function() {
        							Log.log(module.name + ' is hidden by gesture.');
        						});
        					});
        					
        				//	setTimeout(function() {
        						MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
        							module.show(1000, function() {
        								Log.log(module.name + ' is hidden.');
        								});
        							});
        				//	}, 1000);
        					this.config.gesture_up = this.config.gesture_up-1;
        					console.log("test - down");
        				}
        				else if (this.config.gesture_up == 2){
        					this.config.gesture_up = this.config.gesture_up-1;
        					console.log("gesture up is terug 1");
        				}
        			}
        		}
        	},
        	
        	notificationReceived: function(notification, payload, sender) {
        		if (notification === 'DOM_OBJECTS_CREATED') {
        			MM.getModules().exceptWithClass("default").enumerate(function(module) {
        				module.hide(1000, function() {
        					Log.log('Module is hidden.');
        				});
        			});
        		}
        	},
        	
        	start: function() {
        		this.current_user = null;
        		this.sendSocketNotification('CONFIG', this.config);
        		Log.info('Starting module: ' + this.name);
        	}
        	
        });
        
        1 Reply Last reply Reply Quote 0
        • K Offline
          kclemen
          last edited by

          I found why it was not working:

          this.config.defaultClass does not work within the setTimeout. When I change it to "default" which is what is configured in the config.js, then it works perfectly.

          However, I need to use the this.config.defaultClass. So, what would be a solution for this?

          1 Reply Last reply Reply Quote 0
          • K Offline
            kclemen
            last edited by

            Anyone??

            strawberry 3.141S 1 Reply Last reply Reply Quote 0
            • strawberry 3.141S Offline
              strawberry 3.141 Project Sponsor Module Developer @kclemen
              last edited by

              @kclemen

              to keep your scope you need to use a fat arrow (es6) function

              setTimeout(() => {
                  MM.getModules().withClass(this.config.defaultClass).exceptWithClass(this.config.everyoneClass).enumerate(function(module) {
                      module.show(1000, function() {
                          Log.log(module.name + ' is hidden.');
                      });
                  });
              }, 1000);
              

              Please create a github issue if you need help, so I can keep track

              1 Reply Last reply Reply Quote 0
              • 1
              • 2
              • 3
              • 1 / 3
              • First post
                Last post
              Enjoying MagicMirror? Please consider a donation!
              MagicMirror created by Michael Teeuw.
              Forum managed by Sam, technical setup by Karsten.
              This forum is using NodeBB as its core | Contributors
              Contact | Privacy Policy