From 51e77fd51ff25cdfd0bd965ec24ced5bb4a383b0 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 21 Nov 2013 12:31:32 +0100 Subject: Avoid unnecessary metadata updates sent by Apple Clients --- lib/Kolab/Utils/DAVBackend.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/Kolab/Utils/DAVBackend.php b/lib/Kolab/Utils/DAVBackend.php index 1111216..0989032 100644 --- a/lib/Kolab/Utils/DAVBackend.php +++ b/lib/Kolab/Utils/DAVBackend.php @@ -143,9 +143,13 @@ class DAVBackend foreach ($mutations as $prop => $val) { switch ($prop) { case '{DAV:}displayname': + // abort if name didn't change + if ($val == html_entity_decode($folder->get_name(), ENT_COMPAT, RCUBE_CHARSET)) { + break; + } // restrict renaming to personal folders only if ($folder->get_namespace() == 'personal') { - $parts = preg_split('!(\s*/\s*|\s+[»:]\s+)!', $val); + $parts = preg_split('!(\s*/\s*|\s+[»:]\s+)!', $val); $updates['oldname'] = $folder->name; $updates['name'] = array_pop($parts); $updates['parent'] = join('/', $parts); @@ -156,7 +160,10 @@ class DAVBackend break; case '{http://apple.com/ns/ical/}calendar-color': - $updates['color'] = substr(trim($val, '#'), 0, 6); + $newcolor = substr(trim($val, '#'), 0, 6); + if (strcasecmp($newcolor, $folder->get_color())) { + $updates['color'] = $newcolor; + } break; case '{urn:ietf:params:xml:ns:caldav}calendar-description': -- cgit v0.12