Hello community, here is the log from the commit of package evolution-ews for openSUSE:Factory checked in at 2018-04-19 15:23:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old) and /work/SRC/openSUSE:Factory/.evolution-ews.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-ews" Thu Apr 19 15:23:00 2018 rev:85 rq:596137 version:3.28.1 Changes: -------- --- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes 2018-03-26 12:53:55.341129039 +0200 +++ /work/SRC/openSUSE:Factory/.evolution-ews.new/evolution-ews.changes 2018-04-19 15:23:02.310796347 +0200 @@ -1,0 +2,7 @@ +Mon Apr 9 21:22:15 UTC 2018 - bjorn....@gmail.com + +- Update to version 3.28.1: + + Bugs fixed: bgo#794116, bgo#788202, bgo#794924, bgo#794815. + + Updated translations. + +------------------------------------------------------------------- Old: ---- evolution-ews-3.28.0.tar.xz New: ---- evolution-ews-3.28.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ evolution-ews.spec ++++++ --- /var/tmp/diff_new_pack.H3l4sb/_old 2018-04-19 15:23:02.894772759 +0200 +++ /var/tmp/diff_new_pack.H3l4sb/_new 2018-04-19 15:23:02.898772597 +0200 @@ -19,7 +19,7 @@ # _version needs to be %{version} stripped to major.minor.micro only... %define _version %(echo %{version} | grep -E -o '[0-9]+\.[0-9]+\.[0-9]+') Name: evolution-ews -Version: 3.28.0 +Version: 3.28.1 Release: 0 Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later License: LGPL-2.1-only ++++++ evolution-ews-3.28.0.tar.xz -> evolution-ews-3.28.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/CMakeLists.txt new/evolution-ews-3.28.1/CMakeLists.txt --- old/evolution-ews-3.28.0/CMakeLists.txt 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/CMakeLists.txt 2018-04-09 11:50:45.000000000 +0200 @@ -4,7 +4,7 @@ cmake_policy(VERSION 3.1) project(evolution-ews - VERSION 3.28.0 + VERSION 3.28.1 LANGUAGES C) set(PROJECT_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=evolution-ews") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/NEWS new/evolution-ews-3.28.1/NEWS --- old/evolution-ews-3.28.0/NEWS 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/NEWS 2018-04-09 11:50:45.000000000 +0200 @@ -1,3 +1,15 @@ +Evolution-EWS 3.28.1 2018-04-09 +------------------------------- + +Bug Fixes: + Bug 794116 - Delete messages in chunks to not exceed maximum limit (Milan Crha) + Bug 788202 - Convert Task dates to time zone set in Evolution (Milan Crha) + Bug 794924 - Reading EWS contact list aborts after error (Milan Crha) + Bug 794815 - Forgive errors when fetching events (Milan Crha) + +Translations: + Andika Triwidada (id) + Evolution-EWS 3.28.0 2018-03-12 ------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/po/id.po new/evolution-ews-3.28.1/po/id.po --- old/evolution-ews-3.28.0/po/id.po 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/po/id.po 2018-04-09 11:50:45.000000000 +0200 @@ -5,67 +5,67 @@ # msgid "" msgstr "" -"Project-Id-Version: evolution-ews master\n" +"Project-Id-Version: evolution-ews gnome-3-28\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" "product=evolution-ews&keywords=I18N+L10N&component=Miscellaneous / EWS Core\n" -"POT-Creation-Date: 2017-11-30 17:15+0000\n" -"PO-Revision-Date: 2017-12-05 14:42+0700\n" -"Last-Translator: Kukuh Syafaat <syafaatku...@gmail.com>\n" +"POT-Creation-Date: 2018-03-12 15:07+0000\n" +"PO-Revision-Date: 2018-03-15 20:51+0700\n" +"Last-Translator: Andika Triwidada <and...@gmail.com>\n" "Language-Team: Indonesian <gn...@i15n.org>\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.6\n" #: ../org.gnome.Evolution-ews.metainfo.xml.in.h:1 -#: ../src/camel/camel-ews-provider.c:79 +#: ../src/camel/camel-ews-provider.c:81 #: ../src/configuration/e-ews-config-lookup.c:251 msgid "Exchange Web Services" msgstr "Layanan Web Exchange" #: ../org.gnome.Evolution-ews.metainfo.xml.in.h:2 -#: ../src/camel/camel-ews-provider.c:81 +#: ../src/camel/camel-ews-provider.c:83 msgid "For accessing Exchange servers using Web Services" msgstr "Untuk mengakses server Exchange memakai Layanan Web" -#: ../src/addressbook/e-book-backend-ews.c:2957 +#: ../src/addressbook/e-book-backend-ews.c:2971 msgid "Failed to update GAL:" msgstr "Failed to update GAL:" -#: ../src/addressbook/e-book-backend-ews.c:3116 +#: ../src/addressbook/e-book-backend-ews.c:3132 msgid "" "Cannot save contact list, it’s only supported on EWS Server 2010 or later" msgstr "" "Tak bisa menyimpan daftar kontak, itu hanya didukung pada EWS Server 2010 " "atau setelahnya" -#: ../src/addressbook/e-book-backend-ews.c:3209 +#: ../src/addressbook/e-book-backend-ews.c:3225 msgid "Failed to set contact photo:" msgstr "Gagal mengatur foto kontak:" -#: ../src/calendar/e-cal-backend-ews.c:1573 +#: ../src/calendar/e-cal-backend-ews.c:1591 msgctxt "FreeBusyType" msgid "Free" msgstr "Luang" -#: ../src/calendar/e-cal-backend-ews.c:1576 +#: ../src/calendar/e-cal-backend-ews.c:1594 msgctxt "FreeBusyType" msgid "Busy" msgstr "Sibuk" -#: ../src/calendar/e-cal-backend-ews.c:1578 +#: ../src/calendar/e-cal-backend-ews.c:1596 msgctxt "FreeBusyType" msgid "Out of Office" msgstr "Keluar Kantor" -#: ../src/calendar/e-cal-backend-ews.c:1580 +#: ../src/calendar/e-cal-backend-ews.c:1598 msgctxt "FreeBusyType" msgid "Tentative" msgstr "Sementara" -#: ../src/calendar/e-cal-backend-ews.c:3188 +#: ../src/calendar/e-cal-backend-ews.c:3211 #, c-format msgid "Cannot find user “%s” between attendees" msgstr "Tak bisa temukan pengguna “%s” diantara yang hadir" @@ -118,58 +118,58 @@ msgid "Cannot perform actions on the folder while in offline mode" msgstr "Tak bisa melakukan aksi pada folder ketika dalam mode luring" -#: ../src/camel/camel-ews-provider.c:45 +#: ../src/camel/camel-ews-provider.c:47 msgid "Checking for new mail" msgstr "Sedang memeriksa surat baru" -#: ../src/camel/camel-ews-provider.c:47 +#: ../src/camel/camel-ews-provider.c:49 msgid "C_heck for new messages in all folders" msgstr "C_ek pesan baru dalam semua folder" -#: ../src/camel/camel-ews-provider.c:49 +#: ../src/camel/camel-ews-provider.c:51 msgid "_Listen for server change notifications" msgstr "_Dengarkan notifikasi perubahan server" -#: ../src/camel/camel-ews-provider.c:52 +#: ../src/camel/camel-ews-provider.c:54 msgid "Options" msgstr "Opsi" -#: ../src/camel/camel-ews-provider.c:54 +#: ../src/camel/camel-ews-provider.c:56 msgid "_Apply filters to new messages in Inbox on this server" msgstr "Ter_apkan penyaring pada pesan baru dalam Kotak Masuk pada server ini" -#: ../src/camel/camel-ews-provider.c:56 +#: ../src/camel/camel-ews-provider.c:58 msgid "Check new messages for _Junk contents" msgstr "Periksa pesan baru untuk isi _Spam" -#: ../src/camel/camel-ews-provider.c:58 +#: ../src/camel/camel-ews-provider.c:60 msgid "Only check for Junk messages in the IN_BOX folder" msgstr "Ha_nya periksa pesan SPAM pada folder IN_BOX" -#: ../src/camel/camel-ews-provider.c:60 +#: ../src/camel/camel-ews-provider.c:62 msgid "Synchroni_ze remote mail locally in all folders" msgstr "_Sinkronkan surat jauh ke lokal di semua folder" -#: ../src/camel/camel-ews-provider.c:64 +#: ../src/camel/camel-ews-provider.c:66 msgid "Connection" msgstr "Koneksi" #. Translators: '%s' is preplaced with a widget, where " #. * user can select how long the timeout should be. -#: ../src/camel/camel-ews-provider.c:68 +#: ../src/camel/camel-ews-provider.c:70 #, c-format msgid "Connection _timeout (in seconds) %s" msgstr "Tenggang wak_tu koneksi (dalam detik) %s" -#: ../src/camel/camel-ews-provider.c:70 +#: ../src/camel/camel-ews-provider.c:72 msgid "Override _User-Agent header value" msgstr "Timpa nilai header _User-Agent" -#: ../src/camel/camel-ews-provider.c:96 +#: ../src/camel/camel-ews-provider.c:98 msgid "NTLM" msgstr "NTLM" -#: ../src/camel/camel-ews-provider.c:98 +#: ../src/camel/camel-ews-provider.c:100 msgid "" "This option will connect to the Exchange server using a plaintext password " "with NTLM authentication." @@ -177,11 +177,11 @@ "Opsi ini akan menyambung ke server Exchange menggunakan sandi teks polos " "dengan otentikasi NTLM." -#: ../src/camel/camel-ews-provider.c:106 +#: ../src/camel/camel-ews-provider.c:108 msgid "Basic" msgstr "Dasar" -#: ../src/camel/camel-ews-provider.c:108 +#: ../src/camel/camel-ews-provider.c:110 msgid "" "This option will connect to the Exchange server using a plaintext password " "with Basic authentication." @@ -189,11 +189,11 @@ "Opsi ini akan menyambung ke server Exchange menggunakan sandi teks polos " "dengan otentikasi Dasar." -#: ../src/camel/camel-ews-provider.c:116 +#: ../src/camel/camel-ews-provider.c:118 msgid "Kerberos" msgstr "Kerberos" -#: ../src/camel/camel-ews-provider.c:118 +#: ../src/camel/camel-ews-provider.c:120 msgid "" "This option will connect to the Exchange server using a Kerberos/GSSAPI " "authentication." @@ -252,30 +252,30 @@ msgid "Updating foreign folders" msgstr "Memutakhirkan folder asing" -#: ../src/camel/camel-ews-store.c:2057 +#: ../src/camel/camel-ews-store.c:2075 #, c-format msgid "No such folder: %s" msgstr "Tak ada folder begitu: %s" -#: ../src/camel/camel-ews-store.c:2355 +#: ../src/camel/camel-ews-store.c:2373 msgid "Cannot list EWS public folders in offline mode" msgstr "Tak bisa membaca daftar folder publik EWS dalam mode luring" -#: ../src/camel/camel-ews-store.c:2428 +#: ../src/camel/camel-ews-store.c:2446 msgid "Cannot find any EWS public folders" msgstr "Tak bisa temukan folder publik EWS manapun" -#: ../src/camel/camel-ews-store.c:2537 +#: ../src/camel/camel-ews-store.c:2555 #, c-format msgid "Cannot create folder “%s”, folder already exists" msgstr "Tak bisa membuat folder “%s”, folder telah ada" -#: ../src/camel/camel-ews-store.c:2552 +#: ../src/camel/camel-ews-store.c:2570 #, c-format msgid "Parent folder %s does not exist" msgstr "Folder induk %s tidak ada" -#: ../src/camel/camel-ews-store.c:2562 +#: ../src/camel/camel-ews-store.c:2580 #, c-format msgid "" "Cannot create folder under “%s”, it is used for folders of other users only" @@ -283,129 +283,129 @@ "Tak bisa membuat folder di bawah “%s”, itu hanya dipakai bagi folder " "pengguna lain" -#: ../src/camel/camel-ews-store.c:2572 +#: ../src/camel/camel-ews-store.c:2590 #, c-format msgid "Cannot create folder under “%s”, it is used for public folders only" msgstr "" "Tak bisa membuat folder di bawah “%s”, itu hanya dipakai bagi folder publik" -#: ../src/camel/camel-ews-store.c:2676 +#: ../src/camel/camel-ews-store.c:2694 #, c-format msgid "Folder does not exist" msgstr "Folder tidak ada" -#: ../src/camel/camel-ews-store.c:2686 +#: ../src/camel/camel-ews-store.c:2704 #, c-format msgid "Cannot remove folder “%s”, it is used for folders of other users only" msgstr "" "Tak bisa menghapus folder “%s”, itu hanya dipakai bagi folder pengguna lain" -#: ../src/camel/camel-ews-store.c:2697 +#: ../src/camel/camel-ews-store.c:2715 #, c-format msgid "Cannot remove folder “%s”, it is used for public folders only" msgstr "Tak bisa menghapus folder “%s”, itu hanya dipakai bagi folder publik" -#: ../src/camel/camel-ews-store.c:2853 +#: ../src/camel/camel-ews-store.c:2871 #, c-format msgid "Folder %s does not exist" msgstr "Folder %s tidak ada" -#: ../src/camel/camel-ews-store.c:2862 +#: ../src/camel/camel-ews-store.c:2880 #, c-format msgid "No change key record for folder %s" msgstr "Tidak ada catatan kunci perubahan bagi folder %s" -#: ../src/camel/camel-ews-store.c:2905 +#: ../src/camel/camel-ews-store.c:2923 #, c-format msgid "Cannot both rename and move a folder at the same time" msgstr "Tak bisa sekaligus mengubah nama dan memindah folder di saat yang sama" -#: ../src/camel/camel-ews-store.c:2939 +#: ../src/camel/camel-ews-store.c:2957 #, c-format msgid "Cannot find folder ID for parent folder %s" msgstr "Tak bisa temukan ID folder bagi folder induk %s" -#: ../src/camel/camel-ews-store.c:2991 ../src/camel/camel-ews-transport.c:315 +#: ../src/camel/camel-ews-store.c:3009 ../src/camel/camel-ews-transport.c:318 #, c-format msgid "Exchange server %s" msgstr "Server Exchange %s" -#: ../src/camel/camel-ews-store.c:2994 +#: ../src/camel/camel-ews-store.c:3012 #, c-format msgid "Exchange service for %s on %s" msgstr "Layanan Exchange untuk %s pada %s" -#: ../src/camel/camel-ews-store.c:3038 +#: ../src/camel/camel-ews-store.c:3056 #, c-format msgid "Could not locate Trash folder" msgstr "Tak bisa temukan folder Tong Sampah" -#: ../src/camel/camel-ews-store.c:3098 +#: ../src/camel/camel-ews-store.c:3116 #, c-format msgid "Could not locate Junk folder" msgstr "Tak bisa temukan folder Sampah" -#: ../src/camel/camel-ews-store.c:3289 +#: ../src/camel/camel-ews-store.c:3307 msgid "Cannot subscribe EWS folders in offline mode" msgstr "Tak bisa berlangganan folder EWS dalam mode luring" -#: ../src/camel/camel-ews-store.c:3312 +#: ../src/camel/camel-ews-store.c:3330 #, c-format msgid "Cannot subscribe folder “%s”, no public folder available" msgstr "Tak bisa berlangganan folder “%s”, tak ada folder publik yang tersedia" -#: ../src/camel/camel-ews-store.c:3322 +#: ../src/camel/camel-ews-store.c:3340 #, c-format msgid "Cannot subscribe folder “%s”, folder not found" msgstr "Tak bisa berlangganan folder “%s”, folder tak ditemukan" -#: ../src/camel/camel-ews-store.c:3413 +#: ../src/camel/camel-ews-store.c:3431 msgid "Cannot unsubscribe EWS folders in offline mode" msgstr "Tak bisa berhenti berlangganan folder EWS dalam mode luring" -#: ../src/camel/camel-ews-store.c:3530 +#: ../src/camel/camel-ews-store.c:3548 #, c-format msgid "You must be working online to complete this operation" msgstr "Anda mesti daring untuk menuntaskan operasi ini" -#: ../src/camel/camel-ews-store.c:3574 ../src/camel/camel-ews-store.c:3611 +#: ../src/camel/camel-ews-store.c:3592 ../src/camel/camel-ews-store.c:3629 msgid "Unsetting the “Out of Office” status" msgstr "Sedang menghapus status \"Di Luar Kantor\"" -#: ../src/camel/camel-ews-transport.c:318 +#: ../src/camel/camel-ews-transport.c:321 #, c-format msgid "Exchange mail delivery via %s" msgstr "Pengantaran surel Exchange melalui %s" -#: ../src/camel/camel-ews-transport.c:367 +#: ../src/camel/camel-ews-transport.c:370 msgid "Cannot send message with no From address" msgstr "Tak bisa mengirim pesan tanpa alamat Dari" -#: ../src/camel/camel-ews-transport.c:373 +#: ../src/camel/camel-ews-transport.c:376 msgid "Exchange server cannot send message with multiple From addresses" msgstr "Server Exchange tak bisa mengirim pesan dengan alamat Dari berganda" -#: ../src/camel/camel-ews-transport.c:383 +#: ../src/camel/camel-ews-transport.c:386 msgid "Failed to read From address" msgstr "Gagal membaca alamat Dari" -#: ../src/camel/camel-ews-transport.c:393 +#: ../src/camel/camel-ews-transport.c:396 #, c-format msgid "Service not connected" msgstr "Layanan tidak tersambung" -#: ../src/collection/e-ews-backend.c:489 +#: ../src/collection/e-ews-backend.c:522 #: ../src/configuration/e-mail-config-ews-gal.c:274 msgid "Global Address List" msgstr "Daftar Alamat Global" -#: ../src/collection/e-ews-backend.c:926 +#: ../src/collection/e-ews-backend.c:959 #, c-format msgid "Could not determine a suitable folder class for a new folder named “%s”" msgstr "" "Tak bisa menentukan kelas folder yang cocok bagi folder baru bernama “%s”" -#: ../src/collection/e-ews-backend.c:1014 +#: ../src/collection/e-ews-backend.c:1047 #, c-format msgid "Data source “%s” does not represent an Exchange Web Services folder" msgstr "" @@ -448,56 +448,56 @@ msgid "Unable to retrieve folder size information" msgstr "Tak bisa mengambil informasi ukuran folder" -#: ../src/configuration/e-ews-config-utils.c:747 +#: ../src/configuration/e-ews-config-utils.c:754 msgid "Folder Sizes" msgstr "Ukuran Folder" -#: ../src/configuration/e-ews-config-utils.c:750 +#: ../src/configuration/e-ews-config-utils.c:757 msgid "_Close" msgstr "_Tutup" -#: ../src/configuration/e-ews-config-utils.c:764 +#: ../src/configuration/e-ews-config-utils.c:771 msgid "Fetching folder list…" -msgstr "Mengambil daftar folder..." +msgstr "Mengambil daftar folder…" -#: ../src/configuration/e-ews-config-utils.c:917 +#: ../src/configuration/e-ews-config-utils.c:924 #, c-format msgid "Cannot edit permissions of folder “%s”, choose other folder." msgstr "Tak bisa menyunting hak akses folder “%s”, pilih folder lain." -#: ../src/configuration/e-ews-config-utils.c:994 +#: ../src/configuration/e-ews-config-utils.c:1001 msgid "Folder Sizes..." msgstr "Ukuran Folder..." -#: ../src/configuration/e-ews-config-utils.c:1001 +#: ../src/configuration/e-ews-config-utils.c:1008 msgid "Subscribe to folder of other user..." msgstr "Berlangganan ke folder milik pengguna lain…" -#: ../src/configuration/e-ews-config-utils.c:1010 -#: ../src/configuration/e-ews-config-utils.c:1314 -#: ../src/configuration/e-ews-config-utils.c:1345 -#: ../src/configuration/e-ews-config-utils.c:1376 -#: ../src/configuration/e-ews-config-utils.c:1407 +#: ../src/configuration/e-ews-config-utils.c:1017 +#: ../src/configuration/e-ews-config-utils.c:1321 +#: ../src/configuration/e-ews-config-utils.c:1352 +#: ../src/configuration/e-ews-config-utils.c:1383 +#: ../src/configuration/e-ews-config-utils.c:1414 msgid "Permissions..." msgstr "Izin…" -#: ../src/configuration/e-ews-config-utils.c:1012 +#: ../src/configuration/e-ews-config-utils.c:1019 msgid "Edit EWS folder permissions" msgstr "Sunting hak akses folder EWS" -#: ../src/configuration/e-ews-config-utils.c:1316 +#: ../src/configuration/e-ews-config-utils.c:1323 msgid "Edit EWS calendar permissions" msgstr "Sunting hak akses kalender EWS" -#: ../src/configuration/e-ews-config-utils.c:1347 +#: ../src/configuration/e-ews-config-utils.c:1354 msgid "Edit EWS tasks permissions" msgstr "Sunting hak akses tugas EWS" -#: ../src/configuration/e-ews-config-utils.c:1378 +#: ../src/configuration/e-ews-config-utils.c:1385 msgid "Edit EWS memos permissions" msgstr "Sunting hak akses memo EWS" -#: ../src/configuration/e-ews-config-utils.c:1409 +#: ../src/configuration/e-ews-config-utils.c:1416 msgid "Edit EWS contacts permissions" msgstr "Sunting hak akses kontak EWS" @@ -877,50 +877,110 @@ msgid "Include _subfolders" msgstr "Sertakan _subfolder" -#: ../src/configuration/e-mail-config-ews-autodiscover.c:220 +#: ../src/configuration/e-mail-config-ews-autodiscover.c:229 msgid "Querying Autodiscover service" msgstr "Mengquery layanan Autodiscover" -#: ../src/configuration/e-mail-config-ews-autodiscover.c:317 +#: ../src/configuration/e-mail-config-ews-autodiscover.c:326 msgid "Fetch _URL" msgstr "_URL Ambil" -#: ../src/configuration/e-mail-config-ews-backend.c:138 +#: ../src/configuration/e-mail-config-ews-backend.c:178 msgid "Configuration" msgstr "Konfigurasi" -#: ../src/configuration/e-mail-config-ews-backend.c:156 +#: ../src/configuration/e-mail-config-ews-backend.c:196 msgid "User_name:" msgstr "_Nama pengguna:" -#: ../src/configuration/e-mail-config-ews-backend.c:170 +#: ../src/configuration/e-mail-config-ews-backend.c:210 msgid "_Host URL:" msgstr "URL _Host:" -#: ../src/configuration/e-mail-config-ews-backend.c:189 +#: ../src/configuration/e-mail-config-ews-backend.c:229 msgid "OAB U_RL:" msgstr "U_RL OAB:" -#: ../src/configuration/e-mail-config-ews-backend.c:203 +#: ../src/configuration/e-mail-config-ews-backend.c:243 msgid "Open _Mailbox of other user" msgstr "Buka _Kotak surat pengguna lain" -#: ../src/configuration/e-mail-config-ews-backend.c:237 +#: ../src/configuration/e-mail-config-ews-backend.c:277 msgid "S_earch..." msgstr "_Cari…" -#: ../src/configuration/e-mail-config-ews-backend.c:248 +#: ../src/configuration/e-mail-config-ews-backend.c:288 msgid "Authentication" msgstr "Otentikasi" -#: ../src/configuration/e-mail-config-ews-backend.c:400 +#: ../src/configuration/e-mail-config-ews-backend.c:315 +msgid "_Override Office365 OAuth2 settings" +msgstr "Timpa setelan _OAuth2 Office365" + +#: ../src/configuration/e-mail-config-ews-backend.c:319 +msgid "Help…" +msgstr "Bantuan…" + +#. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world. +#. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/ +#: ../src/configuration/e-mail-config-ews-backend.c:328 +msgid "_Tenant:" +msgstr "_Tenant:" + +#. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world. +#. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/ +#: ../src/configuration/e-mail-config-ews-backend.c:353 +msgid "There is not set any default tenant" +msgstr "Tidak diatur tenant baku apapun" + +#. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world. +#. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/ +#: ../src/configuration/e-mail-config-ews-backend.c:356 +#, c-format +msgid "Default tenant is “%s”" +msgstr "Tenant baku adalah \"%s\"" + +#: ../src/configuration/e-mail-config-ews-backend.c:358 +msgid "Application I_D:" +msgstr "I_D Aplikasi:" + +#: ../src/configuration/e-mail-config-ews-backend.c:381 +msgid "There is not set any default application ID" +msgstr "Tidak diatur ID aplikasi baku apapun" + +#: ../src/configuration/e-mail-config-ews-backend.c:382 +#, c-format +msgid "Default application ID is “%s”" +msgstr "ID aplikasi baku adalah \"%s\"" + +#: ../src/configuration/e-mail-config-ews-backend.c:384 +msgid "_Redirect URI:" +msgstr "U_RI pengalihan:" + +#: ../src/configuration/e-mail-config-ews-backend.c:406 +#: ../src/configuration/e-mail-config-ews-backend.c:409 +#, c-format +msgid "Default redirect URI is “%s”" +msgstr "URI pengalihan baku adalah \"%s\"" + +#: ../src/configuration/e-mail-config-ews-backend.c:581 msgid "Host URL cannot be empty" msgstr "URL host tak boleh kosong" -#: ../src/configuration/e-mail-config-ews-backend.c:405 +#: ../src/configuration/e-mail-config-ews-backend.c:586 msgid "User name cannot be empty" msgstr "Nama pengguna tak boleh kosong" +#. Translators: 'Tenant' here means a term used by Microsoft to identify a company or organization in an Office 365 world. +#. You probably do not want to translate it. More for example here: https://powerbi.microsoft.com/en-us/blog/what-is-a-tenant/ +#: ../src/configuration/e-mail-config-ews-backend.c:604 +msgid "Tenant cannot be empty" +msgstr "Tenant tak boleh kosong" + +#: ../src/configuration/e-mail-config-ews-backend.c:609 +msgid "Application ID cannot be empty" +msgstr "ID aplikasi tak boleh kosong" + #: ../src/configuration/e-mail-config-ews-delegates-page.c:417 msgctxt "PermissionsLevel" msgid "Reviewer (can read items)" @@ -1136,107 +1196,124 @@ #: ../src/configuration/module-ews-configuration.error.xml.h:4 msgid "Failed to retrieve “Out of Office” settings." -msgstr "Gagal mengambil pengaturan \"Di Luar Kantor\"" +msgstr "Gagal mengambil pengaturan \"Di Luar Kantor\"." #: ../src/configuration/module-ews-configuration.error.xml.h:5 msgid "Failed to retrieve “Delegates” settings." -msgstr "Gagal mengambil pengaturan \"Delegasi\"" +msgstr "Gagal mengambil pengaturan \"Delegasi\"." #: ../src/configuration/module-ews-configuration.error.xml.h:6 msgid "Your Exchange account “{0}” has the status set as “Out of Office”." msgstr "Akun Exchange \"{0}\" memiliki status \"Di Luar Kantor\"." +#: ../src/server/camel-sasl-xoauth2-office365.c:23 +#| msgid "Out of Office" +msgid "OAuth2 (Office365)" +msgstr "OAuth2 (Office365)" + +#: ../src/server/camel-sasl-xoauth2-office365.c:24 +msgid "" +"This option will use an OAuth 2.0 access token to connect to the Office365." +"com server" +msgstr "" +"Opsi ini akan memakai token akses OAuth 2.0 untuk menyambung ke server " +"Office365.com" + #: ../src/server/e-ews-camel-common.c:376 #, c-format msgid "CreateItem call failed to return ID for new message" msgstr "Pemanggilan CreateItem gagal mengembalikan ID bagi pesan baru" -#: ../src/server/e-ews-connection.c:733 +#: ../src/server/e-ews-connection.c:759 msgid "Operation Cancelled" msgstr "Operasi Dibatalkan" -#: ../src/server/e-ews-connection.c:789 -#, c-format -msgid "Password expired. Change password at “%s”." -msgstr "Kata sandi kedaluwarsa. Ganti kata sandi di \"%s\"" - -#: ../src/server/e-ews-connection.c:792 -msgid "Password expired." -msgstr "Kata sandi kedaluwarsa." - -#: ../src/server/e-ews-connection.c:891 +#: ../src/server/e-ews-connection.c:880 msgid "Authentication failed" msgstr "Otentikasi gagal" -#: ../src/server/e-ews-connection.c:913 +#: ../src/server/e-ews-connection.c:902 #, c-format msgid "No response: %s" msgstr "Tak ada respon: %s" -#: ../src/server/e-ews-connection.c:976 +#: ../src/server/e-ews-connection.c:965 #, c-format msgid "Exchange server is busy, waiting to retry (%d:%02d minute)" msgid_plural "Exchange server is busy, waiting to retry (%d:%02d minutes)" msgstr[0] "" "Server Exchange sedang sibuk, menunggu untuk mencoba lagi (%d:%02d menit)" -#: ../src/server/e-ews-connection.c:982 +#: ../src/server/e-ews-connection.c:971 #, c-format msgid "Exchange server is busy, waiting to retry (%d second)" msgid_plural "Exchange server is busy, waiting to retry (%d seconds)" msgstr[0] "" "Server Exchange sedang sibuk, menunggu untuk mencoba lagi (%d detik)" -#: ../src/server/e-ews-connection.c:2804 +#: ../src/server/e-ews-connection.c:2900 #, c-format msgid "Failed to parse autodiscover response XML" msgstr "Gagal mengurai XML respon autodiscover" -#: ../src/server/e-ews-connection.c:2811 +#: ../src/server/e-ews-connection.c:2907 #, c-format msgid "Failed to find <Autodiscover> element" msgstr "Gagal menemukan elemen <Autodiscover>" -#: ../src/server/e-ews-connection.c:2822 +#: ../src/server/e-ews-connection.c:2918 #, c-format msgid "Failed to find <Response> element" msgstr "Gagal menemukan elemen <Response>" -#: ../src/server/e-ews-connection.c:2833 +#: ../src/server/e-ews-connection.c:2929 #, c-format msgid "Failed to find <Account> element" msgstr "Gagal menemukan elemen <Account>" -#: ../src/server/e-ews-connection.c:2858 +#: ../src/server/e-ews-connection.c:2954 #, c-format msgid "Failed to find <ASUrl> and <OABUrl> in autodiscover response" msgstr "Gagal menemukan <ASUrl> dan <OABUrl> dalam respon autodiscover" -#: ../src/server/e-ews-connection.c:2949 +#: ../src/server/e-ews-connection.c:3045 msgid "URL cannot be NULL" msgstr "URL tak boleh NULL" -#: ../src/server/e-ews-connection.c:2957 +#: ../src/server/e-ews-connection.c:3053 #, c-format msgid "URL “%s” is not valid" msgstr "URL “%s” tak valid" -#: ../src/server/e-ews-connection.c:3047 +#: ../src/server/e-ews-connection.c:3144 msgid "Email address is missing a domain part" msgstr "Alamat surel kurang bagian domain" -#: ../src/server/e-ews-connection.c:3371 +#: ../src/server/e-ews-connection.c:3499 msgid "Failed to parse oab XML" msgstr "Gagal mengurai XML oab" -#: ../src/server/e-ews-connection.c:3379 +#: ../src/server/e-ews-connection.c:3507 msgid "Failed to find <OAB> element\n" msgstr "Gagal menemukan elemen <OAB>\n" -#: ../src/server/e-ews-connection.c:4686 +#: ../src/server/e-ews-connection.c:4814 msgid "No items found" msgstr "Tak temukan butir" +#: ../src/server/e-ews-connection-utils.c:197 +#, c-format +msgid "Password expired. Change password at “%s”." +msgstr "Kata sandi kedaluwarsa. Ganti kata sandi di \"%s\"." + +#: ../src/server/e-ews-connection-utils.c:200 +msgid "Password expired." +msgstr "Kata sandi kedaluwarsa." + +#: ../src/server/e-ews-connection-utils.c:427 +msgid "Unknown error" +msgstr "Galat tak dikenal" + #: ../src/server/e-ews-folder.c:728 msgid "Cannot add folder, unsupported folder type" msgstr "Tak bisa menambah folder, tipe folder tak didukung" @@ -1245,43 +1322,8 @@ msgid "Cannot add folder, master source not found" msgstr "Tak bisa menambah folder, sumber induk tak ditemukan" -#~ msgid "The backend does not support bulk additions" -#~ msgstr "Backend tak mendukung penambahan masal" - -#~ msgid "The backend does not support bulk modifications" -#~ msgstr "Backend tak mendukung pengubahan masal" - -#~ msgid "Wait till syncing is done" -#~ msgstr "Menunggu sampai penyelarasan selesai" - -#~ msgid "Processing contacts in %s %d%% completed... " -#~ msgstr "Memroses kontak dalam %s %d%% komplit..." - -#~ msgid "Syncing contacts..." -#~ msgstr "Menyelaraskan kontak…" - -#~ msgid "Requested to delete an unrelated cursor" -#~ msgstr "Diminta menghapus sebuah kursor yang tak berhubungan" - -#~ msgid "EWS does not support bulk removals" -#~ msgstr "EWS tak mendukung penghapusan masa" - -#~ msgid "Unknown error" -#~ msgstr "Galat tak dikenal" - -#~ msgid "EWS does not support bulk additions" -#~ msgstr "EWS tak mendukung penambahan masal" - -#~ msgid "EWS does not support bulk modifications" -#~ msgstr "EWS tak mendukung pengubahan masal" - -#~ msgid "" -#~ "Exchange server cannot send message as '%s', when the account was " -#~ "configured for address '%s'" -#~ msgstr "" -#~ "Server Exchange tak bisa mengirim pesan sebagai '%s', ketika akun ditata " -#~ "bagi alamat '%s'" - -#~ msgctxt "ForeignFolder" -#~ msgid "%s - %s" -#~ msgstr "%s - %s" +#. Translators: This is a user-visible string, display name of an OAuth2 service. +#: ../src/server/e-oauth2-service-office365.c:124 +msgctxt "OAuth2Service" +msgid "Office365" +msgstr "Office365" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/addressbook/e-book-backend-ews.c new/evolution-ews-3.28.1/src/addressbook/e-book-backend-ews.c --- old/evolution-ews-3.28.0/src/addressbook/e-book-backend-ews.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/addressbook/e-book-backend-ews.c 2018-04-09 11:50:45.000000000 +0200 @@ -1541,6 +1541,39 @@ } } +static void +ebb_ews_mailbox_to_contact (EBookBackendEws *bbews, + EContact **contact, + GHashTable *values, + const EwsMailbox *mb) +{ + CamelInternetAddress *addr; + gchar *value; + + if (!mb->name && !mb->email) + return; + + addr = camel_internet_address_new (); + + camel_internet_address_add (addr, mb->name, mb->email ? mb->email : ""); + value = camel_address_encode (CAMEL_ADDRESS (addr)); + + if (value && (!values || g_hash_table_lookup (values, value) == NULL)) { + EVCardAttribute *attr; + + attr = e_vcard_attribute_new (NULL, EVC_EMAIL); + e_vcard_attribute_add_value (attr, value); + e_vcard_append_attribute (E_VCARD (*contact), attr); + + if (values) + g_hash_table_insert (values, g_strdup (value), GINT_TO_POINTER (1)); + } else { + g_free (value); + } + + g_object_unref (addr); +} + static gboolean ebb_ews_traverse_dl (EBookBackendEws *bbews, EContact **contact, @@ -1556,6 +1589,7 @@ gboolean includes_last; gboolean ret = FALSE; const gchar *ident; + GError *local_error = NULL; if (mb->item_id && mb->item_id->id) ident = mb->item_id->id; @@ -1569,15 +1603,30 @@ g_hash_table_insert (items, g_strdup (ident), GINT_TO_POINTER (1)); - if (!e_ews_connection_expand_dl_sync ( + ret = e_ews_connection_expand_dl_sync ( bbews->priv->cnc, EWS_PRIORITY_MEDIUM, mb, &members, &includes_last, cancellable, - error)) - return FALSE; + &local_error); + + if (!ret) { + if (g_error_matches (local_error, EWS_CONNECTION_ERROR, EWS_CONNECTION_ERROR_NAMERESOLUTIONNORESULTS)) { + g_clear_error (&local_error); + if (mb->email && *mb->email) + ebb_ews_mailbox_to_contact (bbews, contact, values, mb); + + ret = TRUE; + members = NULL; + } else { + if (local_error) + g_propagate_error (error, local_error); + + return FALSE; + } + } for (l = members; l; l = l->next) { ret = ebb_ews_traverse_dl (bbews, contact, items, values, l->data, cancellable, error); @@ -1588,27 +1637,7 @@ g_slist_free_full (members, (GDestroyNotify) e_ews_mailbox_free); return ret; } else { - EVCardAttribute *attr; - CamelInternetAddress *addr; - gchar *value = NULL; - - if (mb->name == NULL && mb->email == NULL) - return TRUE; - - addr = camel_internet_address_new (); - attr = e_vcard_attribute_new (NULL, EVC_EMAIL); - - camel_internet_address_add (addr, mb->name, mb->email ? mb->email : ""); - value = camel_address_encode (CAMEL_ADDRESS (addr)); - - if (value && g_hash_table_lookup (values, value) == NULL) { - e_vcard_attribute_add_value (attr, value); - e_vcard_append_attribute (E_VCARD (*contact), attr); - - g_hash_table_insert (values, g_strdup (value), GINT_TO_POINTER (1)); - } - - g_object_unref (addr); + ebb_ews_mailbox_to_contact (bbews, contact, values, mb); return TRUE; } @@ -1765,6 +1794,7 @@ EwsMailbox *mb; GSList *members = NULL; gboolean includes_last; + GError *local_error = NULL; if (e_ews_item_get_item_type (item) == E_EWS_ITEM_TYPE_ERROR) continue; @@ -1774,15 +1804,21 @@ mb->item_id = (EwsId *) id; d_name = e_ews_item_get_subject (item); - if (!e_ews_connection_expand_dl_sync ( + if (e_ews_connection_expand_dl_sync ( bbews->priv->cnc, EWS_PRIORITY_MEDIUM, mb, &members, - &includes_last, cancellable, error)) - goto cleanup; - - ret = ebb_ews_contacts_append_dl (bbews, id, d_name, members, contacts, cancellable, error); + &includes_last, cancellable, &local_error)) { + ret = ebb_ews_contacts_append_dl (bbews, id, d_name, members, contacts, cancellable, error); + g_slist_free_full (members, (GDestroyNotify) e_ews_mailbox_free); + } else { + ret = g_error_matches (local_error, EWS_CONNECTION_ERROR, EWS_CONNECTION_ERROR_NAMERESOLUTIONNORESULTS); + if (ret) { + g_clear_error (&local_error); + } else if (local_error) { + g_propagate_error (error, local_error); + } + } g_free (mb); - g_slist_free_full (members, (GDestroyNotify) e_ews_mailbox_free); if (!ret) goto cleanup; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/calendar/e-cal-backend-ews.c new/evolution-ews-3.28.1/src/calendar/e-cal-backend-ews.c --- old/evolution-ews-3.28.0/src/calendar/e-cal-backend-ews.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/calendar/e-cal-backend-ews.c 2018-04-09 11:50:45.000000000 +0200 @@ -38,6 +38,7 @@ #include <libical/icalproperty.h> #include <libical/icalparameter.h> +#include <calendar/gui/calendar-config.h> #include <calendar/gui/itip-utils.h> #include "server/e-source-ews-folder.h" @@ -418,13 +419,14 @@ } if (item_type == E_EWS_ITEM_TYPE_TASK) { + icaltimezone *user_timezone = calendar_config_get_icaltimezone (); const gchar *percent_complete; /*start date*/ has_this_date = FALSE; e_ews_item_task_has_start_date (item, &has_this_date); if (has_this_date) { - start_date = icaltime_from_timet_with_zone (e_ews_item_get_start_date (item), 0, utc_zone); + start_date = icaltime_from_timet_with_zone (e_ews_item_get_start_date (item), 0, user_timezone); start_date.is_date = 1; icalprop = icalproperty_new_dtstart (start_date); icalcomponent_add_property (icalcomp, icalprop); @@ -453,7 +455,7 @@ /*due date*/ e_ews_item_task_has_due_date (item, &has_this_date); if (has_this_date) { - due_date = icaltime_from_timet_with_zone (e_ews_item_get_due_date (item), 0, utc_zone); + due_date = icaltime_from_timet_with_zone (e_ews_item_get_due_date (item), 0, user_timezone); due_date.is_date = 1; icalprop = icalproperty_new_due (due_date); icalcomponent_add_property (icalcomp, icalprop); @@ -463,7 +465,7 @@ has_this_date = FALSE; e_ews_item_task_has_complete_date (item, &has_this_date); if (has_this_date) { - complete_date = icaltime_from_timet_with_zone (e_ews_item_get_complete_date (item), 0, utc_zone); + complete_date = icaltime_from_timet_with_zone (e_ews_item_get_complete_date (item), 0, user_timezone); icalprop = icalproperty_new_completed (complete_date); icalcomponent_add_property (icalcomp, icalprop); } @@ -517,7 +519,7 @@ if (!vcomp) { if (mime_content) - g_warn_if_reached (); + g_warning ("%s: Failed to parse mime content:---%s---", G_STRFUNC, mime_content); return NULL; } @@ -1048,9 +1050,14 @@ break; } else { ECalComponent *comp; + GError *local_error = NULL; - comp = ecb_ews_item_to_component_sync (cbews, item, cancellable, error); + comp = ecb_ews_item_to_component_sync (cbews, item, cancellable, &local_error); if (!comp) { + if (!local_error) + continue; + + g_propagate_error (error, local_error); success = FALSE; break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/camel/camel-ews-folder.c new/evolution-ews-3.28.1/src/camel/camel-ews-folder.c --- old/evolution-ews-3.28.0/src/camel/camel-ews-folder.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/camel/camel-ews-folder.c 2018-04-09 11:50:45.000000000 +0200 @@ -2446,9 +2446,9 @@ cnc = camel_ews_store_ref_connection (ews_store); - ret = e_ews_connection_delete_items_sync ( + ret = e_ews_connection_delete_items_in_chunks_sync ( cnc, EWS_PRIORITY_MEDIUM, deleted_items, delete_type, - EWS_SEND_TO_NONE, FALSE, cancellable, error); + EWS_SEND_TO_NONE, EWS_NONE_OCCURRENCES, cancellable, error); g_object_unref (cnc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/server/CMakeLists.txt new/evolution-ews-3.28.1/src/server/CMakeLists.txt --- old/evolution-ews-3.28.0/src/server/CMakeLists.txt 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/server/CMakeLists.txt 2018-04-09 11:50:45.000000000 +0200 @@ -54,6 +54,7 @@ target_compile_options(evolution-ews PUBLIC ${CAMEL_CFLAGS} + ${EVOLUTION_CALENDAR_CFLAGS} ${LIBEBACKEND_CFLAGS} ${LIBECAL_CFLAGS} ${LIBEDATACAL_CFLAGS} @@ -69,6 +70,7 @@ ${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR} ${CAMEL_INCLUDE_DIRS} + ${EVOLUTION_CALENDAR_INCLUDE_DIRS} ${LIBEBACKEND_INCLUDE_DIRS} ${LIBECAL_INCLUDE_DIRS} ${LIBEDATACAL_INCLUDE_DIRS} @@ -79,6 +81,7 @@ target_link_libraries(evolution-ews ${CAMEL_LDFLAGS} + ${EVOLUTION_CALENDAR_LDFLAGS} ${LIBEBACKEND_LDFLAGS} ${LIBECAL_LDFLAGS} ${LIBEDATACAL_LDFLAGS} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/server/e-ews-calendar-utils.c new/evolution-ews-3.28.1/src/server/e-ews-calendar-utils.c --- old/evolution-ews-3.28.0/src/server/e-ews-calendar-utils.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/server/e-ews-calendar-utils.c 2018-04-09 11:50:45.000000000 +0200 @@ -19,6 +19,8 @@ #include "evolution-ews-config.h" +#include <calendar/gui/calendar-config.h> + #include "e-ews-message.h" #include "e-ews-calendar-utils.h" @@ -218,6 +220,7 @@ icaltimetype *tt, gboolean with_timezone) { + struct icaltimetype local_tt; gchar *str; gchar *tz_ident = NULL; @@ -245,6 +248,13 @@ } } + if (tt->is_date) { + local_tt = *tt; + local_tt.zone = calendar_config_get_icaltimezone (); + local_tt = icaltime_from_timet_with_zone (icaltime_as_timet_with_zone (local_tt, local_tt.zone), FALSE, icaltimezone_get_utc_timezone ()); + tt = &local_tt; + } + str = g_strdup_printf ( "%04d-%02d-%02dT%02d:%02d:%02d%s", tt->year, tt->month, tt->day, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/server/e-ews-connection.c new/evolution-ews-3.28.1/src/server/e-ews-connection.c --- old/evolution-ews-3.28.0/src/server/e-ews-connection.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/server/e-ews-connection.c 2018-04-09 11:50:45.000000000 +0200 @@ -4892,6 +4892,8 @@ ews_affected_tasks_to_str (EwsAffectedTaskOccurrencesType affected_tasks) { switch (affected_tasks) { + case EWS_NONE_OCCURRENCES: + return NULL; case EWS_ALL_OCCURRENCES: return "AllOccurrences"; case EWS_SPECIFIED_OCCURRENCE_ONLY: @@ -5033,7 +5035,7 @@ msg, "SendMeetingCancellations", ews_send_cancels_to_str (send_cancels), NULL, NULL); - if (affected_tasks) + if (affected_tasks != EWS_NONE_OCCURRENCES) e_soap_message_add_attribute ( msg, "AffectedTaskOccurrences", ews_affected_tasks_to_str (affected_tasks), NULL, NULL); @@ -5160,6 +5162,69 @@ return success; } + +gboolean +e_ews_connection_delete_items_in_chunks_sync (EEwsConnection *cnc, + gint pri, + const GSList *ids, + EwsDeleteType delete_type, + EwsSendMeetingCancellationsType send_cancels, + EwsAffectedTaskOccurrencesType affected_tasks, + GCancellable *cancellable, + GError **error) +{ + const GSList *iter; + guint total_ids = 0, done_ids = 0; + gboolean success = TRUE; + + g_return_val_if_fail (E_IS_EWS_CONNECTION (cnc), FALSE); + + g_object_ref (cnc); + + iter = ids; + + while (success && iter) { + guint n_ids; + const GSList *tmp_iter; + + for (tmp_iter = iter, n_ids = 0; tmp_iter && n_ids < EWS_MOVE_ITEMS_CHUNK_SIZE; tmp_iter = g_slist_next (tmp_iter), n_ids++) { + /* Only check bounds first, to avoid unnecessary allocations */ + } + + if (tmp_iter) { + GSList *shorter = NULL; + + if (total_ids == 0) + total_ids = g_slist_length ((GSList *) ids); + + for (n_ids = 0; iter && n_ids < EWS_MOVE_ITEMS_CHUNK_SIZE; iter = g_slist_next (iter), n_ids++) { + shorter = g_slist_prepend (shorter, iter->data); + } + + shorter = g_slist_reverse (shorter); + + success = e_ews_connection_delete_items_sync (cnc, pri, shorter, delete_type, send_cancels, + affected_tasks, cancellable, error); + + g_slist_free (shorter); + + done_ids += n_ids; + } else { + success = e_ews_connection_delete_items_sync (cnc, pri, iter, delete_type, send_cancels, + affected_tasks, cancellable, error); + + iter = NULL; + done_ids = total_ids; + } + + if (total_ids > 0) + camel_operation_progress (cancellable, 100 * (gdouble) done_ids / (gdouble) total_ids); + } + + g_object_unref (cnc); + + return success; +} static xmlXPathObjectPtr xpath_eval (xmlXPathContextPtr ctx, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/server/e-ews-connection.h new/evolution-ews-3.28.1/src/server/e-ews-connection.h --- old/evolution-ews-3.28.0/src/server/e-ews-connection.h 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/server/e-ews-connection.h 2018-04-09 11:50:45.000000000 +0200 @@ -107,7 +107,8 @@ } EwsSendMeetingCancellationsType; typedef enum { - EWS_ALL_OCCURRENCES = 1, + EWS_NONE_OCCURRENCES = 0, + EWS_ALL_OCCURRENCES, EWS_SPECIFIED_OCCURRENCE_ONLY } EwsAffectedTaskOccurrencesType; @@ -626,7 +627,15 @@ EwsAffectedTaskOccurrencesType affected_tasks, GCancellable *cancellable, GError **error); - +gboolean e_ews_connection_delete_items_in_chunks_sync + (EEwsConnection *cnc, + gint pri, + const GSList *ids, + EwsDeleteType delete_type, + EwsSendMeetingCancellationsType send_cancels, + EwsAffectedTaskOccurrencesType affected_tasks, + GCancellable *cancellable, + GError **error); void e_ews_connection_delete_item (EEwsConnection *cnc, gint pri, EwsId *id, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.28.0/src/server/e-ews-item.c new/evolution-ews-3.28.1/src/server/e-ews-item.c --- old/evolution-ews-3.28.0/src/server/e-ews-item.c 2018-03-12 09:55:42.000000000 +0100 +++ new/evolution-ews-3.28.1/src/server/e-ews-item.c 2018-04-09 11:50:45.000000000 +0200 @@ -29,6 +29,8 @@ #include <glib/gstdio.h> #include <glib/gprintf.h> #include <libsoup/soup-misc.h> +#include <libedataserver/libedataserver.h> + #include "e-ews-item.h" #include "e-ews-item-change.h" @@ -1028,6 +1030,7 @@ /* The order is maintained according to the order in soap response */ if (!g_ascii_strcasecmp (name, "MimeContent")) { + gchar *charset; guchar *data; gsize data_len = 0; @@ -1038,6 +1041,20 @@ g_free (data); return FALSE; } + + charset = e_soap_parameter_get_property (subparam, "CharacterSet"); + if (g_strcmp0 (charset, "UTF-8") == 0 && + !g_utf8_validate ((const gchar *) data, data_len, NULL)) { + gchar *tmp; + + tmp = e_util_utf8_data_make_valid ((const gchar *) data, data_len); + if (tmp) { + g_free (data); + data = (guchar *) tmp; + } + } + g_free (charset); + priv->mime_content = (gchar *) data; g_free (value);