Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    Importinc an ical apointment is shown 1 Hr later

    Kopano WebApp
    3
    15
    605
    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.
    • strippe96
      strippe96 @strippe96 last edited by

      @strippe96 Found the bug:

      Pls. have a look to /usr/share/kopano-webapp/plugins/files/php/Files/Backend/Webdav/sabredav/vendor/sabre/vobject/lib/Sabre/VObject/Property/DateTime.php at line 246. If an Appointment without Timezone ( eg. “Z” -> DTSTART:20200227T155500 ) is passed to function setDateTime, the function assumed type “LOCAL” and does not take care of the local timezone. Inserting

      $this->offsetSet(‘TZID’, $dt->getTimeZone()->getName());

      just before the “break;” will sove this.

      BR Thomas

      1 Reply Last reply Reply Quote 0
      • marty
        marty Kopano (Inactive) last edited by

        @strippe96

        Line 246 does not exist in that file.

        The extra hour is also added without having files plugin on the server.

        https://documentation.kopano.io/deskapp_admin_manual
        http://documentation.kopano.io/webapp_smime_manual
        https://documentation.kopano.io/webapp_admin_manual

        1 Reply Last reply Reply Quote 0
        • strippe96
          strippe96 last edited by

          Sorry, my failure. Please add the line (No 76) “$this->offsetSet(‘TZID’, $dt->getTimeZone()->getName());” in “case self::LOCAL :” just before “break;”

          public function setDateTime(\DateTime $dt, $dateType = self::LOCALTZ) {
          
              switch($dateType) {
          
                  case self::LOCAL :
                      $this->setValue($dt->format('Ymd\\THis'));
                      $this->offsetUnset('VALUE');
                      $this->offsetUnset('TZID');
                      $this->offsetSet('VALUE','DATE-TIME');
                      $this->offsetSet('TZID', $dt->getTimeZone()->getName());
                      break;
                  case self::UTC :
                      $dt->setTimeZone(new \DateTimeZone('UTC'));
                      $this->setValue($dt->format('Ymd\\THis\\Z'));
                      $this->offsetUnset('VALUE');
                      $this->offsetUnset('TZID');
                      $this->offsetSet('VALUE','DATE-TIME');
                      break;
                  case self::LOCALTZ :
                      $this->setValue($dt->format('Ymd\\THis'));
                      $this->offsetUnset('VALUE');
                      $this->offsetUnset('TZID');
                      $this->offsetSet('VALUE','DATE-TIME');
                      $this->offsetSet('TZID', $dt->getTimeZone()->getName());
                      break;
                  case self::DATE :
                      $this->setValue($dt->format('Ymd'));
                      $this->offsetUnset('VALUE');
                      $this->offsetUnset('TZID');
                      $this->offsetSet('VALUE','DATE');
                      break;
                  default :
                      throw new \InvalidArgumentException('You must pass a valid dateType constant');
          
              }
              $this->dateTime = $dt;
              $this->dateType = $dateType;
          
          }
          

          Cheers, Thomas

          marty 1 Reply Last reply Reply Quote 0
          • marty
            marty Kopano (Inactive) @strippe96 last edited by

            @strippe96

            What makes you think this code is used while importing an ics?

            https://documentation.kopano.io/deskapp_admin_manual
            http://documentation.kopano.io/webapp_smime_manual
            https://documentation.kopano.io/webapp_admin_manual

            strippe96 1 Reply Last reply Reply Quote 0
            • strippe96
              strippe96 @marty last edited by

              @marty Dear Marty,

              when I´ll try to Import an ICS-file, where the DTSTART / DTEND Tags are noted without a timezone marker (e.g. “Z” at the End), the Appointment will be 1 hr later in the Calendar. This is fixed after applying this Change. All Appointments are shown at the correct time.

              1 Reply Last reply Reply Quote 0
              • marty
                marty Kopano (Inactive) last edited by

                @strippe96 Can you try to reproduce it without this plugin installed on the server
                (I could, as stated before)

                https://documentation.kopano.io/deskapp_admin_manual
                http://documentation.kopano.io/webapp_smime_manual
                https://documentation.kopano.io/webapp_admin_manual

                strippe96 1 Reply Last reply Reply Quote 0
                • strippe96
                  strippe96 @marty last edited by

                  @marty Sorry Marty, I´ll missunderstood you. Can you please explain, witch module and how to deinstall?
                  Thanks in Advance.

                  Thomas

                  1 Reply Last reply Reply Quote 0
                  • marty
                    marty Kopano (Inactive) last edited by

                    @strippe96
                    The code you modified is from an external module inside the files plugin.

                    Without the files plugin, the described behavior i.e. bug is also reproducible.
                    And a fix for WebApp in an external plugin is not a good idea.

                    https://documentation.kopano.io/deskapp_admin_manual
                    http://documentation.kopano.io/webapp_smime_manual
                    https://documentation.kopano.io/webapp_admin_manual

                    strippe96 2 Replies Last reply Reply Quote 0
                    • strippe96
                      strippe96 @marty last edited by

                      @marty Hey marty, after removing files, I´ve got the same result. 1 Hr in advance.

                      1 Reply Last reply Reply Quote 0
                      • strippe96
                        strippe96 @marty last edited by

                        @marty From my point of view, I´ll want to say, that this module is “fromoutside to webapp” but it´s local to the files module. This function seems to be used only if files (importing an appointment e.g.) is using it.
                        For me, it´s ok to change it here. Isn´t it?

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post