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.

    module calendar showing full day events one day to long

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    19 Posts 5 Posters 7.9k Views 6 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.
    • lavolp3L Offline
      lavolp3 Module Developer @AnduriI
      last edited by

      @andurii OK I found a way to properly deal with one-day events. Will send a PR to the develop branch.
      If you want to include it already:

      Exchange the if-clause starting at line 292 with this.

      					if(this.config.showEnd){
      						if(event.endDate - event.startDate > oneDay) { 
      							timeWrapper.innerHTML += "-" ;
      							timeWrapper.innerHTML += this.capFirst(moment(event.endDate  , "x").format(this.config.fullDayEventDateFormat));
      						}
      					}
      

      BEWARE OF CHANGING THE MODULE FILES THEMSELVES.
      Only do it if you know what you’re doing.
      (You’re not breaking anything irreversibly however)

      This only shows the end date for a more-than-one-day-full-day-event.
      However, still a workaround. Still searching into the problem itself

      How to troubleshoot modules
      MMM-soccer v2, MMM-AVStock

      1 Reply Last reply Reply Quote 1
      • A Offline
        AnduriI
        last edited by

        @lavolp3 thank’s a lot man, you are much faster and way more skilled than me :-)
        Just a little discussion: your code only adds the if clause to check if it’s longer than a day to prevent single full day events to be displayed as two day. But what about a multi day event beeing displayed one day to long (which is also happening right now)?

        lavolp3L 1 Reply Last reply Reply Quote 0
        • lavolp3L Offline
          lavolp3 Module Developer @AnduriI
          last edited by

          @andurii
          Yeah that’s what is still missing and why i said this is still only some type of workaround.
          However, the if-clause will be needed in the end because for a full one-day event you do not want to be shown an endDate. As soon as the full-day-event is longer than one day, you may want it again.
          E.g.
          Mario’s birthday Nov 16th
          (and NOT Nov 16th - Nov 16th)
          Luigi’s Holiday Nov 16th - Nov 23rd

          What you’re pointing at is the root cause and it lies somewhere else. I’m sure it can be solved. Give me one weekend ;-)

          How to troubleshoot modules
          MMM-soccer v2, MMM-AVStock

          1 Reply Last reply Reply Quote 0
          • lavolp3L Offline
            lavolp3 Module Developer
            last edited by lavolp3

            So I guess I have found a “solution”.
            This is in fact a systemic problem.

            A full day event is given by the ical source as starting at 0:00 on a day and ending at 0:00, but one day ahead. The duration is exactly a multiple of 24h.

            There is a one-liner as workaround, but I’d invite everyone to find a more gentle solution.

            The workaround: subtract one second from the endDate time:
            Include this line into calendar.js just at the beginning of the if clause in line 262:

            event.endDate -= 1000;
            

            So it looks like this:

            				if (event.fullDayEvent) {
                                                    event.endDate -= 1000;
            					if (event.today) {
            

            This should solve the issue. It worked for me at least.

            How to troubleshoot modules
            MMM-soccer v2, MMM-AVStock

            A 1 Reply Last reply Reply Quote 0
            • A Offline
              AnduriI @lavolp3
              last edited by

              @lavolp3 great, your fix worked. Only thing I noticed is if the date is tomorrow it still shows ‘Tomorrow - Nov. 22’
              Now I still have to fiddle a few glitches in the calendar module:

              1. Having a event with start and end time it will be displayed like ‘in 3 days - 18:00’. It would be better to include starting time ‘in 3 days 15:00 - 18:00’
              2. For a ongoing event it keeps the end time, but start time gets relative for how long it still goes on ‘1 hour left - 18:00’ (hope my translation is correct, my mirror is german). Maybe this could be changed to ‘for 4 hours - 18:00’ or similiar.
              lavolp3L 1 Reply Last reply Reply Quote 0
              • lavolp3L Offline
                lavolp3 Module Developer @AnduriI
                last edited by

                @andurii I agree with you on both points and I’m working on it :-)
                Basically the implementation of showEnd is quite messed up.
                I’m trying to use my freshly gained JS beginner skills on this :-)

                Have send a PR for the fulldayevent fix and I expect this to be included in the next release.

                How to troubleshoot modules
                MMM-soccer v2, MMM-AVStock

                1 Reply Last reply Reply Quote 1
                • 1
                • 2
                • 2 / 2
                • 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