• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

MMM-ProfileSwitcher, A Profile/User/Layout Switching Module

Scheduled Pinned Locked Moved Utilities
userswitchprofilelayoutmodule
91 Posts 21 Posters 111.3k Views 23 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.
  • S Offline
    strawberry 3.141 Project Sponsor Module Developer @Mar
    last edited by Feb 6, 2017, 4:52 PM

    @Mar that is also an es6 feature try classes.indexOf(self.current_profile) !== -1

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

    M 1 Reply Last reply Feb 6, 2017, 5:16 PM Reply Quote 1
    • M Offline
      Mar @strawberry 3.141
      last edited by Mar Feb 6, 2017, 8:19 PM Feb 6, 2017, 5:16 PM

      @strawberry-3.141 Thanks, I couldnt figure that one out.

      return classes.indexOf(self.current_profile) !== -1;
      

      Along with the changes in the previous post I’ve have fully loaded ProfileSwitcher Midori without any errors. It also is showing the correct modules on load (classes = default).

      Thanks for the help through this @strawberry-3-141

      Managed to figure this all out so thanks to everyone!

      1 Reply Last reply Reply Quote 0
      • T Offline
        tosti007 Module Developer
        last edited by Feb 7, 2017, 12:02 PM

        @strawberry-3-141 thank you for helping @Mar

        @All @Mar I didn’t know that that browser doesn’t support those features. I will rewite those parts so then it should work out of the box.

        If there is anything don't hesitate to contact me!
        ProfileSwitcher, TouchNotifications

        1 Reply Last reply Reply Quote 1
        • T Offline
          tosti007 Module Developer
          last edited by Feb 7, 2017, 12:43 PM

          @all I pushed a small update so that older browers should also be able to use this module.
          @Mar They are the same changes that you made.

          If there is anything don't hesitate to contact me!
          ProfileSwitcher, TouchNotifications

          M 1 Reply Last reply Feb 7, 2017, 12:51 PM Reply Quote 1
          • M Offline
            Mar @tosti007
            last edited by Feb 7, 2017, 12:51 PM

            @tosti007 Thanks for updating your module so quickly! and obviously thanks for taking the time to respond and maintain.

            1 Reply Last reply Reply Quote 1
            • T Offline
              tosti007 Module Developer
              last edited by Feb 14, 2017, 11:55 AM

              @all Thanks to @roramirez we now have Spanish translations! :D

              If there is anything don't hesitate to contact me!
              ProfileSwitcher, TouchNotifications

              1 Reply Last reply Reply Quote 1
              • M Offline
                mortenbirkelund
                last edited by Feb 22, 2017, 8:39 PM

                @tosti007 When switching between profiles, there is a short timespan where both the modules of the old profile and of the new profile, is present at the screen at the same time. Is there a way to ensure that the old modules fadeout first, and once they are gone, the new modules will fade in?

                T 1 Reply Last reply Feb 23, 2017, 9:40 PM Reply Quote 0
                • T Offline
                  tosti007 Module Developer @mortenbirkelund
                  last edited by tosti007 Feb 23, 2017, 9:43 PM Feb 23, 2017, 9:40 PM

                  @mortenbirkelund Yes there is, however that would mean that the code has to loop over the modules twice, which isn’t a great thing to do performance wise. I will write a bit of code that does it for you and post it here soon.

                  Edit: here is the code, all you need to do it replace the whole set_profile function inside the MMM-ProfileSwitcher.js file.

                  The code:

                  // Change the current layout into the new layout given the current profile
                  set_profile: function (useEveryone) {
                      var self = this;
                  
                      var options = {};
                      if (self.config.useLockStrings) {
                          options.lockString = self.identifier;
                      }
                  
                      MM.getModules().exceptWithClass(self.config.ignoreModules).enumerate(function (module) {
                          if (!self.isVisible(self, useEveryone, module.data.classes)) {
                              module.hide(self.config.animationDuration, function () {
                                  Log.log(module.name + " is hidden.");
                              }, options);
                          }
                      });
                  
                      MM.getModules().exceptWithClass(self.config.ignoreModules).enumerate(function (module) {
                          if (self.isVisible(self, useEveryone, module.data.classes)) {
                              module.show(self.config.animationDuration, function () {
                                  Log.log(module.name + " is shown.");
                              }, options);
                          }
                      });
                  },
                  

                  Note: Once again this is not so great performance wise, but I dont think you will notice much of it

                  If there is anything don't hesitate to contact me!
                  ProfileSwitcher, TouchNotifications

                  M 2 Replies Last reply Feb 23, 2017, 9:49 PM Reply Quote 1
                  • M Offline
                    mortenbirkelund @tosti007
                    last edited by Feb 23, 2017, 9:49 PM

                    @tosti007 Thank you very much. Very kind of you to create the code for me.

                    I am new to using Git. How do i alter your my copy of your module, without risking that it will be overwritten on an update? Or is that not something that i should be concerned about?

                    T 1 Reply Last reply Feb 23, 2017, 11:09 PM Reply Quote 0
                    • M Offline
                      mortenbirkelund @tosti007
                      last edited by mortenbirkelund Feb 23, 2017, 10:43 PM Feb 23, 2017, 10:43 PM

                      @tosti007 In case anybody is interested, the block of codes that enables the modules, should be altered a bit in order to take the animationDuration into account.

                      		setTimeout(function() {			
                      			MM.getModules().exceptWithClass(self.config.ignoreModules).enumerate(function (module) {
                      				if (self.isVisible(self, useEveryone, module.data.classes)) {
                      					module.show(self.config.animationDuration, function () {
                      						Log.log(module.name + " is shown.");
                      					}, options);
                      				}
                      			});			
                      		}, self.config.animationDuration);
                      
                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 9
                      • 10
                      • 3 / 10
                      • 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