Projects
Kolab:16
kolab-syncroton
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 4
View file
kolab-syncroton.spec
Changed
@@ -22,15 +22,21 @@ %global httpd_name apache2 %global httpd_user wwwrun %else +%if 0%{?plesk} +%global httpd_group roundcube_sysgroup +%global httpd_name httpd +%global httpd_user roundcube_sysuser +%else %global httpd_group apache %global httpd_name httpd %global httpd_user apache %endif +%endif %global _ap_sysconfdir %{_sysconfdir}/%{httpd_name} Name: kolab-syncroton -Version: 2.3.3 +Version: 2.3.4 Release: 1%{?dist} Summary: ActiveSync for Kolab Groupware @@ -38,14 +44,16 @@ License: LGPLv2 URL: http://www.syncroton.org -Source0: kolab-syncroton-2.3.3.tar.gz +Source0: kolab-syncroton-2.3.4.tar.gz Source1: kolab-syncroton.logrotate BuildArch: noarch # Use this build requirement to make sure we are using # up to date vendorized copies of the plugins. +%if 0%{?plesk} < 1 BuildRequires: roundcubemail-plugin-kolab_auth >= 3.2 +%endif BuildRequires: roundcubemail-plugin-kolab_folders >= 3.2 BuildRequires: roundcubemail-plugin-libkolab >= 3.2 @@ -68,7 +76,9 @@ Requires: logrotate Requires: roundcubemail(core) +%if 0%{?plesk} < 1 Requires: roundcubemail-plugin-kolab_auth >= 3.2 +%endif Requires: roundcubemail-plugin-kolab_folders >= 3.2 Requires: roundcubemail-plugin-libkolab >= 3.2 Requires: php-kolabformat @@ -116,6 +126,9 @@ ln -s ../../../roundcubemail/program/lib/Roundcube popd for plugin in kolab_auth kolab_folders libkolab; do + if [ ! -d "/usr/share/roundcubemail/plugins/$plugin" ]; then + continue + fi mkdir -p lib/plugins/$plugin pushd lib/plugins/$plugin if [ -d "/usr/share/roundcubemail/plugins/" ]; then @@ -130,10 +143,12 @@ popd # Kolab Authentication plugin +%if 0%{?plesk} < 1 pushd %{buildroot}/%{_datadir}/%{name}/lib/plugins/kolab_auth rm -rf config.inc.php.dist ln -s ../../../../../..%{_sysconfdir}/roundcubemail/kolab_auth.inc.php config.inc.php popd +%endif # Kolab Folders plugin pushd %{buildroot}/%{_datadir}/%{name}/lib/plugins/kolab_folders @@ -209,6 +224,9 @@ %attr(0770,%{httpd_user},%{httpd_group}) %{_var}/log/%{name} %changelog +* Wed Jan 25 2017 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.3.4-1 +- Release of version 2.3.4 + * Tue Nov 15 2016 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 2.3.3-1 - Release of version 2.3.3
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +kolab-syncroton (2.3.4-0~kolab1) unstable; urgency=low + + * Release of version 2.3.4 + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Wed, 25 Jan 2017 15:13:40 +0200 + kolab-syncroton (2.3.3-0~kolab1) unstable; urgency=low * Release of version 2.3.3
View file
kolab-syncroton-2.3.3.tar.gz/lib/kolab_sync.php -> kolab-syncroton-2.3.4.tar.gz/lib/kolab_sync.php
Changed
@@ -46,7 +46,7 @@ public $password; const CHARSET = 'UTF-8'; - const VERSION = "2.3.3"; + const VERSION = "2.3.4"; /**
View file
kolab-syncroton-2.3.3.tar.gz/lib/kolab_sync_backend.php -> kolab-syncroton-2.3.4.tar.gz/lib/kolab_sync_backend.php
Changed
@@ -142,10 +142,11 @@ * * @param string $deviceid Device identifier * @param string $type Folder type + * @param bool $flat_mode Enables flat-list mode * * @return array|bool List of mailbox folders, False on backend failure */ - public function folders_list($deviceid, $type) + public function folders_list($deviceid, $type, $flat_mode = false) { // get all folders of specified type $folders = (array) kolab_storage::list_folders('', '*', $type, false, $typedata); @@ -181,10 +182,70 @@ $folders_list[$folder_id] = $this->folder_data($folder, $folder_type); } + if ($flat_mode) { + $folders_list = $this->folders_list_flat($folders_list, $type, $typedata); + } + return $folders_list; } /** + * Converts list of folders to a "flat" list + */ + private function folders_list_flat($folders, $type, $typedata) + { + $delim = $this->storage->get_hierarchy_delimiter(); + + foreach ($folders as $idx => $folder) { + if ($folder['parentId']) { + // for non-mail folders we make the list completely flat + if ($type != 'mail') { + $display_name = kolab_storage::object_name($folder['imap_name']); + $display_name = html_entity_decode($display_name, ENT_COMPAT, RCUBE_CHARSET); + + $folders[$idx]['parentId'] = 0; + $folders[$idx]['displayName'] = $display_name; + } + // for mail folders we modify only folders with non-existing parents + else if (!isset($folders[$folder['parentId']])) { + $items = explode($delim, $folder['imap_name']); + $parent = 0; + + // find existing parent + while (count($items) > 0) { + array_pop($items); + + $parent_name = implode($items, $delim); + $parent_type = $typedata[$parent_name]; + $parent_id = self::folder_id($parent_name, $parent_type); + + if (isset($folders[$parent_id])) { + $parent = $parent_id; + break; + } + } + + if (!$parent) { + $display_name = kolab_storage::object_name($folder['imap_name']); + $display_name = html_entity_decode($display_name, ENT_COMPAT, RCUBE_CHARSET); + } + else { + $parent_name = $folders[$parent_id]['imap_name']; + $display_name = substr($folder['imap_name'], strlen($parent_name)+1); + $display_name = rcube_charset::convert($display_name, 'UTF7-IMAP'); + $display_name = str_replace($delim, ' ยป ', $display_name); + } + + $folders[$idx]['parentId'] = $parent; + $folders[$idx]['displayName'] = $display_name; + } + } + } + + return $folders; + } + + /** * Getter for folder metadata * * @return array|bool Hash array with meta data for each folder, False on backend failure @@ -694,6 +755,9 @@ return ''; } + /** + * Returns folder data in Syncroton format + */ private function folder_data($folder, $type) { // Folder name parameters @@ -718,6 +782,8 @@ 'parentId' => count($items) ? self::folder_id(implode($delim, $items)) : 0, 'displayName' => rcube_charset::convert($name, 'UTF7-IMAP', kolab_sync::CHARSET), 'type' => $type, + // for internal use + 'imap_name' => $folder, ); }
View file
kolab-syncroton-2.3.3.tar.gz/lib/kolab_sync_data.php -> kolab-syncroton-2.3.4.tar.gz/lib/kolab_sync_data.php
Changed
@@ -1071,7 +1071,8 @@ protected function listFolders($parentid = null) { if (empty($this->imap_folders)) { - $this->imap_folders = $this->backend->folders_list($this->device->deviceid, $this->modelName); + $this->imap_folders = $this->backend->folders_list( + $this->device->deviceid, $this->modelName, $this->isMultiFolder()); } if ($parentid === null) {
View file
kolab-syncroton.dsc
Changed
@@ -2,15 +2,15 @@ Source: kolab-syncroton Binary: kolab-syncroton Architecture: all -Version: 2.3.3-0~kolab1 +Version: 2.3.4-0~kolab1 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Paul Klos <kolab@klos2day.nl> Homepage: http://www.kolab.org/ Standards-Version: 3.9.3 Vcs-Git: http://git.kolab.org/kolab-syncroton Build-Depends: debhelper (>= 8), po-debconf -Package-List: +Package-List: kolab-syncroton deb utils extra -Files: - 00000000000000000000000000000000 0 kolab-syncroton-2.3.3.tar.gz +Files: + 00000000000000000000000000000000 0 kolab-syncroton-2.3.4.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.