Read the statement by Michael Teeuw here.
Not all Modules are displaying on the tv
-
@lavolp3 Same for MMM-Traffic:
main.js:297 Will not show MMM-Traffic. LockStrings active: module_15_MMM-pages
-
@kusselin MMM-Pages uses hiding to only show what you selected to be on each page. Mm only hides or shows modules.
Pages uses that to display just a few at a time. (Per page)
LockStrings are used to make sure that the module requesting show, is the same that requested hide. So u get consistent behavior. Else u might have things popping up all over. Remember, mm only does hide or show. It assumes all modules are showing all the time. AND all modules ARE running all the time.
-
@sdetweil But how do you set/change or address lockstrings?
-
@lavolp3 on the show/hide there is an optional additional parameter, the ‘string’ for the lockstring… its any text u want.
from
https://docs.magicmirror.builders/development/core-module-file.html#module-instance-methodsthis.hide(speed, callback, options) speed Number - Optional (Required when setting callback or options), The speed of the hide animation in milliseconds. callback Function - Optional, The callback after the hide animation is finished. options Function - Optional, Object with additional options for the hide action (see below). (Introduced in version: 2.1.0.) To hide a module, you can call the hide(speed, callback) method. You can call the hide method on the module instance itself using this.hide(), but of course you can also hide another module using anOtherModule.hide(). Possible configurable options: lockString - String - When setting lock string, the module can not be shown without passing the correct lockstring. This way (multiple) modules can prevent a module from showing. It's considered best practice to use your modules identifier as the locksString: this.identifier. See visibility locking below.
-
@sdetweil Thank you. It seems the hide and show calls in MMM-pages need to be amended by the (standard) lockstring to work properly.
The module is after all expected to overwrite any other hide/show functionality.
I had the same issue so I’ll try that out in the next days. -
@lavolp3 Pages uses lockstring already
module.hide( self.config.animationTime / 2, { lockString: self.identifier } )); module.show( self.config.animationTime / 2, { lockString: self.identifier } ));
uses the MMM-Pages module identifier as the string
-
@lavolp3 said in Not all Modules are displaying on the tv:
The module is after all expected to overwrite any other hide/show functionality.
it may need FORCE (it should check if the hide or show worked)
-
OK. thank you for the detailed discussion. But what does that mean in plain language for everyone or for me as a not so html understanding?
What must or can I change in my config.js so that it works again?
Greeting -
@kusselin if you use MMM-Pages, every module must be described on some page, or in the fixed list (fixed means every page)
-
@sdetweil said in Not all Modules are displaying on the tv:
if you use MMM-Pages, every module must be described on some page, or in the fixed list (fixed means every page)
o.k. and how do i this with the describe?? Sorry, but can you give an example please with my config.js with MM-Traffic