Compare commits

...

6277 Commits

Author SHA1 Message Date
haraldwolff 29bbaae1dd Add symbolic link to packaging/debian 2021-10-07 20:03:49 +02:00
Francis Lachapelle 138ee065a2 fix(preferences(js)): review order of mail filter actions
Fixes #5325
2021-10-07 12:57:17 -04:00
Francis Lachapelle 710fd2f492 i18n(ru): update Russian translation 2021-10-07 10:41:55 -04:00
Francis Lachapelle b2b12375db i18n(pl): update Polish translation 2021-10-07 10:41:55 -04:00
Francis Lachapelle a33cf3cd67 i18n(de): update German translation 2021-10-07 10:41:55 -04:00
Francis Lachapelle f10e13b725 i18n(cs): update Czech translation 2021-10-07 10:41:54 -04:00
Francis Lachapelle f669b76435 i18n(bg_BG): update Bulgarian translation 2021-10-07 10:41:54 -04:00
Francis Lachapelle e77d228b58 i18n(uk): update Ukrainian translation 2021-10-07 10:41:54 -04:00
InverseBot daa5438b19 chore(js/css): update generated files 2021-10-07 00:18:15 -04:00
Francis Lachapelle f017c42608 perf(calendar(web)): initiate Web calendars reload from the frontend
The Web calendars subsciptions marked to be reloaded on login are no
longer reloaded from the backend; the sync operation is now activated
from the frontend in XHR calls to avoid blocking the Web interface.

Fixes #4939
2021-10-06 14:16:48 -04:00
InverseBot ef64c13410 chore(js/css): update generated files 2021-10-06 00:18:15 -04:00
Francis Lachapelle ffed88c069 fix(addressbook(js)): sanitize fullname when using HTML 2021-10-05 08:33:29 -04:00
InverseBot 7885932485 chore(js/css): update generated files 2021-10-05 00:18:14 -04:00
Francis Lachapelle 2b101a87b8 test: migration from Python to JavaScript 2021-10-04 13:47:02 -04:00
Francis Lachapelle a14c456800 feat(addressbook): warn when similar contacts are found
When creating a new contact, we now search for similar contacts in the
current addressbook, based on the firstname, lastname, email address,
and telephone number. We return a 409 when such a card is found.
2021-10-04 10:14:14 -04:00
InverseBot d0c91d75f0 chore(js/css): update generated files 2021-10-02 00:19:45 -04:00
Francis Lachapelle 451989ac9c style(obj-c): improve formatting 2021-10-01 11:35:48 -04:00
Francis Lachapelle 38b95af9fd fix(web(js)): reset cached users when closing subscription dialog 2021-10-01 11:18:52 -04:00
Francis Lachapelle a073241e0f fix(addressbook): use pool to lower memory usage 2021-10-01 11:11:34 -04:00
InverseBot 4e6a7f5705 chore(js/css): update generated files 2021-10-01 00:47:46 -04:00
Francis Lachapelle 8f999652cc fix(web): contextualize title in subscription dialog 2021-09-30 14:07:53 -04:00
Francis Lachapelle dec4f24aa4 fix(addressbook): use pool to lower memory usage 2021-09-30 09:13:28 -04:00
Francis Lachapelle 4884cb3978 fix(addressbook): properly handle unknown properties in DAV report 2021-09-29 16:02:52 -04:00
Francis Lachapelle 3da633aebf fix(addressbook): reuse LDAP connection in CardDAV report
Fixes #5355
2021-09-29 16:00:10 -04:00
Francis Lachapelle d181cc4d06 fix(mail): decode ms-tnef (winmail.dat) inside message/rfc822 part
Fixes #5388
2021-09-28 14:57:44 -04:00
Francis Lachapelle 0716656cd4 fix(core): don't log error when deleting an invalid key in memcached 2021-09-24 13:13:10 -04:00
InverseBot 434531cc96 chore(js/css): update generated files 2021-09-23 00:48:00 -04:00
Francis Lachapelle 60dabb7787 calendar: fix weekly/monthly calculators when event has no duration 2021-09-22 13:33:38 -04:00
Francis Lachapelle 4397e6a2e1 core(dav): improve SQL queries of multiget and sync-collection 2021-09-22 10:51:47 -04:00
InverseBot cfe8decd21 chore(js/css): update generated files 2021-09-22 00:18:39 -04:00
Francis Lachapelle c6d6dc3e66 fix(addressbook(js)): load selected cards prior to display mail editor 2021-09-21 14:42:05 -04:00
InverseBot 9c493e004b chore(js/css): update generated files 2021-09-21 00:18:35 -04:00
Francis Lachapelle 2c62aafe70 fix(mail): don't encode calendar mime part twice
SOPE will take care of encoding all text parts in quoted-printable if
necessary.

Fixes #5391
Fixes #5393
2021-09-15 11:36:58 -04:00
InverseBot 1c7200c90d chore(js/css): update generated files 2021-09-15 00:18:37 -04:00
InverseBot 76f6bb0f3f chore(js/css): update generated files 2021-09-14 00:18:34 -04:00
Francis Lachapelle f0368d028b fix(core): handle null values in modules constraints of SQL sources 2021-09-13 09:49:14 -04:00
Francis Lachapelle 0765c72616 fix(mail): replace STATUS by LIST command when copying/moving msgs
Fixes #4983
2021-09-10 16:59:26 -04:00
Francis Lachapelle 08581eefab fix(mail): split "l" and "r" ACL attributes for IMAP mailboxes
Fixes #4983
2021-09-10 16:57:15 -04:00
Francis Lachapelle d1fc15b3a4 feat(mail): add support for UID MOVE operation 2021-09-10 14:16:03 -04:00
Francis Lachapelle 534bea674b fix(mail): properly sort partial fetch results (modseq)
Fixes #5385
2021-09-08 16:54:42 -04:00
Francis Lachapelle 2a8d64d891 fix(mail(js)): reload UIDs when changing sort order
Fixes #5385
2021-09-08 16:48:39 -04:00
Francis Lachapelle e714a3f42b fix(mail(css)): improve CSS sanitization of at-rules
Fixes #5387
2021-09-08 11:38:53 -04:00
InverseBot b86852a1a6 chore(js/css): update generated files 2021-09-08 00:18:27 -04:00
Francis Lachapelle ef5820b49b fix(mail): fix end date of all-day event in mail notifications
Fixes #5384
2021-09-07 16:51:11 -04:00
Francis Lachapelle ea6b699094 fix(web(css)): print more than one page in Firefox
Fixes #5375
2021-09-07 15:44:26 -04:00
Francis Lachapelle 2d25e180f6 fix(mail(js)): update unseen count when reaching zero
Fixes #5381
2021-09-07 14:57:40 -04:00
Francis Lachapelle e43a721f77 fix(calendar): generate missing UID when importing calendar 2021-09-07 14:25:17 -04:00
Francis Lachapelle 9f38201b6c fix(addressbook): fix compilation warnings in UIxContactFoldersView.m 2021-09-07 13:43:15 -04:00
Francis Lachapelle 7b5cddcf2d fix(addressbook): generate UID when importing cards if missing
Fixes #5386
2021-09-07 13:35:48 -04:00
Francis Lachapelle a6a3f2fb88 chore(sogo-ealarms-notify): don't encode the MIME part twice 2021-09-03 15:49:00 -04:00
Francis Lachapelle 2feee5f3a2 test: migration from Python to JavaScript 2021-09-02 10:29:27 -04:00
Francis Lachapelle 6ae787c4a4 test: migration from Python to JavaScript 2021-09-01 11:09:16 -04:00
iRedMail b8f0e39c40
doc: value of SQL column used in ModulesConstraints must be a string 2021-09-01 09:49:50 -04:00
Francis Lachapelle 5622eda04b test: migration from Python to JavaScript 2021-08-26 17:33:50 -04:00
InverseBot b81c4eac1c chore(js/css): update generated files 2021-08-26 00:47:27 -04:00
Francis Lachapelle 56f9e3e398 fix(mail(js)): allow to add any event invitation 2021-08-25 16:53:40 -04:00
Francis Lachapelle 9e364c647f fix(mail): encode text MIME parts in quoted-printable
This reverts commit 6cf3d99125.

Fixes #5378
2021-08-25 14:59:24 -04:00
InverseBot 124b4f8f73 chore(js/css): update generated files 2021-08-24 00:19:02 -04:00
Francis Lachapelle 6cf3d99125 fix(mail): encode text MIME parts in quoted-printable
This will limit each line to a maximum of 70 characters.

Fixes #5376
2021-08-23 11:08:25 -04:00
Francis Lachapelle 145f221552 fix(mail(js)): fix height of mailboxes list items 2021-08-23 10:30:37 -04:00
Francis Lachapelle 792d96b361 fix(mail(js)): use message subject as filename of .eml 2021-08-23 09:57:15 -04:00
Francis Lachapelle 05ad7a8d6d test: migration from Python to JavaScript 2021-08-20 17:36:05 -04:00
Francis Lachapelle 96aa444051 test: migration from Python to JavaScript 2021-08-20 15:15:46 -04:00
InverseBot 097ee65751 chore(js/css): update generated files 2021-08-20 00:18:34 -04:00
Francis Lachapelle 86f08a2380 fix(mail(js)): show "Download all attachments" menu option 2021-08-19 17:15:12 -04:00
Francis Lachapelle 595b93eafc test: migration from Python to JavaScript 2021-08-19 15:37:49 -04:00
Francis Lachapelle c8855b708b chore(release): 5.2.0 2021-08-18 15:35:57 -04:00
Francis Lachapelle 0e19e1e4a3 chore(js/css): update generated files 2021-08-18 15:20:56 -04:00
Francis Lachapelle 00846c463c style(addressbook(obj-c)): add comments 2021-08-18 13:32:33 -04:00
Francis Lachapelle fef5003d92 style(obj-c): remove unused variable 2021-08-18 13:21:28 -04:00
Francis Lachapelle 6b6b7334c2 i18n(pl): update Polish translation 2021-08-18 08:55:31 -04:00
Francis Lachapelle 8bdae88ec3 i18n(de): update German translation 2021-08-18 08:55:31 -04:00
Francis Lachapelle 1246469ee1 i18n(fr): update French translation 2021-08-18 08:55:31 -04:00
InverseBot 354baf34f6 chore(js/css): update generated files 2021-08-18 00:18:21 -04:00
Francis Lachapelle aa59aa9c47 fix(core): improve logged error when module is invalid 2021-08-17 15:59:33 -04:00
Francis Lachapelle a370aa70f2 fix(core): properly validate domain using "domains" keys
Instead of checking if the domain match a source ID, we now check if the
domain match a key of the "domains" configuration parameter.
2021-08-17 15:59:33 -04:00
Francis Lachapelle 7e63452141 fix(login(js)): fix domain in redirect URL 2021-08-17 15:59:33 -04:00
InverseBot a60f79a8e3 chore(js/css): update generated files 2021-08-17 00:18:32 -04:00
Francis Lachapelle ebf2a80654 i18n(bg): add Bulgarian translation 2021-08-16 14:03:13 -04:00
Francis Lachapelle eb18249d2b i18n(bg): add Bulgarian translation 2021-08-16 13:57:34 -04:00
InverseBot 8a2e6ca9fe chore(js/css): update generated files 2021-08-13 11:17:50 -04:00
Francis Lachapelle 045f134321
feat(mail): initial support for ms-tnef (winmail.dat) body part
Fixes #2242
Fixes #4503
2021-08-13 11:12:37 -04:00
InverseBot 98dad1d2dc chore(js/css): update generated files 2021-08-13 00:18:24 -04:00
Francis Lachapelle 81aed5e6e1 style(addressbook): add comment about Mac OS 10.15 2021-08-12 15:51:51 -04:00
Francis Lachapelle cf40a23b43 chore(sogo-ealarms-notify): properly close all DB channels
This prevent MySQL from logging an error (Aborted connection to db).
2021-08-12 15:39:12 -04:00
Francis Lachapelle 7d07ddaffd fix(web(js)): get filename from content-disposition header 2021-08-12 13:43:40 -04:00
Francis Lachapelle eb46415711 fix(mail(js)): hide sign and encrypt options if not usable
When composing a message, don't offer to sign nor encrypt the message
if user has not uploaded a certificate or if S/MIME is disabled.
2021-08-12 13:40:47 -04:00
Francis Lachapelle 3388c18466 chore(sogo-ealarms-notify): fix handling of alarms on tasks
Fixes #5158
2021-08-12 11:59:41 -04:00
Francis Lachapelle 462b9ad99f chore(npm): update CKEditor to version 4.16.2 2021-08-12 09:49:09 -04:00
InverseBot bc44db9220 chore(js/css): update generated files 2021-08-12 00:18:27 -04:00
Francis Lachapelle 545cfe58c6 feat(mail): new parameter to disable S/MIME certificates 2021-08-11 18:18:29 -04:00
Francis Lachapelle 90752c4382 fix(core): remove CR, diacritical marks, variation selectors 2021-08-11 16:33:18 -04:00
Francis Lachapelle ef5e7775cd feat(mail): download message as .eml file 2021-08-11 13:44:48 -04:00
Francis Lachapelle 36100b0419 i18n(sr_SR): use sr_ME instead of cnr for Montenegrin locale 2021-08-10 14:24:56 -04:00
InverseBot bfebc6af1a chore(js/css): update generated files 2021-08-10 00:18:24 -04:00
Francis Lachapelle e140bd0379 fix(preferences(js)): don't save locale definition 2021-08-09 12:44:20 -04:00
Francis Lachapelle 3cc29b4018 i18n(sr_SR): add Montenegrin translation 2021-08-09 11:30:36 -04:00
InverseBot 7654db431d chore(js/css): update generated files 2021-08-05 08:04:32 -04:00
Francis Lachapelle 7747048cff chore(npm): update md to v1.2.3 2021-08-04 13:10:26 -04:00
Francis Lachapelle 5f6cacc859 fix(saml): add XSRF-TOKEN cookie in valid SAML login 2021-08-04 12:54:38 -04:00
Francis Lachapelle a1273f1097 fix(mail): add support for messages quota
Fixes #5365
2021-08-04 10:02:39 -04:00
InverseBot 510eb97860 chore(js/css): update generated files 2021-08-04 00:18:26 -04:00
Francis Lachapelle 40b570cc12 fix(mail): don't render SVG attachments
Fix #5371
2021-08-03 16:26:49 -04:00
InverseBot a23fef66ba chore(js/css): update generated files 2021-08-03 00:18:28 -04:00
Francis Lachapelle 69972f725c fix(mail): remove media event handlers from HTML messages
Fixes #5369
2021-08-02 17:42:02 -04:00
Francis Lachapelle 8947f29c09 fix(mail(js)): avoid using the DOM when sanitizing incoming html
Fixes #5369
2021-08-02 17:33:45 -04:00
Francis Lachapelle 54dff23682 test: migration from Python to JavaScript 2021-07-16 14:42:15 -04:00
Francis Lachapelle 946419f434 chore(tool): fix rename-user in single store mode 2021-07-13 12:29:54 -04:00
Francis Lachapelle 694ffa74ba fix(mail): fix end date of all-day event in mail notifications
Fixes #4145
2021-07-09 11:52:16 -04:00
Francis Lachapelle f8f4de6020 docs: add notice regarding the HttpOnly flag and XSRF
Fixes #5342
2021-07-05 11:34:12 -04:00
InverseBot db46b4ae09 chore(js/css): update generated files 2021-07-01 00:18:52 -04:00
Francis Lachapelle 0599922016 fix(mail(js)): update visible msgs list when adding new msgs 2021-06-30 11:20:29 -04:00
Francis Lachapelle a8c684cdad docs: remove reference to Blackberry in installation guide 2021-06-30 10:03:48 -04:00
InverseBot 9e1eb0b459 chore(js/css): update generated files 2021-06-30 00:15:29 -04:00
Francis Lachapelle d13e1534a8 fix(mail(css)): always show tag dots in messages list 2021-06-29 17:16:35 -04:00
Francis Lachapelle a35225631a fix(mail): return unseen count of mailbox in msgs operations 2021-06-29 17:05:48 -04:00
Francis Lachapelle 09d300ec65 chore(tool): fix typos 2021-06-29 10:32:51 -04:00
InverseBot eb89b03e6b chore(js/css): update generated files 2021-06-22 00:18:54 -04:00
Francis Lachapelle 2771fe180e fix(mail(html)): format links in comment of Calendar invitations 2021-06-21 12:16:17 -04:00
Francis Lachapelle 688b8c1b28 docs: update Installation guide for CAS/SAML2 authentication 2021-06-21 10:58:24 -04:00
InverseBot aa70c47efc chore(js/css): update generated files 2021-06-19 00:18:55 -04:00
Francis Lachapelle a3ae2b8ea5 Revert "fix(core): don't bind a DN to LDAP sources with a different search base"
This reverts commit e0b6e22fa2.

This change was causing issues with LDAP virtual list views.
2021-06-18 17:22:02 -04:00
Francis Lachapelle 2d16456bb5 fix(mail(js)): respect thread level while loading headers
Going from the skeleton view to the populated view is smoother if we
respet the thread indentation.
2021-06-18 17:06:58 -04:00
Francis Lachapelle b969ca4b49 fix(mail(js)): force reload of UIDs when cancelling search 2021-06-18 17:06:58 -04:00
InverseBot 34c3ddef87 chore(js/css): update generated files 2021-06-18 00:19:05 -04:00
Francis Lachapelle d285411ef3 perf(mail(js)): improvements for md-virtual-repeat 2021-06-17 17:39:49 -04:00
Francis Lachapelle 976579356d docs: update MySQL recommendations for unicode compliance
Fixes #5151
2021-06-17 14:12:40 -04:00
Francis Lachapelle 134502223e refactor(doc): replace xsltproc/fop by asciidoctor-pdf 2021-06-17 12:20:20 -04:00
InverseBot 4a32a5e11c chore(js/css): update generated files 2021-06-17 00:18:52 -04:00
Francis Lachapelle 20b2fd5e45 refactor(web): replace SOGoGoogleAuthenticatorEnabled with
SOGoTOTPEnabled

Fixes #5294
2021-06-16 14:59:02 -04:00
Francis Lachapelle 34184aa3fc chore: fix syntax of localizable file 2021-06-16 12:38:07 -04:00
olivierperes 9ae9fa094e
refactor(mail): replace "Google Authenticator" with more general vocabulary
The 2FA feature is not specific to one application, rewording makes this more clear.

Fixes #5294
2021-06-16 09:49:30 -04:00
InverseBot 71a648a7d4 chore(js/css): update generated files 2021-06-16 00:48:37 -04:00
Francis Lachapelle a9c6f09273 perf(mail(js)): various optimizations
We now use IMAP QRESYNC to synchronize mailbox.
2021-06-15 17:16:10 -04:00
InverseBot b4ccafd546 chore(js/css): update generated files 2021-06-15 00:19:03 -04:00
Francis Lachapelle bc58bd1cb0 perf(mail(js)): delay instantiation of Message objects on load 2021-06-14 17:27:09 -04:00
Francis Lachapelle e66ad698fd chore: remove scss/components/_utils.scss 2021-06-14 11:52:28 -04:00
Francis Lachapelle 09235104a4 chore: remove Templates/UIxWinClose.wox 2021-06-14 11:39:52 -04:00
Francis Lachapelle 9dbb77047e chore: remove SOGoUI/UIxJSClose 2021-06-14 11:38:43 -04:00
Francis Lachapelle 89c31d8ee2 chore: remove MainUI/UIxLoading 2021-06-14 11:08:36 -04:00
Francis Lachapelle 0aabd45c04 fix(calendar(web)): search in all user's calendars for iMIP reply 2021-06-08 13:42:00 -04:00
InverseBot 82a004f397 chore(js/css): update generated files 2021-06-08 00:19:03 -04:00
Francis Lachapelle 322226bd81 fix(css): improve display of category colors (Calendar & Mail)
In the list view, we now use color dots instead of stripes.

Fixes #5337
2021-06-07 15:03:39 -04:00
Francis Lachapelle 54548c550f fix(mail): improve performance of listing all mailboxes 2021-06-04 16:50:49 -04:00
Francis Lachapelle 9cf67d0b5c fix(mail(web)): don't try to fetch headers if mailbox is empty 2021-06-04 16:49:14 -04:00
Francis Lachapelle e08be0d006 fix(calendar(dav)): add method attribute to content-type of iTIP reply
Fixes #5320
2021-06-03 16:13:22 -04:00
Francis Lachapelle a42749facd chore(release): 5.1.1 2021-06-01 08:38:12 -04:00
Francis Lachapelle 5f5c875577 Merge branch 'fix/saml' 2021-05-31 16:56:24 -04:00
Francis Lachapelle 88db6a533b chore(logrotate): fix ownership of log file
Fixes #5327
2021-05-27 21:55:41 -04:00
Francis Lachapelle 3b4ded63f5 chore(npm): update CKEditor to version 4.16.1 2021-05-27 21:50:48 -04:00
Francis Lachapelle 7bebc71f67 i18n(fr): update French translation 2021-05-27 18:46:21 -04:00
Francis Lachapelle 376c473a5a i18n(sk): update Slovak translation 2021-05-27 18:46:00 -04:00
Francis Lachapelle 243b63c33c chore(rhel): drop support for RHEL 6 2021-05-27 14:42:25 -04:00
Francis Lachapelle b600452696 chore(rhel): drop support for RHEL 6 2021-05-27 14:24:41 -04:00
Francis Lachapelle f9963e86af chore(rhel): drop support for RHEL 6 2021-05-27 12:16:08 -04:00
Francis Lachapelle e1d8d70e28 fix(addressbook): import contact lists from LDIF file
Fixes #3260
2021-05-26 17:47:15 -04:00
InverseBot 562e3796f8 chore(js/css): update generated files 2021-05-26 00:28:03 -04:00
Francis Lachapelle dc81f70928 fix(mail): use default signature when forcing default identity 2021-05-25 14:17:12 -04:00
Francis Lachapelle d4a0b25c06 fix(calendar(js)): fix URL for snoozing alarms
Fixes #5324
2021-05-25 12:23:25 -04:00
InverseBot 8655dd29ab chore(js/css): update generated files 2021-05-19 00:28:29 -04:00
Francis Lachapelle 657f00f92b fix(mail): handle folders that end with a question mark
We now avoid using NSURL.

Fixes #5303
2021-05-18 13:34:46 -04:00
Francis Lachapelle 5c88bd4f6c chore(debian): enable SAML support for all Debian/Ubuntu distros
Fixes #5292
2021-05-17 11:06:47 -04:00
Francis Lachapelle 1d88d36ded fix(saml): fix profile initialization, improve error handling
Fixes #5153
Fixes #5270
2021-05-17 10:56:43 -04:00
Francis Lachapelle e536365646 fix(saml): don't ignore the signature of messages 2021-05-17 10:10:01 -04:00
Francis Lachapelle d0056d3b27 perf(core): cache the schema of LDAP user sources 2021-05-14 11:56:13 -04:00
Francis Lachapelle debcbd16db fix(core): avoid appending an empty domain to uid in cache 2021-05-14 10:43:07 -04:00
Francis Lachapelle 517b8887b4 fix(mail(js)): add CKEditor plugin pastefromgdocs
Fixes #5316
2021-05-13 11:16:35 -04:00
InverseBot 9ba3c13737 chore(js/css): update generated files 2021-05-13 00:28:31 -04:00
Francis Lachapelle 4501b5e35c fix(web(js)): don't cache users results in ACL editor 2021-05-12 10:59:27 -04:00
Francis Lachapelle 8e98af0e9f fix(web): allow to change expired password from login page 2021-05-11 15:03:02 -04:00
Francis Lachapelle e5d957181c fix(calendar(css)): enlarge categories color stripes
Fixes #5301
2021-05-11 12:36:03 -04:00
Francis Lachapelle 0b33575457 Revert "chore(npm): update ng-sortable"
This reverts commit bf23f70104.
2021-05-11 11:09:23 -04:00
Francis Lachapelle bdd8e3500a fix(web): allow to change expired password from login page 2021-05-06 16:35:42 -04:00
InverseBot 8a10ae140d chore(js/css): update generated files 2021-05-06 00:28:35 -04:00
Francis Lachapelle d303247481 fix(mail(js)): add debouncing on keyup events of sgAutogrow 2021-05-05 17:37:42 -04:00
Francis Lachapelle 049c17f15a fix(mail(js)): don't delay the progress indicator when loading mailbox
Fixes #5278
2021-05-05 15:45:19 -04:00
Francis Lachapelle 0c1f9fdb02 fix(web): restore support of ppolicy OpenLDAP overlay 2021-05-05 12:41:08 -04:00
Francis Lachapelle da366083e9 fix(core): change password in user's matching source only 2021-05-05 10:21:15 -04:00
Francis Lachapelle e0b6e22fa2 fix(core): don't bind a DN to LDAP sources with a different search base 2021-05-05 09:48:17 -04:00
Francis Lachapelle ac2853cfcf chore(tool): delete memcached entries of expired sessions 2021-05-03 16:12:28 -04:00
Francis Lachapelle 2c9c38da86 docs: add upgrade notice for release 5.1.0 2021-04-29 14:20:11 -04:00
Francis Lachapelle 4aa80ec496 docs: update list of supported Linux distributions 2021-04-29 14:19:41 -04:00
InverseBot ae3fe6aad1 chore(js/css): update generated files 2021-04-22 00:27:55 -04:00
Francis Lachapelle bd80b6ea75 fix(calendar(css)): enlarge categories color stripes
Fixes #5301
2021-04-21 14:12:14 -04:00
Francis Lachapelle 66afbd2172 fix(mail(html)): add missing ARIA labels 2021-04-21 11:11:51 -04:00
Francis Lachapelle 189aab3535 fix(mail): retrieve IMAP delimiter after LIST command 2021-04-21 10:49:33 -04:00
Francis Lachapelle a83b0d822a fix(core): decompose LDAP nested groups, cache logins
We now decompose entries with attributes "member" or "uniquemember".

We now properly cache decomposed subgroups.
2021-04-19 14:42:30 -04:00
InverseBot f5e4d3a7fd chore(js/css): update generated files 2021-04-17 00:27:55 -04:00
Francis Lachapelle fec299f040 fix(calendar(js)): show conflict error inside appointment editor
A single string error is returned when at least one of the attendees
refuses to be invited.
2021-04-16 13:54:54 -04:00
Francis Lachapelle af61752933 fix(mail(js)): add tooltip with email of attendees in invitation 2021-04-16 13:54:54 -04:00
InverseBot f44122d763 chore(js/css): update generated files 2021-04-15 00:27:59 -04:00
Francis Lachapelle bfbf43b1c8 fix(mail(js)): unselect all messages when changing mailbox
Fixes #4970
Fixes #5148
2021-04-14 14:28:22 -04:00
Francis Lachapelle bed91ce95a fix(mail(js)): avoid updating the DOM before closing editor
When destroying the CKEditor instance (closing the mail editor in HTML mode), we no longer try to update the associated textarea because we're removing it anyway.
2021-04-09 17:57:08 -04:00
Francis Lachapelle 716d739b85 chore(rhel): remove references to RHEL/CentOS 5 2021-04-08 09:53:05 -04:00
InverseBot 71a8dd4078 chore(js/css): update generated files 2021-04-07 00:28:18 -04:00
Francis Lachapelle 72321ec545 fix(mail(css)): improve HTML sanitization of background attribute 2021-04-06 16:49:05 -04:00
Francis Lachapelle 045879a1fa fix(css): adjust colors of center lists of views
Fixes #5291
2021-04-06 12:00:40 -04:00
InverseBot a2eeab4612 chore(js/css): update generated files 2021-03-31 00:33:03 -04:00
Francis Lachapelle 4f90fbf4b6 chore(release): 5.1.0 2021-03-30 16:47:30 -04:00
Francis Lachapelle 90fb5426c7 chore(conf): enable XSRF validation by default 2021-03-30 16:42:57 -04:00
Francis Lachapelle 749013db6d chore(js/css): update generated files 2021-03-30 16:01:11 -04:00
Francis Lachapelle c6fab04df6 i18n(pt_BR): update Brazilian Portuguese translation 2021-03-30 15:33:44 -04:00
Francis Lachapelle 3875eddda3 i18n(hu): update Hungarian translation 2021-03-30 15:33:17 -04:00
Francis Lachapelle 883f45c7b0 chore(debian): remove packaging/debian-multiarch
Was required for Debian 6 (Squeeze) and Ubuntu 12.04 LTS (Precise
Pangolin) which we no longer support.
2021-03-26 12:23:00 -04:00
Francis Lachapelle 46948f514a chore: configuration file and script for versioning
See https://github.com/conventional-changelog/standard-version
2021-03-26 09:49:12 -04:00
Francis Lachapelle a95964b51f i18n(sl_SI): update Slovenian translation 2021-03-24 11:02:49 -04:00
Francis Lachapelle 937aad47fc chore(npm): update sass 2021-03-16 12:06:28 -04:00
Francis Lachapelle a94688ab12 chore(npm): update grunt-contrib-cssmin 2021-03-16 12:05:58 -04:00
Francis Lachapelle 074e0d4734 chore(npm): update lodash 2021-03-16 12:05:28 -04:00
Francis Lachapelle cb6de75845 fix(mail): unsubscribe from all subfolders when deleting parent
Fixes #5218
2021-03-16 11:50:05 -04:00
Francis Lachapelle 1914a3516a i18n(hu): update Hungarian translation 2021-03-15 14:09:50 -04:00
Francis Lachapelle a4d9549f6f docs: add SOGoMailComposeWindow parameter
Fixes #5275
2021-03-15 12:17:00 -04:00
Francis Lachapelle 386429e46e fix(core): fix compilation warning in NSData+Crypto 2021-03-12 17:30:17 -05:00
Francis Lachapelle dd90a0977a docs: update README regarding the SOGo Connector TB plugin 2021-03-12 17:27:20 -05:00
Francis Lachapelle 22b6b4bb9f chore(Apache): Don't send the Referer header for cross-origin requests
Fixes #5252
2021-03-12 17:21:13 -05:00
Francis Lachapelle 4740042bf9 chore(tool): fix usage of restore 2021-03-12 17:00:28 -05:00
Francis Lachapelle f6f43c42fc chore(npm): update CKEditor to version 4.16.0
Fixes #5272
Fixes #5273
2021-03-08 13:57:51 -05:00
Francis Lachapelle 3722169522 fix(acls): remove debugging output when searching in groups 2021-03-03 10:57:03 -05:00
Francis Lachapelle 3c7a6a0d4a chore(timezones): update to version 2021a 2021-03-03 09:02:39 -05:00
InverseBot b8a0c84f12 chore(js/css): update generated files 2021-03-03 00:35:05 -05:00
Francis Lachapelle 6ea4cbc7f3 chore(npm): update CKEditor to version 4.16.0 2021-03-02 17:46:10 -05:00
Francis Lachapelle fa3e5e0b75 fix(mail(js)): improve quoted message when replying
Fixes #5223
2021-03-02 17:16:06 -05:00
Francis Lachapelle 6f90977196 fix(common(js)): improve parsing of year
There's no perfect solution when only two digits are used for the year.
It's always better to show four digits for the year to avoid unexpected
results.

Fixes #5268
2021-03-02 14:59:59 -05:00
Francis Lachapelle 088764a3f7 fix(mail(css)): improve visibility of buttons in invitations
Fixes #5263
2021-03-02 14:01:15 -05:00
Extra Fu 080f87c584
Merge pull request #295 from tfux/5266
fix(eas): improve EAS parameters parsing (fixes #5266)
2021-03-01 08:09:40 -05:00
root b2008cd309 fix(eas): improve EAS parameters parsing (fixes #5266) 2021-02-28 14:49:57 +01:00
Francis Lachapelle dd326f9ddf fix(core): use "is null" instead of "= null" when building SQL
Keep NSNull instances for values in GCSFolder and let [EOQualifier(GCS)
_gcsAppendToString:] properly format the key/value qualifier that
involves a NULL.

This fixes various issues, including missing unique recurrent events in
attendees calendars.
2021-02-26 14:30:55 -05:00
InverseBot 822c304d10 chore(js/css): update generated files 2021-02-26 00:35:00 -05:00
Francis Lachapelle f9a8d8491e fix(mail(js)): don't modify filters for automatic refresh
Fixes #5226
2021-02-25 13:39:21 -05:00
InverseBot d2bbaf7c39 chore(js/css): update generated files 2021-02-21 00:35:12 -05:00
InverseBot 7f5386db45 chore(js/css): update generated files 2021-02-16 00:34:40 -05:00
Francis Lachapelle 3662332229 i18n(pl): update Polish translation 2021-02-11 15:01:04 -05:00
Francis Lachapelle cbcf6cbfdf i18n(de): update German translation 2021-02-11 15:00:32 -05:00
Francis Lachapelle 9bafb57a79 i18n(cs): update Czech translation 2021-02-11 15:00:05 -05:00
Francis Lachapelle b486938e40 i18n(sk): update Slovak translation 2021-02-11 14:59:32 -05:00
Francis Lachapelle 8915749f75 i18n(sr): update Serbian and Serbian Latin translations 2021-02-11 14:58:47 -05:00
Francis Lachapelle d030d1c4b3 i18n(ru): update Russian translation 2021-02-11 14:57:29 -05:00
InverseBot 14ef484bea chore(js/css): update generated files 2021-02-11 00:34:47 -05:00
jkanefendt 59e876d8f7
fix(preferences(js)): always apply forward constraints to sieve filters (#294) 2021-02-10 14:41:51 -05:00
InverseBot 83f1516ca8 chore(js/css): update generated files 2021-02-09 00:34:19 -05:00
Francis Lachapelle e774c4c474 fix(mail(css)): limit some text formatting to attachment cards 2021-02-08 12:02:34 -05:00
Francis Lachapelle 9fe2de753b fix(calendar): try to repair VCALENDAR when parsing versit string
It seems that Exchange 2010 and 2016 sometimes produce calendar
invitation emails with text/calendar multipart parts in the email that
have "END:VCALENDAR" at the end of the calendar data missing.
2021-02-08 11:28:39 -05:00
Francis Lachapelle 9dcdaedb40 fix(mail(css)): limit some text formatting to attachment cards 2021-02-08 11:25:05 -05:00
InverseBot 0088b9f7f5 chore(js/css): update generated files 2021-01-26 00:34:39 -05:00
Francis Lachapelle e78eb44dd7 fix(calendar(js)): ignore attendees when saving task 2021-01-25 09:59:02 -05:00
InverseBot 6a5f3e4e4f chore(js/css): update generated files 2021-01-15 00:34:28 -05:00
Francis Lachapelle fc4f5d2161 feat(mail): new option to force default identity
Users can now force the default identity to always be used when replying
or forwarding a message.
2021-01-14 15:23:43 -05:00
Extra Fu 2826c83fc5
Merge pull request #291 from tfux/5239
fix(eas): handle fileAs element (fixes #5239)
2021-01-09 09:54:56 -05:00
root dd8ebd1922 fix(eas): handle fileAs element (fixes #5239) 2021-01-06 19:57:49 +01:00
InverseBot d470ebcda2 chore(js/css): update generated files 2020-12-24 00:34:21 -05:00
Francis Lachapelle 86ab7312a4 fix(mail(css)): restore scrolling of msg source when animation is off 2020-12-23 10:12:22 -05:00
InverseBot 099ef0ef7e chore(js/css): update generated files 2020-12-22 10:06:25 -05:00
Francis Lachapelle b3932cc3de chore(npm): update angular-ui-router 2020-12-22 09:39:31 -05:00
Francis Lachapelle 822c50ff56 i18n(sr_SR): update Serbian (Latin) translation 2020-12-21 15:00:58 -05:00
Francis Lachapelle 5c872647ee chore(npm): update sass 2020-12-21 14:02:51 -05:00
Francis Lachapelle bf23f70104 chore(npm): update ng-sortable 2020-12-21 14:02:16 -05:00
Francis Lachapelle dfeb0467d7 chore(npm): update md to v1.2.2 2020-12-21 14:00:49 -05:00
Francis Lachapelle 8386bb2c08 i18n(sr_SR): add Serbian (Latin) translation 2020-12-18 19:41:37 -05:00
Francis Lachapelle c27be0fbe5 fix(calendar): avoid exception when FoldersOrder have invalid entries 2020-12-18 11:22:42 -05:00
Francis Lachapelle 7da4bc465f fix(core): remove overstruck diacritics from sanitized strings 2020-12-15 14:47:51 -05:00
tfux fab8061766
feat(eas): Allow EAS Search operation in all parts of a message 2020-12-09 13:34:19 -05:00
Francis Lachapelle b9e19c2cc4 fix(addressbook(dav)): add support for macOS 11 (Big Sur)
Fixes #5203
2020-12-01 15:36:51 -05:00
Francis Lachapelle a3277eb65a fix(login): fix localizabled strings when changing language 2020-11-30 16:59:33 -05:00
Francis Lachapelle c38524ab07 fix(calendar): accept HTML in repeat frequencies descriptions 2020-11-30 12:46:03 -05:00
Francis Lachapelle e2e5e6fed9 i18n(mail): improve generic error message for signed/encrypted messages
Fixes #5204
2020-11-26 16:37:13 -05:00
Francis Lachapelle 0d81195ab3 chore(tool): fix disabling of auto-reply
Disabling of auto-reply was occuring one day too early.

Fixes #5219
2020-11-26 16:18:44 -05:00
Francis Lachapelle 7149634bd7 chore(oc): remove unused code of OpenChange 2020-11-24 09:56:00 -05:00
InverseBot c72565d54f chore(js/css): update generated files 2020-11-20 00:35:04 -05:00
InverseBot 0c6862811d chore(js/css): update generated files 2020-11-17 10:22:27 -05:00
Francis Lachapelle f64b4e1a85 fix(css): adjust colors of center lists of views 2020-11-16 13:43:52 -05:00
Francis Lachapelle f5635e7e20 chore(npm): update CKEditor to version 4.15.1 2020-11-16 13:35:03 -05:00
Francis Lachapelle 0eae8296a3 fx(css): reduce list height of mailboxes
Fixes #5145
2020-11-16 12:15:08 -05:00
Francis Lachapelle defd3c97a9 chore(npm): cleanup dependencies, move to Dart Sass 2020-11-16 10:21:56 -05:00
Francis Lachapelle 12047d112f fix(preferences(css)): improve display of some select input fields 2020-11-13 17:19:53 -05:00
Francis Lachapelle 2ecfa70e72 i18n(pl): update Polish translation 2020-11-13 17:02:36 -05:00
Francis Lachapelle c7166de428 i18n(de): update German translation 2020-11-13 17:02:21 -05:00
Francis Lachapelle 1827a4548a i18n(cs): update Czech translation 2020-11-13 17:01:46 -05:00
Francis Lachapelle 0509d7f162 feat(calendar(js)): allow HTML links in location field 2020-11-11 12:08:00 -05:00
Francis Lachapelle 64f0519f7b chore(sogo-ealarms-notify): improve arguments parsing
Fixes #5197
2020-11-11 11:58:30 -05:00
InverseBot c600aa261c chore(js/css): update generated files 2020-11-10 00:34:51 -05:00
Francis Lachapelle bc77536b5d fix(print): don't print toasts
Fixes #5207
2020-11-06 21:28:22 -05:00
Francis Lachapelle f5b925d90e i18n(fr): update French translation 2020-11-06 21:15:18 -05:00
Francis Lachapelle e6088c9026 i18n(mail): fix status for message validity
Fixes #5204
2020-11-06 20:41:38 -05:00
InverseBot 55e5c191f4 chore(js/css): update generated files 2020-11-06 00:35:11 -05:00
Francis Lachapelle 0e0fc72b44 fix(calendar(js)): fix exception when changing an event calendar 2020-11-05 10:30:28 -05:00
InverseBot bf27328b9a chore(js/css): update generated files 2020-11-05 09:17:12 -05:00
Francis Lachapelle 6cac6f2383 chore(npm): update md to v1.2.1 2020-11-04 16:47:12 -05:00
Francis Lachapelle 4a83733039 feat(calendar(web)): allow to change the classification of an event 2020-11-04 16:15:13 -05:00
Ludovic Marcotte 3796009eca fix(eas): handle SENT-BY in delegated calendars 2020-11-03 07:47:53 -05:00
InverseBot 2da3cad939 chore(js/css): update generated files 2020-10-31 00:34:31 -04:00
Francis Lachapelle 00030ba2fa fix(mail(js)): add collapse button to toolbar of HTML editor
It is useful on small screens to be able to collapse the toolbar.
2020-10-30 15:36:30 -04:00
InverseBot 823f94b09f chore(js/css): update generated files 2020-10-22 00:34:13 -04:00
InverseBot 926c405057 chore(js/css): update generated files 2020-10-16 01:26:59 -04:00
Francis Lachapelle 74acab0738 fix(calendar(js)): add attendee from search field when saving
Fixes #5185
2020-10-15 17:43:17 -04:00
Francis Lachapelle 5d1ac9db5d fix(calendar): fix all-day events in lists
All-day events start date was wrong when the period was covering a DST
change.
2020-10-15 14:10:25 -04:00
Francis Lachapelle 1c4ff40d33 fix(preferences(mail)): make sure auto-reply (vacation) text is set 2020-10-15 14:07:04 -04:00
Ludovic Marcotte 41bbbfacd9 fix(core): release alarm folder's channel immediately after being used 2020-10-13 10:53:46 -04:00
Francis Lachapelle 5c65c10faa chore(release): 5.0.1 2020-10-07 10:40:29 -04:00
Ludovic Marcotte 78c9277b99 fix(core): handle bogus CardDAV clients 2020-10-07 08:01:00 -04:00
Francis Lachapelle 0fe73ec8a7 i18n(de): update German translation 2020-10-06 16:29:08 -04:00
InverseBot 8b4b55927e chore(js/css): update generated files 2020-10-06 00:36:53 -04:00
Francis Lachapelle a594bf84a3 i18n(hu): update Hungarian translation 2020-10-01 15:59:00 -04:00
Francis Lachapelle 7af092f849 i18n(cs): update Czech translation 2020-10-01 15:58:03 -04:00
Francis Lachapelle 0fdeee8490 fix(mail): add missing elements to Czech reply template
Fixes #5179
2020-10-01 15:42:00 -04:00
InverseBot f1d02df7a8 chore(js/css): update generated files 2020-10-01 00:33:51 -04:00
Francis Lachapelle 712d0f4ef1 fix(preferences(js)): sanitize content of toast
Sanitize subject and sender of message when using $mdToast to alert user
of new messages.

Fixes #5178
2020-09-30 14:14:24 -04:00
Francis Lachapelle ec1a01e316 fix(mail): remove duplicate recipients in draft 2020-09-30 09:38:22 -04:00
Francis Lachapelle 9150bdd768 fix(calendar(dav)): check if group member is empty 2020-09-24 14:19:04 -04:00
Francis Lachapelle 1bec216ce6 fix(calendar): restore UIxOccurenceDialog
Renamed as action class UIxOccurenceEditor.

Fixes #5141
Fixes #5160
2020-09-16 17:18:18 -04:00
Francis Lachapelle 728a006e6e fix(mail): add SMTP error to Exception returned by SOGOMailer 2020-09-14 14:43:05 -04:00
InverseBot 24b0408c38 chore(js/css): update generated files 2020-09-11 00:32:58 -04:00
Francis Lachapelle aa706796c2 fix(preferences(js)): sanitize mail identities when saving 2020-09-10 12:23:54 -04:00
Francis Lachapelle 64a8ce4048 fix(mail): fallback to the default identity when replying/forwarding 2020-09-10 12:23:54 -04:00
InverseBot f4f15f1c91 chore(js/css): update generated files 2020-09-10 01:23:08 -04:00
Francis Lachapelle 9af697ae83 fix(calendar): restore UIxOccurenceDialog
Renamed as action class UIxOccurenceEditor.

Fixes #5141
2020-09-09 16:27:54 -04:00
Francis Lachapelle ac8a7ecc6e chore(npm): update grunt 2020-09-09 08:45:33 -04:00
Francis Lachapelle 5f550ae448 chore(npm): update lodash 2020-09-09 08:45:03 -04:00
Francis Lachapelle d9fe3a67e1 chore(npm): update angular-file-upload 2020-09-09 08:44:43 -04:00
Francis Lachapelle 3ee702e637 chore(npm): update md to v1.1.26
Fixes #5082
Fixes #5152
2020-09-08 12:26:14 -04:00
InverseBot 7e0a753242 chore(js/css): update generated files 2020-08-21 00:36:31 -04:00
Nicolas Höft 8507204e0d
fix(core): fix GCC 10 compatibility
With GCC 10, SOGoAptFormatter.m FTBS with the following error:

    SOGoAptFormatter.m: In function ‘-[SOGoAptFormatter setPrivateTitleOnly]’:
    SOGoAptFormatter.m:104:56: error: expected ‘)’ before ‘::’ token
      104 |   self->formatAction = @selector(titleOnlyForPrivateApt::);

Simply name the second argument, so gcc is happy.

Also add the `external` keyword to a header declared variable.

Fixes #5029
2020-08-19 12:28:30 -04:00
InverseBot 72053a5801 chore(js/css): update generated files 2020-08-19 00:36:53 -04:00
Francis Lachapelle 7163900d24 fix(mail(js)): keep CKEditor toolbar visible 2020-08-18 16:04:21 -04:00
Francis Lachapelle 6aca61d8ae fix(core): decompose LDAP nested groups 2020-08-17 16:03:29 -04:00
InverseBot 21cb0cb985 chore(js/css): update generated files 2020-08-14 00:37:03 -04:00
Francis Lachapelle af452eb1a7 fix(mail(js)): handle subfolders of Sent mailbox
Fixes #4980
2020-08-13 12:20:36 -04:00
Francis Lachapelle 7b9e750806 fix(web(js)): avoid throwing an error when disconnected 2020-08-13 10:06:47 -04:00
Francis Lachapelle 9ece688bd1 docs: update list of supported operating systems 2020-08-12 16:13:29 -04:00
InverseBot 066e20c5d2 chore(js/css): update generated files 2020-08-11 00:36:40 -04:00
Francis Lachapelle 9a24f2ace3 chore(release): 5.0.0 2020-08-10 10:57:32 -04:00
Francis Lachapelle ec02147281 chore(js/css): update generated files 2020-08-10 10:57:11 -04:00
Francis Lachapelle d72ab79496 chore(npm): update angular-ui-router 2020-08-10 10:56:08 -04:00
Francis Lachapelle 4fc99ab7bc docs: improve syntax, add upgrading instruction 2020-08-07 10:28:54 -04:00
Francis Lachapelle ad7ce55d80 chore(release): 5.0.0 2020-08-07 09:11:16 -04:00
Francis Lachapelle 497594dfc8 i18n(ca): update Catalan translation 2020-08-05 18:34:19 -04:00
Francis Lachapelle 559afb0b71 chore(npm): update autoprefixer 2020-08-05 15:01:36 -04:00
Francis Lachapelle 5faf279fec chore(npm): update grunt and grunt-contrib-uglify 2020-08-05 15:01:04 -04:00
Francis Lachapelle 8bf83acabf chore(npm): update angular-ui-router 2020-08-05 14:59:49 -04:00
Francis Lachapelle d1caed9c25 chore(npm): update lodash 2020-08-05 14:59:22 -04:00
Francis Lachapelle 6e0e678627 fix(core): improve error log when parsing PKCS12 certificate 2020-08-05 14:54:55 -04:00
Nicolas Höft 1f9888254a
feat(core): Allow disabling tls validation for localhost (#286) 2020-08-05 13:52:18 -04:00
InverseBot 223b27b89b chore(js/css): update generated files 2020-08-05 00:37:56 -04:00
Francis Lachapelle 37d3cb7782 fix(web(css)): improve mailbox expand button in sidenav 2020-08-04 16:36:15 -04:00
Francis Lachapelle 7eac9c3893 fix(calendar(css)): decrease height of calendars entries in lists
md-switch instances are now taking less vertical space.
2020-08-04 16:17:10 -04:00
Francis Lachapelle 1cb9a83f6f fix(web(js)): remove calls to deprecated functions in ng-material 2020-08-04 16:16:09 -04:00
Francis Lachapelle cd95649f08 fix(web(js)): remove calls to deprecated functions in ng-material 2020-08-04 16:12:52 -04:00
Dmitriy Alekseev 8642ff9d00
fix(mail): change default search scope to "subject or from" (#287) 2020-08-04 08:37:17 -04:00
Francis Lachapelle d930821d6b feat(mail): handle multiple mail identities
Fixes #5117
2020-08-03 22:48:45 -04:00
Francis Lachapelle d26bc181fd i18n(de): update German translation 2020-08-03 22:45:15 -04:00
Francis Lachapelle b5f9861e16 i18n(pl): update Polish translation 2020-08-03 22:44:43 -04:00
Francis Lachapelle 743cca255f fix(calendar(js)): show categories colors in task editor
Fixes #5116
2020-08-03 10:24:00 -04:00
InverseBot 60f9d1035f chore(js/css): update generated files 2020-07-31 01:34:14 -04:00
Francis Lachapelle a8bbaf01d7 feat(mail): handle multiple mail identities
Fixes #5087
2020-07-30 15:16:28 -04:00
Francis Lachapelle 87cf5b473f feat(web): support desktop notifications, add global inbox polling
Fixes #1234, fixes #3382, fixes #4295
2020-07-30 15:13:15 -04:00
Francis Lachapelle f6ce265e7b fix(mail(css)): respect white spaces in plaintext messages
Fixes #5069
2020-07-30 13:28:14 -04:00
InverseBot 728b4eeed4 chore(js/css): update generated files 2020-07-30 00:37:08 -04:00
Francis Lachapelle 8205acc5d5 feat(web): support desktop notifications, add global inbox polling
Fixes #1234, fixes #3382, fixes #4295
2020-07-29 16:31:19 -04:00
InverseBot 7efcb58b6e chore(js/css): update generated files 2020-07-28 00:36:58 -04:00
Francis Lachapelle 0e7ce3129c fix(preferences(js)): show error when passwords don't match 2020-07-27 10:20:38 -04:00
Nicolas 2300fe8aab
fix(core): Require current password on password change (#285)
Increase security by requiring the current password when changing the
password. This increases the security for cases such as XSS, or just a
forgotten browser window left open.

Fixes #4140
2020-07-27 10:12:22 -04:00
InverseBot 03d8ed5e92 chore(js/css): update generated files 2020-07-25 00:37:30 -04:00
Francis Lachapelle 1c99c2ca42 fix(web): consistency in icon of expandable list items
See https://material.io/components/lists#types
2020-07-24 15:47:17 -04:00
Francis Lachapelle 5e1a59243c fix(calendar): uncondtionally adjust all-day events dates
Fixes #5045
2020-07-24 15:24:40 -04:00
Francis Lachapelle c73b40f62c chore(js/css): add QRCode library
Fixes #5090
2020-07-24 12:38:02 -04:00
Francis Lachapelle 528b7581a3 fix(preferences): accept an "id" key for mail accounts
Fixes #5091
2020-07-24 12:08:49 -04:00
Francis Lachapelle 73797761c3 fix(calendar(js)): show real selected list in print preview 2020-07-24 10:57:24 -04:00
Francis Lachapelle 72b5db4e35 fix(addressbook(js)): show copy option when source is remote 2020-07-24 10:42:22 -04:00
Francis Lachapelle 94efa4d7d4 fix(mail(css)): yellow flags for more visibility 2020-07-24 09:48:41 -04:00
InverseBot 09f63b2e3b chore(js/css): update generated files 2020-07-24 00:35:42 -04:00
Francis Lachapelle 9c391b8d8d fix(mail): use unique names for attachments
Fixes #5086
2020-07-23 12:56:35 -04:00
Francis Lachapelle d549c296ae Revert "(fix) avoid changing RRULE's UNTIL date for no reason"
This reverts commit 9ed1cc4b8f.
2020-07-22 16:39:10 -04:00
Francis Lachapelle 1579ebd233 chore: remove deprecated files and templates 2020-07-22 15:04:12 -04:00
InverseBot 0d297f21cf chore(js/css): update generated files 2020-07-22 00:35:50 -04:00
Francis Lachapelle 8940651586 feat(mail): handle multiple mail identities
Fixes #5083
2020-07-21 17:01:33 -04:00
InverseBot 6f5ffed5e8 chore(js/css): update generated files 2020-07-21 00:35:43 -04:00
InverseBot 355099ab04 chore(js/css): update generated files 2020-07-19 00:35:36 -04:00
Francis Lachapelle 85a6d8e477 fix(preferences(js)): honor SOGoForwardConstraints in Sieve filters 2020-07-18 09:54:24 -04:00
InverseBot e1800da26a chore(js/css): update generated files 2020-07-18 00:35:34 -04:00
Francis Lachapelle 65b3dc2a3b chore(tool): add "-r" option to truncate-calendar
"-r" also deletes recurrent events (including all occurrences). The
start date of the master event is used when this option is enabled.
2020-07-17 14:15:27 -04:00
Francis Lachapelle ff3e83fd43 fix(calendar(js)): don't handle attendees for tasks 2020-07-17 13:58:32 -04:00
InverseBot ed300409b7 chore(js/css): update generated files 2020-07-17 00:35:24 -04:00
Francis Lachapelle 566fe55d71 fix(preferences(js)): set account id before importing certificate
Fixes #5084
2020-07-16 17:30:10 -04:00
Francis Lachapelle b78e66a10b fix(preferences(js)): conditionally sanitize forward addresses
Fixes #5085
2020-07-16 15:05:42 -04:00
Francis Lachapelle e6e994ba80 fix(core): don't synchronize defaults if no mail identity is created
Fixes #5070
2020-07-16 13:52:35 -04:00
InverseBot cc19970066 chore(js/css): update generated files 2020-07-16 00:35:47 -04:00
Francis Lachapelle 825fb85903 fix(acl(js)): toggle rights from the ACL editor 2020-07-15 09:57:31 -04:00
InverseBot 704e7885ce chore(js/css): update generated files 2020-07-15 00:35:45 -04:00
Francis Lachapelle a5ba99cf60 fix(calendar(js)): show freebusy timeline with external-only attendees 2020-07-14 15:29:45 -04:00
Francis Lachapelle 6e2d652e38 fix(web): restore menu separators in sidenav of Calendars & Mailer 2020-07-14 14:32:13 -04:00
Francis Lachapelle 5bb8161494 fix(preferences(js)): honor SOGoForwardConstraints in Sieve filters 2020-07-14 12:11:01 -04:00
InverseBot 772efb3e99 chore(js/css): update generated files 2020-07-14 00:38:02 -04:00
Francis Lachapelle b7f0ee7228 fix(mail): use double-quotes for attributes when re-encoding HTML 2020-07-13 16:40:11 -04:00
Francis Lachapelle 8f3738bfef fix(mail(js)): pick proper "from" address when replying/forwarding
Fixes #5072
2020-07-13 12:29:35 -04:00
InverseBot 063d6f8c33 chore(js/css): update generated files 2020-07-11 00:38:40 -04:00
Francis Lachapelle 0e5e88aaf9 fix(web): add icon to expandable list items 2020-07-10 17:27:03 -04:00
Francis Lachapelle b4f76a7932 feat(mail): handle multiple mail identities
Fixes #768, fixes #4602
2020-07-10 17:07:01 -04:00
Francis Lachapelle 3d25b8b571 fix(addressbook): handle vCard with multiple title values 2020-07-10 17:04:24 -04:00
Francis Lachapelle 208ee08960 feat(mail): handle multiple mail identities
Create read-only identities for email addresses for which no identity has been defined. This way, when visiting the message editor, the user will have access to all of her known email addresses.

Fixes #768, fixes #4602
2020-07-10 17:01:26 -04:00
Ludovic Marcotte cecf157dca fix(core): avoid pooling channels with tools (fixes #4684) 2020-07-10 10:22:48 -04:00
Francis Lachapelle a91a00e33c docs: fix syntax, specify fqdn requirement for SSL/TLS 2020-07-10 09:59:59 -04:00
Francis Lachapelle ddbed84dbf chore(packaging): don't force a start after installation
Fixes #5073
2020-07-09 15:58:40 -04:00
InverseBot 76936a7d8f chore(js/css): update generated files 2020-07-09 01:25:19 -04:00
Ludovic Marcotte 39255b193d fix(eas): handle noselect special folders in Dovecot 2020-07-08 13:19:12 -04:00
Ludovic Marcotte 53665222b5 fix(packaging): More control file fixes 2020-07-08 10:37:23 -04:00
Ludovic Marcotte 1a7fa0b164 fix(packaging): Xenial control files fixes 2020-07-08 08:29:24 -04:00
InverseBot 82d9cf5462 chore(js/css): update generated files 2020-07-08 00:38:45 -04:00
Francis Lachapelle d29c2b2c7b fix(mail): add all unknown recipients to an address book
When SOGoMailAddOutgoingAddresses is enabled, all unknown recipients are
now added to the destination address book.
2020-07-07 15:46:38 -04:00
Francis Lachapelle f7e7612e05 fix(mail(js)): pick proper "from" address when replying/forwarding
Fixes #5072
2020-07-07 14:53:11 -04:00
Francis Lachapelle 96c22b6b96 fix(addressbook): handle vCard with multiple title values 2020-07-07 14:14:08 -04:00
InverseBot 747ba75503 chore(js/css): update generated files 2020-07-07 00:38:53 -04:00
Francis Lachapelle c2d937746f fix(calendar): ensure valid identity when sending invitations 2020-07-06 12:43:56 -04:00
Francis Lachapelle c99170b9bc fix(mail): pick proper "from" address when replying/forwarding
Fixes #5056
2020-07-06 12:43:55 -04:00
Francis Lachapelle 089935297c fix(mail(js)): respect signature placement when switching identity 2020-07-06 12:43:55 -04:00
InverseBot 5db000aa26 chore(js/css): update generated files 2020-07-04 01:34:29 -04:00
Extra Fu 2f75c389f7
Merge pull request #275 from the-nic/feat/4895-argon2
feat(core): Support ARGON2I/ARGON2ID password hashes
2020-07-03 14:44:20 -04:00
Francis Lachapelle f1ff8bfe1c fix(preferences(js)): automatically expand newly created mail account 2020-07-03 12:32:47 -04:00
Francis Lachapelle 443a41b770 i18n(preferences): rename "Current Time Zone" to "Time Zone" 2020-07-03 12:32:47 -04:00
Francis Lachapelle 76cbe7854c feat(preferences): button to reset contacts categories to defaults 2020-07-03 12:32:46 -04:00
Ludovic Marcotte 9c49fae7f4 feat(core): add groups support to sogo-tool manage-acl 2020-07-03 12:02:52 -04:00
InverseBot 9a94e00cf3 chore(js/css): update generated files 2020-07-03 01:40:50 -04:00
Francis Lachapelle 2545caf2e5 fix(mail(css)): add explicit expanded/collapsed mailbox status 2020-07-02 17:24:51 -04:00
InverseBot 6ab3633a61 chore(js/css): update generated files 2020-07-02 00:41:16 -04:00
Francis Lachapelle b8595d7ae6 fix(calendar): return SOGoUser instances when expanding LDAP groups
Fixes #5043
2020-07-01 16:58:16 -04:00
Francis Lachapelle 62fc80de20 chore(npm): update autoprefixer 2020-07-01 15:47:22 -04:00
Francis Lachapelle 4ff0791faf fix(calendar(js)): avoid exception when adding invalid email as attendee 2020-07-01 15:45:02 -04:00
Francis Lachapelle 5087582b75 fix(calendar(js)): remove unused injected module in PrintController 2020-07-01 15:22:33 -04:00
Francis Lachapelle 0c314a33e6 chore(npm): update md to v1.1.24 2020-07-01 15:20:12 -04:00
InverseBot d33ea134dc chore(js/css): update generated files 2020-07-01 08:12:44 -04:00
Francis Lachapelle 7d36702034 Revert "chore(npm): update md to v1.1.23" 2020-07-01 08:10:58 -04:00
Nicolas Höft 4c27826fb5 feat(core): Support ARGON2I/ARGON2ID password hashes
Requires libsodium ≥ 1.0.9 to be present at compile time.

Thus, the following distributions will have support for at least
ARGON2i:

* rhel ≥ 7 (with EPEL enabled)
* Debian ≥ 9 (stretch)
* Ubuntu ≥ Bionic (18.04)

Fixes #4895
2020-07-01 11:20:31 +02:00
Ludovic Marcotte 2be7bab3ed fix(core): avoid fetching quick records for non-existant users 2020-06-30 13:22:17 -04:00
Francis Lachapelle 98d12ba17a Revert "chore(npm): update md to v1.1.23"
This reverts commit ed6a5a20ce.

Rolling back to v1.1.22 until v1.1.24 is out (related to #5055 and #5061).
2020-06-29 14:20:41 -04:00
Francis Lachapelle f60a30c520 fix(preferences(js)): initialize Forward defaults
Make sure 'Forward' is defined prior to visit the Preferences module.
2020-06-27 11:31:08 -04:00
Francis Lachapelle 11bbdee143 feat(mail): handle multiple mail identities
If no custom identity exists, initialize the mail identities of the user
with all the user's email addresses (extracted from MailFieldNames).

For this code path to be executed, the user must not have any of the
following defaults keys:

  SOGoMailIdentities
  SOGoMailCustomFullName
  SOGoMailCustomEmail
  SOGoMailReplyTo
  SOGoMailSignature

Fixes #768, fixes #4602
2020-06-26 15:28:33 -04:00
InverseBot 03545151bb chore(js/css): update generated files 2020-06-26 00:38:54 -04:00
Francis Lachapelle 8933fae461 fix(calendar(js)): improve debugging in Component factory 2020-06-25 15:58:40 -04:00
Francis Lachapelle 7972257692 feat(mail): handle multiple mail identities
Fixes #768, fixes #4602, fixes #5062
2020-06-25 12:12:33 -04:00
InverseBot 901df24363 chore(js/css): update generated files 2020-06-24 01:34:15 -04:00
Ludovic Marcotte e469f52dd1 fix(eas): gcc v10 compat fixes (fixes #5029) 2020-06-23 13:02:49 -04:00
Extra Fu b3dd794515
Merge pull request #282 from jkanefendt/libzip-compat
Use zip_error_strerror and zip_discard if available
2020-06-23 12:24:12 -04:00
Johannes Kanefendt 5da8f1872b Use zip_error_strerror and zip_discard if available 2020-06-23 18:06:10 +02:00
Francis Lachapelle 3d3b17adb8 fix(calendar(js)): improve attendees editor when adding new attendees
Fixes #5049
2020-06-23 12:02:31 -04:00
InverseBot 4d517e992f chore(js/css): update generated files 2020-06-23 00:39:02 -04:00
Francis Lachapelle ee904ac616 fix(preferences(js)): handle cancellation of IMAP account edition 2020-06-22 17:31:54 -04:00
Francis Lachapelle 7494bb3ae6 fix(preferences): improve handling of forward addresses
Fixes #5053
2020-06-22 17:12:05 -04:00
Francis Lachapelle 2730a91b54 fix(preferences(html)): improve placeholders 2020-06-22 15:06:40 -04:00
Francis Lachapelle 1712a7e7e5 fix(preferences(html)): add placeholders to forward addresses field
Fixes #5053
2020-06-22 09:58:11 -04:00
Extra Fu bf4c083de8
fix(packaging): Ubuntu Focal changes 2020-06-21 15:33:20 -04:00
Extra Fu 7a6681826c
fix(packaging): Ubuntu Focal changes 2020-06-21 15:32:56 -04:00
Extra Fu b4b9e62d09
fix(packaging): fixed typo 2020-06-20 06:12:40 -04:00
Francis Lachapelle 1b603262e9 chore(npm): update CKEditor to version 4.14.1 2020-06-19 14:47:22 -04:00
Ludovic Marcotte 3b46281dde fix(packaging): control files adjustments for old distro wrt libzip 2020-06-19 13:48:46 -04:00
Ludovic Marcotte f6a4dfcd04 fix(core): never use zip_error_init_with_code 2020-06-19 12:28:50 -04:00
InverseBot b4181ef894 chore(js/css): update generated files 2020-06-19 12:02:48 -04:00
Francis Lachapelle ed6a5a20ce chore(npm): update md to v1.1.23 2020-06-19 11:58:21 -04:00
Francis Lachapelle 523340c1b6 chore(npm): update AngularJS to version 1.8.0 2020-06-19 11:56:30 -04:00
Francis Lachapelle 3f308e0689 chore(npm): update CKEditor to version 4.14.1
Move from the minimalist skin to NT1 because the minimalist skin was
buggy.
2020-06-19 11:53:33 -04:00
Ludovic Marcotte 1389dcfe6b fix(core): no need to call zip_discard, it's handled in zip_close 2020-06-19 11:37:36 -04:00
Ludovic Marcotte 67f5e5e490 fix(core): second pass at libzip compat 2020-06-19 11:30:42 -04:00
Ludovic Marcotte 3c4b1af3ba fix(core): initial compat work on libzip 2020-06-19 11:07:07 -04:00
Extra Fu f246d88a5c
Merge pull request #279 from inverse-inc/feature/mail-identities
feat(mail): handle multiple mail identities
2020-06-19 10:42:22 -04:00
Francis Lachapelle f8aa338e64 feat(mail): handle multiple mail identities
Fixes #768, fixes #4602
2020-06-18 16:53:42 -04:00
Francis Lachapelle 2651b5aa9d chore(tool): check for invalid start/end dates in events 2020-06-18 10:56:10 -04:00
InverseBot ee4ec09897 chore(js/css): update generated files 2020-06-18 00:40:47 -04:00
Francis Lachapelle 7e21c6c6a7 refactor(preferences): replace comma-separated list of addresses by
md-chips

Fixes #5048
2020-06-17 17:46:46 -04:00
Francis Lachapelle 1432600fae fix(common(js)): initialize search field with pre-selected option
This is required because of regression in AngularJS Material.

Fixes #5044
2020-06-17 17:46:33 -04:00
InverseBot 97add602df chore(js/css): update generated files 2020-06-17 01:39:40 -04:00
Francis Lachapelle 35ebb7aaeb fix(mail(js)): fix message(s) deletion when overquota 2020-06-16 12:57:17 -04:00
Francis Lachapelle 200c353645 fix(mail(js)): use initial number of rows of textarea with sgAutogrow 2020-06-16 11:58:48 -04:00
Francis Lachapelle d39208efa0 fix(core): fix compilation of pkcs5_pbkdf2.c 2020-06-16 11:54:19 -04:00
InverseBot 348a40837a chore(js/css): update generated files 2020-06-16 00:24:58 -04:00
Extra Fu 0094d65bb9
Merge pull request #276 from the-nic/feat/pbkdf2
feat(core): Add PBKDF2 support
2020-06-12 14:13:23 -04:00
Ludovic Marcotte 0e95de31cf fix(core): fixed linked and packaging for zip->libzip work 2020-06-12 14:09:33 -04:00
Extra Fu 04673e4673
Merge pull request #281 from jkanefendt/use-libzip
Use libzip API instead of zip command line tool for creating zip archives
2020-06-12 14:00:20 -04:00
Ludovic Marcotte 6ec002f023 fix(core): always set the charset when sending IMIP replies 2020-06-12 08:42:00 -04:00
InverseBot 40d8e72c74 chore(js/css): update generated files 2020-06-11 00:39:29 -04:00
Francis Lachapelle 8692e647bd fix(web(js)): handle SAML assertion expiration 2020-06-10 14:56:46 -04:00
InverseBot e9dff9cdbf chore(js/css): update generated files 2020-06-10 00:39:05 -04:00
Francis Lachapelle cddfac82dd Revert "Revert "Revert "fix(core): added back instance caching for LDAP members"""
This reverts commit 056004bca1.
2020-06-09 15:15:06 -04:00
Francis Lachapelle cb08abfa67 Revert "fix(core): avoid caching group members per instance"
This reverts commit 0ff0d43e1e.
2020-06-09 15:14:47 -04:00
Ludovic Marcotte 1146038c76 fix(core): allow non top-level special folders and improved the doc around this 2020-06-09 14:38:01 -04:00
Francis Lachapelle 3ef94da9d6 fix(web(js)): handle SAML assertion expiration 2020-06-09 13:24:49 -04:00
Nicolas 27840093f5
feat(core): add lookupFields attribute in LDAP source
This field allows for looking up attributes not returned with the
default query, such as operational attributes.

Fixes #568

Co-authored-by: Skrupellos <skruppy@onmars.eu>
2020-06-09 11:52:07 -04:00
Johannes Kanefendt 9534816a21 Fixed some header comments 2020-06-09 13:55:08 +02:00
Johannes Kanefendt b951c72451 Use libzip API for creating ZIP archives instead of zip command line tool 2020-06-09 13:50:29 +02:00
InverseBot 0e6e802243 chore(js/css): update generated files 2020-06-09 00:39:20 -04:00
Francis Lachapelle 4292a45e62 refactor(preferences): replace comma-separated list of addresses by md-chips 2020-06-08 17:52:45 -04:00
Ludovic Marcotte 0ff0d43e1e fix(core): avoid caching group members per instance 2020-06-08 10:26:33 -04:00
Ludovic Marcotte 056004bca1 Revert "Revert "fix(core): added back instance caching for LDAP members""
This reverts commit ca5df1a153.
2020-06-08 09:53:44 -04:00
InverseBot dbf5179e69 chore(js/css): update generated files 2020-06-06 00:38:29 -04:00
Francis Lachapelle 433da56b23 fix(web(js)): handle SAML assertion expiration 2020-06-05 11:20:23 -04:00
InverseBot cf91b2dcbb chore(js/css): update generated files 2020-06-05 00:39:00 -04:00
Francis Lachapelle ca5df1a153 Revert "fix(core): added back instance caching for LDAP members"
This reverts commit b94175cc0c.
2020-06-04 16:13:45 -04:00
InverseBot ad9947e627 chore(js/css): update generated files 2020-06-04 00:39:00 -04:00
Ludovic Marcotte b94175cc0c fix(core): added back instance caching for LDAP members 2020-06-03 14:53:26 -04:00
Francis Lachapelle 4d42e3f176 chore(npm): update md to v1.1.22 2020-06-03 10:28:26 -04:00
Ludovic Marcotte 9f55cdc725 fix(core): added even better debugging for bogus groups 2020-06-03 07:46:57 -04:00
Nicolas Höft fc863bf63f fix: Fix for failing test in NSString+Utilities
The test in TestNSString+Utilities would otherwise fail:

======================================================================
FAIL: test_countOccurrencesOfString (TestNSString+Utilities.m:46)
----------------------------------------------------------------------
assertion failure

Simply leave the loop early if the substring length is zero to
avoid this issue
2020-06-03 08:17:08 +02:00
Nicolas Höft 2e0fc3ca09 feat(core): Add PBKDF2 support
Extend NSData+Crypto to support PBKDF2 with SHA1 HMAC as dovecot
is using it since v2.3.0.

The format hashed passwords is {PBKDF2}$1$<salt>$<rounds>$<hashed value in hex>

The implementation of pkcs#5 PBKDF2 is taken from openbsd (with minor
adjustments) as OpenSSL and GnuTLS would require quite new versions to
support this hash.
2020-06-03 08:17:08 +02:00
InverseBot 8f7df73a29 chore(js/css): update generated files 2020-06-03 01:43:03 -04:00
Francis Lachapelle 8b1b938899 refactor(preferences): replace comma-separated list of addresses by md-chips 2020-06-02 15:10:00 -04:00
Ludovic Marcotte 42587f7422 fix(core): improved debugging on bogus groups 2020-06-02 15:05:54 -04:00
InverseBot d3a4136516 chore(js/css): update generated files 2020-05-29 00:38:51 -04:00
Francis Lachapelle 6af55414fb fix(web(js)): handle SAML assertion expiration 2020-05-28 14:53:31 -04:00
Ludovic Marcotte 105ca88aef fix(core): improve debugging on invalid group sources 2020-05-28 14:02:09 -04:00
Francis Lachapelle 008b8e51cc chore(npm): update autoprefixer 2020-05-28 08:44:21 -04:00
Francis Lachapelle cd37e989db feat(core(js)): improve Google Authenticator on login page, add QR code
Fixes #5038
2020-05-28 08:41:10 -04:00
Francis Lachapelle c1acce0725 feat(core(js)): improve Google Authenticator on login page, add QR code
Fixes #5038
2020-05-27 18:01:17 -04:00
Francis Lachapelle a0320400d2
Merge pull request #277 from fpiecka/master
chore: Allow settings override in sogo-backup.sh
2020-05-27 10:59:38 -04:00
Ludovic Marcotte 05dc51ec30 feat(core): handle groups when setting ACLs (fixes #4171) 2020-05-26 10:03:16 -04:00
Ludovic Marcotte 5b6096e32c fix(core): improve debbuging when dealing with groups 2020-05-26 09:25:25 -04:00
Ludovic Marcotte e37ae5fec5 fix(core): disable ASM version of blowfish on i386 2020-05-21 08:51:56 -04:00
Fedor Piecka 789113bb44
Allow settings override in sogo-backup.sh
Allow a sysadmin to override BACKUP_DIR and DAYS_TO_KEEP by setting an environment variable.
2020-05-19 11:11:55 +02:00
InverseBot 513c17bc2f chore(js/css): update generated files 2020-05-16 00:40:13 -04:00
Extra Fu 30c0d8a425
Merge pull request #272 from the-nic/feat/blowfish
Add BLF-CRYPT password scheme support
2020-05-15 19:12:44 -04:00
Nicolas Höft 789b55c274 NSData+Crypto: add password verification function
This will allow for using specific verification, depending on the
scheme.
2020-05-15 22:53:15 +02:00
Ludovic Marcotte 798ad1502c fix(core): adjust syntax for Python > 2 2020-05-15 12:45:20 -04:00
Francis Lachapelle 07c06db69d refactor(mail(js)): replace ckEditor directive by sgCkeditor component
This refactoring

 1. simplifies updating the CKEditor source code;
 2. allows many instances of the CKEditor on the same page;
 3. fixes the cursor positioning on focus.
2020-05-15 11:37:56 -04:00
Ludovic Marcotte 9f861bd629 docs: Adjusted Thunderbird's v68 manifest info 2020-05-15 09:31:04 -04:00
Nicolas Höft c3a4f4aeb4 fix(core): NSData+String: Simplify generateSalt function
Instead of converting binary data to base64 in order to get printable
data, use a white list of characters allowed and select from those.

This also makes sure we will get the right amount of characters as
requested, not potentially longer strings.
2020-05-15 07:43:38 +02:00
Nicolas Höft 8c612fc0a2 feat(core): Add BLF-CRYPT scheme.
Dovecot promotes the use of BLF-CRYPT as a hashing scheme [1].
However, as not all libc-crypt() implementations support this scheme,
use the implementation added in a previous commit.

Also, update the references to the dovecot implementation and a small
test case for testing the blowfish implementation.

[1] https://doc.dovecot.org/configuration_manual/authentication/password_schemes/

Fixes #4958
2020-05-15 07:43:38 +02:00
Nicolas Höft 562f81f21f fix(core): NSData+String: Dont mix tabs and spaces 2020-05-15 07:43:38 +02:00
Nicolas Höft 3040c275d8 feat(core): Add blowfish implementation from openwall
Using version 1.3, see https://www.openwall.com/crypt/
2020-05-15 07:43:38 +02:00
Ludovic Marcotte 96986280ee fix(eas): avoid doing bogus truncation 2020-05-14 15:46:55 -04:00
Extra Fu b53d1254d9
Merge pull request #274 from the-nic/feature/smtp-ssl-tls
feat(core): support smtps
2020-05-14 12:15:51 -04:00
Nicolas Höft 589cfaa2f4 feat(core): Support smtps and STARTTLS for SMTP
Support uri schemes for SMTP, enabling STARTTLS and SMTPS for SMTP
connections.

The new format for configuration value SMTPServer supports passing a
URI scheme (either smtp:// or smtps://). To support old configurations,
if no scheme is given, smtp:// is assumed.

Fixes #31
2020-05-14 08:47:05 +02:00
Ludovic Marcotte 7ef507bdb4 fix(packaging): fixes for centos/rhel v8 support 2020-05-13 11:14:40 -04:00
InverseBot fb117f48c8 chore(js/css): update generated files 2020-05-13 01:03:39 -04:00
Ludovic Marcotte a102a94ac5 fix(packaging): enable mfa on focal 2020-05-12 13:44:10 -04:00
Francis Lachapelle f31a07fd74 Revert "fix(packaging): don't enable mfa on squeeze"
This reverts commit e9cc088153.
2020-05-12 11:20:42 -04:00
Francis Lachapelle 964e6f0cb1 fix(mail(js)): encode HTML entities when computing height of textarea
Fixes #5020
2020-05-12 11:16:32 -04:00
Ludovic Marcotte d7979871bc fix(packaging): fixed condition syntax 2020-05-12 07:59:00 -04:00
Ludovic Marcotte e9cc088153 fix(packaging): don't enable mfa on squeeze 2020-05-12 07:46:59 -04:00
InverseBot a0e5699e60 chore(js/css): update generated files 2020-05-08 10:40:46 -04:00
Francis Lachapelle 272fa8f898 fix(calendar(js)): fix event blocks width in day view
Fixes #5017
2020-05-08 09:51:55 -04:00
Francis Lachapelle 312817b7ae chore(debian): fix rules for MFA 2020-05-08 09:15:43 -04:00
Francis Lachapelle e8f0471bcf feat(core(js)): improve Google Authenticator on login page, add QR code
Closes #2722
2020-05-07 16:45:37 -04:00
Ludovic Marcotte f78300a12e feat(core): initial Google Authenticator support for 2FA 2020-05-07 07:22:24 -04:00
Francis Lachapelle 33d3154d15 chore(release): 4.3.2 2020-05-06 17:07:38 -04:00
Francis Lachapelle 7b5c787718 fix(core): LDAP group expansion must use all user sources 2020-05-05 12:18:37 -04:00
Francis Lachapelle 5da7903ce1 chore(tool): fallback to NGImap4ConnectionStringSeparator
When using a master user to update the Sieve scripts through sogo-tool,
we may not be able to detect the IMAP delimiter. Therefore, we must
fallback to the default NGImap4ConnectionStringSeparator.

Fixes #4919
2020-05-05 10:53:02 -04:00
InverseBot 1fa4b8871d chore(js/css): update generated files 2020-05-05 01:18:29 -04:00
Francis Lachapelle e7da4c19b8 fix(web(js)): improve encoding of folder paths in XHR calls
Fixes #4989
2020-05-04 18:44:20 -04:00
Ludovic Marcotte cbf3d89f3e Merge branch 'master' of https://github.com/inverse-inc/sogo 2020-05-04 12:57:40 -04:00
Ludovic Marcotte 7929fd394f fix(core): skip folder check during ACL subscribe 2020-05-04 12:57:11 -04:00
Francis Lachapelle 8f7b2bfbed fix(core): LDAP group expansion must use all user sources 2020-05-04 12:25:16 -04:00
root 8a4e79963f fix(core): skip folder check during ACL subscribe 2020-05-04 09:57:49 -04:00
InverseBot d29c00827c chore(js/css): update generated files 2020-05-03 01:18:12 -04:00
Francis Lachapelle f1b52a7486 chore(release): 4.3.1 2020-05-01 14:51:36 -04:00
Francis Lachapelle c7d3546be8 chore(js/css): update generated files 2020-05-01 14:51:36 -04:00
Francis Lachapelle 4742f2fd31 chore(npm): update development dependencies 2020-05-01 14:51:36 -04:00
Francis Lachapelle 9feefba545 chore(npm): update angular-ui-router 2020-05-01 14:51:35 -04:00
Francis Lachapelle c12b1395e7 chore(npm): update CKEditor to version 4.14.0 2020-05-01 14:51:35 -04:00
InverseBot 605c026425 chore(js/css): update generated files 2020-05-01 01:20:09 -04:00
Francis Lachapelle 807cefaa39 fix(mail(css)): minor improvements to the mail editor 2020-04-30 11:46:33 -04:00
Francis Lachapelle 2c050d847e fix(mail(js)): wrong argument to Mailbox.$_deleteMessages
Fixes #4986
2020-04-30 11:02:48 -04:00
Francis Lachapelle 158c5e45c4 fix(mail(js)): restore unseen count after deleting a mailbox 2020-04-30 10:52:28 -04:00
Francis Lachapelle 174b44ed50 fix(web(css)): truncate text of toolbar in multi-selection mode
Fixes #4623
2020-04-30 09:01:28 -04:00
InverseBot 260aa1971b chore(js/css): update generated files 2020-04-29 17:05:48 -04:00
Francis Lachapelle d99bbbb37e fix(core): escape quotes before sending SQL queries
Fixes #5010
2020-04-29 12:52:09 -04:00
Francis Lachapelle 09c76b3649 fix(core): escape quotes before sending SQL queries
Fixes #5010
2020-04-27 17:13:28 -04:00
Francis Lachapelle 04a6217512 fix(core): escape quotes before sending SQL queries
Fixes #5010
2020-04-23 13:49:15 -04:00
InverseBot 1801d0d60f chore(js/css): update generated files 2020-04-17 16:00:36 -04:00
Francis Lachapelle fd063fd5b3 fix(web(js)): handle SAML assertion expiration 2020-04-17 15:59:44 -04:00
Francis Lachapelle a4c51a90bb Remove reference to SOGoGroup.h 2020-04-17 15:16:23 -04:00
InverseBot 2fdb924aff chore(js/css): update generated files 2020-04-17 13:54:31 -04:00
Francis Lachapelle 824b38332c fix(preferences): avoid exception when parsing PreventInvitationsWhitelist
Fixes #5006
2020-04-17 12:11:01 -04:00
Francis Lachapelle 64461764c8 fix(web(js)): handle SAML assertion expiration 2020-04-17 09:50:43 -04:00
InverseBot 0683dafc22 chore(js/css): update generated files 2020-04-17 01:09:04 -04:00
Francis Lachapelle 058df21ada fix(calendar(js)): find a free slot for a maximum of 30 days 2020-04-16 17:11:50 -04:00
Francis Lachapelle 84f3fd5e1c i18n(sk): update Slovak translation 2020-04-16 09:37:41 -04:00
Francis Lachapelle 7b4e4f7345 i18n(pl): update Polish translation 2020-04-16 09:37:17 -04:00
Francis Lachapelle 543abb39d5 i18n(hu): update Hungarian translation 2020-04-16 09:36:49 -04:00
Francis Lachapelle f75af12db8 i18n(fr): update French translation 2020-04-16 09:36:29 -04:00
Francis Lachapelle 91d193fa0f i18n(nl): update Dutch translation 2020-04-16 09:36:00 -04:00
Francis Lachapelle 0e5e9ddb74 i18n(ca): update Catalan translation 2020-04-16 09:35:39 -04:00
Francis Lachapelle a41fb9e1a9 i18n(de): update German translation 2020-04-16 09:35:11 -04:00
Francis Lachapelle c61fe4a188 i18n(pt_BR): update Brazilian (Portuguese) translation 2020-04-16 09:33:47 -04:00
InverseBot 0b43f11d61 chore(js/css): update generated files 2020-04-14 01:09:06 -04:00
Francis Lachapelle 52bb3baa8b fix(mail(js)): url-encode folder path to handle special characters (%)
Fixes #4989
2020-04-13 17:28:11 -04:00
Francis Lachapelle 979e1342c7 docs: fix wrong default values for MailComposeMessageType and LoginModule
Fixes #4992
2020-04-06 15:38:45 -04:00
Francis Lachapelle 4019cb7556 chore(npm): update angular-ui-router 2020-04-03 15:42:30 -04:00
Francis Lachapelle 6af0058657 fix(calendar): use the calendar owner when generating freebusy information 2020-04-03 12:18:16 -04:00
Extra Fu a78f06e909
Merge pull request #234 from iredmail/master
Create directories with 077X
2020-04-02 09:53:04 -04:00
Extra Fu 62823815a7
Merge pull request #263 from jkanefendt/revise-group-expansion
Revision of the group member expansion interface
2020-04-02 09:52:21 -04:00
Ludovic Marcotte 78e50b7a2a docs: fix indent (fixes #4999) 2020-04-02 07:23:07 -04:00
Extra Fu 841d6896fc
Merge pull request #271 from tfux/4988
fix(eas): properly encode DisplayTo (fixes #4995)
2020-03-30 06:35:22 -04:00
root 18ffd1a744 fix(eas): properly encode DisplayTo (fixes #4995) 2020-03-29 09:15:00 +02:00
Extra Fu 45eeb5fa24
Merge pull request #270 from tfux/4988
fix(eas): fix invalid DisplayTo (fixes #4988)
2020-03-22 14:04:59 -04:00
root b8f31069ed fix(eas): fix invalid DisplayTo (fixes #4988) 2020-03-22 17:15:18 +01:00
Francis Lachapelle e8e41f15e3 i18n(lv): update Latvian translation 2020-03-09 11:13:20 -04:00
Francis Lachapelle e3559d5ca3 i18n(cs): update Czech translation 2020-03-09 11:13:19 -04:00
Francis Lachapelle de5da7bd0d i18n(ro_RO): update Romanian translation 2020-03-09 11:13:19 -04:00
InverseBot bc09aeb830 chore(js/css): update generated files 2020-03-07 01:26:12 -05:00
Francis Lachapelle d1dbceb407 fix(mail): remove onpointerrawupdate event handler from HTML messages
Fixes #4979
2020-03-06 12:14:46 -05:00
Francis Lachapelle 2601ad4563 chore(tool): fix usage example of manage-acl
Fixes #4963
2020-03-06 10:55:31 -05:00
Francis Lachapelle da51482ce1 fix(mail): validate IMAP ACL compliance on main mail account 2020-03-02 14:04:47 -05:00
Ludovic Marcotte 62e25f6c13 fix(calendar(core)): avoid generating empty parameters list 2020-02-27 15:26:39 -05:00
Ludovic Marcotte 78292495bb fix(calendar(core)): check for array size before looking into 2020-02-27 14:46:21 -05:00
InverseBot 72efaa7432 chore(js/css): update generated files 2020-02-22 01:23:26 -05:00
Francis Lachapelle daaad938cb fix(mail(js)): disable autogrow of textarea in popup window
Fixes #4962
2020-02-21 11:54:27 -05:00
Francis Lachapelle 5e1f487e49 fix(calendar): fix first range of "busy off hours" in vFreeBusy response 2020-02-21 10:37:58 -05:00
InverseBot 989021d561 chore(js/css): update generated files 2020-02-20 01:27:48 -05:00
Francis Lachapelle 656410eb6b fix(preferences(html)): reject action of mail filter is now a textarea 2020-02-19 15:56:51 -05:00
Francis Lachapelle 4e2d5098c7 fix(mail(js)): limit number of messages to batch delete per API call 2020-02-19 11:10:38 -05:00
InverseBot 3433a2e765 chore(js/css): update generated files 2020-02-19 01:27:46 -05:00
Francis Lachapelle eabb40a0bf fix(css): improve contrast of toolbars w/input field 2020-02-18 16:24:36 -05:00
Francis Lachapelle 860d635c9c fix(web(css)): space issue with folders subscription dialog on Firefox
Fixes #4954
2020-02-13 09:15:26 -05:00
InverseBot 501edfc319 chore(js/css): update generated files 2020-02-13 01:26:06 -05:00
Francis Lachapelle 2b5e7a68d7 chore(tool): check for missing start/end dates in events 2020-02-12 11:35:56 -05:00
Francis Lachapelle 95b3e9d4fa fix(mail(js)): skrink autogrow md-input when content is removed 2020-02-12 10:59:06 -05:00
Extra Fu dda13e602b
Merge pull request #269 from tfux/ics_import
fix(calendar): fallback to tz found in ics (fixes #4943)
2020-02-05 11:34:58 -05:00
InverseBot c49137e620 chore(js/css): update generated files 2020-02-05 02:13:22 -05:00
root 24fc9a950b fix(calendar): handle tz with until in rrule (fixes #4943) 2020-02-02 12:14:48 +01:00
InverseBot ad3a9c87f8 chore(js/css): update generated files 2020-02-01 01:20:57 -05:00
Francis Lachapelle 3e6cd3c53c perf(web): don't wait on Sieve server to render UIxPageFrame.wox 2020-01-31 16:51:33 -05:00
Francis Lachapelle bc963d53c6 fix(mail): wrap HTML part before re-encoding content
Avoid improper encoding when the HTML part is using an unsupported
encoding by libxml2.
2020-01-30 15:36:16 -05:00
root 57bbb255cc fix(calendar): fallback to tz found in ics 2020-01-29 22:18:29 +01:00
Francis Lachapelle 127a3c487d chore(release): 4.3.0 2020-01-21 09:53:16 -05:00
InverseBot d92cd9c3f3 chore(js/css): update generated files 2020-01-21 01:21:02 -05:00
Extra Fu c69382cb5d
Merge pull request #268 from tfux/4911
fix(eas): sync reminder for invitation (fixes #4911)
2020-01-20 17:55:17 -05:00
Francis Lachapelle 88a675596c i18n(pt_BR): update Brazilian (Portuguese) translation 2020-01-20 16:34:17 -05:00
Francis Lachapelle b71df14b14 fix(mail(js)): bypass autogrow feature of md-input to fix scroll jumping 2020-01-20 14:19:11 -05:00
Francis Lachapelle 73dc86a6ed fix(mail(js)): bypass autogrow feature of md-input to fix scroll jumping
See https://github.com/angular/material/issues/3070
2020-01-20 14:10:57 -05:00
root 9221811fdc fix(eas): sync reminder for invitation (fixes #4911) 2020-01-20 18:50:49 +01:00
Francis Lachapelle 560c1dcd82 fix(calendar): adjust recurrent rule when importing a vEvent 2020-01-20 12:03:34 -05:00
Extra Fu 0e5514e425
Merge pull request #267 from tfux/4929
fix(eas): additional name fields (fixes #4929)
2020-01-20 11:04:06 -05:00
Francis Lachapelle 94af9bb780 chore(npm): update CKEditor to version 4.13.1 2020-01-17 12:27:45 -05:00
Francis Lachapelle 43e5662950 fix(calendar(css)): fix padding of sort handle of calendars 2020-01-17 11:48:02 -05:00
Francis Lachapelle 96f2c64320 chore(npm): update md to v1.1.21 2020-01-17 11:42:40 -05:00
Francis Lachapelle 001d76fd05 fix(calendar(js)): allow event invitations to be moved
Fixes #4926
2020-01-17 11:34:37 -05:00
Francis Lachapelle 62f64314c0 fix(mail): fix SMTP authentication when reporting spam/ham
Fixes #4941
2020-01-17 09:53:16 -05:00
root 3f94516e31 fix(eas): additional name fields (fixes #4929) 2020-01-16 22:17:57 +01:00
Francis Lachapelle d8fab6bb21 fix(calendar): restore [SOGoAppointmentObject resourceHasAutoAccepted]
Fixes #4923
2020-01-16 10:43:42 -05:00
Ludovic Marcotte 047a98b870 fix(eas): avoid generating broken XML ouput (fixes #4927) 2020-01-08 13:04:42 -05:00
Ludovic Marcotte f0980a9cbd feat(core): Added AES-128-CBC password scheme for SQL authentication.
This allows SOGo to use Plesk's database as an authentication source.
2020-01-06 15:47:47 -05:00
Francis Lachapelle 4216f9e726 chore: use TABLE variable in 9-table migration scripts
Fixes #4889
2020-01-06 15:10:43 -05:00
Francis Lachapelle ba1757fd05 chore: fix MySQL migration script to 9-table schema
Fix datatype of sogo_folder_info.c_location.

Fixes #4377
Fixes #4888
2020-01-06 13:43:40 -05:00
Francis Lachapelle 91ca8b8bec fix(calendar): restore [SOGoAppointmentObject resourceHasAutoAccepted]
This method is used for ActiveSync support.

Fixes #4923
2020-01-06 09:41:49 -05:00
InverseBot 5b089bbe14 chore(js/css): update generated files 2019-12-31 01:15:45 -05:00
InverseBot 9437ba8b9a chore(js/css): update generated files 2019-12-25 01:18:27 -05:00
Francis Lachapelle 94b171675f perf(css): remove unused selectors for layout 2019-12-24 16:18:32 -05:00
Francis Lachapelle aaaa16ed40 fix(calendar): fix monthly computation with month day mask
Fixes #4915
2019-12-24 14:56:49 -05:00
Francis Lachapelle d6d33f9f0b fix(tool): fix error handling when updating Sieve script 2019-12-19 15:22:24 -05:00
Ludovic Marcotte 4ed2c727a2 fix(eas): make sure there is always an attendee name (fixes #4910) 2019-12-19 09:03:17 -05:00
InverseBot ee1ffef5b5 chore(js/css): update generated files 2019-12-19 01:17:15 -05:00
Francis Lachapelle 6b17d5298c chore(js/css): update generated files 2019-12-17 15:00:49 -05:00
Francis Lachapelle e36d5dfb7c chore(release): 4.2.0 2019-12-17 14:43:59 -05:00
Francis Lachapelle 56e1583ccc chore(npm): update autoprefixer 2019-12-17 14:21:04 -05:00
Francis Lachapelle c1ccbae316 style(obj-c): replace tabs by spaces 2019-12-17 11:15:50 -05:00
Francis Lachapelle 91cefbdff1 docs: update asciidoc guides 2019-12-17 11:13:42 -05:00
Francis Lachapelle e65e0f191f i18n(sk): update Slovak translation 2019-12-17 11:11:58 -05:00
Francis Lachapelle bc172c5895 i18n(fr): update French translation 2019-12-17 11:11:43 -05:00
Francis Lachapelle ae42fd869a i18n(nl): update Dutch translation 2019-12-17 11:11:11 -05:00
Francis Lachapelle cd8f957774 i18n(cs): update Czech translation 2019-12-17 11:10:40 -05:00
Francis Lachapelle 7180b5988d fix(preferences): improve error handling with Sieve server 2019-12-16 14:54:03 -05:00
Francis Lachapelle 9aeecead6c fix(calendar(html)): don't cache list of week days
Fixes #4907
2019-12-16 11:10:07 -05:00
Francis Lachapelle 15d7c69d94 fix(calendar): adjust invalid dates when importing a vEvent
Fixes #4845
2019-12-16 10:48:26 -05:00
Francis Lachapelle a25e5acba4 chore(tool): conditionally activate the Sieve script 2019-12-13 15:19:59 -05:00
Ludovic Marcotte 0ceccdd612 fix(addressbook(core)): safety check from broken URLs 2019-12-13 13:54:34 -05:00
Francis Lachapelle 86643b4339 docs: convert NEWS to CHANGELOG.md 2019-12-11 12:41:13 -05:00
Francis Lachapelle edc01e9532 fix(calendar): allow fetching group members from contacts-only sources
If a group is invited to an event, search members within the known source
of the contact instead of relying on a global search among "canAuthenticate" sources.
2019-12-10 12:29:40 -05:00
InverseBot 9d1d12af54 chore(js/css): update generated files 2019-12-10 01:17:03 -05:00
Francis Lachapelle a303011237 fix(mail(js)): avoid exception when adding duplicated recipient 2019-12-09 12:34:48 -05:00
Francis Lachapelle 5ccc12639b fix(mail(html): expose UIxMailViewRecipientMenu in popup view 2019-12-09 12:29:58 -05:00
Francis Lachapelle 2048fb19cf fix(calendar(js)): avoid exception when adding duplicated attendee 2019-12-09 12:24:55 -05:00
Francis Lachapelle 46ade7640a feat(mail(js)): new button to expand recipients that are LDAP groups
Copy all object attributes when cloning the Message object in the popup
view.

Fixes #4902
2019-12-09 11:41:14 -05:00
Francis Lachapelle 2e46e89d58 refactor: replace calls to create GMT NSTimeZone instance 2019-12-09 08:50:50 -05:00
InverseBot eb13aa14b2 chore(js/css): update generated files 2019-12-05 01:17:54 -05:00
Francis Lachapelle 47075b40a2 fix(mail): wrap HTML part with HTML tags to render all content 2019-12-04 15:45:26 -05:00
Francis Lachapelle e71afc982e fix(web): improve contrast of toolbars w/input field 2019-12-04 12:36:48 -05:00
Johannes Kanefendt 948c89f5bb - Respect the user domain when dealing with groups
- Renamed protocol MembershipAwareSource to SOGoMembershipSource
2019-12-04 10:37:08 +01:00
InverseBot 7aaadd724d chore(js/css): update generated files 2019-12-04 01:20:08 -05:00
Francis Lachapelle 5923639154 fix(calendar): raise warning when MuiltipleBookings is set to -1 2019-12-03 16:42:36 -05:00
Francis Lachapelle fbdabc9615 fix(calendar(js)): fix refresh of attendees freebusy information
* refresh template with freebusy information of organizer
* fix event coverage in freebusy timeline when event spans a day

Related to bug #4899
2019-12-03 10:34:47 -05:00
Francis Lachapelle 3bb40e4024 fix(calendar): adjust invalid dates when importing a vEvent
Fixes #4845
2019-11-27 17:00:28 -05:00
Johannes Kanefendt 278d4ab4cb Return NSDictionary contact entries from [MembershipAwareSource membersForGroupWithUID] instead of SOGoUser objects.
Optimization for user sources that are capable of fetching lists of group members at once, might save a lot of expensive SOGoUser lookups.
2019-11-26 22:20:28 +01:00
Francis Lachapelle f872dc52c6 i18n(de): remove duplicated short date formats 2019-11-26 15:13:07 -05:00
Johannes Kanefendt 2e98929900 Removed tight coupling of group membership expansion and LDAPSource.
Any implementation of SOGoSource may now support group expansion by implementing the protocol MembershipAwareSource.
2019-11-26 15:29:02 +01:00
InverseBot 856b0654ab chore(js/css): update generated files 2019-11-22 01:17:37 -05:00
Francis Lachapelle 456a66b66b feat(mail(js)): new button to expand recipients that are LDAP groups 2019-11-21 21:51:27 -05:00
InverseBot f140bba03a chore(js/css): update generated files 2019-11-21 01:18:01 -05:00
Francis Lachapelle 123ccef770 (web) Improve contrast of toolbars w/input field 2019-11-20 12:18:42 -05:00
Francis Lachapelle 4628292fb3 chore(debian): don't call chown if pid file doesn't exist 2019-11-20 09:17:07 -05:00
InverseBot 06814c2dee chore(js/css): update generated files 2019-11-20 01:16:27 -05:00
InverseBot fa2fbd3177 chore(js/css): update generated files 2019-11-19 01:17:36 -05:00
Francis Lachapelle 729802222f fix(mail(js)): add missing library to save msg from popup window
Fixes #4879
2019-11-18 11:57:53 -05:00
Francis Lachapelle e458a78a10 i18n(ca): update Catalan translation
Fixes #4878
2019-11-18 11:34:22 -05:00
Francis Lachapelle 14b60cd756 fix(calendar(js)): avoid call to /members when expansion is disabled
Expose SOGoLDAPGroupExpansionEnabled in /jsonDefaults to avoid a call to
/members when the parameter is disabled.
2019-11-18 11:06:15 -05:00
InverseBot 9c299cf0de chore(js/css): update generated files 2019-11-16 01:18:07 -05:00
Francis Lachapelle 5b3d84ee24 refactor(preferences): conditionally activate the Sieve script
All the user defaults are now editable through the Preferences module,
even if an external Sieve script is enabled. However, the user can
disable the external Sieve script and force the activation of the
"sogo" Sieve script.
2019-11-15 14:37:35 -05:00
Francis Lachapelle 350677bbce chore(debian): don't call chown if pid file doesn't exist 2019-11-08 13:34:39 -05:00
InverseBot c6f532dea8 chore(js/css): update generated files 2019-11-08 01:57:42 -05:00
Ludovic Marcotte 2bc24eca82 fix(core): don't disable the current script if we aren't doing anything 2019-11-07 15:27:43 -05:00
Ludovic Marcotte ac91a303c9 feat(core): Allow the detection of external Sieve scripts
This allows SOGo users to keep existing Sieve scripts instead of
overwriting the SOGo ones by default.
2019-11-07 15:18:28 -05:00
Francis Lachapelle 70984def1f fix(preferences(js)): Lower constraints on auto-reply dates range
Fixes #4874
2019-11-07 11:37:57 -05:00
Francis Lachapelle 699849caec fix(calendar(js)): don't escape HTML characters in repeat select menu
Fixes #4875
2019-11-07 09:47:11 -05:00
Ludovic Marcotte 113f076981 chore(preferences): removed years' old commented code 2019-11-07 08:32:15 -05:00
Ludovic Marcotte 3a8336484c chore(core): removed NSLog calls 2019-11-07 08:17:35 -05:00
Ludovic Marcotte 4475ac651d feat(core): allow pre/appended Sieve scripts
Allow domain admins to now set Sieve scripts that can be prepended
and appended to all users' scripts. This can now be controller
using the SOGoSieveScriptHeaderTemplateFile and
SOGoSieveScriptFooterTemplateFile domain defaults.
2019-11-06 14:53:30 -05:00
Ludovic Marcotte c2e7f6a866 feat(preferences): allow hiding of vacation the vacation period
This is controllable using the new SOGoVacationPeriodEnabled
domain defaults variable.
2019-11-05 15:33:16 -05:00
Francis Lachapelle 32968092e2
Merge pull request #262 from Neustradamus/master
chore(apache): Space removal in configuration files
2019-11-03 21:03:07 -05:00
Neustradamus 1fd4d54d59 Empty line removal
Empty line removal
2019-11-02 19:18:19 +01:00
Neustradamus d9f059a9e3 Space removal
Space removal
2019-11-02 19:08:23 +01:00
InverseBot 83d52a16f4 chore(js/css): update generated files 2019-11-01 01:14:41 -04:00
Francis Lachapelle 55aaeaf9a6 Update ChangeLog 2019-10-31 13:26:11 -04:00
Francis Lachapelle 69cbe5d619 Preparation for release 4.1.1 2019-10-31 13:25:48 -04:00
Francis Lachapelle 82735fa8a7 chore(js/css): update generated files 2019-10-31 13:09:54 -04:00
Francis Lachapelle 33dce130ce chore(js): fix path of lodash library 2019-10-31 13:08:28 -04:00
Francis Lachapelle 372bd676aa chore: update commit message for generated files 2019-10-31 11:59:55 -04:00
Francis Lachapelle fc34befe47 docs: update CONTRIBUTING file 2019-10-31 11:59:38 -04:00
Francis Lachapelle eb4ad5e086 i18n(de): update German translation 2019-10-31 11:52:43 -04:00
Ludovic Marcotte a2a6bfab59 fix(core): avoid warning by including missing file 2019-10-31 09:04:10 -04:00
InverseBot 22bd650b72 (js/css) Update generated files 2019-10-31 02:07:08 -04:00
Francis Lachapelle d4f0ccd3f7 docs: update CONTRIBUTING file 2019-10-30 13:55:03 -04:00
Francis Lachapelle 8b45f2c731 fix(calendar(js)): swap start-end dates when delta is negative
When creating an event by drag'n'dropping from bottom to top, the
original coordinate become the start date.
2019-10-30 13:55:03 -04:00
Francis Lachapelle 060dea3818 style(mail(js)): add missing semi-colon 2019-10-30 13:55:03 -04:00
Francis Lachapelle 487bbf74c0 fix(calendar(js)): don't modify time when computing dates interval
Fixes #4861
2019-10-30 13:55:03 -04:00
Ludovic Marcotte d1e2418d65 (fix) fixed EAS provisioning support for Outlook/iOS (fixes #4853) 2019-10-30 13:44:13 -04:00
Francis Lachapelle 13ad6ff875 Initial CONTRIBUTING file 2019-10-30 11:13:40 -04:00
Francis Lachapelle f6ca946058 fix(calendar): don't allow RDATE unless already defined
Since RDATE are not properly supported in EAS, hide the possibility to
specify recurring dates unless the component being edited already
contains RDATE(s).
2019-10-30 11:04:59 -04:00
Francis Lachapelle 42bb3b288b (i18n) Update Polish translation
Fixes #4851
2019-10-29 11:03:27 -04:00
Ludovic Marcotte 61945734c7 (doc) quote default values (fixes #4827) 2019-10-28 15:14:35 -04:00
Ludovic Marcotte e866fd5fda (fix) fixed Apple Calendar creation (fixes #4813) 2019-10-28 14:39:39 -04:00
Ludovic Marcotte 7ff9921709 (fix) removed unused method 2019-10-25 13:34:41 -04:00
Ludovic Marcotte 34fcfe024b (fix) use the supplied Sieve creds to fetch the IMAP4 separator (fixes #4846) 2019-10-25 13:32:52 -04:00
InverseBot 2d5d1b4297 (js/css) Update generated files 2019-10-25 01:27:37 -04:00
Francis Lachapelle df15fed8fd Update ChangeLog 2019-10-24 10:43:20 -04:00
Francis Lachapelle 1c179f805d Preparation for release 4.1.0 2019-10-24 10:42:30 -04:00
Francis Lachapelle c69a7391a4 (js/css) Update generated files 2019-10-24 10:35:41 -04:00
Francis Lachapelle 63bcb2649b (css) New .sg-hint class 2019-10-24 10:33:35 -04:00
Francis Lachapelle c2c5a4d23d (css) Fix contextual menu position in Mail 2019-10-24 10:15:18 -04:00
Francis Lachapelle 3b869d44d6 (js) Hide mail recipient when not defined 2019-10-24 10:12:30 -04:00
Francis Lachapelle ae99dda215 (js) Filter out hidden days in date picker 2019-10-24 10:09:56 -04:00
Francis Lachapelle aa9af35ae9 (js) Rollback optimization in appointment editor
There's an issue with the sgToggleGrid directive when the associated
grid list is rendered later.

Fixes #4858
2019-10-24 09:32:11 -04:00
Francis Lachapelle 9f24f64dcc Update time zones to version 2019c 2019-10-23 14:49:16 -04:00
Francis Lachapelle 11d8d8a2c2 (js) Update CKEditor to version 4.13.0 2019-10-23 14:06:15 -04:00
Francis Lachapelle 8366878932 (i18n) Update translations 2019-10-23 12:54:32 -04:00
InverseBot 9e048a2ac1 (js/css) Update generated files 2019-10-23 01:19:01 -04:00
Francis Lachapelle 5219fd9d84 (css) Fix contextual menu position in Calendar 2019-10-22 10:16:03 -04:00
Francis Lachapelle 157480df39 Update NEWS file 2019-10-21 15:34:37 -04:00
Francis Lachapelle 85e61ecc1b Add missing contact fields for sorting
Fixes #4799
2019-10-21 15:32:13 -04:00
Francis Lachapelle 23690cb223 (js) Escape saved username in cookie
Fixes #4810
2019-10-21 14:07:03 -04:00
Francis Lachapelle 81ca398a35 (fix) Reload Web calendars on CAS login 2019-10-16 16:22:13 -04:00
InverseBot 04f939f107 (js/css) Update generated files 2019-10-14 01:10:59 -04:00
Francis Lachapelle 422d6b4929
Merge pull request #260 from auzeonfung/patch-1
(css) Fix .sg-date-group misplaced in CJK locales
2019-10-13 21:32:24 -04:00
NGAU Zeonfung 361f94e87a
fixed .sg-date-group misplaced
In CJK locales, .sg-day may be misplace.
In this case, word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.
2019-10-14 07:44:37 +09:00
InverseBot 960276c3c7 (js/css) Update generated files 2019-10-11 01:11:57 -04:00
Francis Lachapelle b07c5906f3
Merge pull request #259 from rmounce/patch-1
(doc) Fix typo of SOGoSAML2CertificateLocation
2019-10-10 23:15:12 -04:00
Ryan Mounce 14549859d4
(doc) Fix typo of SOGoSAML2CertificateLocation 2019-10-11 13:16:24 +10:30
Francis Lachapelle d5b4cb5164 Update NEWS file 2019-10-10 15:46:00 -04:00
Francis Lachapelle 66645384bc (js) Improve handling of vacation dates
Fixes #4844
2019-10-10 15:37:50 -04:00
Francis Lachapelle 7bc73b6f68 (js) Fix handling of times in task/event editors
Fixes #4497
Fixes #4845
2019-10-10 14:22:56 -04:00
Francis Lachapelle 4fb483df7b (js) Update sg-timepicker following md changes
Added support for "required".
2019-10-10 14:17:02 -04:00
InverseBot 3ee7e58387 (js/css) Update generated files 2019-10-08 01:11:40 -04:00
Francis Lachapelle d20587dab0 (js) Handle DST change in Date.daysUpTo 2019-10-07 15:58:09 -04:00
Francis Lachapelle 2fb81310e3 (js) Fix possible exception in sgFreebusy 2019-10-07 11:10:17 -04:00
Francis Lachapelle 99bfcaec37 (js) Improve syntax of MessageEditorController.js 2019-10-07 11:09:12 -04:00
Francis Lachapelle 17d3d44787 (js) Fix references to mail accounts in popup
Fixes #4838
2019-10-07 11:07:26 -04:00
InverseBot 1413685cbe (js/css) Update generated files 2019-10-05 01:12:02 -04:00
Francis Lachapelle 10b5eb736f (js) Handle DST change in Date.daysUpTo 2019-10-04 09:54:29 -04:00
Francis Lachapelle 349be8b4db (fix) chown pid file before stopping 2019-10-03 14:11:24 -04:00
InverseBot d8b6feafc5 (js/css) Update generated files 2019-10-03 01:13:07 -04:00
Francis Lachapelle 4a93ce344f Improve labels of auto-reply date settings
Fixes #4791
2019-10-02 11:56:08 -04:00
Francis Lachapelle 94fe64161f (doc) Update versions in installation guide 2019-10-02 10:46:08 -04:00
Francis Lachapelle 9cda34a65f Fix handling of SENT-BY addresses
Fixes #4583
2019-10-02 10:45:37 -04:00
Francis Lachapelle 01bda0783c (js) Optimize display of event editor 2019-10-02 09:20:35 -04:00
Francis Lachapelle 6d2094bf83 (js) Fix closing tag in sgMessageListItemMain 2019-10-02 09:18:30 -04:00
Francis Lachapelle f7e60348ca (js) Improve syntax of CalendarsController.js 2019-10-02 09:16:59 -04:00
Francis Lachapelle 2b27745a00 Allow import to writable calendar subscriptions 2019-10-02 09:15:25 -04:00
InverseBot ea18473746 (js/css) Update generated files 2019-10-02 01:14:50 -04:00
Francis Lachapelle 93269539d7 (js) Allow single-day vacation autoreply
Fixes #4698
2019-10-01 15:49:54 -04:00
InverseBot 6b96f2f8de (js/css) Update generated files 2019-10-01 09:57:21 -04:00
Francis Lachapelle 496c5d3101 (js) Improve CAS handling 2019-10-01 09:54:54 -04:00
InverseBot 2b4699bcc4 (js/css) Update generated files 2019-10-01 01:09:54 -04:00
Francis Lachapelle 4c7665d341 (sql) Update mysql-utf8mb4.sql for v4.x
Fixes #4833
2019-09-30 16:27:51 -04:00
Francis Lachapelle fe92b4d03c (js) Restore cards selection after refresh
Fixes #4809
2019-09-30 16:21:58 -04:00
Francis Lachapelle bd9dfe6387 (js) Improve CAS handling 2019-09-30 16:10:26 -04:00
Francis Lachapelle 5b818e8ea9 Fix behaviour of SOGoMailKeepDraftsAfterSend
Fixes #4830
2019-09-27 09:48:58 -04:00
InverseBot 482728c942 (js/css) Update generated files 2019-09-27 01:08:07 -04:00
Francis Lachapelle 249277ec3d (js) Restore cards selection after refresh
Fixes #4809
2019-09-26 12:10:51 -04:00
Francis Lachapelle ac9fa92d4f (js) Improve CAS handling 2019-09-26 11:08:14 -04:00
Francis Lachapelle 0de722d8f4 Set default Sieve port to 4190
Fixes #4826
2019-09-25 10:54:35 -04:00
Francis Lachapelle 3100ac1e9c (Calendar) Limit event block size to a day 2019-09-24 14:47:27 -04:00
InverseBot 2077a8707f (js/css) Update generated files 2019-09-24 09:50:37 -04:00
Francis Lachapelle b454f71c7c (js) Improve CAS handling 2019-09-24 09:48:43 -04:00
InverseBot ee92748b97 (js/css) Update generated files 2019-09-21 01:09:53 -04:00
Francis Lachapelle 2eec7658f3 (js) Fix mailboxes refresh
Fixes #4787
2019-09-20 16:37:51 -04:00
Francis Lachapelle 3cddb54e4e (js) Apply SOGoSearchMinimumWordLength everywhere
Fixes #4811
2019-09-18 14:02:21 -04:00
Francis Lachapelle d194e07413 (doc) Change recommendation for free S/MIME cert
Fixes #4817
2019-09-18 10:18:26 -04:00
Francis Lachapelle ab474c5329 (doc) Fix RPM repository URL
Fixes #4815
2019-09-18 09:59:06 -04:00
Ludovic Marcotte 662ee865b7 (fix) avoid incorrect truncation leading to exception (fixes #4806) 2019-09-13 09:52:04 -04:00
Ludovic Marcotte 1e43a695cd (fix) improve FolderSync operation (fixes #4672) 2019-09-13 09:45:48 -04:00
Ludovic Marcotte 6323cbe2c6 (fix) avoid changing summary during unit test 2019-09-13 09:16:10 -04:00
Ludovic Marcotte 5f9444f273 (fix) one more fix for test 2019-09-13 08:49:22 -04:00
Ludovic Marcotte 3f13ab9f19 (fix) update unit date with the summary being a major property 2019-09-13 08:32:35 -04:00
Ludovic Marcotte 9ed1cc4b8f (fix) avoid changing RRULE's UNTIL date for no reason 2019-09-12 14:12:03 -04:00
Ludovic Marcotte 1ee23a6bec (fix) make sure we handle events occurring after RRULE's UNTIL date 2019-09-12 10:23:51 -04:00
Ludovic Marcotte 1e0bea5988 (fix) also include the summary in major changes 2019-09-09 13:38:41 -04:00
InverseBot 98d49b3ac1 (js/css) Update generated files 2019-09-06 01:17:13 -04:00
Francis Lachapelle 25021c192c New paramter SOGoLDAPGroupExpansionEnabled
Fixes #2506
2019-09-05 12:42:25 -04:00
Francis Lachapelle 1641235163 (i18n) Add missing localizable strings 2019-09-05 10:20:41 -04:00
InverseBot aad51c4b04 (js/css) Update generated files 2019-09-05 02:07:13 -04:00
Ludovic Marcotte 3187bca0ef (fix) now dynamically detect and use the IMAP separator (fixes #1490) 2019-09-04 13:45:53 -04:00
Francis Lachapelle 936f7dde09 (js) Update grunt-sass to 3.1.0 2019-09-04 09:49:40 -04:00
Francis Lachapelle d2a851700c (css,js) Update md to v1.1.20 2019-09-03 16:02:21 -04:00
Ludovic Marcotte e4ad088f0d (fix) avoid exceptions for RRULE with no DTSTART 2019-09-03 13:34:35 -04:00
InverseBot 3065783c2c (js/css) Update generated files 2019-08-30 01:14:43 -04:00
Francis Lachapelle 83f5664cf5 (js) Encode URL of card 2019-08-29 22:08:35 -04:00
Francis Lachapelle 2adf435347 Expose new /members action for LDIF groups 2019-08-29 12:53:50 -04:00
Ludovic Marcotte 1aa0d012cd (fix) honor "any authenticated user" when setting IMAP ACLs 2019-08-29 11:06:13 -04:00
Ludovic Marcotte 0cbb8ea9eb (fix) honor groups when setting IMAP ACLs 2019-08-29 10:46:13 -04:00
InverseBot a47fba3546 (js/css) Update generated files 2019-08-28 01:16:31 -04:00
Francis Lachapelle 8822c8cd07 (Calendar) Button to expand invited LDAP groups
Fixes #2506
2019-08-27 16:34:15 -04:00
InverseBot 9db406a18b (js/css) Update generated files 2019-08-27 01:14:52 -04:00
Francis Lachapelle 991f1d25a4 (js) Improve attendees editor performance 2019-08-26 16:38:00 -04:00
Ludovic Marcotte 4df69587a2 (fix) honor IMAPLoginFieldName also when setting IMAP ACLs 2019-08-23 13:45:44 -04:00
Ludovic Marcotte b68c9bd302 (fix) silence log call 2019-08-23 08:46:27 -04:00
Ludovic Marcotte ff33356742 (fix) proper initialization 2019-08-20 07:54:45 -04:00
InverseBot c4198488d7 (js/css) Update generated files 2019-08-20 01:14:22 -04:00
Francis Lachapelle d8d3c88e98 Fix events search when targeting recurrent events 2019-08-19 16:47:37 -04:00
Ludovic Marcotte 676d2e6790 (feat) added support for S/MIME opaque signing (fixes #4582) 2019-08-19 10:37:15 -04:00
Francis Lachapelle b52abfcbea (js) Increase inputs max length of card/list 2019-08-19 10:06:49 -04:00
InverseBot cc48a486c7 (js/css) Update generated files 2019-08-16 01:14:37 -04:00
Francis Lachapelle adf2378d7a (web) Improve contrast of toolbars w/input field 2019-08-15 17:47:17 -04:00
Ludovic Marcotte 8c77145b9f (fix) avoid warning 2019-08-15 15:54:48 -04:00
Ludovic Marcotte 3e2af3a16e (fix) defined correct method signature 2019-08-15 15:53:40 -04:00
Ludovic Marcotte 04f91b8948 (feat) now possible to specify which domains you can forward your mails to 2019-08-15 12:48:53 -04:00
InverseBot f7f9cb29e0 (js/css) Update generated files 2019-08-09 01:10:01 -04:00
Ludovic Marcotte 2f03a74fe0 (feat) Debian 10 (Buster) support for x86_64 (fixes #4775) 2019-08-08 13:57:05 -04:00
Ludovic Marcotte ed1039a7f8 (fix) force removal of pid file 2019-08-08 13:48:36 -04:00
Ludovic Marcotte ee83e645db (fix) also chown after restart 2019-08-08 13:30:46 -04:00
Ludovic Marcotte 59f035efe7 (fix) change pid file ownership to root as required by dpkg v1.19 2019-08-08 13:17:14 -04:00
Francis Lachapelle 7486c011d2 Fix saving of receipt action for main IMAP account 2019-08-08 11:35:48 -04:00
Ludovic Marcotte 9d72c79a83 (fix) define user once more 2019-08-08 11:23:31 -04:00
Ludovic Marcotte aa768cf951 (fix) specify user 2019-08-08 11:16:59 -04:00
Francis Lachapelle c257453788 (i18n) Add missing localized strings 2019-08-08 10:39:21 -04:00
Ludovic Marcotte a4b1fe9cea Avoid using prefix 2019-08-08 10:22:46 -04:00
Francis Lachapelle 5d218e1113 (js) Prohibit duplicate contact categories 2019-08-08 10:11:42 -04:00
Ludovic Marcotte ab7af8828c Avoid using prefix 2019-08-08 09:48:07 -04:00
InverseBot 955820b17d (js/css) Update generated files 2019-08-08 01:09:47 -04:00
Francis Lachapelle 361a84e7b5 (js) Avoid saving an empty calendar name 2019-08-07 16:33:51 -04:00
Ludovic Marcotte a7b85c3360 Revert "(fix) replace deprecated env var"
This reverts commit 7e84bb4a1a.
2019-08-07 15:44:45 -04:00
Ludovic Marcotte 1d169428fe Revert "(fix) replace depracated env var"
This reverts commit d5ff25232e.
2019-08-07 15:44:33 -04:00
Ludovic Marcotte 7e84bb4a1a (fix) replace deprecated env var 2019-08-07 15:37:04 -04:00
Ludovic Marcotte d5ff25232e (fix) replace depracated env var 2019-08-07 15:35:25 -04:00
Francis Lachapelle 93fb3593cf (i18n) Update German and Polish translations 2019-08-07 08:58:01 -04:00
Francis Lachapelle b6cd87e9c0 (i18n) Update French translation 2019-08-06 10:05:44 -04:00
Ludovic Marcotte 849c34306a (fix) properly handle Windows-1256 charaset (fixes #4781) 2019-08-01 11:15:17 -04:00
Extra Fu f55f62926c
Merge pull request #258 from the-nic/bugfix/segfault-crypt
(fix) Fix SIGSEGV and compilation due to missing include crypt.h
2019-07-21 07:10:49 -04:00
Nicolas Höft f7f0af67d8 (fix) Fix SIGSEGV and compilation due to missing include crypt.h
When building on debian buster, the following warning occurs during
compiling:

    NSData+Crypto.m: In function ‘-[NSData(SOGoCryptoExtension) _asCryptedUsingSalt:magic:]’:
    NSData+Crypto.m:610:9: warning: implicit declaration of function ‘crypt’; did you mean ‘creat’? [-Wimplicit-function-declaration]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
             ^~~~~
             creat
    NSData+Crypto.m:610:7: warning: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
           ^
    NSData+Crypto.m: In function ‘-[NSData(SOGoCryptoExtension) asCryptUsingSalt:]’:
    NSData+Crypto.m:674:7: warning: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
       buf = crypt([cryptString UTF8String], [saltString UTF8String]);
           ^
     Creating derived_src/NSFramework_SOGo.m..

This warning is apparently more severe as it may also cause segfaults
(at least on Debian Buster) when logging in, rendering sogo unusable:

    2019-07-21 11:27:55.623 sogod[16074:16074] MySQL4 connection established 0x0x55e6b9e56f40
    2019-07-21 11:27:55.624 sogod[16074:16074] MySQL4 channel 0x0x55e6b9aa41f0 opened (connection=0x0x55e6b9e56f40,sogo)
    2019-07-21 11:27:55.624 sogod[16074:16074] <MySQL4Channel[0x0x55e6b9aa41f0] connection=0x0x55e6b9e56f40> SQL: SELECT c_password FROM sogo_userview WHERE c_uid = 'xxxx';
    2019-07-21 11:27:55.625 sogod[16074:16074] <MySQL4Channel[0x0x55e6b9aa41f0] connection=0x0x55e6b9e56f40>   query has results, entering fetch-mode.
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b9a56020[WOWatchDogChild]> child 16074 exited
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b9a56020[WOWatchDogChild]>  (terminated due to signal 11)
    Jul 21 11:27:56 sogod [16057]: <0x0x55e6b992b360[WOWatchDog]> child spawned with pid 16268

The reason for this segfault is likely the implicit conversion to int,
leading to uninitialized higher bits of the pointer passed to NSData.
2019-07-21 12:00:21 +02:00
InverseBot 9c21f68c12 (js/css) Update generated files 2019-07-20 01:17:56 -04:00
Francis Lachapelle 20c34c47e9 (doc) Add reference to the Connector Config Guide 2019-07-19 14:14:55 -04:00
Francis Lachapelle 8bd8af947d Update ChangeLog 2019-07-19 13:32:40 -04:00
Francis Lachapelle 4cb43552a6 Preparation for release 4.0.8 2019-07-19 13:22:16 -04:00
Francis Lachapelle 94eeca2917 (js/css) Update generated files 2019-07-19 13:19:43 -04:00
Francis Lachapelle 1351e0953b (doc) Remove references to OpenChange 2019-07-19 13:15:39 -04:00
Francis Lachapelle 8b6b9d80af (i18n) Update translations 2019-07-19 12:50:18 -04:00
Francis Lachapelle 60247e83e7 (i18n) Update German translation 2019-07-09 16:15:37 -04:00
InverseBot 789b4f9c36 (js/css) Update generated files 2019-07-09 01:51:56 -04:00
Francis Lachapelle f2069a6129 Reduce usage of calendar color in dialogs 2019-07-08 13:04:15 -04:00
Francis Lachapelle a0cf84fd0b (wox) Remove unused block 2019-07-05 16:36:56 -04:00
Francis Lachapelle 6e040e418b (js/css) Fix rendering of material icons 2019-07-05 16:35:20 -04:00
Francis Lachapelle d835a8165c (css) Update grunt-sass to v3.0
This release requires Node.js 8 or later.
2019-07-05 09:40:46 -04:00
InverseBot 73a3bf143a (js/css) Update generated files 2019-07-05 01:09:56 -04:00
Francis Lachapelle 06319e3d48 (js) Use matching address of attendee
Fixes #4473
2019-07-04 15:49:38 -04:00
Francis Lachapelle e24082183f Reflect attendee type with generic icon 2019-07-04 15:10:41 -04:00
Francis Lachapelle 5f08b25d9c (font) Update Material Design icons 2019-07-04 14:53:39 -04:00
Francis Lachapelle 374e53bfe6 (js) Review md theme example (theme.js) 2019-07-04 11:34:33 -04:00
InverseBot bc4d189b55 (js/css) Update generated files 2019-07-04 01:09:01 -04:00
Francis Lachapelle 613e59397a (js) Fix missing curly brace 2019-07-03 13:33:04 -04:00
Francis Lachapelle 679b538368 (js) Test threadsCollapsed settings before read 2019-07-03 13:07:48 -04:00
InverseBot 6fb26ee2aa (js/css) Update generated files 2019-06-30 00:49:36 -04:00
Francis Lachapelle 0fba247bd6 (css) Improve messages list 2019-06-27 17:51:48 -04:00
Francis Lachapelle b5949752b4 (web) Restore mail threads
Fixes #3478
Fixes #4616
Fixes #4735
2019-06-27 17:43:11 -04:00
Francis Lachapelle cc6fcc5fbd (js) Fix access to sub mailbox on page reload 2019-06-27 12:02:22 -04:00
Francis Lachapelle fd38816a8c (mail) Fix JSON representation of mail threads 2019-06-26 15:46:59 -04:00
Francis Lachapelle d3ce8a8d2e
Merge pull request #252 from PeterDaveHello/optimize-png-image
Optimize UI png images losslessly via Google zopflipng
2019-06-26 14:18:56 -04:00
Peter Dave Hello b4544a54db Optimize UI png images losslessly via Google zopflipng
UI/WebServerResources/img/cardboard-transp.png                                         | Bin 267247 -> 210429 bytes
UI/WebServerResources/img/felt-transp.png                                              | Bin 173179 -> 140451 bytes
UI/WebServerResources/img/inverse.png                                                  | Bin 3101 -> 2426 bytes
UI/WebServerResources/img/sogo-logo.png                                                | Bin 5523 -> 2272 bytes
2019-06-26 13:34:34 +08:00
InverseBot dc76b9c622 (js/css) Update generated files 2019-06-19 16:07:30 -04:00
Francis Lachapelle c7ffaf6adb (i18n) Add Indonesian (id) translation 2019-06-19 14:26:10 -04:00
Francis Lachapelle bd76715dcb Update NEWS file 2019-06-18 14:59:39 -04:00
Francis Lachapelle 0febc1ef18 (js) Replace bower packages by npm packages 2019-06-18 14:47:01 -04:00
InverseBot 211385ff4d (js/css) Update generated files 2019-06-18 01:13:43 -04:00
Francis Lachapelle 16210fb579 (css,js) Update md to v1.1.19 2019-06-17 12:41:22 -04:00
Francis Lachapelle 63d902620c
Merge pull request #255 from dcsilvagit/patch-1
Set tooltip for markOrUnMarkMessagesAsJunk button
2019-06-17 11:55:07 -04:00
Francis Lachapelle a746a6b23d (i18n) Update Catalan translation
Fixees #4726
2019-06-17 11:43:43 -04:00
Francis Lachapelle f0c8aa884c (i18n) Add Indonesian (id) translation 2019-06-14 10:58:29 -04:00
Ludovic Marcotte 4fc515b229 (fix) handle more broken mails (fixes #4513) 2019-06-13 13:54:16 -04:00
InverseBot 991fac0b94 (js/css) Update generated files 2019-06-13 01:55:36 -04:00
Francis Lachapelle 868057698c (js) Allow 2-letter short month names
Fixes #4766
2019-06-12 16:37:43 -04:00
Francis Lachapelle 56b736cc44
Merge pull request #256 from dasJ/patch-1
configure: Harmonize help and implementation
2019-06-11 20:42:23 -04:00
InverseBot ace0427da7 (js/css) Update generated files 2019-06-11 01:53:09 -04:00
Francis Lachapelle 0e918a446a Add rel="noopener" to external links
Fixes #4764
2019-06-10 13:20:44 -04:00
Janne Heß 13b8e53235
configure: Harmonize help and implementation 2019-06-10 01:01:05 +02:00
Daniel Carlos Silva d9de12a940
Set tooltip for markOrUnMarkMessagesAsJunk button 2019-05-28 11:47:21 -03:00
Francis Lachapelle 3129e149df
Merge pull request #254 from dcsilvagit/fix-set-notjunk-mail_subject
Fix typo in SOGoMailFolder.m
2019-05-23 18:29:01 -04:00
Daniel Carlos Silva 193b73fa26
Update SOGoMailFolder.m 2019-05-23 18:20:10 -03:00
Ludovic Marcotte 6898d11f58 (doc) improved doc regarding placeholders 2019-05-23 15:04:24 -04:00
Ludovic Marcotte f57ff86951 (fix) fixed domain placeholder issue when using sogo-tool (fixes #4723) 2019-05-23 15:02:10 -04:00
Ludovic Marcotte 29f5357a2c (fix) added safety checks in S/MIME (fixes #4745) 2019-05-23 09:21:44 -04:00
InverseBot 0bb24430e0 (js/css) Update generated files 2019-05-17 01:06:34 -04:00
Francis Lachapelle 6e6a82d974 (js) Show mail compose btn if msgs list is visible 2019-05-16 14:30:32 -04:00
Francis Lachapelle 05ca00296d (js) Fix scrolling when deleting a message 2019-05-16 13:53:43 -04:00
Francis Lachapelle a4e44e1e65 (css) Constrain absolute elements in HTML parts 2019-05-16 11:26:22 -04:00
InverseBot b671c9cc80 (js/css) Update generated files 2019-05-15 01:07:31 -04:00
Ludovic Marcotte 0e038a62fd (fix) improve handling of signer certificate (fixes #4742) 2019-05-08 08:09:14 -04:00
Francis Lachapelle b2974d7753
Merge pull request #251 from H4ndl3/patch-1
Adjust word order in German reply template
2019-04-11 21:38:35 -04:00
Florian Beier bad69a0f1a Adjust word order
"schrieb" was in the wrong place, it has to go in front of the contact's name
2019-04-12 01:39:48 +02:00
Francis Lachapelle ab87e72b4e (EAS) Fix handling of missing date
Fixes #4720
2019-04-05 08:39:20 -04:00
InverseBot 37efcea5e5 (js/css) Update generated files 2019-03-28 01:13:36 -04:00
Francis Lachapelle 42dd956b9f (js) Show calendar names in events blocks
Fixes #4713
2019-03-27 09:49:14 -04:00
InverseBot f972684869 (js/css) Update generated files 2019-03-23 01:18:20 -04:00
Francis Lachapelle 42d3c86a99 (i18n) Add missing localizable strings 2019-03-22 13:37:32 -04:00
Francis Lachapelle 769863b0b9 (web) Show hints for mail vacation options
Fixes #4462
2019-03-22 11:59:21 -04:00
Francis Lachapelle efde4b5a5c (js) Allow to fetch unseen count of all mailboxes
Fixes #522, #2776, #4276
2019-03-22 11:57:57 -04:00
Francis Lachapelle c50f22962a (js) Fix page reload with external IMAP account
Fixes #4709
2019-03-22 10:36:39 -04:00
Ludovic Marcotte 96bcbbdc14 (fix) consider DAVx5 like Apple Calendar (fixes #4304) 2019-03-21 14:08:44 -04:00
Francis Lachapelle fcdc4c92c0 Improve URLs/emails detection in text mail parts 2019-03-21 11:01:17 -04:00
Ludovic Marcotte 7acfd8a2cd Update NEWS file regarding previous commit 2019-03-20 13:50:34 -04:00
InverseBot 400212a01d (js/css) Update generated files 2019-03-20 01:21:20 -04:00
Francis Lachapelle 597f6366ff Fix saving address book properties 2019-03-19 14:41:02 -04:00
Francis Lachapelle da76344983 (js) Keep center list visible on xs screen
For Calendar module.
2019-03-19 11:30:28 -04:00
Francis Lachapelle 254147b9ac (css) Fixed scrolling of calendars list on Android 2019-03-19 11:08:01 -04:00
Ludovic Marcotte d75fe573b2 (fix) potential fix for #4289 2019-03-18 15:46:39 -04:00
Ludovic Marcotte 933cd581dd (fix) avoid exception on recent GNUstep when attached file has no filename (fixes #4702) 2019-03-18 10:28:33 -04:00
InverseBot 6fa7d43e7a (js/css) Update generated files 2019-03-16 01:18:35 -04:00
Francis Lachapelle 90de396646 (js) Show calendar names in events blocks
Only for subscriptions
2019-03-15 16:57:16 -04:00
Francis Lachapelle 33adb88d5c (css) lowered size of headings on small screens 2019-03-15 15:04:00 -04:00
Francis Lachapelle 9a245f18fa (core) Handle multidays events in freebusy data 2019-03-15 14:00:43 -04:00
Ludovic Marcotte 0d78d3814c (fix) correctly handle the full cert chain in S/MIME 2019-03-15 13:55:41 -04:00
Ludovic Marcotte 93f344bdbe added missing commit 2019-03-15 13:44:49 -04:00
Ludovic Marcotte 008e901ad6 (fix) we update the baseDN placeholders of all LDAP sources upon login 2019-03-15 13:35:12 -04:00
Francis Lachapelle 47456c9ebd Allow super users to modify any event
Fixes #4216
2019-03-13 09:08:31 -04:00
InverseBot 826c10de25 (js/css) Update generated files 2019-03-12 01:18:08 -04:00
Francis Lachapelle 169b23353b Update NEWS file 2019-03-07 11:27:06 -05:00
Francis Lachapelle 97dd4fddf7 (web) Fix default calendar categories (reset btn) 2019-03-07 11:22:00 -05:00
Francis Lachapelle 3e0910d175 (web) Keep unlocalized/custom calendar categories 2019-03-07 10:52:04 -05:00
InverseBot f30f107e4e (js/css) Update generated files 2019-02-28 01:13:41 -05:00
Francis Lachapelle d93b8ee857 Update ChangeLog 2019-02-27 10:51:05 -05:00
Francis Lachapelle ebd9ef4d49 Preparation for release 4.0.7 2019-02-27 10:48:45 -05:00
Francis Lachapelle fcd57eaffb (js/css) Update generated files 2019-02-27 10:46:44 -05:00
Francis Lachapelle deb10f1f7e (i18n) Add missing localized strings
Fixes #4658
2019-02-27 09:52:18 -05:00
Francis Lachapelle e456e47147 (i18n) Add missing subject of appointment reminder
Fixes #4656
2019-02-27 09:52:18 -05:00
InverseBot 8cb3442e91 (js/css) Update generated files 2019-02-27 01:16:31 -05:00
Francis Lachapelle 9ebd728215 (css) Fix CSS when printing msg in popup window
Fixes #4674
2019-02-26 16:02:19 -05:00
Francis Lachapelle 42e9d23397 (rpm) Mark theme-default.css as a config file 2019-02-26 15:42:06 -05:00
Francis Lachapelle 66e1b348e0 (js) Show the reply-all btn in more situations 2019-02-26 14:46:03 -05:00
InverseBot aa6c0e553e (js/css) Update generated files 2019-02-26 10:02:52 -05:00
Francis Lachapelle 108f4c7eb8 (js) Handle non-latin characters in date validator 2019-02-26 09:58:09 -05:00
InverseBot e993de4f8f (js/css) Update generated files 2019-02-22 01:21:14 -05:00
Francis Lachapelle f2a6e85744 Update ChangeLog 2019-02-21 09:45:40 -05:00
Francis Lachapelle 36cd54209a (i18n) Update French translation 2019-02-21 09:44:33 -05:00
Francis Lachapelle e5330a4efb (js/css) Update generated files 2019-02-21 09:44:20 -05:00
Francis Lachapelle fb75ec5fb2 (css,js) Update md to v1.1.13 2019-02-21 09:18:06 -05:00
Francis Lachapelle 173a22650f (i18n) Update translations 2019-02-21 09:18:06 -05:00
Francis Lachapelle 91b384c697 Preparation for release 4.0.6 2019-02-21 09:18:06 -05:00
Francis Lachapelle 4adf2f80e9 Add tooltips to next/previous slot buttons 2019-02-21 09:18:06 -05:00
InverseBot 3df3c7c037 (js/css) Update generated files 2019-02-21 01:13:48 -05:00
Francis Lachapelle f7dbf90a08 (js) Update CKEditor to version 4.11.2 2019-02-20 15:12:51 -05:00
Francis Lachapelle 5edffce691 (js) Previous/next slot: Ignore non-participants 2019-02-20 14:58:40 -05:00
Francis Lachapelle d16d4593ba (i18n) Update translations 2019-02-20 14:55:00 -05:00
Francis Lachapelle 5d26260d86 (css) Fix freebusy table scrolling in Firefox 2019-02-20 14:41:58 -05:00
Francis Lachapelle 72b607219d (js) Fix autofocus when composing new mail 2019-02-20 12:15:29 -05:00
Francis Lachapelle e44dce2558 (js) Fix exception with event editor 2019-02-20 10:21:27 -05:00
Francis Lachapelle 9d58dd10f5 Improve display of autocompletion of contacts 2019-02-20 10:15:56 -05:00
Francis Lachapelle d05039602f (i18n) Update translations 2019-02-20 09:39:49 -05:00
InverseBot ef73dc43f6 (js/css) Update generated files 2019-02-20 01:16:15 -05:00
Ludovic Marcotte 98463f2ff2 (fix) sent messages cannot be replied to their BCC email addresses (fixes #4460) 2019-02-19 14:50:49 -05:00
Ludovic Marcotte dad0be1815 (fix) make sure we keep a pristine version of the baseDN 2019-02-19 13:40:58 -05:00
Ludovic Marcotte bc456dcef8 (fix) fixed bad password login interval (fixes #4664) 2019-02-19 11:59:49 -05:00
Francis Lachapelle 5371838159 (web) Allow to change participants roles 2019-02-19 11:52:13 -05:00
InverseBot 76e8633423 (js/css) Update generated files 2019-02-19 01:12:36 -05:00
Ludovic Marcotte 7c3df9f650 (fix) changes to contacts are now propagated to lists (fixes #850, #4301, #4617) 2019-02-18 15:27:34 -05:00
Francis Lachapelle aac0ec9a6a Adopting new material guidelines for chips
See https://material.io/design/components/chips.html
2019-02-18 15:03:25 -05:00
Francis Lachapelle 5dc2ad3dec (css) Fix until ng 1.1.13 is out 2019-02-18 14:54:55 -05:00
Francis Lachapelle 499c42aa77 Improve display of autocompletion of contacts 2019-02-18 14:51:43 -05:00
Francis Lachapelle 601981c040 Avoid potential corruption of FoldersOrder setting 2019-02-18 11:38:45 -05:00
Ludovic Marcotte 15c6074907 (fix) correctly handle event ownership when accepting invitations 2019-02-14 11:19:58 -05:00
Ludovic Marcotte d908468442 (fix) dynamic basdDN support for the top-level SOGoUserSources 2019-02-14 09:48:03 -05:00
InverseBot ee62ead75d (js/css) Update generated files 2019-02-14 01:13:38 -05:00
Francis Lachapelle ce7087fd6c Fix saving of email address for notifications
Fixes #4630
2019-02-13 17:32:05 -05:00
Francis Lachapelle ee40ee6687 (js) Fix initialization of Attendees on DnD
Fixes #4677
2019-02-08 09:37:13 -05:00
InverseBot 160b44b6ff (js/css) Update generated files 2019-02-09 01:12:42 -05:00
Francis Lachapelle 540e81b670 Restore next/previous slot suggestion for events 2019-02-08 08:17:23 -05:00
Ludovic Marcotte aaf4166c44 (fix) handle role change during event updates 2019-02-07 14:10:39 -05:00
InverseBot c5d31a95af (js/css) Update generated files 2019-02-05 01:11:40 -05:00
Ludovic Marcotte 249671543e (feat) we now handle optional and non-required attendee states 2019-02-04 11:52:26 -05:00
Ludovic Marcotte 2901560df9 (fix) Removed +x bit 2019-02-04 09:09:24 -05:00
Ludovic Marcotte d9943e559f (feat) baseDN now accept dynamic domain values (fixes #3685) 2019-02-04 07:37:56 -05:00
InverseBot ceaa122a7d (js/css) Update generated files 2019-02-01 01:11:15 -05:00
Francis Lachapelle f25e6cf1c2 (js) Improve CAS handling 2019-01-31 15:52:32 -05:00
Francis Lachapelle 8cce025b65 (js) Improve CAS handling 2019-01-31 14:59:10 -05:00
Francis Lachapelle ef77942ace (js) Improve CAS handling 2019-01-31 13:13:29 -05:00
Francis Lachapelle 368c13d6b0 (js) Improve CAS handling
Fixes #4468
2019-01-31 11:12:03 -05:00
Francis Lachapelle b30d2e0e00 (css) Allow scroll of login page on small screen
Fixes #4035
2019-01-30 16:36:46 -05:00
InverseBot 1de1de90f4 (js/css) Update generated files 2019-01-31 01:12:41 -05:00
Francis Lachapelle c13c01ff75 (js) Improve CAS handling
Fixes #4468
2019-01-30 15:55:00 -05:00
InverseBot 7b4192ccc0 (js/css) Update generated files 2019-01-29 01:13:27 -05:00
Francis Lachapelle e79494c43c Reflect active locale in HTML lang attribute
Fixes #4660
2019-01-28 10:04:55 -05:00
Francis Lachapelle 35650227cf (js) Improve CAS handling 2019-01-24 14:44:40 -05:00
InverseBot 1a56549ea5 (js/css) Update generated files 2019-01-25 01:12:07 -05:00
Francis Lachapelle c944f9f203 (i18n) Update BrazilianPortuguese translation
Fixes #4654
2019-01-24 14:58:16 -05:00
Francis Lachapelle 3c60e2a784 (js) Improve CAS handling
Fixes #4468
2019-01-24 13:12:04 -05:00
Francis Lachapelle 5cac669604 (js) Improve CAS handling
Fixes #4468
2019-01-22 18:27:45 -05:00
Francis Lachapelle 6a3a619f09 (i18n) Update Portuguese translation 2019-01-22 16:22:24 -05:00
Francis Lachapelle 9596ac2a20 (js) Improve CAS handling
Fixes #4468
2019-01-22 15:36:01 -05:00
InverseBot fcbec9a33b (js/css) Update generated files 2019-01-22 01:10:10 -05:00
Francis Lachapelle 9a8415c095 Fix refresh of drafts folder when saving a draft 2019-01-21 16:24:07 -05:00
Francis Lachapelle ca9f83ec1f Fix wrong optimization in yearly recurrence calc 2019-01-18 15:16:23 -05:00
Francis Lachapelle 0186e6404f (i18n) Add missing localized string
Fixes #4651
2019-01-18 09:35:04 -05:00
InverseBot 8d9917c9ec (js/css) Update generated files 2019-01-18 01:12:39 -05:00
Francis Lachapelle 24a30b688f Ignore transparent events in conflict validation
Fixes #4539
2019-01-15 17:12:14 -05:00
Francis Lachapelle dd89c0f72e
Merge pull request #248 from Trumf-dk/patch-1
Updated and translated several danish words and settings
2019-01-14 16:41:16 -05:00
Francis Lachapelle e10ebff34f Fix display of Bcc header
Fixes #4642
2019-01-14 15:40:45 -05:00
Francis Lachapelle ba32125ee5 Fix all-day event dates with different timezone 2019-01-14 13:09:13 -05:00
Trumf-dk 45cff62985
Updated and translated several danish words and settings 2019-01-13 23:06:26 +01:00
InverseBot e883959aa0 (js/css) Update generated files 2019-01-12 01:06:59 -05:00
Francis Lachapelle 51467e6e8a Expose /Contacts/addressbooksList
Fixes #4640
2019-01-11 16:33:32 -05:00
Francis Lachapelle f925be6137 (web) Show time for messages from past week
Fixes #4599
2019-01-11 16:20:35 -05:00
Francis Lachapelle ca886aa662 (js) Create card from sender/recipient address
Fixes #3002
Fixes #4610
2019-01-10 22:00:19 -05:00
Francis Lachapelle 22762b3bd4 Update ChangeLog 2019-01-09 09:28:46 -05:00
Francis Lachapelle f048fd530c Preparation for release 4.0.5 2019-01-09 09:27:55 -05:00
InverseBot 58d75f3059 (js/css) Update generated files 2019-01-09 00:56:24 -05:00
Francis Lachapelle 956eb9eb60 (js) Update CKEditor to version 4.11.1 2019-01-08 16:18:09 -05:00
Francis Lachapelle f65108b46b (i18n) Update French translation 2019-01-08 15:55:43 -05:00
Francis Lachapelle ce285ac8fd (i18n) Update BrazilianPortuguese translation 2019-01-08 15:49:46 -05:00
Francis Lachapelle 03fafd0b25 (css,js) Update md to v1.1.12 2019-01-08 15:44:52 -05:00
Francis Lachapelle 03716f3c3e (css) Fix printing of long mails
Fixes #3731
2019-01-08 15:25:25 -05:00
Francis Lachapelle 4a8e3ed310 (js) Catch exception when registering mailto 2019-01-08 10:57:38 -05:00
Francis Lachapelle cc9df8e24f (i18n) Update translations 2018-12-21 21:34:27 -05:00
Ludovic Marcotte e418fcb6ca (fix) better handle timezone changes (fixes #4624) 2018-12-20 13:37:59 -05:00
Ludovic Marcotte af70306d9a (feat) support for basic UserInformation queries (fixes #4614) 2018-12-20 13:34:24 -05:00
Ludovic Marcotte 95680b33a1 (fix) better handle bogus DTStart values over EAS 2018-12-20 09:12:44 -05:00
Francis Lachapelle 93b66c0f69 Update NEWS file 2018-12-18 09:03:06 -05:00
InverseBot 58504e5835 (js/css) Update generated files 2018-12-18 02:06:38 -05:00
Francis Lachapelle 62a8414090 (css,js) Dynamic CSS for printing calendars
Initial commit. Fixes #3768
2018-12-17 22:15:26 -05:00
InverseBot 4027923470 (js/css) Update generated files 2018-12-13 02:03:11 -05:00
Francis Lachapelle 98dc691793 Fit month view to window size
Fixes #4554
2018-12-12 15:24:00 -05:00
Francis Lachapelle c96a99ae69 Fix download of HTML body parts 2018-12-10 16:05:12 -05:00
Ludovic Marcotte 1ba1be9e31 (fix) improve search operations and results fetching 2018-11-29 14:11:55 -05:00
Ludovic Marcotte 596e3326a2 (fix) fix search on for Outlook application (#4605 and #4607) 2018-11-29 14:08:10 -05:00
Ludovic Marcotte adf2d395e3 (fix) strip '<>' from bodyId and when forwarding mails 2018-11-29 14:05:12 -05:00
Ludovic Marcotte be4ace2af7 (fix) don't always fetch the sorting columns 2018-11-29 11:13:55 -05:00
InverseBot f8ed698182 (js/css) Update generated files 2018-11-24 01:11:06 -05:00
Francis Lachapelle 237ac4a330 Fix folder export when XSRF validation is enabled
Fixes #4502
2018-11-23 14:20:33 -05:00
InverseBot bcdbc01dc0 (js/css) Update generated files 2018-11-23 01:11:27 -05:00
Francis Lachapelle 3cd9d82e16 (i18n) Update BrazilianPortuguese translation
Fixes #4590
2018-11-22 10:52:55 -05:00
Francis Lachapelle 6737aa3d0e (web) Show time for messages of yesterday
Fixes #4599
2018-11-22 10:38:40 -05:00
Francis Lachapelle 4069158178 (js) Fix handling of duplicate recipients
Fixes #4597
2018-11-22 10:17:09 -05:00
InverseBot 0b053a39e4 (js/css) Update generated files 2018-11-14 01:13:27 -05:00
Francis Lachapelle 6e4313b059 (i18n) Update Romanian translation
Fixes #4595
2018-11-13 21:26:45 -05:00
Francis Lachapelle c1ed49d4ba (js) Fix handling of collapsed/expanded accounts
Fixed #4541
2018-11-13 14:59:09 -05:00
Francis Lachapelle 707220bed3 (tool) Fix "manage-acl unsubscribe"
Fixes #4591
2018-11-13 10:59:08 -05:00
Ludovic Marcotte 8734ee7486 (fix) be a bit more verbose when session is expired 2018-11-09 13:50:13 -05:00
InverseBot ec299dcf43 (js/css) Update generated files 2018-11-07 01:13:01 -05:00
Francis Lachapelle 506daaf473 (css) Improve styling of autocomplete.scss 2018-11-06 10:34:15 -05:00
Francis Lachapelle c52a45e072 (js,css) Improve display of keyboard shortcuts 2018-11-06 10:23:37 -05:00
Francis Lachapelle 8822f1ae53 (js,css) Show source addressbook of matching cards
Fixes #4579
2018-11-06 09:30:10 -05:00
Francis Lachapelle 98eabddec8 Improve packaging 2018-11-02 12:00:22 -04:00
InverseBot 7d7c3ca06a (js/css) Update generated files 2018-11-02 01:04:29 -04:00
Francis Lachapelle fb375d423b (i18n) Localized mailboxes names in filter editor
Delayed mailboxes initialization to make sure the MailerUI labels are
loaded.

Fixes #4584
2018-11-01 15:56:33 -04:00
Francis Lachapelle b743c9953c Improve Debian packages 2018-11-01 14:45:28 -04:00
Francis Lachapelle 7d596b08a9 Revert "Remove packaging/debian-multiarch"
This reverts commit 5ede401738.
2018-11-01 14:01:58 -04:00
Francis Lachapelle af445c3fb7 Improve Debian packages 2018-10-31 13:57:32 -04:00
Ludovic Marcotte 8bf1d1e6cb (fix) disable the assert check for now 2018-10-30 10:54:12 -04:00
Francis Lachapelle 5ede401738 Remove packaging/debian-multiarch 2018-10-29 10:55:07 -04:00
Francis Lachapelle a7f5d759bf Improve Debian packages wrt Apache2 configuration 2018-10-29 10:48:25 -04:00
InverseBot 956d8d5596 (js/css) Update generated files 2018-10-24 00:30:49 -04:00
Francis Lachapelle 17ddc5a996 Update ChangeLog 2018-10-23 15:07:39 -04:00
Francis Lachapelle 67017a26e9 Preparation for release 4.0.4 2018-10-23 15:07:09 -04:00
Francis Lachapelle 6f1d2330d8 (js/css) Update generated files 2018-10-23 15:06:55 -04:00
Francis Lachapelle 36cb0e65d9 (i18n) Update Portuguese translation 2018-10-23 15:03:35 -04:00
Francis Lachapelle ee001243b2 (js) Globally load custom stylesheets
This is required to generate the static theme (theme-default.css)
2018-10-23 14:31:34 -04:00
Francis Lachapelle 35ea86557c Fix time conflict validation when not owner 2018-10-22 12:11:08 -04:00
Francis Lachapelle 59c3bdc242 Fix time conflict validation 2018-10-22 11:20:06 -04:00
Francis Lachapelle 98bbe2ddfa
Merge pull request #244 from jmallach/master
Fix typo #elseif introduced in c8f7df4.
2018-10-19 12:05:13 -04:00
Francis Lachapelle 04555b1e14 Fix translations
Add missing keys, remove duplicate keys, avoid exception on missing
calendar categories.
2018-10-18 15:32:08 -04:00
Francis Lachapelle 48f2677aad Remove duplicate short date formats in German 2018-10-18 14:40:48 -04:00
InverseBot bf946cb108 (js/css) Update generated files 2018-10-18 00:36:30 -04:00
Jordi Mallach c4c7cf1742 Fix typo #elseif introduced in c8f7df402c. 2018-10-18 02:28:56 +02:00
Francis Lachapelle 5de5e9e068 Update ChangeLog 2018-10-17 11:18:38 -04:00
Francis Lachapelle 0e731452ee Preparation for release 4.0.3 2018-10-17 11:18:04 -04:00
Francis Lachapelle 181aedd611 (css) Update default theme 2018-10-17 11:15:09 -04:00
Francis Lachapelle abd7d2614f (js/css) Update generated files 2018-10-17 11:07:17 -04:00
Francis Lachapelle 8525e6fd2b Update NEWS file 2018-10-17 11:04:06 -04:00
Francis Lachapelle 1ab1735481 (js) Update CKEditor to version 4.10.1 2018-10-17 10:58:39 -04:00
Francis Lachapelle 0643071d5b Fix ternary ops in UIxMailPartSignedViewer.m 2018-10-17 10:19:52 -04:00
Extra Fu 7cae529ee4
Merge pull request #243 from djlucas/master
Don't use SSL_load_error_strings() and friends for OpenSSL-1.1.0.
2018-10-16 08:26:19 -04:00
DJ Lucas c8f7df402c
Don't use SSL_load_error_strings() and friends for OpenSSL-1.1.0. 2018-10-13 23:55:34 -05:00
InverseBot 659df2d10e (js/css) Update generated files 2018-10-12 00:33:48 -04:00
Francis Lachapelle af68a647b8 Additional short date formats 2018-10-10 11:21:39 -04:00
Francis Lachapelle 6613c44765 (i18n) Update Russian translation 2018-10-09 15:21:28 -04:00
Ludovic Marcotte 995ccb2b73 (fix) avoid saving non-parsable events/tasks 2018-10-09 14:47:22 -04:00
Francis Lachapelle 8120a48b95 (css) Fix styling of cancelled events 2018-10-09 14:36:56 -04:00
Francis Lachapelle fbdd0b82bb (js) Hide compose btn when reading msg on mobile 2018-10-09 14:12:49 -04:00
Francis Lachapelle e4f6be243e (js) Export calendar subscriptions
Fixes #4560
2018-10-09 14:00:19 -04:00
Francis Lachapelle 93bb95d256 Fix scrolling of Admin module in Firefox
Fixes #4561
2018-10-05 11:55:27 -04:00
InverseBot be7f07a7ba (js/css) Update generated files 2018-10-05 00:32:17 -04:00
InverseBot 03b45899c1 (js/css) Update generated files 2018-09-25 00:30:14 -04:00
Francis Lachapelle 74df75e5d5 (js) Prefix title with unseen messages count
Fixes #4553
2018-09-24 11:28:52 -04:00
Francis Lachapelle 78c1244975 Fix message editor in Address Book and Calendar 2018-09-24 11:25:55 -04:00
Ludovic Marcotte 12cbebec07 (fix) Removed trailing ; 2018-09-21 14:03:44 -04:00
Ludovic Marcotte f49ad93b3b (fix) removed trailing ; 2018-09-21 14:03:03 -04:00
Ludovic Marcotte fc3224b802 (fix) sql script fix (strip traling ;) 2018-09-21 13:06:39 -04:00
Ludovic Marcotte 3d9fe30373 (fix) many OCS (non-standard) fixes 2018-09-21 13:06:15 -04:00
Francis Lachapelle ba9960b97a Fix calendar categories for Slovak translation
Fixes #4550
2018-09-20 13:29:24 -04:00
Francis Lachapelle 7eac7db618 Fix calendar categories for Latvian translation
Fixes #4548
2018-09-20 09:29:05 -04:00
Francis Lachapelle b90d312f43 (web) Fix freebusy information with all-day events 2018-09-18 11:34:40 -04:00
Francis Lachapelle d05e1fed5d Fix SQL inserts in single-store mode 2018-09-14 13:28:45 -04:00
Francis Lachapelle 398ef4dcde Fix time conflict validation
Fixes #4539
2018-09-13 15:56:31 -04:00
Francis Lachapelle a7c88597c6 Fix email reminders support for tasks 2018-09-13 14:56:44 -04:00
Francis Lachapelle 563a2cd9df Fix behaviour of return receipt actions 2018-09-13 10:05:17 -04:00
Ludovic Marcotte 194b7f208a (fix) also set the folder ID for content row 2018-09-13 07:41:21 -04:00
InverseBot 3906e19176 (js/css) Update generated files 2018-09-13 00:29:12 -04:00
Francis Lachapelle ec4d93a845 Fix popup window detection in message viewer
Fixes #4518
2018-09-12 21:44:33 -04:00
Ludovic Marcotte ff7e8cb2a3 (fix) typo 2018-09-12 07:41:41 -04:00
InverseBot ecb7679621 (js/css) Update generated files 2018-09-12 00:33:43 -04:00
Francis Lachapelle 38c733bf8b (js) Fix syncing of calendar categories colors 2018-09-11 15:17:31 -04:00
Ludovic Marcotte 8f4a24fb67 (fix) move the folder id setting to avoid GDL error on Oracle 2018-09-11 12:07:25 -04:00
InverseBot 9310d5b02d (js/css) Update generated files 2018-09-08 00:32:23 -04:00
Francis Lachapelle 9ddb65a07a New button to reset Calendar categories
Also added default colors to categories.
2018-09-07 21:38:31 -04:00
Francis Lachapelle 2be5edde94 Fix display of multi-days events
When an event was starting on a disabled weekday, the entire event was
hidden.
2018-09-07 15:26:36 -04:00
Francis Lachapelle 9838c369b2 Update comment in SOGoAppointmentObject.m 2018-09-07 15:26:36 -04:00
InverseBot e3f928b0c3 (js/css) Update generated files 2018-09-07 00:32:30 -04:00
Francis Lachapelle 10485f8943 Fix display of calendar notification email 2018-09-06 08:24:48 -04:00
InverseBot 6d9de5859e (js/css) Update generated files 2018-09-01 00:29:34 -04:00
Francis Lachapelle 7aa3e1f160 (js) New action to mark task as completed
Fixes #4531
2018-08-31 16:45:03 -04:00
Francis Lachapelle 3881bc408d (js) Fix condition of Copy action on cards 2018-08-31 15:59:34 -04:00
Francis Lachapelle 3b9835095f (js) Check addressbook ACL prior to delete cards 2018-08-31 15:56:26 -04:00
Francis Lachapelle 19c02914ba (js) Convert AddressBooksController to new format 2018-08-31 13:29:32 -04:00
Francis Lachapelle 699fe537e1 (js) Fix error when reseting Calendar data 2018-08-31 13:18:32 -04:00
Francis Lachapelle 35cd2591d6 (js) Fix navbar collapse trigger in Preferences 2018-08-31 13:14:56 -04:00
Francis Lachapelle 679a12be19 (js) Catch error in CalendarsController 2018-08-31 13:14:31 -04:00
Francis Lachapelle 3394018604 (js) Expose invalid data in AddressBook.$id 2018-08-31 13:13:35 -04:00
Francis Lachapelle 2d63bd0bb4 (js) Deep copy by default in Calendar.$omit 2018-08-31 11:39:14 -04:00
Francis Lachapelle 155114c8fb (js) Restore calendar name on error 2018-08-31 09:39:42 -04:00
Francis Lachapelle 1e784e4590 (js) Fix id assignation of new Calendar 2018-08-31 09:36:21 -04:00
Francis Lachapelle eeec8328c0 Handle exception when saving calendar properties 2018-08-31 09:31:18 -04:00
InverseBot 87df69163f (js/css) Update generated files 2018-08-31 00:29:21 -04:00
Francis Lachapelle 3bdd90e2be Don't allow duplicate GCS folder names 2018-08-30 22:09:17 -04:00
Francis Lachapelle 18df3bafb5 Fix JSON error responses 2018-08-30 21:51:39 -04:00
Francis Lachapelle bad8efca47 Include mail account name in form validation
Fixes #4532
2018-08-30 14:57:24 -04:00
InverseBot 2fa3b4d5b0 (js/css) Update generated files 2018-08-30 00:29:17 -04:00
Francis Lachapelle b658faa8f2 Fix support for SOGoMaximumMessageSizeLimit 2018-08-29 11:28:08 -04:00
Francis Lachapelle bd8dec0e15 (js) Sanity checks when expecting arrays in Prefs 2018-08-29 10:54:17 -04:00
InverseBot bac1a59555 (js/css) Update generated files 2018-08-29 00:36:25 -04:00
Francis Lachapelle 0e2c93864b (js) Prohibit subscribing a user with no rights 2018-08-28 12:34:27 -04:00
Francis Lachapelle dfcc14356a Improve comments in Apache/SOGo.conf 2018-08-28 12:30:37 -04:00
Francis Lachapelle 1551b3deab
Merge pull request #233 from gordonmessmer/apache-conf
Set the HTTP_HOST environment variable to enable preservation of the …
2018-08-27 22:05:39 -04:00
Ludovic Marcotte 4542163241 (fix) retry connection if abruptly closed 2018-08-27 08:41:24 -04:00
Francis Lachapelle 1144965660 Update ChangeLog 2018-08-24 09:01:47 -04:00
Francis Lachapelle b9b753579d Preparation for release 4.0.2 2018-08-24 09:00:38 -04:00
Ludovic Marcotte ef172b36bb (fix) added debugging to table creation code 2018-08-24 08:49:15 -04:00
InverseBot 7e0f0c2c95 (js/css) Update generated files 2018-08-24 00:30:03 -04:00
Francis Lachapelle 442ff4648c (i18n) Update translations 2018-08-23 15:13:01 -04:00
Francis Lachapelle 666c54851b (js) Update ui-router to version 1.0.20 2018-08-23 14:49:32 -04:00
Francis Lachapelle 326fa87176 (js) Fix navController access from md dialogs 2018-08-23 14:47:18 -04:00
Francis Lachapelle db567d90cc (i18n) Update translations 2018-08-23 12:58:13 -04:00
Francis Lachapelle c3271dd2a5 (css) Respect theme in time picker and freebusy
Fixes #4500
2018-08-23 12:02:20 -04:00
InverseBot df78658621 (js/css) Update generated files 2018-08-23 00:29:52 -04:00
Francis Lachapelle 838e1ac213 (js) Fix usage of MessageEditorController 2018-08-22 14:54:17 -04:00
Francis Lachapelle 3e5a486a1b (js) Improve Component service & controller
Fixes #4527
2018-08-22 14:52:44 -04:00
Francis Lachapelle 9f654d223b Fix saving task with reminder related to due date 2018-08-22 14:08:54 -04:00
InverseBot 90187876bf (js/css) Update generated files 2018-08-22 01:20:03 -04:00
Francis Lachapelle 71fa451856 Enforece SOGoSearchMinimumWordLength server-side
Fixes #4525
2018-08-21 16:54:26 -04:00
Francis Lachapelle 828d773b49 Add security flags to cookies (HttpOnly, secure)
Fixes #4525
2018-08-21 14:02:01 -04:00
Ludovic Marcotte 69c03e7479 Added missing files for OCI support 2018-08-21 12:37:05 -04:00
Francis Lachapelle e81cf29e4c (js) Restore caret position in message editor
Cont'd.

Fixes #4517
2018-08-21 10:43:01 -04:00
Francis Lachapelle bfd2481a9c (js) Ignore exception when closing filter editor 2018-08-21 10:20:55 -04:00
Francis Lachapelle 3fb60ae002 (i18n) Localized mailboxes names in filter editor 2018-08-21 10:11:45 -04:00
InverseBot f32e27f4f2 (js/css) Update generated files 2018-08-21 00:30:03 -04:00
Francis Lachapelle 996e05f701 (i18n) Remove duplicate "shortDateFmt" (German) 2018-08-20 14:19:23 -04:00
Francis Lachapelle 429d1fb2a8 (Preferences) Always show a date before the 10th
So that %d and %e return two different strings.
2018-08-20 14:02:06 -04:00
Francis Lachapelle 949edaa94d (js) Fix trigger when ordering mail filters
Cont'd.
2018-08-20 10:41:21 -04:00
Ludovic Marcotte fc8f57f55d Updated NEWS file 2018-08-20 09:28:00 -04:00
InverseBot d52a981440 (js/css) Update generated files 2018-08-18 00:30:02 -04:00
Francis Lachapelle f0b4e1b719 (js) Restore caret position in message editor
Fixes #4517
2018-08-17 16:31:50 -04:00
Francis Lachapelle e5d3c5fa33 Lazier matching of recipient address
Fixes #4495
2018-08-15 10:29:45 -04:00
Francis Lachapelle 6a45bb2917 (js) Enable save btn when editing a list's members 2018-08-15 09:31:02 -04:00
Ludovic Marcotte 0dc0ae4164 (doc) documented SOGoDAVCalendarStartTimeLimit 2018-08-14 10:17:14 -04:00
Francis Lachapelle 38fcc242e2 (i18n) Add missing string 2018-08-13 14:08:22 -04:00
InverseBot 038f93dc0e (js/css) Update generated files 2018-08-09 00:29:56 -04:00
InverseBot 9f2bcf3ec4 (js/css) Update generated files 2018-08-03 00:29:58 -04:00
Francis Lachapelle fccbdb3076 (js) Dynamically load localizable strings 2018-08-02 17:59:52 -04:00
Francis Lachapelle 30a81528a2 (js) Prohibit duplicate calendar categories 2018-08-02 09:29:33 -04:00
Ludovic Marcotte 5a48fca43d (fix) avoid displaying empty signed emails when using GNU TLS (fixes #4433) 2018-08-01 10:49:45 -04:00
InverseBot b98ec5c630 (js/css) Update generated files 2018-08-01 00:29:44 -04:00
Francis Lachapelle cac93c2e8a (js) Fix trigger when ordering mail filters 2018-07-31 11:20:47 -04:00
Francis Lachapelle 7f135e5323 (js) Improve popup window detection in mailer
Fixes #4518
2018-07-31 09:11:45 -04:00
Francis Lachapelle 0feddfc7af (web) Fix mailbox move action 2018-07-30 12:26:24 -04:00
Francis Lachapelle 6020f6ae83 (i18n) Add Romanian (ro) translation 2018-07-30 12:05:14 -04:00
InverseBot 540edc0c25 (js/css) Update generated files 2018-07-29 00:29:49 -04:00
InverseBot 9fc5c7d52a (js/css) Update generated files 2018-07-28 00:29:47 -04:00
Francis Lachapelle 894769ef6f (web) New menu option to move mailboxes
Fixes #644
Fixes #3511
Fixes #4479
2018-07-27 15:21:35 -04:00
Francis Lachapelle 7e75c8be45 Update time zones to version 2018e 2018-07-25 14:34:07 -04:00
Ludovic Marcotte 396755fffb (fix) handle multi-valued mozillasecondemail attribute mapping 2018-07-20 09:44:20 -04:00
InverseBot dc50bd2296 (js/css) Update generated files 2018-07-17 00:29:12 -04:00
Francis Lachapelle 5b9ab00bda (js) Show progress indicator sooner on Calendar 2018-07-16 12:20:33 -04:00
Francis Lachapelle ffac0a9c13 (doc) Add SOGoRefreshView{Check,Intervals} 2018-07-12 14:42:50 -04:00
InverseBot 639ef53600 (js/css) Update generated files 2018-07-12 00:32:20 -04:00
Francis Lachapelle 05e033ccb5 (js) Fix unsafe JS links
Fixes #4508
2018-07-11 14:04:23 -04:00
InverseBot 90d03aa81d (js/css) Update generated files 2018-07-11 00:53:35 -04:00
Francis Lachapelle cb2d66498f (doc) Improve installation guide 2018-07-10 10:32:14 -04:00
Francis Lachapelle 03ef3d0338 Update ChangeLog 2018-07-10 09:51:12 -04:00
Francis Lachapelle c72868c6a4 (js/css) Update generated files 2018-07-10 09:47:30 -04:00
Francis Lachapelle 192957a5d7 (css) Update default theme 2018-07-10 09:45:00 -04:00
Francis Lachapelle 08341c1ce6 Preparation for release 4.0.1 2018-07-10 09:29:11 -04:00
InverseBot f66fc7a4ad (js/css) Update generated files 2018-07-10 00:38:25 -04:00
Francis Lachapelle 120f1280a4 Use matching recipient address when replying
Fixes #4495
2018-07-09 15:49:36 -04:00
Francis Lachapelle d6f85efa8a (css) Respect theme in sg-toggle-grid
Fixes #4500
2018-07-09 10:59:58 -04:00
Francis Lachapelle d8b91bf08e (doc) Improve developer's guide 2018-07-09 09:55:35 -04:00
InverseBot a5ec3cb3ab (js/css) Update generated files 2018-07-07 00:38:01 -04:00
Francis Lachapelle d60fdb8732 (js) Update CKEditor to version 4.10.0 2018-07-06 15:37:59 -04:00
Francis Lachapelle 3ea80065dd Improve allContactSearch action 2018-07-06 15:06:55 -04:00
Francis Lachapelle 1892aafae4 Improve allContactSearch action
We now index results using the first email address of each contact,
which improves the identification of duplicated entries.
2018-07-06 14:03:50 -04:00
Francis Lachapelle c4c1de771c Minor code improvement in SQLSource.m 2018-07-06 12:40:43 -04:00
Francis Lachapelle f23b97fa28 (i18n) Update translations 2018-07-06 11:49:30 -04:00
Francis Lachapelle 45af5ef230 (js) Initialize new contact URL with example 2018-07-06 10:41:36 -04:00
Francis Lachapelle 3eb01aef71 System address is the first user's addresses
In the preferences module, we don't save the user's custom email address
when it matches the system address. This address was considered the last
of all the user's email addresses, which is first, not intuitive, and
second, incorrect when composing a message since the first address is
used by default.

Fixes #3551
2018-07-06 10:28:22 -04:00
Ludovic Marcotte 1039f13f55 (fix) fixed SQL type for autocreation 2018-06-29 13:17:15 -04:00
InverseBot 50ccf58ba4 (js/css) Update generated files 2018-06-29 09:43:16 -04:00
Francis Lachapelle f0636d17fe (js) Update ng to v1.7.2 and md to v1.1.10 2018-06-28 15:49:23 -04:00
Francis Lachapelle e494dbc57c (js) Changes for ui-router v1.0
$urlRouterProvider is deprecated.
2018-06-28 15:44:12 -04:00
Francis Lachapelle a25e0f73be (js) Disable errors on unhandled rejections 2018-06-28 13:44:03 -04:00
Francis Lachapelle 7519a5c234 (js) Stick to grunt-sass v2 for now 2018-06-28 12:16:38 -04:00
Francis Lachapelle a9a751f869 (css) Fix display of submailbox in filter editor 2018-06-28 12:14:55 -04:00
Francis Lachapelle 97e168cab1 (js) Localization 2018-06-28 12:08:32 -04:00
Francis Lachapelle af1e03e335 (css) Fix colors of sgTimepicker 2018-06-28 12:04:59 -04:00
Francis Lachapelle 1e18b36c5a (css) Improve display of advanced mail search 2018-06-28 11:03:03 -04:00
Francis Lachapelle c4109a0f9c (css) Improve .sg-no-wrap 2018-06-28 10:51:36 -04:00
Francis Lachapelle b75593e99a (js) Remove hack when toggling mail accounts 2018-06-28 10:50:16 -04:00
Francis Lachapelle 69ae9d752a (css) Improve display of advanced mail search 2018-06-28 10:45:11 -04:00
Francis Lachapelle 1786ae70da (css) Add default spacing to <p> of HTML messages 2018-06-28 09:44:33 -04:00
Francis Lachapelle 7bd4173388 Revert "Debugging output for subscription issue"
This reverts commit a0582c7e1e.
2018-06-27 15:39:19 -04:00
Francis Lachapelle 213ef0efb5 Revert "Debugging output for subscription issue"
This reverts commit 82d992fc67.
2018-06-27 15:39:18 -04:00
Francis Lachapelle 5fe44b2029 Revert "Debugging output for subscription issue"
This reverts commit fc6aafe4a6.
2018-06-27 15:39:16 -04:00
Francis Lachapelle b6ee4ee0db Revert "Debugging output for subscription issue"
This reverts commit c6e11606e9.
2018-06-27 15:39:14 -04:00
Francis Lachapelle aa41e6d868 Revert "Debugging output for subscription issue"
This reverts commit e33ec4e396.
2018-06-27 15:39:06 -04:00
Francis Lachapelle 821c846864 Revert "Debugging output for subscription issue" 2018-06-27 15:39:02 -04:00
Francis Lachapelle f8cd3fb29c HTML mail: assume body never ends
Fixes #4492
2018-06-27 15:32:54 -04:00
Francis Lachapelle 2b80d62a77 (i18n) Update translations 2018-06-27 14:37:27 -04:00
Ludovic Marcotte a257607a06 (fix) make sure we don't try to encrypt a mail for the Sent folder without cert in place 2018-06-22 11:53:46 -04:00
Ludovic Marcotte 00be330915 (fix) fixed S/MIME code with chained certificates 2018-06-22 08:43:29 -04:00
InverseBot f4cc8450a3 (js/css) Update generated files 2018-06-21 00:38:39 -04:00
Francis Lachapelle 95376ca7dd (js) Fix possible cross-origin exception
When SOGo is launched from an external link, either using a different
"target" or using window.open(), the Mail composer could throw a
JavaScript exception when trying to save or send a message that would
completely stop the operation.

Fixes #3900
2018-06-20 14:51:03 -04:00
Ludovic Marcotte 05c798cce7 (fix) fixed EAS search operation 2018-06-20 13:59:35 -04:00
Francis Lachapelle 93629c7751 Fix delete of occurence in attendees calendars 2018-06-18 09:50:24 -04:00
InverseBot 4c1879f36a (js/css) Update generated files 2018-06-15 00:38:33 -04:00
Francis Lachapelle a69a5b77be (js) Fix some operations in advanced mail search
Fixes #4478
2018-06-14 22:34:38 -04:00
Francis Lachapelle 70d0408230 (css) Force wrapping of pre in HTML content 2018-06-07 14:00:30 -04:00
Francis Lachapelle 976556d402
Merge pull request #242 from kleptox/mail-view-template-fix
Fix ngRepeat:dupes error in template for some email messages
2018-06-07 13:45:23 -04:00
Francis Lachapelle fe362b9f49 (css) Improve server-side CSS sanitizer
Remove HTML comment delimiters, remove CSS comments, really remove
at-rules, really add !important suffix.
2018-06-07 12:33:38 -04:00
root 702426404d Merge branch 'master' of github.com:inverse-inc/sogo 2018-06-07 09:25:07 -04:00
root 10ea78b0cf (js/css) Update generated files 2018-06-07 00:01:47 -04:00
Francis Lachapelle 84286ac1ef (i18n) Add Japanese (ja) translation 2018-06-06 15:25:29 -04:00
Francis Lachapelle 660a2a4b24 (i18n) Add missing strings 2018-06-06 15:22:31 -04:00
Francis Lachapelle 0af459abf7 (i18n) Add Japanese (ja) translation 2018-06-06 12:18:38 -04:00
Ludovic Marcotte 5bd4ae8a4f (fix) more verbose output 2018-06-06 10:41:45 -04:00
Ludovic Marcotte c875012215 (fix) a bit more verbose output 2018-06-06 10:18:20 -04:00
Vladimir Rakov addc231d23 in some email cases template generates ngRepeat:dupes error 2018-06-06 11:34:16 +03:00
Ludovic Marcotte aca2c1b9e8 (fix) also try to get event using its UID before bailing out 2018-06-04 14:47:55 -04:00
Ludovic Marcotte 4084375003 (fix) bumped libcurl requirement for bionic beaver 2018-06-04 13:36:55 -04:00
Francis Lachapelle ef000c2ed1 Debugging output for subscription issue 2018-06-04 10:20:51 -04:00
Francis Lachapelle 0149d7400d (i18n) Add Japanese (ja) translation 2018-06-01 13:22:10 -04:00
Francis Lachapelle e33ec4e396 Debugging output for subscription issue 2018-05-30 12:01:08 -04:00
Francis Lachapelle c6e11606e9 Debugging output for subscription issue 2018-05-28 10:50:54 -04:00
Francis Lachapelle fc6aafe4a6 Debugging output for subscription issue 2018-05-25 08:49:34 -04:00
Francis Lachapelle 82d992fc67 Debugging output for subscription issue 2018-05-24 16:15:33 -04:00
InverseBot 2cbc1ac6eb (js/css) Update generated files 2018-05-19 01:24:52 -04:00
Francis Lachapelle 03b36e0bcd Convert UIxComponentEditor to a SOGoDirectAction
Cleaning up unused templates.
2018-05-18 12:10:10 -04:00
Francis Lachapelle a0582c7e1e Debugging output for subscription issue 2018-05-18 11:19:18 -04:00
Francis Lachapelle e6508e77a9 (js) Fix download of exported folders under iOS 2018-05-18 11:14:01 -04:00
InverseBot 458b724864 (js/css) Update generated files 2018-05-17 01:24:35 -04:00
Francis Lachapelle c966ad60e7 (js) Fix download of exported folders under iOS
Whenever possible, we no longer rely on the FileSaver.js library to
download zip archives. Instead, we do a simple GET on the resource by
changing the window location.
2018-05-16 16:46:29 -04:00
Francis Lachapelle 0c5b5446dd Remove invalid occurrences when saving master 2018-05-16 14:58:04 -04:00
Francis Lachapelle 452083e767 (js) Keep ng-sortable to v1.3.7
This reverts commit 5084fd15fd.
2018-05-16 12:17:21 -04:00
Francis Lachapelle 563a4c7d1e (css) Truncate lists subheader 2018-05-16 11:58:35 -04:00
Francis Lachapelle 3cadcaf4eb Fix sorting of contacts with nil values 2018-05-16 10:10:43 -04:00
Francis Lachapelle d1a4a0d152 (doc) Add link to SimpleSAMLphp webpage 2018-05-15 12:51:05 -04:00
InverseBot f1b741c2e6 (js/css) Update generated files 2018-05-16 01:32:26 -04:00
Francis Lachapelle a9c5b7b292 (js) Stick to ui-router v1.0.15
Because the latest release uses ES6 and we don't.
2018-05-15 12:01:48 -04:00
Francis Lachapelle 5084fd15fd (js) Update ng-sortable to v1.3.8 2018-05-15 11:59:02 -04:00
Francis Lachapelle bbfa2fa7f9 (css,js) Update md to v1.1.9 2018-05-15 11:57:04 -04:00
Francis Lachapelle 65812424d6 (js) Fix mail filters with flags prefixed with $
Fixes #4461
2018-05-14 23:18:59 -04:00
InverseBot 31d7926304 (js/css) Update generated files 2018-05-15 01:25:10 -04:00
Francis Lachapelle 6f042ca7d2 (js) Fix mail filters with flags prefixed with $
Fixes #4461
2018-05-14 10:31:41 -04:00
Francis Lachapelle 371504e997 (js) Cleanup unused function 2018-05-14 10:22:29 -04:00
InverseBot 119591e8dd (js/css) Update generated files 2018-05-14 01:26:18 -04:00
InverseBot 4bb407ad8d (js/css) Update generated files 2018-05-08 02:12:38 -04:00
Francis Lachapelle 12b2ecca72 Show current ordering setting in lists 2018-05-07 16:43:16 -04:00
Francis Lachapelle 71d48dd6b5 (js) Fix renaming a folder under iOS 2018-05-07 10:14:04 -04:00
Francis Lachapelle 8b29d90515 (i18n) Add missing localizable strings 2018-05-03 15:34:33 -04:00
Francis Lachapelle 7222e5a36a Remove dependency on tmpwatch and tmpreaper 2018-05-03 15:28:17 -04:00
Francis Lachapelle a2ef0b41f3 (html) Fix maximum width of admin ACL editor 2018-04-30 15:06:56 -04:00
InverseBot c95d6d0d8e (js/css) Update generated files 2018-04-28 01:23:33 -04:00
Francis Lachapelle f31892044b (sogo-tool) Fix ACLs restore in single store mode
Fixes #4256
Fixes #4385
Fixes #4390
2018-04-27 12:36:40 -04:00
Francis Lachapelle b8958b931e Fix SAML2 session timeout during XHR requests 2018-04-27 11:06:42 -04:00
Ludovic Marcotte f0c8e41820 (doc) sample redirect 2018-04-27 10:58:18 -04:00
Ludovic Marcotte 6405567886 (fix) fixed default data value for c_hascertificate (fixes #4442) 2018-04-27 09:21:20 -04:00
Francis Lachapelle e375575436 (js) Improve handling of reminders on tasks
Fixes #4456
2018-04-27 09:05:20 -04:00
Ludovic Marcotte b0e59f9ac9 Revert "(fix) make sure to use crypt as the scheme for md5/sha256/sha512 (fixes #4137)"
This reverts commit 63cb80142b.
2018-04-27 08:55:13 -04:00
InverseBot 3ac952fd58 (js/css) Update generated files 2018-04-25 01:28:00 -04:00
Francis Lachapelle 1d731ebb77 (js) Fix renaming a folder under iOS 2018-04-23 15:27:00 -04:00
InverseBot c59e429346 (js/css) Update generated files 2018-04-18 01:27:09 -04:00
Francis Lachapelle 162206b934 Fix SAML2 session timeout during XHR requests 2018-04-17 15:14:48 -04:00
Francis Lachapelle e6e1fddb3e (js) Improve handling of reminders on tasks 2018-04-17 11:20:19 -04:00
Francis Lachapelle a4876798bc Show 'Source' btn in HTML editor of signature
Fixes #4389
2018-04-13 09:27:00 -04:00
InverseBot 3659470936 (js/css) Update generated files 2018-03-28 01:35:28 -04:00
Francis Lachapelle e64049c05c (css) Minimum width for icon buttons 2018-03-27 09:30:34 -04:00
Ludovic Marcotte fbed929402 (feat) now possible to show events/task for the current year 2018-03-21 13:44:39 -04:00
Ludovic Marcotte dff85ae1d7 (fix) small fix for task reminders 2018-03-19 09:46:04 -04:00
Ludovic Marcotte 982cbed7cc (fix) avoid potential cache update when breaking sync queries (fixes #4422) 2018-03-15 16:01:50 -04:00
Ludovic Marcotte a601ed47d8 (fix) properly update the last-modified attribute (fixes #4313) 2018-03-15 15:43:26 -04:00
Ludovic Marcotte a0bf8b6f4d (fix) small optimizations + code cosmetics 2018-03-14 13:21:49 -04:00
Ludovic Marcotte c495e14cd7 (fix) improved alarms syncing with EAS devices (fixes #4351) 2018-03-14 13:18:48 -04:00
InverseBot f799716b25 (js/css) Update generated files 2018-03-14 02:18:03 -04:00
Ludovic Marcotte c1e9e355ec (fix) prevent deletion of special folders using del key (fixes #4396) 2018-03-13 13:05:53 -04:00
Ludovic Marcotte 5545c9f26e (fix) update the script to add the c_hascertificate colum 2018-03-12 13:18:02 -04:00
Francis Lachapelle 5d1a6508d0 (tests) Fix variable declaration 2018-03-09 00:43:35 -05:00
InverseBot d57c46a401 (js/css) Update generated files 2018-03-08 01:37:43 -05:00
Francis Lachapelle f27a71e07e (doc) Fix rendering of the Outlook Connector Guide 2018-03-07 15:54:04 -05:00
Francis Lachapelle df2926e872 (js/css) Update generated files 2018-03-07 11:09:20 -05:00
Francis Lachapelle e3ba7c8cab (css) Update default theme 2018-03-07 11:08:01 -05:00
Ludovic Marcotte 1d7bc666d6 Release preparation 2018-03-07 10:58:07 -05:00
Francis Lachapelle 190fa0c77e (i18n) Update translations 2018-03-07 10:49:58 -05:00
Ludovic Marcotte 0667c12db4 (fix) disabled once more EAS v16 as GMail on Android is buggy 2018-03-07 08:32:33 -05:00
InverseBot a911a3b78c (js/css) Update generated files 2018-03-07 01:36:39 -05:00
Francis Lachapelle 2301ae2c75 (js) Allow to set an alarm on a dued task 2018-03-06 16:35:08 -05:00
Francis Lachapelle 5493855b2f (js) Fix caching of iMIP invitation 2018-03-06 15:22:02 -05:00
Francis Lachapelle 4a5446d8ad Update README file 2018-03-05 13:53:48 -05:00
Francis Lachapelle bf34f4f552 Update README file 2018-03-05 13:51:40 -05:00
Francis Lachapelle d49219ceec Save original username in cookie
Fixes #4363
2018-03-01 11:20:37 -05:00
InverseBot 0dc3ed3202 (js/css) Update generated files 2018-02-28 01:27:51 -05:00
Francis Lachapelle a75ae84953 (css) Fix scrolling of message with Firefox
Fixes #4008, #4282, #4398
2018-02-27 09:34:38 -05:00
Ludovic Marcotte d00db81d08 Version bump for new repos 2018-02-26 10:51:17 -05:00
InverseBot 44ea5a29d4 (js/css) Update generated files 2018-02-24 01:27:53 -05:00
Francis Lachapelle 218d8aa5fa (js) New mail filter is active by default 2018-02-23 10:23:21 -05:00
Ludovic Marcotte d02a97468e (fix) EAS with drafts with attachments 2018-02-20 11:15:46 -05:00
Francis Lachapelle 518e6a56fd (js) Overwrite default theme in theme.js 2018-02-20 10:29:08 -05:00
InverseBot da52b0bf82 (js/css) Update generated files 2018-02-20 01:27:41 -05:00
Francis Lachapelle e10dc4af11 (js) Fix retrieval of proper part in image gallery 2018-02-19 15:13:27 -05:00
Francis Lachapelle b8a02d6ce9 (css,js) Update md to v1.1.7
Fixes #4148
2018-02-19 09:01:31 -05:00
Ludovic Marcotte e50e112a96 (fix) correctly handle all-day events with EAS v16 (fixes #4397) 2018-02-14 10:05:44 -05:00
Ludovic Marcotte 9776e9d217 (fix) skip organizer from attendees list (fixes #4402) 2018-02-14 10:00:13 -05:00
Francis Lachapelle e7c56e86d4 Improve doc 2018-02-13 15:25:36 -05:00
Francis Lachapelle 26095d6361 Fix path of single part message 2018-02-13 08:55:30 -05:00
InverseBot 2faf0411e4 (js/css) Update generated files 2018-02-13 01:31:51 -05:00
Francis Lachapelle d3b10730e9 (i18n) Update translations
Fixes #4372
2018-02-12 14:54:18 -05:00
InverseBot a5adb2f952 (js/css) Update generated files 2018-02-08 01:29:16 -05:00
Francis Lachapelle 3bf55a5edf (js) Improve handling of Web calendars 2018-02-07 15:36:54 -05:00
InverseBot b120669747 (js/css) Update generated files 2018-02-07 02:19:11 -05:00
Francis Lachapelle bccce4022e Identation + comments 2018-02-06 16:20:20 -05:00
Francis Lachapelle 32fd61c8f4 Improve display of overlapping events
Categories were hidden because of overlapping boxes.
2018-02-06 14:13:40 -05:00
Francis Lachapelle 7cd040fb6b Show weekday in headers of day view 2018-02-06 14:06:33 -05:00
Francis Lachapelle 9310a289f6 Fix decoding of spaces in URL-encoded parameters 2018-02-06 11:04:21 -05:00
Francis Lachapelle 006859cee1 (css) Better highligh color in autocompletion 2018-02-06 11:01:25 -05:00
Francis Lachapelle 9fddc66007 (i18n) Update translations
Fixes #4372
2018-02-06 10:28:29 -05:00
InverseBot ed6e191f66 (js/css) Update generated files 2018-02-06 01:29:10 -05:00
Francis Lachapelle 099f6b42dc (js) Ignore exception when closing mail editor 2018-02-05 15:48:09 -05:00
Francis Lachapelle c5a324ae86 Fix saving new IMAP auxiliary account
Fixes #4384
2018-02-05 14:38:15 -05:00
InverseBot e265ecfe1b (js/css) Update generated files 2018-02-04 01:27:42 -05:00
InverseBot faed42094f (js/css) Update generated files 2018-02-03 01:28:30 -05:00
InverseBot 40b0704812 (js/css) Update generated files 2018-02-01 01:29:33 -05:00
Francis Lachapelle e29ce4acec (js) Improve popup detection in mail editor
Fixes #4378
2018-01-31 10:02:47 -05:00
Francis Lachapelle 29047c4692 (css,js) Update md to v1.1.6 2018-01-31 08:46:52 -05:00
InverseBot 86b896e532 (js/css) Update generated files 2018-01-31 01:30:02 -05:00
Francis Lachapelle 8ae8d67c0c (i18n) Update French translation 2018-01-30 16:08:56 -05:00
Francis Lachapelle ad943bf2aa (js) Fix URL of file uploader in mail editor 2018-01-30 15:37:33 -05:00
Francis Lachapelle 1be0808a16 i(i18n) Fix string in Preferences module 2018-01-30 14:21:29 -05:00
Francis Lachapelle 2fceae86dd (script) Continue even if an SQL error occurs 2018-01-26 10:10:41 -05:00
Ludovic Marcotte 750c720a73 (doc) re-encoded the doc 2018-01-25 10:50:48 -05:00
Ludovic Marcotte 24123e78da (doc) improved doc 2018-01-25 10:50:07 -05:00
Ludovic Marcotte e2ee90f2ef (doc) removed unnecessary image 2018-01-25 10:18:35 -05:00
Ludovic Marcotte e47640a06d (fix) moved old doc away 2018-01-25 10:14:33 -05:00
Ludovic Marcotte b2703f4ddc (fix) handle 9 tables structure in v4 update scripts 2018-01-25 10:12:07 -05:00
Ludovic Marcotte 19753f56f7 (doc) update doc 2018-01-25 09:56:10 -05:00
InverseBot 8305d30cb7 (js/css) Update generated files 2018-01-25 02:18:01 -05:00
Francis Lachapelle 23d0b68e57 Add missing subject to junk/not junk mail reports 2018-01-24 16:21:55 -05:00
Francis Lachapelle f88b46c78f (fix) Keep remote images when composing a HTML msg 2018-01-24 16:00:19 -05:00
Ludovic Marcotte e93727d3f0 Updated NEWS 2018-01-24 14:37:06 -05:00
Ludovic Marcotte 2ccf7a5514 Revert "(fix) avoid advertising EAS 16 support until libwbxml is fixed"
This reverts commit 919d1ef6be.
2018-01-24 14:19:45 -05:00
Francis Lachapelle 1528dc4dd0 Improve contacts search when no scope is set 2018-01-24 11:58:55 -05:00
Francis Lachapelle d05477499f (js) Always show center list when no card selected 2018-01-24 10:36:22 -05:00
Francis Lachapelle 7897ea58fe Fix notifications of signed + encrypted messages 2018-01-24 10:32:36 -05:00
InverseBot a35138c0b8 (js/css) Update generated files 2018-01-24 02:17:38 -05:00
Francis Lachapelle 8e35becd93 (js) Respect security preferences in mail editor 2018-01-23 22:23:14 -05:00
Francis Lachapelle 7ebdac5525 Improve display of S/MIME certificates 2018-01-23 13:30:56 -05:00
Ludovic Marcotte 511aa63a34 (fix) remaining S/MIME fixes to handle image/CIDs in HTML mails 2018-01-23 10:35:46 -05:00
Francis Lachapelle 341e5cbab0
Merge pull request #239 from andryyy/patch-1
Do not fail on duplicates in identities
2018-01-22 08:24:09 -05:00
André Peters 0e673beb22
Do not fail on duplicates in identities
Duplicates are bad, but when tracked by $index, the mailer editor does at least not block the "from" selection field completly. :-)
2018-01-22 08:57:54 +01:00
Francis Lachapelle d80f2462f0 (fix) Message signature detection 2018-01-19 13:46:19 -05:00
Francis Lachapelle b8812d64e8 (fix) Automatic certificate update in Address book 2018-01-19 13:33:02 -05:00
Francis Lachapelle b8c20b24e5 (fix) Message signature detection 2018-01-19 13:31:05 -05:00
Ludovic Marcotte e1cb7f385f (fix) moved the logic for certificate retrieval 2018-01-19 10:10:04 -05:00
Francis Lachapelle c2169a1f72 Web-based management of email certificate (cont'd) 2018-01-19 09:29:28 -05:00
Francis Lachapelle 2fc8018b52 (js) Fix changes check in Preferences module 2018-01-18 21:56:30 -05:00
Francis Lachapelle bca655ffdd (css) Fix server-side CSS cleaner
Fixes #4366
2018-01-17 13:58:42 -05:00
Francis Lachapelle d4c8f5089b (css) Reset H{1-6} headers
Fixes #4123
2018-01-17 12:43:06 -05:00
Francis Lachapelle 5b711dea8f Improve display of signed/encrypted message 2018-01-17 11:17:22 -05:00
Francis Lachapelle 4133a0b954 (js) Draft: update subject in list/detail views
Update the subject everywhere when saving a draft.
2018-01-17 11:04:22 -05:00
Francis Lachapelle b39d3db674 (i18n) Update German translation 2018-01-17 10:21:18 -05:00
Ludovic Marcotte 30817079f2 (fix) properly handle CID images in S/MIME signed messages 2018-01-13 11:47:13 -05:00
InverseBot a33df49331 (js/css) Update generated files 2018-01-13 02:22:46 -05:00
Francis Lachapelle e86efe59fd (js) Restore live update of flags in messages list 2018-01-12 16:30:05 -05:00
Francis Lachapelle c29e0a1a3d Improve error message for S/MIME signature 2018-01-12 15:20:09 -05:00
Francis Lachapelle 5ba683d4b1 Web-based management of email certificate (cont'd) 2018-01-12 15:00:51 -05:00
Francis Lachapelle 15de264967 Web-based management of email certificate (cont'd) 2018-01-12 14:47:31 -05:00
Ludovic Marcotte 5767419554 (fix) find the proper container (fixes #4371) 2018-01-11 11:10:35 -05:00
InverseBot 8d0f419acf (js/css) Update generated files 2018-01-11 01:31:21 -05:00
Francis Lachapelle 451133f226 (js) Remove JavaScript debugging 2018-01-10 09:04:23 -05:00
Francis Lachapelle ed3fe1ecc2 (js) Improve alarm description 2018-01-10 09:04:23 -05:00
InverseBot da4e2e92bd (js/css) Update generated files 2018-01-10 01:33:24 -05:00
Ludovic Marcotte b73e65ebeb (fix) disabled OC packaging 2018-01-09 19:08:30 -05:00
Francis Lachapelle d6c1fad2fc Improve display of message options 2018-01-09 16:05:22 -05:00
Francis Lachapelle 6cc96301f8 View smime certificate of signed messages (cont'd) 2018-01-09 15:55:32 -05:00
Francis Lachapelle 02d1aa12f9 View smime certificate of signed messages 2018-01-09 15:22:04 -05:00
Ludovic Marcotte a44118d68f (feat) new guide for Outlook connector configuration 2018-01-08 09:35:43 -05:00
Ludovic Marcotte c875302a86 (fix) proper handling of file attachments in S/MIME encrypted mails 2018-01-05 13:55:05 -05:00
Francis Lachapelle 2f1c8cdbc8 (i18n) Fix Lithuanian weekday names
Fixes #4370
2018-01-05 08:43:59 -05:00
Ludovic Marcotte 7824c35d95 (fix) better handling of encrypted message sending 2018-01-04 11:30:00 -05:00
Ludovic Marcotte 48d94980b4 (fix) cleanups 2018-01-04 10:44:15 -05:00
Ludovic Marcotte 20e8fd852c (doc) initial S/MIME doc 2018-01-04 09:59:24 -05:00
Ludovic Marcotte 8ab73fa76b More OpenChange disabling stuff... 2018-01-04 09:52:37 -05:00
Ludovic Marcotte 2d6246d635 Moved OpenChange to Attic, we no longer support this. 2018-01-04 09:10:00 -05:00
InverseBot 0287f34bca (js/css) Update generated files 2017-12-25 01:32:34 -05:00
Ludovic Marcotte 879e7a6cd5 (fix) added missing template 2017-12-24 06:49:22 -05:00
InverseBot 0ec60788d8 (js/css) Update generated files 2017-12-24 01:28:39 -05:00
Ludovic Marcotte ada9c57ef7 (feat) trivial warning for encrypted mails 2017-12-23 09:36:22 -05:00
Ludovic Marcotte 643c6b7ebf (fix) cleanups and proper handling when trying to decrypt email with no cert 2017-12-23 09:34:26 -05:00
Ludovic Marcotte 35c7f483d9 (feat) handling of encrypted mails in generic viewer handler 2017-12-23 09:21:28 -05:00
Ludovic Marcotte c80f016c18 (feat) handling of encrypted multipart/mixed 2017-12-23 09:07:14 -05:00
Ludovic Marcotte 8727024857 (feat) handling of encrypted and signed mails 2017-12-23 09:05:59 -05:00
Ludovic Marcotte a73b20fa02 (feat) handling of encrypted multiplart/alternative 2017-12-23 09:04:36 -05:00
Ludovic Marcotte 502b59bc08 (feat) handling of encypted HTML parts 2017-12-23 09:02:32 -05:00
Ludovic Marcotte 3f95d53de8 (feat) new viewer handler for encrypted emails 2017-12-23 08:59:32 -05:00
Ludovic Marcotte 72273bf454 (fix) cleanups 2017-12-23 08:57:45 -05:00
Ludovic Marcotte 496b402d17 (fix) cosmetics 2017-12-23 08:57:05 -05:00
Ludovic Marcotte 695afc670f (feat) new encrypted viewer + cosmetics in text one 2017-12-23 08:56:29 -05:00
Ludovic Marcotte 54d04741fa (feat) add PKCS7 cert to contacts when possible 2017-12-23 07:31:21 -05:00
Ludovic Marcotte 74d41ecb34 (feat) added signing+encryption support 2017-12-23 07:20:08 -05:00
Ludovic Marcotte 2a272f0aa7 (feat) added PKCS12 import/removal 2017-12-23 07:18:20 -05:00
Ludovic Marcotte 95bf606bf2 (feat) added S/MIME composition support 2017-12-23 07:15:47 -05:00
Ludovic Marcotte 6ce1fa42a2 (feat) adjusted makefile for S/MIME code 2017-12-23 06:48:09 -05:00
Ludovic Marcotte 793fc9024f (feat) added NSData S/MIME decoding/encoding/translation class 2017-12-23 06:47:34 -05:00
Ludovic Marcotte 71dd9d7d91 (feat) added S/MIME support for content fetch when replying/forwarding mails 2017-12-23 06:35:38 -05:00
Ludovic Marcotte e27e558cb2 (fix) cosmetics 2017-12-23 06:11:22 -05:00
Ludovic Marcotte 96d62c432b (fix) made the code a bit more robust 2017-12-23 06:10:11 -05:00
Ludovic Marcotte 6294d91180 (feat) added S/MIME file download support 2017-12-23 06:06:23 -05:00
Ludovic Marcotte 64a7b8a797 (fix) cosmetics 2017-12-23 05:48:31 -05:00
Ludovic Marcotte f880d1aa54 (feat) added S/MIME support for body key lookups 2017-12-23 05:47:31 -05:00
Ludovic Marcotte 915fad335a (fix) enable SSL flags 2017-12-23 05:15:39 -05:00
Ludovic Marcotte 5e26ff6d1d (feat) show sign/encrypt options (unconditionaly right now) 2017-12-23 05:09:45 -05:00
Ludovic Marcotte 94f7050cb8 (fix) renamed update scripts to v4 2017-12-23 05:08:55 -05:00
Ludovic Marcotte f95170e043 (fix) cosmetics 2017-12-23 05:07:54 -05:00
Ludovic Marcotte 81e07f0105 (fix) cosmetics 2017-12-23 05:04:13 -05:00
Ludovic Marcotte 8f2bcb6055 (fix) cosmetics 2017-12-23 05:03:18 -05:00
Ludovic Marcotte 42bf30d05e (fix) rename for more clarity 2017-12-23 05:00:36 -05:00
Ludovic Marcotte 8a4ebe2c60 (feat) can now associate certificate (PEM format) on mail account 2017-12-23 04:53:41 -05:00
Ludovic Marcotte 979ec2c3a1 (fix) cosmetics 2017-12-23 04:51:06 -05:00
Ludovic Marcotte 58f4c72c47 (fix) cosmetics 2017-12-23 04:49:57 -05:00
Ludovic Marcotte af641bbead (fix) cosmetics 2017-12-23 04:49:25 -05:00
Ludovic Marcotte 873faf468f (fix) cosmetics 2017-12-23 04:47:28 -05:00
Ludovic Marcotte f5db41584b (fix) cosmetics 2017-12-23 04:46:43 -05:00
Ludovic Marcotte 2952a69785 (feat) new helper method to find contact and certificate in all address books 2017-12-23 04:42:56 -05:00
Ludovic Marcotte 394e7e7e88 (feat) handling of c_hascertificate 2017-12-23 04:37:12 -05:00
Ludovic Marcotte f662781312 (feat) new c_hascertificate column in contact quick tables and migration scripts 2017-12-23 04:34:49 -05:00
Ludovic Marcotte 6c993be9f1 (feat) add KEY support for certificate handling 2017-12-23 04:31:43 -05:00
InverseBot 8afa87e953 (js/css) Update generated files 2017-12-22 01:28:55 -05:00
Francis Lachapelle 4b355f532d Initial Web-based management of email certificate 2017-12-21 16:41:06 -05:00
Francis Lachapelle 429a3bedb9 Fix handling of public access rights of Calendars 2017-12-21 16:06:39 -05:00
InverseBot b89752cd39 (js/css) Update generated files 2017-12-20 01:30:19 -05:00
Francis Lachapelle 9ed23c32f2 (i18n) Update translations 2017-12-19 10:26:16 -05:00
Francis Lachapelle 28a37de613 Use address books search fields in Contacts module
Fixes #4356
2017-12-19 10:06:01 -05:00
Francis Lachapelle 60bbe26289 (js) Catch some exceptions to avoid console errors 2017-12-19 09:53:48 -05:00
InverseBot 37074086cf (js/css) Update generated files 2017-12-19 01:29:54 -05:00
Francis Lachapelle c9c5f8bba9 (html) Add placeholder in Sieve filter editor 2017-12-18 16:07:10 -05:00
Francis Lachapelle 97147e261b (html) Clarify warning in mail composer 2017-12-18 16:03:25 -05:00
Francis Lachapelle 732f81b44b Update NEWS file 2017-12-18 15:50:44 -05:00
Francis Lachapelle 3b411101cd (js) Sort categories in event and task editors
Fixes #4349
2017-12-18 15:49:41 -05:00
Francis Lachapelle 8d38be1e43 Support for events with recurrence dates (cont'd) 2017-12-18 15:36:01 -05:00
Francis Lachapelle de91b57825 Fix handling of public access rights of Calendars
Fixes #4344
2017-12-18 15:31:43 -05:00
InverseBot e6e5e077bd (js/css) Update generated files 2017-12-16 01:28:47 -05:00
Francis Lachapelle e590aec64f (js) Fix exception in Card service
When calling init from $reset, the birthday attribute is already a Date
object. Avoid raising an exception on wrong data type.
2017-12-15 16:36:15 -05:00
Francis Lachapelle 3816d25a44 (js) Make sure mail identities are unique
Fixes #4338
2017-12-15 16:30:37 -05:00
Francis Lachapelle 7f99514744 Add support for events with recurrence dates 2017-12-15 16:18:39 -05:00
Francis Lachapelle e61a55f30e (css) Fix fab button placement in Mail module
Fixes #4358
2017-12-15 16:18:39 -05:00
InverseBot e7a4384f28 (js/css) Update generated files 2017-12-13 01:30:52 -05:00
Francis Lachapelle b3f2fba4da (css) Fix advanced mailbox search
We must rely on the pseudo-input-container to properly wrap the
md-select inside a md-toolbar.
2017-12-12 12:55:26 -05:00
Francis Lachapelle d526efa501 Remove null characters from JSON responses 2017-12-07 16:07:25 -05:00
InverseBot 38790af774 (js/css) Update generated files 2017-12-06 01:25:18 -05:00
Francis Lachapelle c45c691bf9 (js) Fix search in contact list creator 2017-12-04 15:36:29 -05:00
Francis Lachapelle 73201a0314 (i18n) Contacts module 2017-12-01 17:17:10 -05:00
InverseBot fc7706abd0 (js/css) Update generated files 2017-12-01 01:26:40 -05:00
Francis Lachapelle 8e1a19dca2 (js) Force copy of dragged contacts from remote AB 2017-11-30 11:25:11 -05:00
InverseBot 7ddecd4006 (js/css) Update generated files 2017-11-27 01:27:38 -05:00
InverseBot c9c6b0dc9f (js/css) Update generated files 2017-11-25 01:28:04 -05:00
Francis Lachapelle 2c86f68fb9 (js) Catch some exceptions to avoid console errors 2017-11-24 09:35:24 -05:00
InverseBot 27ce401e6b (js/css) Update generated files 2017-11-24 01:28:49 -05:00
Francis Lachapelle 39e579e656 Fix class security in Mailer 2017-11-23 14:24:30 -05:00
Francis Lachapelle 30c361a56b Fix Sieve path of mailboxes for filter editor 2017-11-23 14:14:29 -05:00
Francis Lachapelle 1d90aa748d (js) Don't try to select "noselect" mailbox 2017-11-23 14:03:22 -05:00
Francis Lachapelle 7874b0a74c Fix compilation warning 2017-11-23 13:59:49 -05:00
Francis Lachapelle 6ab4688812 (i18n) Contacts module 2017-11-23 13:59:06 -05:00
Francis Lachapelle 12fa8ef65a (css) Fix scrolling in Administration module 2017-11-23 11:26:59 -05:00
Francis Lachapelle 0608a0bec8 Update NEWS file 2017-11-22 10:09:11 -05:00
Francis Lachapelle a7b32e8c6d Avoid redirection to forbidden module 2017-11-22 10:02:47 -05:00
Francis Lachapelle d6e74cf9cb Fix compilation warning 2017-11-22 09:30:19 -05:00
Francis Lachapelle e8b29add3a Fix calls to fetchContactsMatching: 2017-11-22 09:28:34 -05:00
InverseBot e04b281864 (js/css) Update generated files 2017-11-22 01:27:36 -05:00
Francis Lachapelle eb90760b39 Use address books search fields in Contacts module
Searches can now be scoped to one or multiple fields. Those fields are
now dynamic and can be defined using SearchFieldNames in external
contacts sources (SQL and LDAP).
2017-11-21 15:56:16 -05:00
InverseBot aed62cab26 (js/css) Update generated files 2017-11-18 01:25:43 -05:00
Francis Lachapelle d665f4b251 (js) Fix parsing of pasted email addresses
We are now more clever when parsing the input text to add new attendees
to an appointment.
2017-11-17 11:36:19 -05:00
InverseBot e588becf79 (js/css) Update generated files 2017-11-17 01:26:08 -05:00
Francis Lachapelle a2129f3e4a ModulesConstraints and listRequiresDot for SQL
SQL sources used for authentication can now have module constraints.
Entries of SQL sources used as address books can now be displayed
automatically.
2017-11-16 21:46:44 -05:00
Francis Lachapelle 08ec68c07c (js) Lower constraints on auto-reply dates range
Fixes #7276
2017-11-16 15:33:04 -05:00
Francis Lachapelle 3c30997bf5 Don't expose Web calendars to other users
Fixes #4331
2017-11-16 11:41:36 -05:00
InverseBot 80886afadd (js/css) Update generated files 2017-11-13 01:27:24 -05:00
Francis Lachapelle 4a40230f23 Rollback previous fix 2017-11-10 11:25:59 -05:00
Francis Lachapelle 00af2613b6 (fix) Don't restore deleted events of attendees 2017-11-10 11:18:30 -05:00
InverseBot 9335ee67c1 (js/css) Update generated files 2017-11-10 01:27:47 -05:00
Francis Lachapelle c5e2a6bcb9 Update NEWS file 2017-11-09 18:25:22 -05:00
Francis Lachapelle 5ff28a37e2 (js) Restore msgs selection after refresh
Fixes #4330
2017-11-09 18:18:22 -05:00
InverseBot 2b9cc20689 (js/css) Update generated files 2017-11-09 01:26:38 -05:00
Francis Lachapelle e7c15a697d (js) Fix mail composition from message headers
Fixes #4335
2017-11-08 16:40:33 -05:00
Francis Lachapelle 38d4a26827 Avoid calls on null objects
Fixes #4329
2017-11-08 16:24:26 -05:00
InverseBot 650faa4d22 (js/css) Update generated files 2017-11-02 01:27:55 -04:00
Francis Lachapelle c68d7204a1 (js) Handle corrupted JSON data in Mail module 2017-11-01 13:29:46 -04:00
InverseBot ae0fff23b5 (js/css) Update generated files 2017-11-01 01:28:44 -04:00
Francis Lachapelle ccb1439c84 (js) Handle corrupted JSON data in Mail module
The Mail module will now be loaded even if the JSON representing the
list of expanded mailboxes is not a properly formatted.
2017-10-31 13:25:51 -04:00
Francis Lachapelle c7e9b0e3a6
Merge pull request #238 from drscream/fix/standard-macro
Fix standard visibility macro use
2017-10-27 15:24:36 -04:00
Francis Lachapelle 9d45d57cb2 Check range before adding single occurrences 2017-10-25 15:18:28 -04:00
Francis Lachapelle 70dbba877a Add OCSCacheFolderURL parameter in update script
Fixes #4324
2017-10-24 15:30:30 -04:00
Francis Lachapelle fe75cb3940 Make db port optional in update script
Fixes #4323
2017-10-24 15:14:20 -04:00
Francis Lachapelle 141af57e61 Make db port optional in update script
Fixes #4323
2017-10-24 15:11:41 -04:00
Francis Lachapelle f5aeed444d Increase mail column size of Contacts quick tables
Fixes #4322
2017-10-24 14:19:25 -04:00
InverseBot b56df72992 (js/css) Update generated files 2017-10-24 01:27:51 -04:00
Francis Lachapelle e3505808dc (js) Force version of ng-sortable
Rollback to version 1.3.7 of ng-sortable until the following buy is
fixed: https://github.com/a5hik/ng-sortable/issues/387
2017-10-23 16:11:44 -04:00
InverseBot 1fd4657de7 (js/css) Update generated files 2017-10-19 02:14:42 -04:00
Francis Lachapelle 2d61be8ff6 (i18n) Update translations 2017-10-18 11:04:26 -04:00
Ludovic Marcotte 2b5bfff06d Updated NEWS 2017-10-18 09:42:13 -04:00
Ludovic Marcotte b6d657d001 (fix) generalized HTML sanitization to avoid encoding issues when replying/forwarding mails
Conflicts:
	SoObjects/Mailer/NSData+Mail.m
2017-10-18 09:41:45 -04:00
InverseBot 38e898dc5d (js/css) Update generated files 2017-10-18 01:28:13 -04:00
InverseBot 9b434bb859 (js/css) Update generated files 2017-10-17 01:26:42 -04:00
Francis Lachapelle aa7193d722 (js) Encode ID of components in XHR requests 2017-10-16 10:32:06 -04:00
Francis Lachapelle 8df50f9ab7 (js) Fix exception when importing events 2017-10-16 10:31:06 -04:00
Francis Lachapelle 92c96bc04c (css) Improve display of secondary info of events 2017-10-16 10:30:22 -04:00
InverseBot 8b6aa7fb88 (js/css) Update generated files 2017-10-13 01:28:09 -04:00
Francis Lachapelle e59a8e12ba (js) Allow edition of IMAP flags/labels 2017-10-12 15:44:14 -04:00
Francis Lachapelle 8b02db7b8c Fix yearly recurrences calculator with until date 2017-10-12 10:19:01 -04:00
Francis Lachapelle e5f9f3383a (js) Fix automatic close of sidenav 2017-10-12 10:16:51 -04:00
InverseBot 6a661264f6 (js/css) Update generated files 2017-10-11 02:18:36 -04:00
Francis Lachapelle f34937d92c (js) Prevent the creation of empty card categories 2017-10-10 14:55:22 -04:00
Francis Lachapelle 888adc9396 (js) Improve rename of address book
Fixes impossibility to insert spaces in address book name.
2017-10-10 14:29:38 -04:00
InverseBot c4be6a2114 (js/css) Update generated files 2017-10-08 01:25:12 -04:00
InverseBot 7b1e7e2e7b (js/css) Update generated files 2017-10-07 01:25:04 -04:00
Ludovic Marcotte a7529ecabf Updated NEWS 2017-10-03 09:15:33 -04:00
Ludovic Marcotte 9b20a8377a (fix) properly extract IMAP folder name (fixes #4275) 2017-10-03 09:13:56 -04:00
InverseBot b3f4a8f8c3 (js/css) Update generated files 2017-10-01 01:24:13 -04:00
Francis Lachapelle a313068595 (css) Add missing CKEditor files 2017-09-29 10:05:16 -04:00
Francis Lachapelle 861ce9ac53 (doc) How to change the color theme 2017-09-26 22:53:02 -04:00
Francis Lachapelle 7f8693948f (i18n) Untabify 2017-09-26 10:47:34 -04:00
Francis Lachapelle 24a41f20d2 (i18n) Update Croatian translation 2017-09-26 10:46:54 -04:00
Francis Lachapelle 1e0b71bbda (doc) How to change the color theme 2017-09-25 12:13:48 -04:00
Francis Lachapelle 5ed99af021 Update NEWS file 2017-09-25 09:37:12 -04:00
Ludovic Marcotte fe8f08c807 (fix) fixed previous commit 2017-09-22 10:36:01 -04:00
InverseBot 2ea7cefa3e (js/css) Update generated files 2017-09-22 01:28:42 -04:00
Ludovic Marcotte 6b6f70ce9d (feat) more verbose output 2017-09-21 14:00:28 -04:00
Ludovic Marcotte 6730db74e6 (fix) now also give modify permission 2017-09-21 13:59:55 -04:00
InverseBot aa7febe15b (js/css) Update generated files 2017-09-21 01:26:42 -04:00
Francis Lachapelle 9e2f22d331 Update NEWS file 2017-09-20 21:44:43 -04:00
Francis Lachapelle 104ac2db33 New SOGoMailComposeWindow default 2017-09-20 16:50:41 -04:00
Francis Lachapelle 789398bd27 (web) Fix XSRF cookie path when changing password
Fixes #4139
2017-09-19 09:44:37 -04:00
InverseBot 391410a4ec (js/css) Update generated files 2017-09-19 09:08:25 -04:00
Francis Lachapelle 106ae7a078 Improve handling of notifications of a calendar 2017-09-18 14:22:29 -04:00
Francis Lachapelle d02f0db0b4 (js) Remove non-ascii characters from CSS ids 2017-09-18 12:11:12 -04:00
Francis Lachapelle 8c5977088f Typo
Fixes #4284
2017-09-12 05:39:47 -04:00
Francis Lachapelle 3fa0baa396 Fix Carddav class for Python integration tests 2017-09-12 09:32:29 -04:00
InverseBot b896897c3e (js/css) Update generated files 2017-09-12 01:34:42 -04:00
Francis Lachapelle 2f89c5d4a7 Fix Carddav class for Python integration tests 2017-09-11 13:58:27 -04:00
InverseBot e73c42ada3 (js/css) Update generated files 2017-09-09 01:36:14 -04:00
Francis Lachapelle 77f9f60276 New events list view 2017-09-08 13:35:31 -04:00
Francis Lachapelle 614a137128 (js) Fix parsing of tab-delimited email addresses
Fixes #4258
2017-09-08 10:50:10 -04:00
Francis Lachapelle aa3c02be93 Fix to save many postal addresses of tge same type
Fixes #4091
2017-09-07 16:30:22 -04:00
Francis Lachapelle 24382a4318 Add missing localized string 2017-09-07 14:22:26 -04:00
Francis Lachapelle 3189e0e13a LDIF to vCard: inverse values of "ou" and "o"
Fixes #4278
2017-09-07 13:41:51 -04:00
Ludovic Marcotte e0b0c9c2c1 Updated NEWS 2017-09-06 10:26:09 -04:00
Ludovic Marcotte 7e4e2863b6 (fix) properly decode IMAP encoded folder names (fixes #4240) 2017-09-06 10:24:18 -04:00
InverseBot 649337c3e5 (js/css) Update generated files 2017-09-06 00:32:04 -04:00
Francis Lachapelle ac376bbba9 Update Chinese (Taiwan) translation 2017-09-05 13:37:54 -04:00
Francis Lachapelle 7a76675864 Update README for new ChineseChina translation
Fixes #4271
2017-09-05 12:17:55 -04:00
Francis Lachapelle 752323fb7d Add Simplified Chinese (zh_CN) translation 2017-09-05 12:10:46 -04:00
Francis Lachapelle 141b3af83b (js) Always show center list when no msg selected
Fixes #4269
2017-09-05 10:18:52 -04:00
Francis Lachapelle 8697b6c835 (js) Remove non-ascii characters from CSS ids 2017-09-05 10:18:52 -04:00
InverseBot 536b02b9fd (js/css) Update generated files 2017-09-02 01:35:50 -04:00
Francis Lachapelle 02cbe23e78 (js) New sgCalendarListItem component 2017-09-01 12:35:38 -04:00
Francis Lachapelle 84edeb85cd (js) Fix parsing of pasted email addresses
Fixes #4258 and fixes #4097
2017-09-01 11:09:24 -04:00
Francis Lachapelle dff30d61fb (fix) Update the proper occurrence
When editing one occurrence of a recurrent event with attendees, update
the proper occurrence in each attendee's calendar.
2017-08-31 14:40:54 -04:00
InverseBot 933649c299 (js/css) Update generated files 2017-08-31 01:35:23 -04:00
Francis Lachapelle cb2ab9152f (js) Don't change user language when not changed
Fixes #4244
2017-08-30 14:18:23 -04:00
Francis Lachapelle 1ac910bdd1 (doc) Precise SOGoVacationEnabled cron requirement 2017-08-30 11:00:00 -04:00
InverseBot f3a766d8b0 (js/css) Update generated files 2017-08-30 01:35:27 -04:00
Francis Lachapelle a65e96bdb5 (js) follow requested URL after authentication 2017-08-29 16:03:19 -04:00
Francis Lachapelle ee7fdcba9f Improve cache cleanup when removing a group ACL 2017-08-29 15:13:15 -04:00
Francis Lachapelle 491e090fb4 (web) Fix "last day of the month" repeat rule 2017-08-29 14:29:11 -04:00
Francis Lachapelle 5e5e52e3f1 register web app as a handler for mailto scheme
Fixes #1223
2017-08-29 11:45:24 -04:00
Francis Lachapelle c277c397e7 Remove duplicate key in SOGoDefaults.plist 2017-08-28 09:54:10 -04:00
Francis Lachapelle ccf9ceb729 (doc) Explain SOGoMailAddOutgoingAddresses default 2017-08-28 09:30:22 -04:00
Ludovic Marcotte 2a046557ac (fix) increased column size of settings/defaults for MySQL (fixes #4260) 2017-08-24 16:12:14 -04:00
InverseBot debe1f41f8 (js/css) Update generated files 2017-08-24 01:32:29 -04:00
Ludovic Marcotte 5b19c8bf8b Updated NEWS 2017-08-23 15:46:20 -04:00
Ludovic Marcotte c29c6dc621 (fix) properly encode MIME parts with embedded images in HTML parts (fixes #4150) 2017-08-23 15:45:14 -04:00
Francis Lachapelle 399397bd79 Only discard mails if vacation conditions match
Fixes #4245
2017-08-23 14:14:45 -04:00
Francis Lachapelle 9495c43b4b (css) Improve attachments area of mail composer
Fixes #4243
2017-08-23 11:55:09 -04:00
Ludovic Marcotte 37ffe889b5 (doc) small section fix 2017-08-22 15:39:04 -04:00
Francis Lachapelle c6dbb88dc1 Simplify sanitization of accepted HTML attributes
This will avoid converting & to an HTML entity.
2017-08-22 10:02:28 -04:00
InverseBot 1ac2ec7ad6 (js/css) Update generated files 2017-08-22 01:34:10 -04:00
Francis Lachapelle 8df0896028 (js) Fix error handling in mail editor popup 2017-08-21 15:25:26 -04:00
Thomas Merkel e35988e669
Fix standard visibility macro use
Expect crypt(3) to be provided by unistd.h, not the ancient crypt.h.
Update _XOPEN_SOURCE for SUSv3 / POSIX.1-2001
2017-08-21 18:09:39 +02:00
InverseBot 4d271a6d85 (js/css) Update generated files 2017-08-19 01:29:24 -04:00
Ludovic Marcotte fdf755dbee Fixed typo 2017-08-15 09:18:59 -04:00
Ludovic Marcotte fb1e00be81 Updated NEWS 2017-08-15 09:17:42 -04:00
Ludovic Marcotte c35e54e4fc (fix) use NSInteger instead, more clean 2017-08-14 14:26:28 -04:00
Ludovic Marcotte 66685d9f7f (fix) offset can be negative (fixes #4237) 2017-08-14 14:01:39 -04:00
InverseBot b7c8f43bcc (js/css) Update generated files 2017-08-13 01:32:35 -04:00
Francis Lachapelle 45a5b533a3 (web) Improve event lists results 2017-08-02 18:31:06 -04:00
Francis Lachapelle c810e60a04 Update Welsh translation 2017-08-02 09:24:59 -04:00
Francis Lachapelle 03887cb395 Update Welsh locale 2017-08-01 13:41:04 -04:00
Francis Lachapelle 9b64a1bddf (web) Don't allow to move a read-only event
Fixes #4228
2017-07-31 14:56:35 -04:00
InverseBot 893873db22 (js/css) Update generated files 2017-07-28 01:29:55 -04:00
Francis Lachapelle 8221a8de66 (Calendar) Add owner in attendees editor 2017-07-27 16:50:03 -04:00
Francis Lachapelle 217525cf10 (js) Add missing languages for CKEditor 2017-07-20 13:47:06 -04:00
Francis Lachapelle c975cf6c78 Add missing localized strings in Calendar module 2017-07-19 20:34:49 -04:00
Francis Lachapelle 68adf8969a (fix) Basque label with quotes used in aria-label
Fixes #4234
2017-07-19 17:12:39 -04:00
Francis Lachapelle 589c5f8ae0 Add missing localized strings in Calendar module 2017-07-19 17:10:06 -04:00
Ludovic Marcotte 1a76ade0ec (test) disabled the dance test for now, it's no longer relevant 2017-07-19 11:17:14 -04:00
Ludovic Marcotte 032b2fbbd4 (fix) can now invite to exceptions only (fixes #2561) 2017-07-19 11:05:16 -04:00
Francis Lachapelle 277342dced Update Welsh translation 2017-07-17 08:44:52 -04:00
Francis Lachapelle 2adc11bcd6 (css) Fix minimalist skin of CKEditor in Firefox 2017-07-10 08:59:35 -04:00
Ludovic Marcotte 5b84ee0c09 (fix) wrong custom fields identifiers for 3 and 4 2017-07-06 08:56:30 -04:00
Ludovic Marcotte 2c9c1e0d01 (fix) support Squeeze + minor cleanups 2017-07-05 11:08:00 -04:00
Francis Lachapelle f6d79712e2 Update ChangeLog 2017-07-05 10:51:35 -04:00
Francis Lachapelle c0db64e0f2 Preparation for release 3.2.10 2017-07-05 10:49:34 -04:00
Francis Lachapelle 43d85f8bc4 Use xsltproc instead of fop to generate XSL-FO 2017-07-05 10:44:27 -04:00
Francis Lachapelle 5aa74ca0ad (js) Update CKEditor to version 4.7.1 2017-07-05 10:06:05 -04:00
InverseBot 5d98112a7a (js/css) Update generated files 2017-07-05 01:25:31 -04:00
Francis Lachapelle c48750c6f2 (js) Fix mail composition from mailto link 2017-07-04 17:23:00 -04:00
Ludovic Marcotte b7dac4db9f Updated NEWS 2017-07-04 13:20:02 -04:00
Ludovic Marcotte 579ab68e19 (fix) silence sogo-ealarms-notify verbose output (fixes #4170) 2017-07-04 13:15:29 -04:00
Ludovic Marcotte 0c82ad5944 Updated NEWS 2017-07-04 11:02:44 -04:00
Ludovic Marcotte 22c078ee76 (fix) enable S/MIME even when using GNU TLS (fixes #4201) 2017-07-04 11:00:06 -04:00
Francis Lachapelle 721428c88f (js) Create list from selected cards
Fixes #3561
2017-07-04 10:10:00 -04:00
Ludovic Marcotte 07fa202523 (fix) respect disabled state of sending rate-limiting (fixes #4198) 2017-07-04 09:58:20 -04:00
Ludovic Marcotte 919d1ef6be (fix) avoid advertising EAS 16 support until libwbxml is fixed 2017-07-04 09:26:08 -04:00
InverseBot 3927494393 (js/css) Update generated files 2017-07-04 01:24:12 -04:00
InverseBot 14b902241d (js/css) Update generated files 2017-06-30 01:28:54 -04:00
Ludovic Marcotte fa7aba89c2 (doc) improve iOS doc 2017-06-29 15:41:23 -04:00
Francis Lachapelle 7785c1c142 (css,js) Update md to v1.1.4-master-75237c6 2017-06-29 11:17:22 -04:00
Francis Lachapelle d9dafd3d14 (js) Don't explode card when no email defined 2017-06-29 10:49:15 -04:00
InverseBot df8c00089b (js/css) Update generated files 2017-06-29 01:29:10 -04:00
Francis Lachapelle 741e639960 (i18n) Update translations 2017-06-28 14:16:26 -04:00
Francis Lachapelle 9f96639e6f Ignore errors of nonexistent special mailboxes
Fixes #4177
2017-06-28 14:01:52 -04:00
Francis Lachapelle ee68cf6ed5 (js) Add missing ui-router map files
Fixes #4209
2017-06-28 12:06:05 -04:00
Francis Lachapelle 8662dd199d (js) Add missing timezone list in Preferences 2017-06-28 12:00:36 -04:00
Francis Lachapelle 2d1c2b2239 Update NEWS file 2017-06-28 11:01:21 -04:00
Francis Lachapelle 863510e707 (fix) Update settings of active user only
Fixes #3988
2017-06-28 10:57:18 -04:00
Francis Lachapelle 3ce28b7316 (js) Use more one-time bindings 2017-06-27 22:24:07 -04:00
InverseBot b0e0950d12 (js/css) Update generated files 2017-06-23 01:28:37 -04:00
Francis Lachapelle e8ec8180a8 (js) Use more one-time bindings in Calendar module 2017-06-22 11:56:16 -04:00
Francis Lachapelle 9bde9b66ef Improve identification of preferred elements
Fixes #799
2017-06-22 11:56:16 -04:00
Ludovic Marcotte 7f00afcef5 (fix) check cache before using it (fixes #3988) 2017-06-22 10:20:54 -04:00
InverseBot 362d6d521f (js/css) Update generated files 2017-06-21 01:27:31 -04:00
Francis Lachapelle e1bc458d46 (js) Don't save form when invalid
Fixes #3793
2017-06-20 15:25:07 -04:00
InverseBot ade945219f (js/css) Update generated files 2017-06-17 01:26:44 -04:00
Francis Lachapelle 6c654e0f90 (js) Fix validation in Sieve filter editor
Fixes #4200
2017-06-16 16:37:17 -04:00
Ludovic Marcotte ca43e7d9ca (fix) added doc to sogo-tool manage-eas + did cleanups (fixes #3967) 2017-06-16 13:25:15 -04:00
Ludovic Marcotte 0a155d6f67 (fix) missing import 2017-06-16 13:24:24 -04:00
InverseBot c9dded0947 (js/css) Update generated files 2017-06-16 01:30:58 -04:00
Francis Lachapelle d72c614d29 (js) Fix edition of mail tags 2017-06-15 16:04:47 -04:00
Ludovic Marcotte 157d3050bf Deleted old tests 2017-06-15 11:24:32 -04:00
Ludovic Marcotte 8a50ccdab4 Updated NEWS 2017-06-15 11:23:51 -04:00
Ludovic Marcotte 99fff30489 (fix) don't include task folders over EAS if we are hiding them (fixes #4164) 2017-06-15 11:21:41 -04:00
InverseBot ef122b0f39 (js/css) Update generated files 2017-06-15 01:28:00 -04:00
Francis Lachapelle b6b8f7a0fb Improve display of component comments, card notes 2017-06-14 20:41:18 -04:00
Francis Lachapelle 8701d2c26c (js) Remove inline user settings for Contacts 2017-06-14 20:41:18 -04:00
Francis Lachapelle 5080482507 (html) Remove useless space from card editor 2017-06-14 20:41:18 -04:00
Ludovic Marcotte 392cad1cbb Updated NEWS 2017-06-14 15:53:49 -04:00
Ludovic Marcotte 248cea87e8 (feat) initial pass at generalized stress tests 2017-06-14 14:41:01 -04:00
Francis Lachapelle 7464c2e680 (js) Support backspace AND delete keys 2017-06-14 13:38:40 -04:00
Francis Lachapelle 67b9ef0b8b (js) Fix mailbox deletion from the hot key 2017-06-14 13:24:08 -04:00
Ludovic Marcotte 9b2527ce6d (fix) provide mininum values for recurrences 2017-06-13 15:05:04 -04:00
InverseBot 67d4896bc7 (js/css) Update generated files 2017-06-10 02:08:54 -04:00
Ludovic Marcotte a86f8a8a0a (fix) email alarms are sent too many times (fixes #4100) 2017-06-09 15:17:32 -04:00
Ludovic Marcotte 5fd8c9d2d0 (doc) updates for MySQL's max_allowed_packet parameter (fixes #4119 and #4142) 2017-06-09 11:19:57 -04:00
Ludovic Marcotte aff5d53b1c (fix) improvements for Drafts handling 2017-06-09 10:01:11 -04:00
Francis Lachapelle b3f541b87e Sanitize whitelisted attributes of HTML tags 2017-06-05 15:14:48 -04:00
Francis Lachapelle 2604e2bf59 Sanity check when user's session has expired 2017-06-05 10:23:59 -04:00
InverseBot dc9eaa164d (js/css) Update generated files 2017-06-03 01:24:59 -04:00
Francis Lachapelle b8f54dd8e8 (css,js) Update md to v1.1.4-master-e1345ae 2017-06-02 14:20:40 -04:00
InverseBot 15ab809c38 (js/css) Update generated files 2017-06-02 02:16:11 -04:00
Ludovic Marcotte bb04f97570 Updated NEWS 2017-06-01 16:11:34 -04:00
Ludovic Marcotte 6f56522f89 (feat) first pas at EAS v16 support and save in drafts 2017-06-01 16:07:34 -04:00
Ludovic Marcotte 6e04a2d99c (feat) can now discard incoming mails during vacation 2017-06-01 14:49:09 -04:00
Francis Lachapelle e8e0df8b53 Expose user settings and defaults inline (cont'd) 2017-06-01 13:50:46 -04:00
Francis Lachapelle 72d2152b20 (i18n) Add missing strings in Contacts module 2017-06-01 13:49:00 -04:00
Francis Lachapelle 89bfa0c536 Expose user's settings and defaults inline
This improves performance by removing two AJAX calls and a lot of
JavaScript promises.
2017-06-01 13:48:45 -04:00
Francis Lachapelle 1fa056bb25 Update README for new Latvian translation 2017-06-01 13:48:44 -04:00
InverseBot a19d1573d3 (js/css) Update generated files 2017-06-01 01:25:44 -04:00
Francis Lachapelle c8e90b4abd (css) Improve sgImageGallery for small devices
Also include md-truncate directive from ng-material.
2017-05-31 09:40:22 -04:00
Francis Lachapelle e4d0ce6090 (i18n) Fix Lithuanian typo 2017-05-31 06:36:03 -04:00
Francis Lachapelle a33bd62343 Add Latvian (lv) translation (cont'd) 2017-05-31 06:36:03 -04:00
InverseBot 0738896540 (js/css) Update generated files 2017-05-31 00:27:22 -04:00
Francis Lachapelle 34a6a8960a Add Latvian (lv) translation 2017-05-30 16:19:44 -04:00
Francis Lachapelle 02684127dd Cleanup UI/WebServerResources/GNUmakefile 2017-05-30 14:56:35 -04:00
Ludovic Marcotte 6a8345c2c8 (fix) fixed typos in tools' help (fixes #4175) 2017-05-30 14:47:23 -04:00
Ludovic Marcotte 9dae52a719 (fix) sanity check when no defaults are found (fixes #4179) 2017-05-30 14:44:43 -04:00
Ludovic Marcotte f87797d61e Updated NEWS 2017-05-30 13:16:54 -04:00
Ludovic Marcotte 29dfc75fe9 (fix) remove any trailing cr (fixes #4172) 2017-05-30 13:15:04 -04:00
Francis Lachapelle af2507a689 Newly subscribed calendars are excluded from FB
Fixes #3354
2017-05-30 09:27:27 -04:00
Ludovic Marcotte 2b90ff70fa (feat) added custom fields support from Thunderbird's address book 2017-05-30 09:12:13 -04:00
InverseBot 43141a48cf (js/css) Update generated files 2017-05-30 01:27:54 -04:00
Francis Lachapelle 0355f66e96 (js) New ImageGallery ng service 2017-05-29 15:19:03 -04:00
Francis Lachapelle 3049af066b (css) Remove sgColorPicker in grid-list.scss 2017-05-29 14:54:54 -04:00
Francis Lachapelle b00fc756e6 (js) Cleanup dependencies of sgMailboxListItem 2017-05-29 14:51:51 -04:00
Francis Lachapelle 555b7303d1 (js) New images viewer for Mail module 2017-05-29 14:03:59 -04:00
Ludovic Marcotte 0a990ff66b (doc) replaced localhost with 127.0.0.1 to avoid IPv6 errors 2017-05-26 15:44:23 -04:00
Francis Lachapelle e591c9b3cf (doc) Fix rendering of Installation Guide 2017-05-25 14:41:05 -04:00
InverseBot acc6da4c15 (js/css) Update generated files 2017-05-25 01:24:14 -04:00
Francis Lachapelle 3f3f58dc9f (js) Fix card loading via router 2017-05-24 13:56:20 -04:00
Francis Lachapelle e30358aeaa (css) Fix responsive condition of login page 2017-05-24 11:55:24 -04:00
Francis Lachapelle 28e0db4adf Fix adding list members with multiple emails 2017-05-24 11:37:35 -04:00
Francis Lachapelle 92137de325 (doc) Fix IMAP server URL with TLS 2017-05-24 08:33:22 -04:00
InverseBot ad90d666ca (js/css) Update generated files 2017-05-24 01:22:20 -04:00
Francis Lachapelle 8678949c87 (js) Improve performance of color picker
Lower the number of watchers.
2017-05-23 15:43:47 -04:00
InverseBot 8f005b90f5 (js/css) Update generated files 2017-05-21 01:18:15 -04:00
InverseBot 49183bd1fb (js/css) Update generated files 2017-05-20 01:12:37 -04:00
Francis Lachapelle a26970b33b (js) Remove bindings on message flags in directive 2017-05-19 22:20:20 -04:00
Francis Lachapelle f2af5e9f87 Improve display of tasks status 2017-05-19 12:13:01 -04:00
Francis Lachapelle c24474b197 (js) Add missing injection in component editor 2017-05-19 08:56:10 -04:00
Francis Lachapelle ec02efe873 (js) No one-time bindings inside virtual-repeater 2017-05-19 07:53:05 -04:00
Francis Lachapelle 8dc2cfc2dc Silent sogo-tool expire-sessions cronjob
Fixes #4170
2017-05-19 07:46:18 -04:00
InverseBot ce5db84996 (js/css) Update generated files 2017-05-19 01:24:40 -04:00
Francis Lachapelle 41967d3eec Respect languages preferences on login page
Fixes #4169
2017-05-18 22:28:05 -04:00
Francis Lachapelle aee42f76f0 (js) Use one-time bindings in ACLs and sidenav 2017-05-18 15:40:11 -04:00
Francis Lachapelle 28ae2fd58a (js) Review Mail module to decrease watchers 2017-05-18 15:31:38 -04:00
Ludovic Marcotte 083be7e89f Fixed typo 2017-05-17 09:56:16 -04:00
Ludovic Marcotte 99510f4646 Updated NEWS 2017-05-17 09:47:53 -04:00
Ludovic Marcotte 334765c977 (feat) now able to subscribe/unsubscribe folders using sogo-tool 2017-05-17 09:44:34 -04:00
InverseBot 7207925362 (js/css) Update generated files 2017-05-13 01:24:30 -04:00
Francis Lachapelle c9b9150b96 Update ChangeLog 2017-05-09 09:06:22 -04:00
Francis Lachapelle 4d490d0f1e Preparation for release 3.2.9 2017-05-09 09:04:31 -04:00
Francis Lachapelle bc23130f9b (i18n) Update translations 2017-05-09 09:00:33 -04:00
InverseBot 28bc489c1a (js/css) Update generated files 2017-05-09 01:22:56 -04:00
Francis Lachapelle 650f337c41 (js/css) Update generated files 2017-05-08 16:08:22 -04:00
Francis Lachapelle 8de9b8ff53 Update time zones to version 2017b 2017-05-08 16:00:10 -04:00
Francis Lachapelle 8b812ba4f0 (js) Minor JavaScript code cleanup 2017-05-08 15:46:48 -04:00
Francis Lachapelle 836700fb7e (js) Improve CAS handling 2017-05-08 15:43:10 -04:00
Francis Lachapelle ba583f41b1 (i18n) Update translations 2017-05-08 15:06:31 -04:00
Francis Lachapelle 0e82550f6b Update SOGoParentFolder.h 2017-05-08 14:44:13 -04:00
Francis Lachapelle 0185ba9d46 Fix mail delegation of pristine user accounts
Fixes #4160
2017-05-08 11:23:32 -04:00
Ludovic Marcotte 9700b93ad1 Updated NEWS 2017-05-08 10:46:39 -04:00
Ludovic Marcotte 63cb80142b (fix) make sure to use crypt as the scheme for md5/sha256/sha512 (fixes #4137) 2017-05-08 10:44:12 -04:00
InverseBot c3ef225a02 (js/css) Update generated files 2017-05-08 01:23:36 -04:00
InverseBot b42876bb0a (js/css) Update generated files 2017-05-07 01:17:20 -04:00
InverseBot da4033eeab (js/css) Update generated files 2017-05-04 01:17:26 -04:00
Francis Lachapelle f1329a3d36 (i18n) Update German translation 2017-05-02 09:56:30 -04:00
Francis Lachapelle b46781c693 Silent sogo-ealarms-notify
Fixes #4157
2017-04-27 09:40:24 -04:00
Francis Lachapelle ef5728dcaf Properly honor "include in freebusy"
Fixes #3354
2017-04-27 09:38:07 -04:00
Francis Lachapelle 663a0b60dd (feat) Configurable Web animation level 2017-04-25 16:35:39 -04:00
Francis Lachapelle 59dbef5ee7 Avoid duplicated emails in LDAP-based addressbook
Fixes #4129
2017-04-25 14:49:29 -04:00
InverseBot 4caff58918 (js/css) Update generated files 2017-04-25 01:18:12 -04:00
Francis Lachapelle 634cbe3d1b (js) Support SOGoLDAPContactInfoAttrbute 2017-04-24 16:15:39 -04:00
Francis Lachapelle 3d0c958a19 (js) Keep form pristine when changing passwords
Fixes #4138
2017-04-24 12:08:15 -04:00
Francis Lachapelle da44afdcf5 (i18n) Update translations 2017-04-24 11:37:49 -04:00
InverseBot 11f847cdfb (js/css) Update generated files 2017-04-22 01:18:32 -04:00
Francis Lachapelle 5f71ee4d52 (doc) Typo 2017-04-21 16:02:10 -04:00
Francis Lachapelle 68eae92d2d (doc) Exclude GNUstep packages from EPEL 2017-04-21 15:32:33 -04:00
Ludovic Marcotte 9459185059 Updated NEWS 2017-04-21 15:31:26 -04:00
Ludovic Marcotte a9763e94a4 (feat) added photo support in GAL search ops 2017-04-21 15:29:34 -04:00
Ludovic Marcotte 5c573b9a76 (fix) small fixes over previous commit 2017-04-21 14:12:48 -04:00
Ludovic Marcotte 513d81eb59 (fix) LDIF to vCard conversion for non-handled multi-value attributes (fixes #4086) 2017-04-21 12:31:54 -04:00
Francis Lachapelle 2b4e357da6 (js) Improve handling of IMAP timeout handling
For external accounts only.
2017-04-21 11:58:52 -04:00
Ludovic Marcotte ab50a41a86 (fix) email reminders sent multiple times (fixes #4100) 2017-04-21 08:49:56 -04:00
Ludovic Marcotte 7582ec8462 Updated comment 2017-04-20 14:35:44 -04:00
Ludovic Marcotte dd6b77a25b Updated NEWS 2017-04-20 14:31:26 -04:00
Ludovic Marcotte 0091ff749a (fix) handle properly windows-1255 charset (fixes #4124) 2017-04-20 14:29:15 -04:00
InverseBot c09dff3fc8 (js/css) Update generated files 2017-04-13 01:24:28 -04:00
Ludovic Marcotte 8a59180c0e Updated NEWS 2017-04-12 16:37:14 -04:00
Ludovic Marcotte d87dc6cdf2 (fix) enhance display of all-day invitations (fixes #4145)
Conflicts:
	SoObjects/Appointments/SOGoAptMailNotification.m
2017-04-12 16:36:41 -04:00
Francis Lachapelle 0af81b0831 (email alarms) Fix recipient header encoding 2017-04-12 16:22:15 -04:00
Francis Lachapelle 6fd9927092 (js) Fix email reminder with attendees
Fixes #4115
2017-04-12 14:56:38 -04:00
Francis Lachapelle 8bcda19799 (web) Fix renaming a mailbox with special chars 2017-04-12 13:41:24 -04:00
Ludovic Marcotte 5570d28d12 Updated NEWS 2017-04-12 13:02:10 -04:00
Ludovic Marcotte b8369ddb37 (fix) don't send IMIP invitation request/update for ALL EAS clients (fixes #4022) 2017-04-12 13:01:01 -04:00
Ludovic Marcotte e1ea6392c2 (fix) set RSVP when sending events invite 2017-04-12 12:59:53 -04:00
Ludovic Marcotte 011e112a1a Updated NEWS 2017-04-12 09:01:32 -04:00
Ludovic Marcotte 7d396a51f5 (feat) email alarms now have pretty formatting (fixes #805) 2017-04-12 08:59:29 -04:00
InverseBot dbf5039011 (js/css) Update generated files 2017-04-12 01:20:37 -04:00
Francis Lachapelle 76e6c064f7 Improve IMAP error handling in Mailer module 2017-04-11 15:42:36 -04:00
Francis Lachapelle 04f930dba5 (js) Always show center list on small devices 2017-04-11 12:00:00 -04:00
Francis Lachapelle 08fcee67bd Improve IMAP error handling in Mailer module 2017-04-11 11:47:47 -04:00
Ludovic Marcotte cc9602fbc8 Updated NEWS 2017-04-11 10:15:58 -04:00
Ludovic Marcotte c92d489017 (fix) remove over EAS alarms if we don't want them (fixes #4059) 2017-04-11 10:13:56 -04:00
Ludovic Marcotte 4cf59cd92e Updated NEWS 2017-04-07 14:18:20 -04:00
Ludovic Marcotte c4ad338aed (fix) initialize variable to avoid strange nil-return value on invocation (fixes #4048) 2017-04-07 14:16:18 -04:00
Ludovic Marcotte c8708d9164 Updated NEWS 2017-04-07 13:45:07 -04:00
Ludovic Marcotte 9bf7247835 (fix) correctly set flags when ReplaceMime is set (fixes #4133) 2017-04-07 13:43:18 -04:00
Francis Lachapelle ed3f794226 Fix attachment path when inside multiple parts 2017-04-06 14:31:41 -04:00
Ludovic Marcotte b9f4947f8a (fix) check if found before changing location 2017-04-06 14:24:25 -04:00
Ludovic Marcotte f83d6a20a1 (fix) protect ourself from broken SOPE/SOGo installs (fixes #4117) 2017-04-06 11:02:59 -04:00
Francis Lachapelle 8ff189229b [web] Fix exception when partstate is not known 2017-04-05 16:22:28 -04:00
Francis Lachapelle 4c1de4cecc Update NEWS file 2017-04-05 14:00:02 -04:00
InverseBot a7254fe4dd (js/css) Update generated files 2017-04-04 01:25:28 -04:00
Ludovic Marcotte 308938dcfa Updated NEWS 2017-03-29 10:20:59 -04:00
Ludovic Marcotte c11d961bf3 (fix) avoid escaping values that are quoted (fixes #3296) 2017-03-29 10:18:38 -04:00
InverseBot 4e82820db7 (js/css) Update generated files 2017-03-25 01:31:35 -04:00
Ludovic Marcotte 26dac618d0 (fix) more fixes for #3905 2017-03-24 12:38:02 -04:00
Ludovic Marcotte f1cc36b533 (fix) more fixes for #3905 2017-03-24 12:37:55 -04:00
Francis Lachapelle cf07f5746c Update ChangeLog 2017-03-24 09:46:32 -04:00
Francis Lachapelle a328f022cb (css) Update default theme 2017-03-24 09:45:56 -04:00
Francis Lachapelle 46c7af5fdd (js/css) Update generated files 2017-03-24 09:43:51 -04:00
Francis Lachapelle 7065c4f765 Preparation for release 3.2.8 2017-03-24 09:42:33 -04:00
Francis Lachapelle 2c8d1d0a26 (i18n) Update translations 2017-03-24 09:32:46 -04:00
InverseBot dab48bfc60 (js/css) Update generated files 2017-03-24 01:24:52 -04:00
Francis Lachapelle b0cc012849 (css,js) Update md to v1.1.3-master-e3f9772 2017-03-23 16:11:32 -04:00
Francis Lachapelle 1d028e4cf5 Expose default value SOGoMailAddOutgoingAddresses
Fixes #4064
2017-03-23 15:42:05 -04:00
Francis Lachapelle 4dcc1af46a (js) Improve recurrence editor 2017-03-23 14:01:28 -04:00
Francis Lachapelle c57f42b44b (js) Fix possible undefined variable 2017-03-23 13:58:34 -04:00
Francis Lachapelle 736921bdf7 (js) Fix display of category colors of components 2017-03-23 13:55:14 -04:00
Francis Lachapelle 0cc7c6be3d (js) Hide Copy/Move menu options with a single AB 2017-03-23 13:07:07 -04:00
Francis Lachapelle b7bc59d599 Enable Save btn after deleting attribute from card
Fixes #4095
2017-03-23 12:48:17 -04:00
InverseBot 2f92484064 (js/css) Update generated files 2017-03-23 01:24:54 -04:00
Francis Lachapelle b463fd4eda (js) Drop sgTransformOnBlur directive
The md-chips component has now a functional "md-add-on-blur" functionality.

Fixes #3944
2017-03-22 15:35:05 -04:00
Francis Lachapelle 75aaef0f3d (js) Restrict special mailboxes to the top level
Fixes #6963
2017-03-22 14:53:07 -04:00
Francis Lachapelle e7a06c42a4 (js) Fix sanitisation of flags in Sieve filters
Fixes #4087
2017-03-22 13:26:43 -04:00
Francis Lachapelle 5ff8463fba (js) Split string when pasting multiple addresses
Fixes #4097
2017-03-22 11:58:05 -04:00
Zhang Huangbin 7d38a48f68 Create directories with 077X
Create directories with 077X. If we run 2 SOGo instances by following official tutorial[1], the second SOGo instance cannot start due to no permission to write pid file or log file.

[1] https://sogo.nu/nc/support/faq/article/dedicated-separate-sogo-instance-for-activesync.html
2017-03-22 14:11:42 +08:00
Gordon Messmer 400dd26b7d Set the HTTP_HOST environment variable to enable preservation of the client's base URL. 2017-03-17 12:08:54 -07:00
Francis Lachapelle bc8146ef5d Remove debugging output 2017-01-29 18:02:44 -05:00
Ludovic Marcotte b25480f228 Updated NEWS 2017-03-18 15:37:45 -04:00
Ludovic Marcotte 585cda36d1 (fix) fix opacity in freebusy over EAS 2017-03-18 15:34:56 -04:00
Ludovic Marcotte b6d9c3e8e0 (fix) remove old code conflicting with #3905 2017-03-15 10:39:22 -04:00
Ludovic Marcotte ce8f2e9481 (fix) fixed task sorting on multiple categories 2017-03-14 14:18:53 -04:00
InverseBot cb532de83a (js/css) Update generated files 2017-03-14 09:09:24 -04:00
Francis Lachapelle 1aebad854b (js) Add missing variable declaration 2017-03-10 15:05:46 -05:00
Francis Lachapelle 9f6bc8a749 (js) Fix freebusy coverage of newly created event 2017-03-10 14:50:27 -05:00
Francis Lachapelle d24ff75ecf (js) Fix button to remove an attendee 2017-03-10 14:49:32 -05:00
Francis Lachapelle f60ffa923e (js) Display the attendees editor automatically 2017-03-10 14:48:53 -05:00
Francis Lachapelle 19512a85d2 (html) Caption for freebusy data of attendees 2017-03-10 14:43:02 -05:00
Francis Lachapelle baa6d39e28 (css) Generated no-animation.css 2017-03-10 06:36:14 -05:00
Ludovic Marcotte 5d9673415a (fix) don't abort on unhandled requests 2017-03-09 13:58:05 -05:00
Francis Lachapelle 50f25b0597 (i18n) Update translations 2017-03-09 12:19:12 -05:00
Francis Lachapelle 0a0f8a8d89 (css) Custom CSS for IE 2017-03-09 12:16:51 -05:00
Francis Lachapelle 489e35158c (css) Restore lost .md-fab-overlap-bottom class 2017-03-09 09:13:03 -05:00
InverseBot 11d9df6e6a (js/css) Update generated files 2017-03-09 01:26:19 -05:00
Francis Lachapelle e5dc76cc19 (js) Check alarms only if Calendar is accessible
Fixes #4067
2017-03-08 16:15:15 -05:00
Francis Lachapelle ab7ec63f4b Fix typo in Scheduler
Fixes #4072
2017-03-08 16:05:03 -05:00
Francis Lachapelle 1964fdebcb (html) Improve display of vacation message in pref 2017-03-08 16:05:03 -05:00
InverseBot 5b6807b78c (js/css) Update generated files 2017-03-08 09:42:14 -05:00
Ludovic Marcotte 9603971c1f (fix) wrong var type declaration 2017-03-08 09:31:19 -05:00
Ludovic Marcotte 4ae8961947 (fix) handle when mail starts with Bcc header (fixes #4073) 2017-03-08 08:42:56 -05:00
InverseBot 0ffbc13376 (js/css) Update generated files 2017-03-08 01:57:09 -05:00
Francis Lachapelle a02fa44dc7 (js) Fix SCAYT automatic language selection 2017-03-07 14:23:42 -05:00
Francis Lachapelle 682f699e2f Fix Welsh's locale 2017-03-07 14:20:51 -05:00
Ludovic Marcotte f3b098da75 Updated NEWS 2017-03-07 10:48:20 -05:00
Ludovic Marcotte 6a963bf84b (fix) remove attendees that have the same identity of the organizer (fixes #3905) 2017-03-07 10:45:44 -05:00
Francis Lachapelle 270ff1bd29 (js) Fix saving draft outside Mail module
Fixes #4071
2017-03-07 10:26:10 -05:00
InverseBot 74c2926bca (js/css) Update generated files 2017-03-04 01:34:40 -05:00
Francis Lachapelle 75aa6e90a2 (js) Fix handling of attachments in mail editor
Fixes #4058, #4063
2017-03-03 15:36:52 -05:00
Francis Lachapelle 3c35c16bf3 (html) Display year in day and week views 2017-03-03 15:01:00 -05:00
Ludovic Marcotte e95e8e9eac Updated NEWS 2017-03-03 14:15:27 -05:00
Ludovic Marcotte 588ec2b005 (fix) fixed handling of exdates and proper intersection for fbinfo (fixes #4051) 2017-03-03 14:13:25 -05:00
Francis Lachapelle 0627c2f58b (html) Constrain reminder to a positive number 2017-03-03 12:06:33 -05:00
Francis Lachapelle f6ed816243 (html) Constrain reminder to a positive number 2017-03-03 12:05:34 -05:00
Francis Lachapelle 25430a8128 Fix handling of contact organizations
Fixes #4028
2017-03-03 10:35:50 -05:00
Ludovic Marcotte 79a0d5e133 (fix) handle broken CalDAV clients sending bogus SENT-BY (fixes #3992) 2017-03-03 08:47:59 -05:00
InverseBot 018b7b7ab9 (js/css) Update generated files 2017-03-03 01:24:59 -05:00
Francis Lachapelle c8539dffa1 (js) Limit http error interceptor to JSON request 2017-03-02 15:48:31 -05:00
InverseBot c995c6e9d7 (js/css) Update generated files 2017-03-02 01:27:34 -05:00
Francis Lachapelle 8322d318aa Expose default value of SOGoMailAutoSave
Fixes #4053
2017-03-01 15:14:09 -05:00
Ludovic Marcotte 4d88eab13b Updated NEWS 2017-03-01 11:36:15 -05:00
Francis Lachapelle a3d7ae3a6b (js) Improve CAS handling 2017-03-01 11:15:25 -05:00
Ludovic Marcotte a29ced853a (js/css) Update generated files 2017-03-01 11:00:17 -05:00
Ludovic Marcotte 5047aed6ed (fix) more CAS fixes 2017-03-01 10:51:01 -05:00
Ludovic Marcotte 3c46a6ef14 (js/css) Update generated files 2017-03-01 09:49:36 -05:00
Ludovic Marcotte af3a35169a (fix) first pass at CAS XHR issue 2017-03-01 09:37:37 -05:00
InverseBot 6b471994ef (js/css) Update generated files 2017-03-01 01:23:28 -05:00
Francis Lachapelle 23ff62a9e0 (js) Improve event editor
- fixed form validity check;
- fixed alarm restoration after a reset;
- fixed recurrence rules check.
2017-02-28 16:13:58 -05:00
Francis Lachapelle 2a820bd780 (css) Improve display of event editor 2017-02-28 08:36:27 -05:00
InverseBot 125178e526 (js/css) Update generated files 2017-02-28 01:23:07 -05:00
Francis Lachapelle e1979976a6 (js) Month day(s) of monthly repeat must be set 2017-02-27 16:04:49 -05:00
Francis Lachapelle d87cf6980a (css) Improve display of recurrence editor 2017-02-27 16:03:45 -05:00
Francis Lachapelle dfce966e79 (js) Calendar week days must be set to save prefs 2017-02-27 12:55:15 -05:00
Francis Lachapelle 4002650748 (js) Expose model validity in sg-toggle-grid 2017-02-27 10:48:40 -05:00
InverseBot 0fa8cbf9cb (js/css) Update generated files 2017-02-23 01:24:05 -05:00
Francis Lachapelle 7a4dbcb364 (js) Update children paths when renaming a mailbox
Fixes #4046
2017-02-22 23:07:26 -05:00
Ludovic Marcotte 784503bdbc (fix) minor fixes in tools 2017-02-22 11:00:01 -05:00
Ludovic Marcotte 91b32faac2 Updated NEWS 2017-02-21 10:14:58 -05:00
Ludovic Marcotte f24d9ae389 (fix) safety checks, fixed remove ALL and added add ALL 2017-02-21 10:12:55 -05:00
Ludovic Marcotte b501014935 (feat) new sogo-tool manage-acl feature to get/add/remove ACLs from GCS folders 2017-02-20 18:57:46 -05:00
Ludovic Marcotte cc52e82524 (feat) added delete capability to sogo-tool checkup 2017-02-20 13:37:23 -05:00
Ludovic Marcotte fe42180bc0 (fix) set the memcache retry timeout to 5 seconds 2017-02-20 10:35:08 -05:00
Ludovic Marcotte 7f67e90c53 (fix) enable tcp_nodelay for memcache 2017-02-20 10:34:54 -05:00
InverseBot bf001b1af6 (js/css) Update generated files 2017-02-20 01:22:37 -05:00
Francis Lachapelle 3c65973cd5 (css) Hide fab button when printing
Fixes #4038
2017-02-19 21:57:27 -05:00
Francis Lachapelle 48b2008da4 (js) Localize mailbox names everywhere
Fixes #4041
2017-02-19 21:13:44 -05:00
InverseBot fd13fd632c (js/css) Update generated files 2017-02-18 01:21:42 -05:00
Francis Lachapelle b1e8f30138 (js) Localized inbox label
Fixes #4040
2017-02-17 21:22:10 -05:00
Ludovic Marcotte fc68709956 Updated NEWS 2017-02-17 15:19:37 -05:00
Francis Lachapelle 06238a39b1 (js) Fix fcn call when removing contact category
Fixes #4039
2017-02-17 11:01:42 -05:00
Francis Lachapelle 9f84162c5d (css) Fix ACL editor in Admin module for Safari
Fixes #4036
2017-02-15 23:11:34 -05:00
InverseBot 6ffc9a3552 (js/css) Update generated files 2017-02-15 01:29:55 -05:00
Ludovic Marcotte 3894d6f9fa Release preparation 2017-02-14 08:38:39 -05:00
InverseBot 07720563b9 (js/css) Update generated files 2017-02-14 01:16:42 -05:00
Francis Lachapelle 5ceafa5005 (js) Localize mail, phone, url and address types
Fixes #4030
2017-02-13 22:52:03 -05:00
Ludovic Marcotte 24da483e2a Updated NEWS 2017-02-09 14:42:42 -05:00
Ludovic Marcotte 9434e3882e (feat) new sogo-tool checkup command to make sure user's data is sane 2017-02-09 14:39:24 -05:00
Ludovic Marcotte 7d1dd4ec76 Updated NEWS 2017-02-09 08:57:56 -05:00
Ludovic Marcotte 54eedb3363 (fix) moved bcc handling code to the generic mail sending method 2017-02-09 08:56:02 -05:00
InverseBot e9ea104a94 (js/css) Update generated files 2017-02-09 01:29:10 -05:00
InverseBot 99277421a1 (js/css) Update generated files 2017-02-08 01:27:36 -05:00
Ludovic Marcotte 3d5c0be441 Updated NEWS 2017-02-03 15:27:39 -05:00
Ludovic Marcotte dd8cccdafc (fix) correctly handle Canceled appointments 2017-02-03 15:24:42 -05:00
InverseBot dcfed38fc7 (js/css) Update generated files 2017-02-03 01:25:57 -05:00
InverseBot b58ec19625 (js/css) Update generated files 2017-02-02 01:24:16 -05:00
Francis Lachapelle d90533399d (css) Keep the fab button visible 2017-02-01 21:33:17 -05:00
Ludovic Marcotte 4db1f8185a Updated NEWS 2017-02-01 13:06:03 -05:00
Ludovic Marcotte 50d8975f9d (fix) improve EAS parameters parsing (fixes #4003) 2017-02-01 13:03:27 -05:00
Francis Lachapelle b412788e39 Make sure to refer to filenames when executing zip
Fixes #4015
2017-02-01 11:56:44 -05:00
Ludovic Marcotte 15b277fa8e (fix) cache sogo_folder_info records and avoid phantom subscriptions (fixes #4010) 2017-01-31 15:59:58 -05:00
InverseBot d159b191a6 (js/css) Update generated files 2017-01-31 01:12:42 -05:00
Francis Lachapelle 539a6c3beb Fix public URL with special characters
Fixes #3993
2017-01-30 21:56:33 -05:00
Francis Lachapelle abccdd304f (js) Ignore mouse events in scrollbars of Month
Firefox is bubbling the mouse down event on scrollbars so it has to be
ignored for proper drag'n'drop.

Fixes #3990.
2017-01-30 15:52:07 -05:00
Francis Lachapelle 4143a23afd Add Hebrew translation (cont'd) 2017-01-30 07:51:36 -05:00
Francis Lachapelle a020286780 Merge pull request #232 from rfrei/patch-1
Allow write to multiple contacts using 'to', 'cc' or 'bcc'.

Fixes #3548.
2017-01-30 07:46:54 -05:00
Steffen Müller 1b264ef6ba Change Strings according to RFC 5322
correction: for translations the strings in English.lproj should better be equal
2017-01-28 17:53:14 +01:00
Steffen Müller ef4e311a5a Change Strings according to RFC 5322 2017-01-28 17:53:05 +01:00
Steffen Müller 1d8caa4297 Change Strings according to RFC 5322 2017-01-28 17:22:14 +01:00
InverseBot 0500499d91 (js/css) Update generated files 2017-01-28 01:10:29 -05:00
Francis Lachapelle d289a441bb Fix condition when enabling Vacation message 2017-01-27 15:57:43 -05:00
Francis Lachapelle fcfbc50139 Add Hebrew translation (cont'd) 2017-01-27 12:58:31 -05:00
Francis Lachapelle 88bc1294cd (js) Fix saving the preferences with Mail disabled 2017-01-27 12:40:36 -05:00
Francis Lachapelle ac127a375f Improve ACLs handling of inactive users (cont'd) 2017-01-27 12:22:22 -05:00
Steffen Müller f90b2efadb simpler version 2017-01-27 16:52:58 +01:00
Steffen Müller c9a50aa057 write using 'to', 'cc' or 'bcc' with string parameter
write to multiple selected contacts using 'to', 'cc' or 'bcc'
Feauture Request #3548
2017-01-27 16:41:34 +01:00
Steffen Müller 621adb38c2 write using 'to', 'cc' or 'bcc' with string parameter
write to multiple selected contacts using 'to', 'cc' or 'bcc'
Feauture Request #3548
2017-01-27 16:37:13 +01:00
InverseBot 872afaec32 (js/css) Update generated files 2017-01-27 01:10:15 -05:00
Francis Lachapelle 892e6d6eb2 Add Hebrew translation 2017-01-26 21:40:52 -05:00
Steffen Müller ed62670a1a write using 'to', 'cc' or 'bcc'
write to multiple selected contacts using 'to', 'cc' or 'bcc'
Feauture Request #3548
2017-01-26 19:27:13 +01:00
Francis Lachapelle 7a6df34cb6 Update ChangeLog 2017-01-26 13:18:17 -05:00
Francis Lachapelle 556460982d Preparation for release 3.2.6a 2017-01-26 13:17:52 -05:00
Francis Lachapelle 2beb3dca6d (js/css) Update generated files 2017-01-26 13:16:19 -05:00
Francis Lachapelle d14b0b0b5e (js) Improve ACLs handling of inactive users 2017-01-26 12:48:21 -05:00
Steffen Müller 8efd01d55e write using 'to', 'cc' or 'bcc'
write to multiple selected contacts using 'to', 'cc' or 'bcc'
Feauture Request #3548
2017-01-26 18:29:07 +01:00
Francis Lachapelle 831c1bc980 Revert "(fix) properly honor "include in freebusy"
This reverts commit eed5679068.
2017-01-26 11:52:58 -05:00
Francis Lachapelle d277f2fe0f Update ChangeLog 2017-01-23 14:58:02 -05:00
Francis Lachapelle 0b9ca225d0 (css) Update default theme 2017-01-23 14:58:02 -05:00
Francis Lachapelle 04c256ab6c Preparation for release 3.2.6 2017-01-23 14:57:47 -05:00
InverseBot 3cbeba32d9 (js/css) Update generated files 2017-01-24 01:15:53 -05:00
Francis Lachapelle 1825b167dc (css,js) Update md to v1.1.1-master-2c9a5cc 2017-01-23 09:55:44 -05:00
Francis Lachapelle 214ce5ef86 (i18n) Update translations 2017-01-23 09:50:35 -05:00
Ludovic Marcotte 927f0c3220 Updated NEWS 2017-01-23 08:55:33 -05:00
Ludovic Marcotte 227cf582d9 (fix) touch objects when server-side changes occured 2017-01-23 08:53:41 -05:00
InverseBot 8cdc435945 (js/css) Update generated files 2017-01-21 01:28:13 -05:00
Francis Lachapelle 3efe0e8098 Add support for date extension of Sieve
Fixes #1530, #1949
2017-01-20 11:08:24 -05:00
Ludovic Marcotte d38d42b83a (fix) use login in domain 2017-01-20 09:25:02 -05:00
InverseBot 1f3a89b984 (js/css) Update generated files 2017-01-20 01:27:56 -05:00
Francis Lachapelle 0dea9c226d Allow to select multiple files when uploading
Fixes #3999
2017-01-19 15:41:21 -05:00
Francis Lachapelle db1cc24c20 (css) Improve display of HTML CKEditor 2017-01-19 14:47:11 -05:00
Francis Lachapelle d7d88e2620 (js) Compose new message in a popup window 2017-01-19 12:23:55 -05:00
Francis Lachapelle 4fca484ed0 Improve error handling in SOGoWebAppointmentFolder 2017-01-19 10:31:03 -05:00
Francis Lachapelle fcb79dc14b Improve error handling in MSExchangeFreeBusy class 2017-01-19 10:17:17 -05:00
Francis Lachapelle 41dbb88b64 (js) Expandable mail editor
Added "autogrow" plugin for CKEditor.
2017-01-19 07:05:52 -05:00
InverseBot bb97b57ad7 (js/css) Update generated files 2017-01-19 01:28:13 -05:00
Ludovic Marcotte 5300d4185d (fix) improve doc around SOGoTimeZone (fixes #3995) 2017-01-18 16:17:12 -05:00
Francis Lachapelle 26b69d25ee (js) Fix opening message in popup window 2017-01-18 15:03:29 -05:00
Ludovic Marcotte a3c056ea84 (fix) deep-search for text/calendar parts 2017-01-17 15:12:29 -05:00
Ludovic Marcotte e4b2539b04 (fix) strip attendees with no email and don't send IMIP when it's Outlook the EAS client 2017-01-17 12:40:41 -05:00
Francis Lachapelle fcb6542d06 (i18n) Update translations 2017-01-17 11:47:43 -05:00
Francis Lachapelle 174fcd5c31 (i18n) Update translations 2017-01-17 08:53:52 -05:00
InverseBot 2f6c5148aa (js/css) Update generated files 2017-01-17 01:30:41 -05:00
Francis Lachapelle 936b21b8c0 (css) Fix glitches in Month view with Firefox 2017-01-16 16:30:24 -05:00
Francis Lachapelle 5f2a6c53c4 (js) Fix pasting images in CKEditor
Fixes #3986
2017-01-16 15:31:12 -05:00
Francis Lachapelle ba12c14a1d (js) Update CKEditor to version 4.6.2
- Add Upload Image plugin

Fixes #3986
2017-01-13 16:11:10 -05:00
Ludovic Marcotte 4158f7555e Updated NEWS 2017-01-13 13:19:43 -05:00
Ludovic Marcotte 6e0f5b2254 (fix) return if not content is there, to avoid random crash 2017-01-13 13:16:01 -05:00
Francis Lachapelle 4a21a02f98 Fix rendering of forwarded HTML message with img
Fixes #3981 (cont'd)
2017-01-13 12:23:38 -05:00
Ludovic Marcotte 9d7d2575d3 (ix) remove alarms in IMIP responses (fixes #3925) 2017-01-12 15:23:09 -05:00
InverseBot 905859053c (js/css) Update generated files 2017-01-12 01:31:09 -05:00
Francis Lachapelle e5d0b0b0ca Fix rendering of forwarded HTML message with img
Fixes #3981 (partially)
2017-01-11 16:08:56 -05:00
Francis Lachapelle 589827a414 (html) Show locale codes beside language names 2017-01-11 14:20:43 -05:00
Francis Lachapelle 42ee981613 (js) Update Angular to branch 1.6.x 2017-01-11 14:20:43 -05:00
Francis Lachapelle 5985262e0f Improve WebDAV Python lib for integration tests 2017-01-11 14:20:42 -05:00
Francis Lachapelle c36fcd2902 Improve debugging output of recurrence calculator 2017-01-11 14:20:42 -05:00
Francis Lachapelle bce09f413f Update NEWS file 2017-01-11 14:20:42 -05:00
Francis Lachapelle 9477c1af16 (html) Precise EAS beside "Synchronize" option 2017-01-11 14:20:42 -05:00
InverseBot 8011d9093e (js/css) Update generated files 2017-01-11 01:26:52 -05:00
Francis Lachapelle 37334db0e3 Update ChangeLog 2017-01-10 09:42:57 -05:00
Francis Lachapelle 6637bde56d Preparation for release 3.2.5 2017-01-10 09:42:09 -05:00
Francis Lachapelle e27efc4d3a (css) Update default theme 2017-01-10 09:37:05 -05:00
Francis Lachapelle ff7b9a3725 (js/css) Update generated files 2017-01-10 09:33:43 -05:00
Francis Lachapelle 36c7ffcc3c (css,js) Update md to v1.1.1-master-64b2621 2017-01-10 09:16:04 -05:00
InverseBot 3912d2ab3e (js/css) Update generated files 2017-01-10 02:12:03 -05:00
Ludovic Marcotte 5e775ea4ce (fix) some more memory info 2017-01-09 16:09:09 -05:00
Ludovic Marcotte 841fdb96cc (fix) be a bit more verbose about memory usage 2017-01-09 16:03:32 -05:00
Francis Lachapelle 51ff746595 (js) Update CKEditor to version 4.6.1 2017-01-06 20:49:42 -05:00
Francis Lachapelle ef1f5a948f (i18n) Update translations 2017-01-06 20:34:37 -05:00
Francis Lachapelle 3560f0486e (js) Fix hotkeys with an active dialog in Mailer
Fixes #3983
2017-01-06 18:26:12 -05:00
Francis Lachapelle 327ebf00a4 Fix public URLs to Calendars
Fixes #3974
2017-01-06 16:49:00 -05:00
InverseBot abb1e1b447 (js/css) Update generated files 2017-01-07 01:28:44 -05:00
Francis Lachapelle 818233535f Improve error messages around draft attachments
(cont'd)
2017-01-06 16:17:05 -05:00
Francis Lachapelle 65e3fe978c Minor code cleanup 2017-01-06 16:15:26 -05:00
Francis Lachapelle 0216f19e55 Improve Installation Guide 2017-01-06 16:14:44 -05:00
Francis Lachapelle 8404de758b Improve error messages around draft attachments 2017-01-06 16:12:42 -05:00
Francis Lachapelle 5ec7ad54bb Fix error handling when draft is too big 2017-01-06 15:45:30 -05:00
Ludovic Marcotte be8e1373ea Updated NEWS 2017-01-06 16:01:52 -05:00
Ludovic Marcotte 9fbc84158a (fix) handle sha512-crypt with rounds 2017-01-06 15:52:19 -05:00
Ludovic Marcotte 071c1032c1 Updated NEWS 2017-01-06 14:34:43 -05:00
Ludovic Marcotte af8baf41cb (fix) correctly handle all identities during IMIP status update 2017-01-06 14:32:45 -05:00
Ludovic Marcotte 0b7ddf7ca4 (fix) small optimization over previous commit 2017-01-06 14:29:41 -05:00
Ludovic Marcotte 942ddcabe4 (fix) handle all identities during IMIP REPLY processing 2017-01-06 14:23:52 -05:00
Ludovic Marcotte bdd8254e02 (fix) make sure we compare the organizer's email only 2017-01-06 11:03:59 -05:00
Ludovic Marcotte ce0575517d (fix) make sure to bump LAST-MODIFIED to trigger all auto-scheduling code 2017-01-06 09:54:02 -05:00
Francis Lachapelle ea7934a73c Fix saving of inactive calendars
Fixes #3862, #3980
2017-01-06 06:42:12 -05:00
InverseBot 02fc147624 (js/css) Update generated files 2017-01-06 02:11:11 -05:00
Francis Lachapelle 02a1ad48fc (js) Fix computation of week number
Fixes #3973, 3976
2017-01-05 12:00:55 -05:00
Ludovic Marcotte e7e1283fb3 (fix) disabled bias computation for now 2017-01-05 09:27:16 -05:00
InverseBot d5e04be1df (js/css) Update generated files 2017-01-01 01:20:37 -05:00
Ludovic Marcotte e2ec8af0db Updated NEWS 2016-12-30 12:29:09 -05:00
Ludovic Marcotte 477c06a7ff (fix) fix events in floating time during CalDAV's PUT operation (fixes #2865) 2016-12-30 12:26:31 -05:00
Ludovic Marcotte 479b534857 (fix) properly save email alarms in the db (fixes #3949) 2016-12-30 10:31:29 -05:00
Ludovic Marcotte f6bcf26793 Updated NEWS 2016-12-30 10:00:58 -05:00
Ludovic Marcotte cdf6aaa53e (fix) provide correct error response to EAS client when sending big mails (fixes #3956) 2016-12-30 09:58:51 -05:00
Ludovic Marcotte 1a9b20519e Updated NEWS 2016-12-29 16:23:07 -05:00
Ludovic Marcotte 4f211678e9 (fix) handle semicolon in value during LDIF import (fixes #1760) 2016-12-29 16:21:30 -05:00
Ludovic Marcotte e578787acd Updated NEWS 2016-12-29 14:37:04 -05:00
Ludovic Marcotte 239dffa391 (fix) handle URI in vCard photos (fixes #2683) 2016-12-29 14:35:06 -05:00
Ludovic Marcotte 6cd3d90410 Updated NEWS 2016-12-29 14:14:39 -05:00
Ludovic Marcotte 93dfbc5a94 (feat) added photo support for LDIF import (fixes #1084) 2016-12-29 14:12:45 -05:00
Ludovic Marcotte 896f57f634 Updated NEWS 2016-12-29 10:53:44 -05:00
Ludovic Marcotte f48ab310d6 (fix) add support for "other" addresses (fixes #3966) 2016-12-29 10:52:32 -05:00
Ludovic Marcotte 5bc21e4f53 (fix) avoid trying to parse empty request (fixes #3969) 2016-12-29 09:55:20 -05:00
Ludovic Marcotte 8296123650 Updated NEWS 2016-12-28 10:25:31 -05:00
Ludovic Marcotte 2cebee42b7 (feat) added new SOGoMaximumMessageSizeLimit config parameter (fixes #3510)
Conflicts:

	SoObjects/Mailer/SOGoDraftObject.m
2016-12-28 10:23:19 -05:00
Ludovic Marcotte 7c7440c988 Updated NEWS 2016-12-23 11:38:39 -05:00
Ludovic Marcotte eed5679068 (fix) properly honor "include in freebusy" (fixes #3354) 2016-12-23 11:36:44 -05:00
Ludovic Marcotte f1dbb88303 Updated NEWS 2016-12-23 10:22:07 -05:00
Ludovic Marcotte 9cb6772ae8 (fix) do not decode from hex the event's UID (fixes #3965) 2016-12-23 10:19:46 -05:00
Ludovic Marcotte dceab8fd2a Updated NEWS 2016-12-23 10:06:15 -05:00
Ludovic Marcotte 7197b7eb41 (fix) handle delegation scenario with no SENT-BY set (fixes #3368) 2016-12-23 10:04:43 -05:00
InverseBot 18b502c39c (js/css) Update generated files 2016-12-23 02:10:39 -05:00
Ludovic Marcotte 94fc5d17db (fix) also use the filter when doing DN lookups (fixes #2253) 2016-12-22 14:26:27 -05:00
Ludovic Marcotte 8c075d2e1b (fix) comment out vars too 2016-12-22 09:41:39 -05:00
Ludovic Marcotte 278aeef864 (fix) disabled IMIP force sending for Lightning (fixes #3274) 2016-12-22 08:55:12 -05:00
Ludovic Marcotte ef69344a59 Updated NEWS 2016-12-21 11:45:41 -05:00
Ludovic Marcotte 457fccd5ac (fix) append .ics extension if not present when importing events (fixes #2308) 2016-12-21 11:43:08 -05:00
Ludovic Marcotte 1da36a3ef9 (fix) always force save events creation over EAS (fixes #3958) 2016-12-21 10:47:33 -05:00
Francis Lachapelle 7327ec21b2 Avoid duplicate emails in LDAP-based address book
Fixes #3941
2016-12-21 10:37:04 -05:00
Ludovic Marcotte 94c522ea5c Updated NEWS 2016-12-21 08:50:38 -05:00
Ludovic Marcotte 5c0229466e (feat) handle alarms for tasks (fixes #3964) 2016-12-21 08:49:05 -05:00
Ludovic Marcotte eb6d234c4b Updated NEWS 2016-12-20 13:17:19 -05:00
Ludovic Marcotte 06903f8376 (fix) use the source's domain if none is defined (fixes #3523) 2016-12-20 13:15:15 -05:00
Francis Lachapelle 596c4bb4c2 (js) Fix attached links in task viewer
Fixes #3963
2016-12-20 10:44:43 -05:00
Ludovic Marcotte 3d16283d3c (fix) avoid double encoding (fixes #3960) 2016-12-20 08:56:13 -05:00
InverseBot 31d2db51ad (js/css) Update generated files 2016-12-20 01:24:11 -05:00
Ludovic Marcotte abd0c0a744 (fix) sage-guard against empty rrule 2016-12-19 15:01:31 -05:00
Francis Lachapelle 1375237697 (js) Don't allow to create a list in a remote AB 2016-12-19 12:07:17 -05:00
Francis Lachapelle 4c78d81bf7 Formatting & Comments 2016-12-19 11:15:35 -05:00
Francis Lachapelle 2e9168080c (js) Fix freebusy initialization in event editor 2016-12-19 11:05:48 -05:00
Francis Lachapelle 1eb378c956 (js) Fix display of auto-reply (vacation) message
Fixes #3940
2016-12-19 10:25:04 -05:00
Francis Lachapelle e739ed46a3 (js) Fix saving monthly BYDAY recurrence
Fixes #3948
2016-12-19 09:51:09 -05:00
Francis Lachapelle 93f559a0df Remove unnecessary div in UIxTopnavToolbar.wox 2016-12-19 09:46:58 -05:00
InverseBot 13a4398c4d (js/css) Update generated files 2016-12-17 01:24:00 -05:00
Ludovic Marcotte 462d274497 Updated NEWS 2016-12-16 15:53:12 -05:00
Ludovic Marcotte ab1c699bc7 (feat) better support for RFC 6638 (schedule-agent) (fixes #2599) 2016-12-16 15:51:19 -05:00
Ludovic Marcotte 9882052e81 Updated NEWS 2016-12-16 10:12:40 -05:00
Ludovic Marcotte 3adbef5aa4 (fix) 30 mins offset in FB 2016-12-16 10:08:04 -05:00
Ludovic Marcotte 5ecf917e6b (fix) return a 404 for public user 2016-12-16 09:07:55 -05:00
InverseBot a02642cad9 (js/css) Update generated files 2016-12-16 01:09:03 -05:00
Ludovic Marcotte 92ba421dd1 Updated NEWS 2016-12-15 14:24:08 -05:00
Ludovic Marcotte ea940e645e (fix) return login page for unknown users (fixes #2135) 2016-12-15 14:22:26 -05:00
Francis Lachapelle 651c0fdf14 Load photos of LDAP-based address books in listing
Fixes #3942
2016-12-15 10:19:47 -05:00
InverseBot 15a3bf48d9 (js/css) Update generated files 2016-12-15 01:22:53 -05:00
Ludovic Marcotte 8493701408 Updated NEWS 2016-12-14 21:22:45 -05:00
Ludovic Marcotte f0085ef43e (fix) correctly block if fail count is within interval (fixes #2850) 2016-12-14 21:20:29 -05:00
Francis Lachapelle e0108088ee (js) Rename buttons of alarm toast
Fixes #3945
2016-12-14 16:39:21 -05:00
Francis Lachapelle 5591b9d423 (js) Switch on "remember username" when necessary 2016-12-14 16:33:21 -05:00
Ludovic Marcotte ef96c21334 Updated NEWS 2016-12-14 13:46:27 -05:00
Ludovic Marcotte d8eae96d63 (fix) properly skip folders we don't want (fixes #3943) 2016-12-14 13:42:22 -05:00
InverseBot f6acc3e984 (js/css) Update generated files 2016-12-11 01:19:01 -05:00
Ludovic Marcotte 340ddf0ae6 (fix) make sure we safely escape all chars 2016-12-09 10:45:44 -05:00
Ludovic Marcotte b0fcaeef86 (fix) removed old code 2016-12-09 10:32:42 -05:00
Ludovic Marcotte ec19a1290d (fix) use the organizer's alarm by default when accepting IMIP messages (fixes #3934) 2016-12-09 09:47:48 -05:00
InverseBot 384f1cb53f (js/css) Update generated files 2016-12-09 01:17:34 -05:00
Francis Lachapelle d0e0d5300a (js) Fix ordering of calendars
Fixes #3931
2016-12-08 10:17:25 -05:00
InverseBot 4b2b3693c5 (js/css) Update generated files 2016-12-08 01:18:39 -05:00
Francis Lachapelle 011fae8a65 Download attachments of a message as a zip archive 2016-12-07 14:38:33 -05:00
Ludovic Marcotte 2a2ebd553e (test) handle sanitization before passing data to libxml 2016-12-06 14:05:27 -05:00
Francis Lachapelle 0038e4bc60 (js) Disable HTML entities in CKEditor 2016-12-06 10:08:02 -05:00
InverseBot e053f12e78 (js/css) Update generated files 2016-12-06 01:17:41 -05:00
Francis Lachapelle c663f7ab4c Prevent using localhost on auxiliary IMAP accounts 2016-12-05 16:12:16 -05:00
Ludovic Marcotte 68ddcd7045 (fix) prevent using localhost on additional IMAP accounts 2016-12-05 14:51:33 -05:00
InverseBot ffd69337f6 (js/css) Update generated files 2016-12-03 02:04:11 -05:00
Francis Lachapelle ba5bd65ea3 Fix support for SOGoSieveFolderEncoding defaults
Cont'd. Fixes #3904
2016-12-02 17:38:33 -05:00
Francis Lachapelle 6ce64a9a27 (js) Fix sorting after renaming an AddressBook 2016-12-02 14:48:59 -05:00
Ludovic Marcotte 41701cc94c (fix) properly set interval for monthly recurring events using EAS 2016-12-02 09:21:18 -05:00
Ludovic Marcotte 56d7f634a0 (fix) avoid compiler warning 2016-12-02 08:48:26 -05:00
InverseBot 80f67785c3 (js/css) Update generated files 2016-12-02 01:29:36 -05:00
Francis Lachapelle 29dfadfe75 (css) Update default theme 2016-12-01 17:47:29 -05:00
Francis Lachapelle fb743d6381 Update Developer's Guide 2016-12-01 16:01:45 -05:00
Francis Lachapelle 203dcf1d05 (js) Improve sgAvatarImage (cont'd) 2016-12-01 15:42:28 -05:00
Francis Lachapelle 0d95267fe5 Fix ACLs management of folders in Administration
The active (super) user was not able to add herself to the ACLs of a
different user because we were removing the active user from the users
search instead of removing the folder's owner.
2016-12-01 15:40:38 -05:00
Francis Lachapelle e997923c31 (html) Fix sidenav breakpoint in Admin module 2016-12-01 15:32:24 -05:00
Francis Lachapelle 277c6e901e Update ChangeLog 2016-12-01 12:02:23 -05:00
Francis Lachapelle 2c24901803 (js/css) Update generated files 2016-12-01 12:01:50 -05:00
Francis Lachapelle 8f90aa96fe (css,js) Update md to v1.1.1-master-b8357dc 2016-12-01 12:00:00 -05:00
Francis Lachapelle ee5b60c544 Preparation for release 3.2.4 2016-12-01 11:59:16 -05:00
Francis Lachapelle d2b94eba09 (js) Fix detection of session expiration 2016-12-01 11:56:07 -05:00
Francis Lachapelle c9467e1ce3 Validate custom subject for vacation auto-reply 2016-12-01 11:21:59 -05:00
Francis Lachapelle b4e9b7b60c (css) Fix sidenav background color of Preferences 2016-12-01 11:14:38 -05:00
Francis Lachapelle 66710f1b17 (i18n) Update translations 2016-12-01 11:07:28 -05:00
Francis Lachapelle a61ea24cdb (obj-c) Indentation 2016-12-01 10:28:26 -05:00
Francis Lachapelle 3e448d2c2c New sogo-tool cleanup user feature (cont'd) 2016-12-01 10:27:22 -05:00
Ludovic Marcotte 9aa00d049d Updated NEWS 2016-12-01 09:42:03 -05:00
Ludovic Marcotte fdea54f5e7 (fix) properly escape all GAL responses (fixes #3923) 2016-12-01 09:40:24 -05:00
InverseBot 3c098ceca5 (js/css) Update generated files 2016-12-01 01:18:40 -05:00
Francis Lachapelle f7dd835f92 Fix mail attribute when importing an LDIF file
Fixes #3878
2016-11-30 16:06:09 -05:00
Francis Lachapelle 7705c11cf7 New sogo-tool cleanup user feature 2016-11-30 15:32:29 -05:00
Francis Lachapelle 52cdb71d1f Add sort by start date for the tasks list
Fixes #3840
2016-11-30 12:13:48 -05:00
Francis Lachapelle a1746cd386 (css) Fix display of tabs with oversized content 2016-11-30 12:09:11 -05:00
InverseBot cd08ab81f1 (js/css) Update generated files 2016-11-30 02:47:47 -05:00
Francis Lachapelle d293fe79ed Add handling of BYSETPOS for BYDAY in repeat rule 2016-11-29 17:47:14 -05:00
Francis Lachapelle 6f732ba535 Fix MSExchangeFreeBusySOAPRequest.wod 2016-11-29 16:14:42 -05:00
Francis Lachapelle b27c868271 Fix freebusy data fetching of MS Exchange contacts 2016-11-29 15:48:15 -05:00
InverseBot e0b0a1d783 (js/css) Update generated files 2016-11-29 03:13:53 -05:00
Francis Lachapelle e059a6043e (js) Fix possible cross-origin exception
When SOGo is launched from an external link, either using a different
"target" or using window.open(), the Mail composer could throw a
JavaScript exception when trying to save or send a message that would
completely stop the operation.

Fixes #3900
2016-11-28 15:36:03 -05:00
Francis Lachapelle e253f5735d (js) Don't test pristine state of Message composer 2016-11-28 11:45:09 -05:00
Francis Lachapelle 328d67ec3a Improve sort validation in Contacts module 2016-11-28 10:33:38 -05:00
Francis Lachapelle c3376a4ddf Fix some compilation warnings 2016-11-28 10:14:23 -05:00
Francis Lachapelle 220fb3d607 (js) Update alarms after dragging an event 2016-11-28 09:37:31 -05:00
InverseBot fb873fcae9 (js/css) Update generated files 2016-11-26 02:52:49 -05:00
Ludovic Marcotte d2e03386d2 (fix) use GMT + adjust bias when querying Exchange's FB info 2016-11-25 15:14:24 -05:00
Francis Lachapelle 35a3a8ef1d Update ChangeLog 2016-11-25 10:57:26 -05:00
Francis Lachapelle 309846c894 (js/css) Update generated files 2016-11-25 10:52:36 -05:00
Francis Lachapelle f84d0e5f30 Preparation for release 3.2.3 2016-11-25 10:45:07 -05:00
InverseBot 9bb22bd67a (js/css) Update generated files 2016-11-25 02:43:18 -05:00
Francis Lachapelle dc7cb6792a (js) Improve alarms dialog
Fixes #3909
2016-11-24 19:14:02 -05:00
Ludovic Marcotte a76f8dca04 Updated NEWS 2016-11-24 16:07:47 -05:00
Ludovic Marcotte 06e92bbde5 Updated NEWS 2016-11-24 15:54:34 -05:00
Ludovic Marcotte 022c4bac98 (fix) wrong check for delete permission 2016-11-24 15:49:10 -05:00
Ludovic Marcotte 0e82802082 (fix) also filter out recurrence-id 2016-11-24 15:43:37 -05:00
Francis Lachapelle 0a4fa9aada (css) Update default theme 2016-11-24 15:09:59 -05:00
Ludovic Marcotte 71ca4a7b47 (fix) don't check Dovecot conditions if we're using IMAP annotations 2016-11-24 11:39:05 -05:00
Francis Lachapelle 2878665af4 Merge pull request #227 from andryyy/patch-5
Update SOGoACLGermanModificationAdvisory.wox
2016-11-24 06:34:27 -05:00
Francis Lachapelle 9f5a6707bb Merge pull request #226 from andryyy/patch-4
Update SOGoACLGermanRemovalAdvisory.wox
2016-11-24 06:33:52 -05:00
InverseBot 0e07844108 (js/css) Update generated files 2016-11-24 03:11:27 -05:00
André Peters 7c9d8b19b9 Update SOGoACLGermanModificationAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Pers&#246;nlicher Kalender".
2016-11-24 08:50:43 +01:00
André Peters 1f9ef6fea7 Update SOGoACLGermanRemovalAdvisory.wox
Fix umlauts in messages like "... Zugang zu seinem Order "Pers&#246;nlicher Kalender".
2016-11-24 08:50:42 +01:00
Ludovic Marcotte 836fdb1722 (feat) added photo support for LDAP-based address books 2016-11-23 16:30:41 -05:00
Francis Lachapelle cb960fae02 Restore attributes of base64-encoded img tags
Fixes #3814
2016-11-23 14:57:24 -05:00
Francis Lachapelle b8df16cd8c Improve SOGoDefaults.plist to avoid warning 2016-11-23 14:52:10 -05:00
Francis Lachapelle 84e591cdb9 (js) Update CKEditor to version 4.6.0 2016-11-23 13:57:49 -05:00
Francis Lachapelle daf3898674 Update ChangeLog 2016-11-23 11:34:37 -05:00
Francis Lachapelle 1d7af945da (js/css) Update generated files 2016-11-23 11:30:05 -05:00
Francis Lachapelle 5223fa9171 Preparation for release 3.2.2 2016-11-23 11:26:46 -05:00
Francis Lachapelle 3137e4cdbb Respect mailbox administration rights of user 2016-11-23 11:16:13 -05:00
Francis Lachapelle 85f842fbaf (i18n) Update translations 2016-11-23 10:01:15 -05:00
Francis Lachapelle 33e8169955 Formatting of SOGoDefaults.plist 2016-11-23 09:13:52 -05:00
InverseBot 3bbc625564 (js/css) Update generated files 2016-11-23 02:19:41 -05:00
Francis Lachapelle 8f805c97d9 (doc) Modification to counter bug with asciidoctor 2016-11-22 14:42:20 -05:00
Francis Lachapelle 5211e339fb (js,html) Use md-switch in Calendars list 2016-11-22 09:57:39 -05:00
Francis Lachapelle badab13cec (css) Improve folder subscription dialog 2016-11-22 09:56:55 -05:00
InverseBot 79a493b1ae (js/css) Update generated files 2016-11-22 02:03:25 -05:00
Francis Lachapelle 99b00254c5 (js) Persistent state of center list in Calendars
Fixes #3861
2016-11-21 16:24:54 -05:00
Francis Lachapelle 909b18bddf (js) More precaution in mail composer 2016-11-21 14:02:16 -05:00
InverseBot ac94c21e2a (js/css) Update generated files 2016-11-21 10:55:17 -05:00
Ludovic Marcotte f7c4486370 (feat) relaxed permission requirements for subscription synchronizations (fixes #3118 and #3180) 2016-11-21 10:46:13 -05:00
Francis Lachapelle 961b2226f0 (js) Disable submit button while saving a contact 2016-11-21 10:43:45 -05:00
Francis Lachapelle d032945bb4 Code cleanup in UIxMailFolderActions.m 2016-11-21 10:43:45 -05:00
Ludovic Marcotte b34f38f7fc (feat) added content "touching" capability (for developers) 2016-11-21 09:57:58 -05:00
Francis Lachapelle a09e6dee06 Merge pull request #225 from andryyy/patch-3
Disable auto-correct on iOS for username
2016-11-20 16:45:41 -05:00
André Peters 56c9f9d288 Disable auto-correct on iOS for username 2016-11-20 11:16:29 +01:00
InverseBot b425632318 (js/css) Update generated files 2016-11-18 01:22:20 -05:00
Francis Lachapelle ceb626638e (js) Improve tooltips of calendars list (sidenav) 2016-11-17 15:52:21 -05:00
Francis Lachapelle 40fc4bd231 (js) Improve sgAvatarImage (cont'd) 2016-11-17 15:47:06 -05:00
Francis Lachapelle 2f69c018be (css,js) Update md to v1.1.1-master-d774b76 2016-11-17 15:42:14 -05:00
Francis Lachapelle de209f5b95 (css) Fix display of top toolbar on Safari for iOS 2016-11-17 14:48:45 -05:00
InverseBot 9e6825e741 (js/css) Update generated files 2016-11-17 12:39:05 -05:00
Francis Lachapelle 0705f8f365 (html) Can't export a calendar subscription 2016-11-17 12:09:57 -05:00
Francis Lachapelle baf1d44548 Fix support for SOGoSieveFolderEncoding defaults
Fixed the following bugs in the mail filter editor:

1. Sieve folder encoding not respecting the SOGoSieveFolderEncoding
system defaults;
2. Conditions are still displayed when rule affects all messages;
3. Missing custom mail labels to "flag with" action.
2016-11-17 09:41:15 -05:00
InverseBot 5f70555975 (js/css) Update generated files 2016-11-17 01:12:02 -05:00
Ludovic Marcotte e4213c0077 Updated NEWS 2016-11-15 14:24:03 -05:00
Ludovic Marcotte bf42f225cb (fix) fixed broken string initializations (fixes #3899) 2016-11-15 14:18:57 -05:00
Francis Lachapelle 8ad0432e89 (i18n) Add missing string on login page 2016-11-15 10:09:17 -05:00
InverseBot 5b119f73b6 (js/css) Update generated files 2016-11-15 01:20:01 -05:00
Francis Lachapelle efbf0cc5a5 Fix required rights to move a calendar component
Fixes #3889
2016-11-14 17:26:28 -05:00
InverseBot 8436b0c9af (js/css) Update generated files 2016-11-12 01:21:26 -05:00
Francis Lachapelle 3bbd61cfd2 (js) Improve sgAvatarImage 2016-11-11 16:46:55 -05:00
Francis Lachapelle 0a75f5c4f7 Use md-colors in Administration module 2016-11-11 15:44:41 -05:00
Ludovic Marcotte 5df85fa31a (fix) fixed method usage 2016-11-11 09:48:38 -05:00
Ludovic Marcotte c9e9bb19d8 (fix) fix EAS download of attachments on iOS 10 2016-11-11 08:33:50 -05:00
InverseBot 3558eb1964 (js/css) Update generated files 2016-11-11 01:17:46 -05:00
Francis Lachapelle 6e48734504 Allow to hide center column on large screens 2016-11-10 16:04:29 -05:00
Ludovic Marcotte 5b02685d2b (feat) added sha256-crypt and sha512-crypt support 2016-11-10 10:53:07 -05:00
Francis Lachapelle c42507dbe4 (js) Add basic range selection with shift key 2016-11-10 10:42:23 -05:00
Francis Lachapelle 5961117208 (js) Fix uploading same attachment after removal
Fixes #3876
2016-11-10 10:21:33 -05:00
Francis Lachapelle a78621add4 (css,html) Improve display of mailboxes list
(cont'd)
2016-11-10 09:42:28 -05:00
InverseBot 8be2b0d254 (js/css) Update generated files 2016-11-10 01:21:45 -05:00
Francis Lachapelle bafb082abf (js) Improve sg-ripple-click directive 2016-11-09 16:26:31 -05:00
Francis Lachapelle bc10e0983a Fix Sieve activation with vacation start date
Fixes #3885
2016-11-09 16:25:16 -05:00
Francis Lachapelle 839384f77e (js) Zoomable custom avatar in card view 2016-11-09 11:22:17 -05:00
Francis Lachapelle fecbd49541 (js) Fix creation of note on existing card
Fixes #3886
2016-11-09 10:37:28 -05:00
Francis Lachapelle c596bacccb (css,html) Improve display of mailboxes list 2016-11-09 10:18:12 -05:00
InverseBot 7f2dabc30c (js/css) Update generated files 2016-11-09 01:17:32 -05:00
Francis Lachapelle c98ebb5f44 Update time zones to version 2016i 2016-11-08 15:29:54 -05:00
Francis Lachapelle 62a3057633 (js, html) Fix IMAP folder subscriptions manager
Fixes #3865
2016-11-08 15:20:41 -05:00
Francis Lachapelle ea64046df2 Fix links to newly added addressbook 2016-11-08 12:24:56 -05:00
Francis Lachapelle 8e33794400 (js) Fix links to newly subscribed calendar 2016-11-08 11:44:10 -05:00
Francis Lachapelle de9e3ed0b3 (html) Fix list avatar in users folders search 2016-11-08 11:42:28 -05:00
Ludovic Marcotte bc98c31f9e Updated NEWS 2016-11-08 10:31:33 -05:00
Ludovic Marcotte 0cdc6c9cd7 (fix) we now always use utf8 when sending IMIP messages 2016-11-08 08:49:23 -05:00
InverseBot 6a759553e5 (js/css) Update generated files 2016-11-08 01:17:57 -05:00
Francis Lachapelle f4580c8920 (js) Fix computation of week number 2016-11-07 15:01:09 -05:00
Francis Lachapelle 4a6e53934b (js) Mark multiple messages as seen
Fixes #3873
2016-11-07 12:14:00 -05:00
InverseBot 836e2ee275 (js/css) Update generated files 2016-11-05 01:17:43 -04:00
Francis Lachapelle 168a2ddd18 Fix handling of weekly recurrence rule with count
This fixes some corner cases when computing the freebusy and therefore
when verifying for resource conflicts.
2016-11-04 16:44:14 -04:00
Francis Lachapelle c35e074842 (js) Mark form as dirty when removing an attendee 2016-11-04 14:37:23 -04:00
Francis Lachapelle 963e3f4587 Update NEWS file 2016-11-04 14:36:50 -04:00
Francis Lachapelle 7c02b4bf88 (js) Disable submit btn while saving event or task
Fixes #3880
2016-11-04 14:29:54 -04:00
Ludovic Marcotte fb7a83f44a (fix) don't update c_nextalarm in quick table for email alarms 2016-11-04 08:41:47 -04:00
InverseBot a45d8c68f8 (js/css) Update generated files 2016-11-04 01:06:39 -04:00
Ludovic Marcotte 3d36a6dd23 (fix) reverted change for display alarms 2016-11-03 16:17:27 -04:00
Francis Lachapelle aff6a8b7c9 Untabify + indent 2016-11-03 16:02:51 -04:00
Francis Lachapelle e6b129c8eb Fix condition in weekly recurrence calculator 2016-11-03 15:26:38 -04:00
Ludovic Marcotte 70f5d748f2 Updated NEWS 2016-11-03 13:51:44 -04:00
Ludovic Marcotte 70b3ff4b5c (feat) we now also search on the send for EAS Search ops 2016-11-03 13:50:03 -04:00
Francis Lachapelle 21dd03eb81 (js) Improve reset of a reccurent component 2016-11-03 11:48:48 -04:00
Francis Lachapelle 57a4286cd5 Set default relation to START in alarm description 2016-11-03 11:48:17 -04:00
Francis Lachapelle c02c4aa834 Avoid mail notifications on superfluous changes
(cont'd)

Fixes #3790
2016-11-03 11:47:21 -04:00
InverseBot 42597abf8d (js/css) Update generated files 2016-11-03 01:17:54 -04:00
Ludovic Marcotte 78045b14be (feat) first pass at support for recurring events/tasks email alarms (fixes #1053) 2016-11-02 18:16:45 -04:00
Francis Lachapelle 8cadf5cbbd (js) Fix mail settings persistence of sorting 2016-11-02 15:11:01 -04:00
Francis Lachapelle 0a515d66bd Update ChangeLog 2016-11-02 12:29:35 -04:00
Francis Lachapelle 79d48dfc7c Preparation for release 3.2.1 2016-11-02 12:29:13 -04:00
Francis Lachapelle 7704b2c3cc (js/css) Update generated files 2016-11-02 12:25:47 -04:00
Francis Lachapelle 17e65da618 (js) Add CKEditor pastefromexcel plugin
Fixes #3854
2016-11-02 12:19:00 -04:00
Francis Lachapelle fd57625c54 Update comment 2016-11-02 12:02:57 -04:00
Francis Lachapelle 45c6c537f5 (html) Respect SOGoSearchMinimumWordLength 2016-11-02 12:01:22 -04:00
Francis Lachapelle 9fd42fdaa9 Update time zones to version 2016h 2016-11-02 11:59:21 -04:00
Francis Lachapelle 4179c88fa4 (i18n) Update translations 2016-11-02 11:30:57 -04:00
InverseBot 1aa2702a24 (js/css) Update generated files 2016-11-02 01:17:20 -04:00
Francis Lachapelle 81ff9e7f04 (css,js) Update md to v1.1.1-master-70cecda 2016-11-01 15:54:56 -04:00
Francis Lachapelle 651a1c3910 Avoid mail notifications on superfluous changes
Fixes #3790
2016-11-01 15:26:59 -04:00
Francis Lachapelle 1ee7693432 Fix support for recurrent tasks (cont'd)
Fixes #3864
2016-11-01 14:52:18 -04:00
Ludovic Marcotte 188dd986d2 (fix) cosmetic changes 2016-11-01 14:20:59 -04:00
Francis Lachapelle 1c689719ac (html) Add missing options to subscribed calendars
Fixes #3863
2016-11-01 12:09:08 -04:00
Francis Lachapelle 613d21b0c5 (i18n) Update translations 2016-11-01 12:06:15 -04:00
Francis Lachapelle 0e0f53cd98 Allow a mailbox to be deleted immediately
Fixes #3875
2016-11-01 11:40:59 -04:00
Francis Lachapelle 5c7147cccc (js) Restore immediate deletion of messages 2016-11-01 10:35:00 -04:00
Francis Lachapelle 67f566ec9d Minor cleanup to event/task editors 2016-11-01 09:27:16 -04:00
InverseBot 89fdbeee6b (js/css) Update generated files 2016-11-01 01:20:13 -04:00
Francis Lachapelle 1ccf5e369f (js) Move "ACLs saved" toast of admin to bottom 2016-10-31 15:19:03 -04:00
Francis Lachapelle 0b99dbfc99 Fix SOGoLoginModule when set to "Last used" 2016-10-31 15:19:03 -04:00
Ludovic Marcotte 067934026b Updated NEWS 2016-10-31 10:25:43 -04:00
Ludovic Marcotte 6200a5dbd7 (fix) support replied/forwarded flags using EAS (fixes #3796) 2016-10-31 10:24:16 -04:00
Ludovic Marcotte 90fcd572c3 (feat) initial support for EAS recurring tasks 2016-10-31 10:22:27 -04:00
InverseBot 5e27437b25 (js/css) Update generated files 2016-10-31 01:18:28 -04:00
InverseBot 81db98784b (js/css) Update generated files 2016-10-29 01:16:28 -04:00
Francis Lachapelle 5208e46d10 (js) Fix Resource conflict error handling 2016-10-28 11:47:40 -04:00
InverseBot f25c26b7bd (js/css) Update generated files 2016-10-27 01:17:26 -04:00
Francis Lachapelle ad5fc5b91f Add missing options to subscribed addressbooks
Fixes #3850
2016-10-26 17:27:25 -04:00
Francis Lachapelle 7310834ac6 (js) Fix auto-completion of list members
Fixes #3870
2016-10-26 15:48:40 -04:00
Francis Lachapelle 1d09a980da (js) Add minimumSearchLength to sgSettings value 2016-10-26 15:44:43 -04:00
Francis Lachapelle b44bf86164 Improve validation of mail account delegators 2016-10-26 15:42:50 -04:00
Francis Lachapelle 65a653ac0c (i18n) Update translations 2016-10-26 08:27:44 -04:00
InverseBot a30a4c34ba (js/css) Update generated files 2016-10-26 01:15:49 -04:00
Francis Lachapelle 3095bdb86c Cleanup UIxCalDayTable.wox 2016-10-25 17:34:21 -04:00
Francis Lachapelle 79a34f1e36 (js) Update sg-timepicker following md changes 2016-10-25 17:34:21 -04:00
Francis Lachapelle 524a481340 (js) Cleanup sg-search directive 2016-10-25 17:34:20 -04:00
Ludovic Marcotte 2949bef902 (fix) make sure consider non-void GUID 2016-10-25 11:18:49 -04:00
Francis Lachapelle c709b9c04b (js) Fix initialization of a new Card's note 2016-10-25 09:27:57 -04:00
Francis Lachapelle 4d0dcc4978 Fix support for recurrent tasks 2016-10-24 16:31:59 -04:00
Francis Lachapelle d779657fdf Fix tasks sorting by priority 2016-10-24 09:32:52 -04:00
InverseBot 0cbf5cca8d (js/css) Update generated files 2016-10-22 01:18:34 -04:00
Francis Lachapelle 36c5f72317 Fix some unlocalized strings
Fixes #3858
2016-10-21 10:55:59 -04:00
Francis Lachapelle 24e4c60baa Improve Preferences module and Mail account editor 2016-10-21 10:49:09 -04:00
Francis Lachapelle 6d695e813b (js) Fix addContactCategory of Preferences ctrl
Fixes #3859
2016-10-21 08:59:04 -04:00
InverseBot 8eebf6be00 (js/css) Update generated files 2016-10-21 01:58:06 -04:00
Francis Lachapelle 9ee271c278 (js) Improve toast of event alarm 2016-10-20 21:40:45 -04:00
Francis Lachapelle b301c5ec4c (js) Improve sg-ripple-click directive 2016-10-20 21:15:50 -04:00
Francis Lachapelle f326ca5ae5 Fix saving the note of a card
Fixes #3849
2016-10-20 18:28:58 -04:00
Francis Lachapelle 03661eef9e (js) Improve initialization of "vacation" dates 2016-10-20 18:08:32 -04:00
Ludovic Marcotte e6b1589e5f (fix) make sure we unencode @ signs before storing them in the ACL table 2016-10-20 10:27:26 -04:00
InverseBot c703a00659 (js/css) Update generated files 2016-10-20 01:17:32 -04:00
Francis Lachapelle 58ee225e6b (js) Improve dates constraints of vacation reply
Fixes #3841
2016-10-19 16:14:27 -04:00
Ludovic Marcotte 7ef245edc3 Updated NEWS file 2016-10-19 15:17:13 -04:00
Ludovic Marcotte 85ad17ad36 (fix) We never send IMIP reply when the "initiator" is Outlook 2013/2016 over 2016-10-19 15:13:28 -04:00
Ludovic Marcotte c1c2b3e849 (fix) only show the organizer field of an IMIP REPLY if one is defined 2016-10-19 10:08:34 -04:00
Ludovic Marcotte 6a47b61800 Fixed broken commits
d491a3fa49 and bda3be1c2d
2016-10-19 10:06:19 -04:00
InverseBot c57ffb4268 (js/css) Update generated files 2016-10-19 01:19:20 -04:00
Ludovic Marcotte d491a3fa49 (fix) more fixes with sogo-tool manage-eas + single store mode 2016-10-18 19:43:49 -04:00
Ludovic Marcotte bda3be1c2d (fix) improve handling of email folders without a parent 2016-10-18 11:22:22 -04:00
Ludovic Marcotte 21896929ad Updated NEWS 2016-10-18 11:19:39 -04:00
Ludovic Marcotte 1b63068b6c (fix) make sogo-tool manageeas work with single instance store 2016-10-18 11:18:44 -04:00
Francis Lachapelle 6f14696e0a (js) Improve dates constraints of vacation reply
Fixes #3846
2016-10-18 09:22:32 -04:00
InverseBot 6454cdb95f (js/css) Update generated files 2016-10-18 01:17:31 -04:00
Francis Lachapelle f902b90348 Fix vCard generation for tags with no type
Fixes #3826
2016-10-17 16:36:21 -04:00
Francis Lachapelle 1c0c7ab256 (js) Improve hotkeys cheat sheet
Add mapping for '*' character code and remove hotkeys from cheat sheet
when no callback is registered.
2016-10-17 15:38:13 -04:00
Francis Lachapelle 9a050620f0 (js) New hotkeys for message controller
Fixes #3834
2016-10-17 15:37:40 -04:00
Francis Lachapelle aa124d3273 (js) Improve ckEditor directive
Fixes #3839
2016-10-17 13:44:16 -04:00
Francis Lachapelle 37089e15c1 (html) Fix progress indicators of import dialogs 2016-10-17 12:06:13 -04:00
Ludovic Marcotte 069ea4142e Updated NEWS 2016-10-17 11:41:45 -04:00
Ludovic Marcotte b40d5e24d1 (fix) only consider SMTP proxyAddresses for AD (fixes #3842) 2016-10-17 11:41:07 -04:00
Ludovic Marcotte 8d6e0342ec (fix) improve memory usage when importing very large address books 2016-10-17 08:54:24 -04:00
InverseBot 984677796c (js/css) Update generated files 2016-10-16 01:57:59 -04:00
Francis Lachapelle 3e501be5a9 (js) Respect SearchMinWordLength in list editor
More precisely, the domain default is named SOGoSearchMinimumWordLength.
2016-10-14 16:35:57 -04:00
Francis Lachapelle 56283668d0 (js) Add constraints to dates of vacation reply
Fixes #3841
2016-10-14 11:49:23 -04:00
InverseBot fd55403ebd (js/css) Update generated files 2016-10-13 01:15:56 -04:00
Francis Lachapelle c50c3763b1 (js) Add automatic refresh of calendar view
We were only refreshing the selected component list, we now also refresh
the calendar view.
2016-10-12 11:01:59 -04:00
InverseBot e20d2281db (js/css) Update generated files 2016-10-12 02:08:16 -04:00
Francis Lachapelle 0f1eeae7bb (js) Update Angular to branch 1.5.x 2016-10-11 09:56:00 -04:00
InverseBot 7aec556a51 (js/css) Update generated files 2016-10-11 01:15:42 -04:00
Francis Lachapelle 292432df12 Don't remove the "c_component" condition in search
This will fix a bug when we'll support recurrent tasks!
2016-10-07 12:19:19 -04:00
Francis Lachapelle c3d349e3c6 Fix tasks list when some weekdays are disabled 2016-10-07 12:08:40 -04:00
InverseBot 75326e0194 (js/css) Update generated files 2016-10-06 01:22:48 -04:00
Francis Lachapelle 84412cc538 Improve NSArray comparison in Contacts module 2016-10-05 15:38:54 -04:00
Francis Lachapelle 64434bbfad Fix sort by email with LDAP sources 2016-10-05 15:25:57 -04:00
InverseBot cc77f5aa16 (js/css) Update generated files 2016-10-04 00:22:40 -04:00
Francis Lachapelle 1a0ce5339c Fix condition in UIxPreferences.m 2016-10-03 12:36:57 -04:00
Francis Lachapelle 9a1e2804de Update ChangeLog 2016-10-03 11:54:49 -04:00
Francis Lachapelle 69c7102ee0 Preparation for release 3.2.0 2016-10-03 11:54:02 -04:00
Francis Lachapelle 2a59a117a2 (js/css) Update generated files 2016-10-03 11:53:23 -04:00
Francis Lachapelle 030dabdcb2 (i18n) Update translations 2016-10-03 11:47:57 -04:00
Francis Lachapelle 1bd4fe5010 (js) Add hotkey to search in contacts 2016-10-03 11:44:51 -04:00
Francis Lachapelle 5c8568f14e (js) Improve navigation with hotkeys in lists 2016-10-03 11:27:57 -04:00
Francis Lachapelle b4676ce439 Allow custom email to be one of the user's profile
Fixes #3551
2016-10-03 10:29:30 -04:00
Ludovic Marcotte f0a368e42c Updated NEWS 2016-10-03 09:08:42 -04:00
Ludovic Marcotte 23fa9c0ea1 (fix) fixed recurring events with timezones for EAS (fixes #3822) 2016-10-03 08:59:37 -04:00
InverseBot 92a81f8c1b (js/css) Update generated files 2016-10-01 01:19:55 -04:00
Francis Lachapelle a6b2202576 (js) Fix users list order of ACLs manager dialog 2016-09-30 12:26:43 -04:00
Francis Lachapelle f5cc2d7c27 (js) Cleanup call in contact view template 2016-09-30 12:24:47 -04:00
Francis Lachapelle 508550d677 Add ARIA label for mail accounts toggle buttons 2016-09-30 12:23:22 -04:00
Francis Lachapelle c845d021ea (js) Add hotkey to flag a message 2016-09-30 12:15:37 -04:00
Francis Lachapelle 268b8ea1c3 (js,html) Improve IMAP subscriptions manager 2016-09-30 12:02:46 -04:00
Francis Lachapelle f233b2a9a7 (css) Improve top navigation toolbar
This improves the tall toolbar of the preferences module and fixes a bug
with Firefox and the fab button of the preferences module.
2016-09-30 10:37:40 -04:00
Francis Lachapelle 9046bae712 (js) Remove resize grips to short events
Fixes #3771
2016-09-30 09:31:01 -04:00
InverseBot 4d7242bfc6 (js/css) Update generated files 2016-09-30 01:21:47 -04:00
Francis Lachapelle 66267b17f2 (js,css) Add sg-now-line directive 2016-09-29 15:59:39 -04:00
Francis Lachapelle 77e3d7ca0c (js) Improve hotkeys support 2016-09-29 13:40:36 -04:00
Ludovic Marcotte c80ee886b3 Updated NEWS 2016-09-29 13:01:47 -04:00
Ludovic Marcotte 5db9f40f6a (fix) make sure we don't sleep for too long when EAS processes need interruption 2016-09-29 13:00:48 -04:00
InverseBot c317ae964d (js/css) Update generated files 2016-09-29 02:05:49 -04:00
Francis Lachapelle aef0609032 (js) Improve hotkeys cheat sheet 2016-09-28 16:04:28 -04:00
Francis Lachapelle a299ed2f26 (js) Fix navigation in multicolumn day view 2016-09-28 14:47:10 -04:00
Francis Lachapelle ef21630441 (css) Improve hotkeys cheat sheet 2016-09-28 14:46:23 -04:00
Francis Lachapelle ee66383f09 (css,js) Update md to v1.1.1-master-1b9245a 2016-09-28 14:45:42 -04:00
Francis Lachapelle c1733221ba (js) Adapt Component ctrl to latest md changes
Fixes #3823
2016-09-28 14:39:18 -04:00
Francis Lachapelle 9623604aac (js) Don't allow hotkeys in md-chips 2016-09-28 14:38:59 -04:00
Francis Lachapelle 3d30345fb5 Update CKEditor to version 4.5.11 2016-09-28 14:29:34 -04:00
Francis Lachapelle af9e0f4853 (js) Adapt sgTransformOnBlur for latest md changes 2016-09-28 14:21:08 -04:00
Francis Lachapelle 5e76627641 Revert "(js) Drop sgTransformOnBlur directive"
This reverts commit 67258fe337.

Fixes #3815
2016-09-28 13:50:44 -04:00
Francis Lachapelle 3a61903e7f (js) Add sg-category-stylesheet directive
Fixes #3816
2016-09-28 12:03:11 -04:00
Francis Lachapelle f0a0da28ae Update NEWS file 2016-09-28 10:40:09 -04:00
Ludovic Marcotte b7abbeb045 (fix) fixed default TRANSP value when creating event 2016-09-28 10:28:43 -04:00
Francis Lachapelle c328ea1823 (i18n) Update translations 2016-09-28 09:29:55 -04:00
InverseBot 81643c1c60 (js/css) Update generated files 2016-09-28 02:06:13 -04:00
Ludovic Marcotte b55d5e9f54 Updated NEWS 2016-09-27 19:50:50 -04:00
Ludovic Marcotte 8ec73590d7 (fix) make sure new cards always have a UID (fixes #3819) 2016-09-27 19:49:58 -04:00
Ludovic Marcotte e4efff6bc1 Updated NEWS 2016-09-27 16:36:22 -04:00
Francis Lachapelle 57a735753f (js,css) Improve keyboard shortcuts
- Defined some hotkeys in all modules;
- Added generation of cheat sheet.
2016-09-27 16:16:09 -04:00
Ludovic Marcotte 13dd21bebb (fix) added sort by arrival date in Mail module (fixes #708) 2016-09-27 16:10:44 -04:00
InverseBot 008b38ab7d (js/css) Update generated files 2016-09-27 01:34:10 -04:00
Francis Lachapelle 44aa1352e4 Caching expiration of ACLs assigned to LDAP groups
Fixes #2867
2016-09-26 16:22:44 -04:00
Ludovic Marcotte 5cb85c4f4f Updated NEWS 2016-09-26 15:24:22 -04:00
Ludovic Marcotte c1326dc20e (fix) search in all domain sources for Apple Calendar and properly handle groups 2016-09-26 15:22:49 -04:00
Francis Lachapelle ae58c771b6 (js) Add Mailbox.prototype.$selectedMessageIndex 2016-09-26 09:52:54 -04:00
InverseBot 3c924e30ea (js/css) Update generated files 2016-09-26 01:31:36 -04:00
InverseBot bb3d24c696 (js/css) Update generated files 2016-09-24 01:27:07 -04:00
Francis Lachapelle a2e3807a3a (js) Initial support for keyboard shortcuts 2016-09-23 17:17:25 -04:00
Francis Lachapelle 93de7b9ab3 (js) Fix caching of user rights 2016-09-23 16:43:48 -04:00
Francis Lachapelle d81a663fd1 Update NEWS file 2016-09-23 15:19:54 -04:00
Ludovic Marcotte dde4fc829f Updated NEWS 2016-09-23 11:29:33 -04:00
Ludovic Marcotte 9bbffe48e4 (fix) handle 120 EAS status code when message submission fails (fixes #3774) 2016-09-23 11:28:15 -04:00
InverseBot 300a893957 (js/css) Update generated files 2016-09-23 01:45:40 -04:00
Francis Lachapelle 1c8f309c33 Automatically mark msg as read in Mail module 2016-09-22 16:08:59 -04:00
Francis Lachapelle 0c9a301f25 Automatically mark msg as read in Mail module
This avoids an extra XHR to the server.
2016-09-22 15:51:56 -04:00
Ludovic Marcotte fcd61abc41 (fix) added global search for Android 6 2016-09-22 14:22:44 -04:00
Ludovic Marcotte 56e8883a94 (fix) avoid generating invalid response if mail isn't found 2016-09-22 12:57:01 -04:00
Ludovic Marcotte a768620747 (fix) fixed EAS search for iOS devices 2016-09-22 12:54:37 -04:00
Ludovic Marcotte a9c29c65b3 (fix) compiler fixes + first round of iOS fixes 2016-09-22 11:42:28 -04:00
Francis Lachapelle 8bbfc4155b (doc) Improve installation guid 2016-09-22 11:27:25 -04:00
InverseBot 6a75834988 (js/css) Update generated files 2016-09-22 01:37:32 -04:00
Francis Lachapelle 0504769cd2 (js) Show event categories in month view
Fixes #3816
2016-09-21 15:08:10 -04:00
Francis Lachapelle 908c29d67c (js) Improve display of dragging ghost in Calendar 2016-09-21 15:04:09 -04:00
Ludovic Marcotte 1e2238534b Updated NEWS 2016-09-21 09:23:07 -04:00
Ludovic Marcotte 30bcae5acb (feat) initial EAS support for server-side mailbox search operations 2016-09-21 09:20:37 -04:00
Ludovic Marcotte 9d5c3a707a (fix) code cleanups 2016-09-21 09:16:43 -04:00
Francis Lachapelle ecfe532397 Merge pull request #220 from andryyy/patch-1
Update SOGoInstallationGuide.asciidoc
2016-09-21 08:40:54 -04:00
InverseBot ab3d59f5fc (js/css) Update generated files 2016-09-21 01:31:28 -04:00
Francis Lachapelle 98c9364712 (css,js) Update md to v1.1.1-master-72d0685 2016-09-20 14:17:12 -04:00
Francis Lachapelle b985d0770d (css,js) Disable dynamic theme when not debugging 2016-09-20 14:09:19 -04:00
Francis Lachapelle 2c4b11230c Merge pull request #221 from d--j/patch-1
Change active state of "Remember username" switch
2016-09-20 12:16:37 -04:00
Daniel Jagszent a402272f9d Change active state of "Remember username" switch
If you activate "Remember username" on the login screen the switch would have the same color as the background. This makes the active state of the switch not really visible.

This changes the theming of this switch to use the same color as the login button.
2016-09-20 17:44:17 +02:00
InverseBot 2b9cbb4696 (js/css) Update generated files 2016-09-20 01:17:46 -04:00
Francis Lachapelle d7b3a8176d Show user's name upon successful login (cont'd) 2016-09-16 15:51:21 -04:00
Francis Lachapelle 8bf452992e Fix Serbian translation 2016-09-15 06:21:09 -04:00
InverseBot 0856d56a70 (js/css) Update generated files 2016-09-15 02:10:43 -04:00
Ludovic Marcotte 42127c51ab (feat) added IMAP folders subscriptions management (fixes #255) 2016-09-14 15:57:49 -04:00
Francis Lachapelle 49d58b436e Fix Serbian translation 2016-09-14 13:28:22 -04:00
Francis Lachapelle 6d8f7c9a44 Add Serbian translation 2016-09-14 12:13:42 -04:00
Ludovic Marcotte a50c45ff12 Updated NEWS 2016-09-14 09:21:26 -04:00
Ludovic Marcotte 557936f7fd (fix) EAS yearly rrule generation + small EAS MoveItems fix 2016-09-14 09:19:30 -04:00
Ludovic Marcotte b626fbf178 Updated NEWS 2016-09-13 11:06:59 -04:00
Ludovic Marcotte 1a027134c5 (fix) handle binary just like 7 and 8bit 2016-09-13 11:03:04 -04:00
InverseBot 53e2a2dacc (js/css) Update generated files 2016-09-13 01:28:27 -04:00
Francis Lachapelle 4c23f21ae1 (js) Insert unseen msgs count in window's title 2016-09-12 16:11:35 -04:00
InverseBot 195d477149 (js/css) Update generated files 2016-09-08 01:27:37 -04:00
Francis Lachapelle 6dc2078c38 (js) Error handling when renaming a mailbox 2016-09-07 16:44:11 -04:00
Francis Lachapelle 2040706432 (js,css) Adapt time picker to latest md changes 2016-09-07 16:12:39 -04:00
André Peters ffc5a23e39 Update SOGoInstallationGuide.asciidoc
I tried adding a column `alias` to my view which contains a value that matches with the content of the column `mail`. AngularJS complains about a duplicate when it iterates through the array and fails.
It would be cool if Angular "cleans" the array and removes duplicates with some JS.
2016-09-07 12:51:01 +02:00
Francis Lachapelle 67258fe337 (js) Drop sgTransformOnBlur directive
The md-chips component has now the md-add-on-blur functionality.

See https://github.com/angular/material/issues/3364
2016-09-02 10:20:12 -04:00
Francis Lachapelle 1041d8f259 (css,js) Update md to v1.1.0-master-2b98560 2016-09-02 10:14:32 -04:00
InverseBot 42858b997c (js/css) Update generated files 2016-09-01 01:27:35 -04:00
Francis Lachapelle ab4118fb29 Show user's name upon successful login 2016-08-31 14:32:30 -04:00
Francis Lachapelle c2a0994aed Fix ripple blocking login form
Fixes #3808
2016-08-31 11:29:30 -04:00
Francis Lachapelle 89329a0c78 (css) Improve .sg-inset alignment 2016-08-31 11:22:55 -04:00
Francis Lachapelle 53f97af814 (css) Cleanup 2016-08-31 11:22:14 -04:00
Francis Lachapelle 015f389f7c (css) Improve display of attendees status icon 2016-08-31 11:19:36 -04:00
InverseBot 8486448843 (js/css) Update generated files 2016-08-31 01:23:11 -04:00
Francis Lachapelle ed7537d430 (html) Add missing ARIA labels 2016-08-30 17:49:17 -04:00
Francis Lachapelle 0c814e5050 (html) Optimize progress indicator in Contacts 2016-08-30 16:27:13 -04:00
Francis Lachapelle 81a124acc3 (html) Optimize ui-sref links of list members 2016-08-30 13:01:07 -04:00
Francis Lachapelle 7572098f01 (js) Fix links to members after editing list 2016-08-30 12:59:13 -04:00
Francis Lachapelle c31230ce19 (js) Disable Aria warnings when not debugging 2016-08-30 11:57:26 -04:00
Francis Lachapelle 098713537e Update Angular Material to version 1.1.0 2016-08-30 10:27:32 -04:00
Ludovic Marcotte 2cc388bb1f Updated NEWS file 2016-08-29 16:11:58 -04:00
Ludovic Marcotte 28ee04b68b (fix) make sure to escape email and all address fields 2016-08-29 15:01:47 -04:00
Francis Lachapelle 07c66563e8 Until date of repeat must end after first event 2016-08-29 14:06:46 -04:00
Ludovic Marcotte ce5cc6843e Updated NEWS file 2016-08-19 14:12:56 -04:00
Ludovic Marcotte d2f69077b7 (fix) properly generate the BusyStatus for normal events 2016-08-19 14:11:53 -04:00
Ludovic Marcotte 8b9ceb3273 (fix) allow multiple space-delimited addresses in the MailFieldNames column 2016-08-19 11:45:15 -04:00
Ludovic Marcotte 9eab774c5e (doc) updated regarding previous commit 2016-08-18 15:41:39 -04:00
Ludovic Marcotte 84e8ece31f Updated NEWS 2016-08-18 15:37:43 -04:00
Ludovic Marcotte 372158a3e9 (fix) strip protocol value from proxyAddresses (fixes #3182) 2016-08-18 15:34:13 -04:00
InverseBot 0d021724f7 (js/css) Update generated files 2016-08-13 02:25:20 -04:00
InverseBot 155d15e80c Merge branch 'master' of github.com:inverse-inc/sogo 2016-08-13 02:22:49 -04:00
Francis Lachapelle 287c57c994 Restore SOGoMailAddOutgoingAddresses functionality 2016-08-12 11:38:05 -04:00
Francis Lachapelle 3d281c2f39 (i18n) Update translations 2016-08-12 11:12:13 -04:00
InverseBot e4ef3f73cb (js/css) Update generated files 2016-08-12 06:31:04 -04:00
Francis Lachapelle 261a17c83b (js) Improve error handling in Preferences service 2016-08-11 12:00:29 -04:00
InverseBot cc4a4f1770 (js/css) Update generated files 2016-08-11 01:28:23 -04:00
Francis Lachapelle 01fe6f1d4b (i18n) Fix source string in Mail module 2016-08-10 14:23:34 -04:00
Francis Lachapelle e526d9e567 Update ChangeLog 2016-08-10 13:53:11 -04:00
Francis Lachapelle 503de64379 (js/css) Update generated files 2016-08-10 13:51:16 -04:00
Francis Lachapelle 0fd8c791c4 (i18n) Update translations 2016-08-10 13:48:39 -04:00
Francis Lachapelle 3cbe098b17 Preparation for release 3.1.5 2016-08-10 11:08:25 -04:00
Francis Lachapelle 746cb3e7dd (js) Update CKEditor to version 4.5.10 2016-08-10 11:08:24 -04:00
Ludovic Marcotte b58dc7a813 Fixed typo 2016-08-10 10:54:53 -04:00
Francis Lachapelle cf73eab325 Update postcss options to match angular material 2016-08-10 10:20:14 -04:00
Ludovic Marcotte 8be6c4d74d (fix) also purge repetitive events that have an old end date 2016-08-10 10:09:21 -04:00
Francis Lachapelle 4ffc291617 (doc) Update Developer's Guide 2016-08-10 10:00:16 -04:00
Francis Lachapelle 7b5cc03747 (css,js) Update md to v1.1.0-rc.5-master-2ddeb91 2016-08-10 09:59:31 -04:00
Francis Lachapelle 1cd6697b5b Cleanup API documentation 2016-08-10 09:53:03 -04:00
Francis Lachapelle 0d1f7a90ce (html) Cleanup 2016-08-10 09:52:28 -04:00
Francis Lachapelle ae89c397c9 (css) Adapt to latest md changes 2016-08-10 09:51:45 -04:00
Francis Lachapelle 6b54d6608d (css) Cleanup 2016-08-10 09:51:25 -04:00
Ludovic Marcotte db5b27cb89 (fix) minor improvement to SQL query 2016-08-10 09:47:49 -04:00
Ludovic Marcotte bc332bc980 Minor improvement over previous commit 2016-08-09 16:22:09 -04:00
Ludovic Marcotte eb9006e527 Updated NEWS 2016-08-09 16:19:27 -04:00
Ludovic Marcotte 0e2336cc4e (fix) check if the SENT-BY has access to organizer's calendar before modifying attendees' calendar (fixes #3759) 2016-08-09 16:17:17 -04:00
InverseBot e876c9d68e (js/css) Update generated files 2016-08-09 02:27:10 -04:00
Francis Lachapelle 0fee8ad691 (css) Improve sg-droppable-over for Firefox 2016-08-08 12:06:31 -04:00
Francis Lachapelle 4c9060abaa (css) Switch to md-scale for fab speed dials
.. until the "md-fling" effect gets fixed (speed dial is opened on
initialization).
2016-08-08 11:23:37 -04:00
Francis Lachapelle a6a43b989a (doc) Improve Installation Guide 2016-08-08 10:12:06 -04:00
InverseBot decfc0c49c (js/css) Update generated files 2016-08-06 01:40:24 -04:00
Francis Lachapelle 932ac03a4e (html) Improve size of event/task view dialogs 2016-08-05 16:18:40 -04:00
Francis Lachapelle 829c8fee68 (js) Don't block when copying/moving vLists 2016-08-05 16:15:25 -04:00
Francis Lachapelle 907024d2c4 (js) Drag'n'drop of cards in AddressBook module
Required to add the option to move multiple cards to another
addressbook. Fixed the possibility to copy cards to a subscribed
calendar.
2016-08-05 16:08:04 -04:00
Ludovic Marcotte e963981460 Updated NEWS 2016-08-05 14:56:02 -04:00
Ludovic Marcotte b7496a5d6b (fix) correctly calculate recurrence exceptions 2016-08-05 14:53:38 -04:00
Ludovic Marcotte d2b20c88c3 (fix) updated tests for 403 -> 409 2016-08-05 08:44:10 -04:00
InverseBot 53c0e34abe (js/css) Update generated files 2016-08-05 01:33:14 -04:00
Francis Lachapelle 5909810b1f Improve error handling of msg move/copy actions 2016-08-04 17:38:54 -04:00
Francis Lachapelle 84a2c70c87 (js) DnD of messages in the Mail module
Fixes #3497, #3586, #3734, #3788
2016-08-04 17:34:29 -04:00
Francis Lachapelle 1e26b3e61d (js) sgDraggable and sgDroppable directives 2016-08-04 16:50:14 -04:00
Francis Lachapelle fea6978b63 (js) Don't allow drag'n'drop of invitations 2016-08-04 14:26:51 -04:00
Francis Lachapelle 7f5e06c020 (html) Fix localization of event conflicts dialogs 2016-08-04 14:25:15 -04:00
Francis Lachapelle 23185273a6 (css) Cleanup transition of event DnD ghosts 2016-08-04 14:25:14 -04:00
Ludovic Marcotte 21e0cd8711 (fix) change 403 to 409 so Lightning doesn't fail silently 2016-08-04 14:13:00 -04:00
Ludovic Marcotte f03cdaf4b7 (fix) handle domain-less-login case with multi-domain on during backups 2016-08-04 12:53:20 -04:00
Ludovic Marcotte 38028e7b41 Updated NEWS for upcoming cherry-pick 2016-08-04 12:52:33 -04:00
InverseBot ef251e8206 (js/css) Update generated files 2016-08-03 01:23:21 -04:00
Francis Lachapelle 6ebf834729 (js) Progress indicator for event/task lists 2016-08-02 12:09:11 -04:00
Francis Lachapelle 8946880c84 (html) Improve layout of event & task editors 2016-08-02 11:20:38 -04:00
Francis Lachapelle 279dc5a513 Improve middle list of Calendar module
Fixes #3786
2016-08-02 11:19:07 -04:00
Francis Lachapelle 6426dc1206 (html) Fix display of event/task classification 2016-08-02 10:48:31 -04:00
Francis Lachapelle 25d420141f Localization 2016-08-02 10:44:08 -04:00
InverseBot 0d9ec64fa0 (js/css) Update generated files 2016-08-02 01:23:29 -04:00
Francis Lachapelle 6011b7aede (js) Fix card editor template
Fixes #3784
2016-08-01 16:01:28 -04:00
Francis Lachapelle 9d65d7c3a8 Support multiple descriptions from LDAP entries
Fixes #3750
2016-08-01 15:55:50 -04:00
Francis Lachapelle 6071375c29 (css) Fix printing of long mails
Fixes #3731
2016-08-01 14:19:16 -04:00
Francis Lachapelle 431db5495e (js) Improve sg-calendar-scroll-view directive 2016-08-01 12:13:12 -04:00
Francis Lachapelle 8389ec5f40 (js, css) Improve sg-ripple-click directive 2016-08-01 12:13:11 -04:00
Francis Lachapelle 0ec79e0411 (html,css) Use fab button on login page 2016-08-01 12:13:11 -04:00
InverseBot 54318a2432 (js/css) Update generated files 2016-07-30 01:24:31 -04:00
Francis Lachapelle c23a9f955a (html) Allow sorting the actions of a Sieve filter 2016-07-29 13:59:57 -04:00
InverseBot 1738ac87d8 (js/css) Update generated files 2016-07-28 01:24:11 -04:00
Francis Lachapelle 80338daf91 Expunge mailbox on specific actions
Current mailbox is now expunged when leaving the Mail module. The drafts
mailbox is also expunged when a message is sent.
2016-07-27 11:56:28 -04:00
InverseBot f1d2bcffc8 (js/css) Update generated files 2016-07-26 01:25:51 -04:00
Francis Lachapelle 197e237a66 (js) Fix avatar in autocompletion of contacts 2016-07-25 14:55:59 -04:00
Francis Lachapelle 6a608425f2 (html) Improve card editor layout 2016-07-25 14:41:42 -04:00
Francis Lachapelle d045f4a958 (css) Improve Sieve filter editor layout 2016-07-25 14:39:26 -04:00
Ludovic Marcotte 4ed1063296 Correctly get the collection/key IDs (fixes #3775) 2016-07-25 06:19:36 -04:00
InverseBot 63bdf77847 (js/css) Update generated files 2016-07-25 01:27:08 -04:00
InverseBot 83bffdc468 (js/css) Update generated files 2016-07-23 01:24:24 -04:00
Francis Lachapelle 106d8ba807 (css) Remove transition of event DnD ghosts 2016-07-22 11:35:18 -04:00
Francis Lachapelle f6a919f070 (js) Fix position of ghost block of new event
The position of the ghost block inside the scroll view was not correct
after having expanded the all-day events.
2016-07-22 11:28:58 -04:00
InverseBot cf856a64ad (js/css) Update generated files 2016-07-22 01:23:41 -04:00
Francis Lachapelle e804e5b7c0 (css) Fix breakpoints 2016-07-21 14:35:33 -04:00
Francis Lachapelle 5ad962d7b2 (css) Fix printing of long mails
Fixes #3731
2016-07-21 14:35:28 -04:00
Ludovic Marcotte aaa256f321 Updated NEWS file 2016-07-21 14:12:54 -04:00
Ludovic Marcotte 440acec143 Added EAS folder merge support and fixed long GUID issue (fixes #3460) 2016-07-21 14:06:11 -04:00
InverseBot 8dfe399c02 (js/css) Update generated files 2016-07-21 01:27:23 -04:00
Francis Lachapelle 370631817d Update README 2016-07-20 14:24:58 -04:00
Francis Lachapelle 793be51d14 Restore auto-reply indicator in top toolbar 2016-07-20 14:24:15 -04:00
Francis Lachapelle 4a6bdffc5b Fix exception when moving tasks 2016-07-20 13:31:15 -04:00
Francis Lachapelle ffa1920122 (js) Reset multiple-selection mode after delete 2016-07-20 11:10:34 -04:00
Francis Lachapelle e742916084 (js) Improve check on undefined email of card 2016-07-20 11:10:33 -04:00
InverseBot 596f991460 (js/css) Update generated files 2016-07-20 01:32:01 -04:00
extrafu ef10920f57 Merge pull request #217 from imz/fix-unrecognized-selector
Fix the unrecognized selector exception in the fresh pieces of the EAS
2016-07-19 20:31:13 -04:00
Francis Lachapelle c9703c0f74 (js) Fix refresh after deleting card(s) 2016-07-19 16:31:48 -04:00
Francis Lachapelle 88a0dfdac3 (i18n) Add missing localization string 2016-07-19 15:40:04 -04:00
Francis Lachapelle f18a0373d8 (css) Fix overflow of login page 2016-07-19 15:20:21 -04:00
Ivan Zakharyaschev deaec0bd7b An attempt to fix the unrecognized selector exception (by writing the queries analoguously to the other ones) 2016-07-19 19:15:18 +03:00
InverseBot 0cf0c25399 (js/css) Update generated files 2016-07-16 01:28:33 -04:00
Francis Lachapelle 1a3fc0a1d2 (js) Notify on successful messages operations 2016-07-15 14:37:56 -04:00
Francis Lachapelle f9cebd975a Update NEWS file 2016-07-15 14:09:40 -04:00
Francis Lachapelle 6bbb56c386 (css,js) Improve progress feedback
This ads a "ripple" effect that blocks the context when login in or
sending a message. Generic enough to be used elsewhere.

Fixes #3765
2016-07-15 14:03:16 -04:00
InverseBot 0fe472b5e9 (js/css) Update generated files 2016-07-15 01:26:58 -04:00
Francis Lachapelle 3a2d01188c Improve Gruntfile.js 2016-07-14 16:13:56 -04:00
Francis Lachapelle 9abc6ab579 (css) Fix breakpoints 2016-07-14 15:57:50 -04:00
Francis Lachapelle 4f5de1b3a1 (js) Remove unused file 2016-07-14 15:50:41 -04:00
InverseBot 24c7c10992 (js/css) Update generated files 2016-07-13 01:28:16 -04:00
ethoms aea4ee72c9 Convert configure script shebang back to /bin/sh for cross-platform compatability (#215) 2016-07-12 14:49:17 -04:00
Francis Lachapelle a6ae11c2e0 Update ChangeLog 2016-07-12 12:47:53 -04:00
Francis Lachapelle e9926c9b7d (js/css) Update generated files 2016-07-12 12:46:51 -04:00
Francis Lachapelle a3181e1165 (i18n) Update translations 2016-07-12 12:45:51 -04:00
Francis Lachapelle 4150126db8 Preparation for release 3.1.4 2016-07-12 11:51:11 -04:00
Francis Lachapelle 1d8bfba3e2 (doc) Improve Developer's Guide 2016-07-12 11:48:43 -04:00
Francis Lachapelle 7e950896ba Update for latest md changes 2016-07-12 11:29:24 -04:00
Francis Lachapelle 8f382192ee (html) Add padding to address book preferences 2016-07-12 10:54:38 -04:00
InverseBot bc419202ee (js/css) Update generated files 2016-07-12 01:39:30 -04:00
Francis Lachapelle 080c4f27e6 (css) Fix mouse hover visual effect in Mail module 2016-07-11 14:19:15 -04:00
Francis Lachapelle 49dfbb0d9a (js) stage-1 tuning of sgColorPicker directive 2016-07-11 10:31:42 -04:00
Francis Lachapelle 9d2647d857 (css) Fix scrolling of all-day events
Fixes #3190
2016-07-11 10:19:31 -04:00
InverseBot d10a386fb0 (js/css) Update generated files 2016-07-09 01:27:42 -04:00
Francis Lachapelle 93e77d49e9 (js,css) Replace sortable library 2016-07-08 15:44:47 -04:00
Francis Lachapelle 61215792ab (css) Increase reflection effect of free events
Fixes #3192
2016-07-08 08:56:45 -04:00
Francis Lachapelle bfd3508949 Improve handling of mail delegates 2016-07-06 15:43:38 -04:00
InverseBot 0e8637ec9f (js/css) Update generated files 2016-07-06 01:26:01 -04:00
Ludovic Marcotte 749c77ce05 (fix) make sure to handle nil vs. NSNull values correctly 2016-07-05 22:25:01 -04:00
Francis Lachapelle 197123143b (i18n) Update translations 2016-07-05 21:30:33 -04:00
Francis Lachapelle ccc8f4cb9d (css) Fix minimalist skin of CKEditor in Firefox
See https://github.com/albatrossdigital/ckeditor-skin-minimalist/issues/2
2016-07-05 12:06:39 -04:00
Francis Lachapelle 200ab42ba8 Update Angular Material 2016-07-05 09:12:04 -04:00
Francis Lachapelle 1918bde4d0 (js,css) Style cancelled events in Calendar module 2016-07-05 09:08:51 -04:00
InverseBot 0d1ac2e6b3 (js/css) Update generated files 2016-07-05 01:38:02 -04:00
Francis Lachapelle cccdeee707 (js) Add batch operations in advanced search 2016-07-04 17:34:13 -04:00
Francis Lachapelle da0a099638 (js) Add date picker to navigate in Calendar view 2016-07-04 17:11:48 -04:00
Francis Lachapelle f7afab5f37 (font) Update Material Design icons to v2.2.3 2016-07-04 15:04:01 -04:00
Francis Lachapelle 6ba6dcbf09 (js) Fix mail editor when leaving dropping area 2016-07-04 12:31:57 -04:00
InverseBot ce6e321f2d (js/css) Update generated files 2016-07-03 01:27:55 -04:00
Ludovic Marcotte e29d14de96 (fix) handle missing IMAP folders from a hierarchy using EAS 2016-06-30 09:30:22 -04:00
Ludovic Marcotte 4bfb7ca0bf (fix) handle start date in OOF 2016-06-29 11:00:07 -04:00
Patrice Levesque 7a09bbf498 Remove unsupported Thunderbird versions from docs. 2016-06-28 13:14:45 -04:00
Ludovic Marcotte d47dcd1133 Updated NEWS + doc regarding OC changes 2016-06-28 10:31:20 -04:00
Ludovic Marcotte 4bc262503a Fixed missing file 2016-06-27 14:39:57 -04:00
Ludovic Marcotte 4a0f97c778 Updated NEWS 2016-06-27 14:20:58 -04:00
Ludovic Marcotte 323f5d03bf (feat) new sogo-tool truncate-calendar feature 2016-06-27 14:18:53 -04:00
Ludovic Marcotte 4e61a9d3fe Dropped sogo-tool check-doubles, it was useless. 2016-06-27 13:13:57 -04:00
InverseBot e8f7f6055b (js/css) Update generated files 2016-06-24 01:24:27 -04:00
Francis Lachapelle 13e826b6f2 (js) Add batch operations in advanced search 2016-06-23 16:05:05 -04:00
Ludovic Marcotte cf3a9b89b6 (fix) commented out bogus option for now 2016-06-23 14:35:48 -04:00
Patrice Levesque 74efb6a0b1 Fresher version numbers and slight reformulations. 2016-06-23 13:14:23 -04:00
Ludovic Marcotte 19f3a10397 Updated NEWS 2016-06-23 11:36:28 -04:00
Ludovic Marcotte 02459e1eb5 (feat) Initial OOF support in EAS 2016-06-23 11:34:50 -04:00
Ludovic Marcotte 546a71d9f4 Updated NEWS 2016-06-23 11:30:49 -04:00
Ludovic Marcotte 0089f1dfdc (fix) handle inline attachments using EAS 2016-06-23 11:29:02 -04:00
Ludovic Marcotte 7cf0aaa2f7 Updated NEWS 2016-06-23 11:22:15 -04:00
Ludovic Marcotte 3597c2eef1 (fix) handle base64 encoded EAS protocol version 2016-06-23 11:20:40 -04:00
Ludovic Marcotte 79ec4a02fe Updated NEWS 2016-06-23 11:09:16 -04:00
Ludovic Marcotte 030bdb4bc7 (fix) check if EAS identity is ok and use it (fixes #3698) 2016-06-23 11:07:29 -04:00
Francis Lachapelle fa91a07cb7 (css) Fix selection of transparent all-day events
Fixes #3744
2016-06-23 10:07:59 -04:00
Ludovic Marcotte e02b975bb5 Added missing files from OC changes 2016-06-23 09:05:44 -04:00
Ludovic Marcotte bd75eaf878 (fix) avoid showing debug info when not needed (fixes #3726) 2016-06-23 09:00:50 -04:00
Ludovic Marcotte 4a74f00adb (fix) integrated latest OC changes 2016-06-23 08:58:25 -04:00
InverseBot bd0ff6043c (js/css) Update generated files 2016-06-23 02:06:41 -04:00
Francis Lachapelle 1e458a922b Fix attachment filename with no extension 2016-06-22 16:35:05 -04:00
Francis Lachapelle bfab819a7e Update ChangeLog 2016-06-22 11:37:43 -04:00
Francis Lachapelle 4419a192c1 Preparation for release 3.1.3 2016-06-22 11:37:29 -04:00
Francis Lachapelle 0629d9ac62 (js/css) Update generated files 2016-06-22 11:36:36 -04:00
Francis Lachapelle 7d02dda18c (html) Indentation 2016-06-22 11:27:21 -04:00
Francis Lachapelle cd3e7426cc (css) Minify CSS using clean-css
https://github.com/jakubpawlowicz/clean-css
https://github.com/gruntjs/grunt-contrib-cssmin

Fixes #3714
2016-06-22 11:24:07 -04:00
Francis Lachapelle d8dc443fa9 (js) Cleanup unused functions 2016-06-22 11:12:02 -04:00
Francis Lachapelle 6e0c347f39 (css) Cleanup old rules 2016-06-22 11:12:01 -04:00
Francis Lachapelle 2638af1a8d (i18n) Update translations 2016-06-22 11:12:01 -04:00
Patrice Levesque 551405fac6 Comment out 'su' logrotate parameter
This parameter needs logrotate >= 3.8.0 which is too recent for
half our supported distributions and is not strictly necessary.
2016-06-22 09:30:59 -04:00
InverseBot 62b0dcc889 (js/css) Update generated files 2016-06-22 01:23:40 -04:00
Francis Lachapelle 3e0ba60c84 (font) Update Fira Sans to version 4.106 2016-06-21 21:42:08 -04:00
Francis Lachapelle dfc904f4f3 (js) Never query Gravatar.com when disabled 2016-06-21 21:29:44 -04:00
Francis Lachapelle 9dbb360ef7 (css) Improve input labels in event/task views 2016-06-21 21:05:00 -04:00
Ludovic Marcotte 1efeca72c5 (fix) fallback to email if no cn is found (should avoid displaying bogus chips) 2016-06-21 15:57:35 -04:00
Ludovic Marcotte b72b52f052 typo 2016-06-21 14:30:14 -04:00
InverseBot 083b770e41 (js/css) Update generated files 2016-06-21 01:12:39 -04:00
Francis Lachapelle 0462530fbd (css,js) Update md to v1.1.0-rc.5-master-8758488 2016-06-20 16:15:27 -04:00
Francis Lachapelle 66e1fbd556 Improve ACL editor 2016-06-20 16:11:05 -04:00
Francis Lachapelle 6b5571ea2c (js) Only select checkboxes in ACL editor 2016-06-20 16:11:05 -04:00
Francis Lachapelle 6538f6d047 (js) Fix user removal from ACLs in Admin module
Fixes #3713
2016-06-20 16:11:05 -04:00
Patrice Levesque 61381225d9 Loosen logrotate directives for custom deployments
Logrotate refuses to rotate logfiles if /var/log/sogo has permissive write
permissions, but sometimes that is needed, especially with setups involving
multiple SOGo installs running under different UNIX users.
2016-06-20 15:55:47 -04:00
Ludovic Marcotte 75dfebe9ae (feat) one-click option to give all permissions for user (fixes #1637) 2016-06-20 09:10:50 -04:00
InverseBot 5ee5ccd078 (js/css) Update generated files 2016-06-18 01:19:59 -04:00
Francis Lachapelle c5ada373c1 (js) Fetch calendar's links once created
Since "links to this calendar" are initialized when loading the page, we
need to query the server for the links of a newly created calendar.
2016-06-17 16:43:24 -04:00
Ludovic Marcotte 2caa6754cf (fix) show tooltips over long calendar/ab names (fixes #232) 2016-06-17 15:41:10 -04:00
Francis Lachapelle 8cc0b946e7 Fix handling of attendees when updating an event 2016-06-17 15:25:57 -04:00
Ludovic Marcotte 20001b7e14 Updated NEWS file 2016-06-17 14:34:48 -04:00
Ludovic Marcotte c8c8d12d1f (fix) fallback to email address if no CN is found (fixes #3733) 2016-06-17 14:28:03 -04:00
InverseBot d2b44b6b50 (js/css) Update generated files 2016-06-17 01:21:13 -04:00
Francis Lachapelle aeaa017406 (js) Improve Dialog.prompt 2016-06-16 16:33:39 -04:00
Francis Lachapelle af136eec6c (js) Fix autocompletion of LDAP-based groups
Fixes #3673
2016-06-16 16:21:24 -04:00
Francis Lachapelle 429aa1a91d Improve attendees display in event editor
Fixes #3730
2016-06-16 16:14:54 -04:00
Francis Lachapelle 734d680708 Fix SOGoLoginModule when set to "Last used" 2016-06-16 15:37:41 -04:00
Francis Lachapelle af8f939559 (js,css) Improve attendees editor
Fixes #3730
2016-06-16 14:46:05 -04:00
Francis Lachapelle 15188a4997 (css,js) Update md to v1.1.0-rc.5-master-42833aa 2016-06-16 10:52:30 -04:00
Francis Lachapelle 7305fb83f7 Fix Sieve integration test 2016-06-16 09:52:01 -04:00
extrafu 29672b57da Merge pull request #214 from roelvanmeer/fix-3621
Fix error when adding entry to LDAP address book [bug 3621]
2016-06-16 09:14:54 -04:00
Roel van Meer aadc1681bd Fix error when adding entry to LDAP address book [bug 3621] 2016-06-16 14:58:58 +02:00
Francis Lachapelle c1bbc1720d (doc) Cleanup installation guide 2016-06-15 16:23:17 -04:00
Francis Lachapelle d8fc40217d Specify a custom vacation subject
User can now specify a custom vacation subject. For Sieve servers
implementing the variables extension, one can write ${subject} to insert
the original subject in the auto reply.

SOGoDefaultVacationSubject is a new domain defaults parameter used when
the user doesn't specify a custom subject.

Fixes #685, #1447
2016-06-15 16:02:12 -04:00
Francis Lachapelle 49ed5bb462 Localization 2016-06-15 08:36:13 -04:00
Francis Lachapelle c69e84650d (js) Fix initialization of Card's screenname 2016-06-14 16:12:48 -04:00
Francis Lachapelle 85b764c179 (html,css) Improve forms
Improved pseudo-input and used md-inline-form
2016-06-14 16:11:12 -04:00
Francis Lachapelle 4744170628 Add a header and/or footer to the vacation message
Fixes #1961
2016-06-14 14:10:17 -04:00
Francis Lachapelle 7f4474f47c (js,css) Adapt time picker to latest md changes 2016-06-14 12:17:50 -04:00
Francis Lachapelle d9f499ff52 (css) Fix pseudo-input label size 2016-06-14 11:39:51 -04:00
Francis Lachapelle 35c0436bf6 (html) Add subheader in sidenav of Preferences 2016-06-14 10:54:28 -04:00
Francis Lachapelle e24ee771e2 Honor the domain defaults when creating an event
Initialize the editor with the value of
SOGoAppointmentSendEMailNotifications from the domain defaults.

Fixes #3729
2016-06-14 10:34:53 -04:00
Ludovic Marcotte ff65ba88ad (fix) properly terminate dictionary initialization 2016-06-14 08:31:37 -04:00
InverseBot 72731e84f1 (js/css) Update generated files 2016-06-14 01:55:45 -04:00
Ludovic Marcotte a3d64d05f6 (feat) now possible to set vacation message start date (fixes #3679) 2016-06-13 15:39:57 -04:00
extrafu 91bd493b82 Merge pull request #213 from inverse-inc/configure-patch
Fix builds in directory names containing spaces
2016-06-13 14:53:12 -04:00
Ludovic Marcotte 73c400c407 Updated NEWS 2016-06-13 14:21:08 -04:00
Ludovic Marcotte 9a32d82963 (fix) when restoring user's preferences, regenerate Sieve scripts (fixes #3029) 2016-06-13 14:19:43 -04:00
Ludovic Marcotte 5eb4557ac9 Updated NEWS 2016-06-13 13:16:40 -04:00
Ludovic Marcotte ae7fefb487 (feat) now possible to set a default Sieve filter (fixes #2949) 2016-06-13 13:16:12 -04:00
Francis Lachapelle 4f64994f7b Add missing delegators identities in mail editor
Fixes #3720
2016-06-13 10:44:49 -04:00
Francis Lachapelle d2869bed7f (js) Use a speed dial for event/task creation 2016-06-13 09:59:35 -04:00
extrafu e4c6b83c33 Merge pull request #211 from iredmail/patch-1
Supports multiple web domains in Apache.
2016-06-13 08:18:23 -04:00
InverseBot da5fa9e850 (js/css) Update generated files 2016-06-11 02:04:22 -04:00
Francis Lachapelle ff4e50d904 (js) Use a speed dial for card/list creation 2016-06-10 15:05:35 -04:00
Francis Lachapelle d9d8a72651 Fix time format when default is chosen 2016-06-10 14:26:34 -04:00
Francis Lachapelle 6c2052ab6f Always display month in week view
Fixes #3724
2016-06-10 14:06:41 -04:00
Francis Lachapelle 684c32ee95 (js) Fix sgTimePicker parsing of input field 2016-06-10 11:38:35 -04:00
Francis Lachapelle ccbce4fa1d (i18n) Update translations 2016-06-10 09:05:18 -04:00
Ludovic Marcotte c3bcfe0f07 Updated NEWS file 2016-06-10 08:41:16 -04:00
Ludovic Marcotte f607cb03c5 (fix) handle flattened timezone definitions (fixes #2690) 2016-06-10 08:30:06 -04:00
Francis Lachapelle 658cb956d9 Update NEWS file 2016-06-09 15:36:26 -04:00
Francis Lachapelle 7dbbd66640 Fix all-day events covering a timezone change
Fixes #3457
2016-06-09 15:30:12 -04:00
Patrice Levesque fa78566d72 Fix builds in directory names containing spaces
Prevent ./configure failure when run from a directory
such as "/home/bob/my own sogo directory/"
2016-06-09 15:17:14 -04:00
Ludovic Marcotte 0b1e7ad8e0 (fix) properly handle sorted/deleted calendars (fixes #3723) 2016-06-09 13:26:22 -04:00
Patrice Levesque d6d3e49158 Remove Makefile condition for test-uninitialized 2016-06-09 13:00:01 -04:00
Ludovic Marcotte ff711e60b2 (fix) avoid potential but unlikely mem leak 2016-06-09 10:42:28 -04:00
InverseBot 215f04667c (js/css) Update generated files 2016-06-09 01:22:57 -04:00
Francis Lachapelle 1db09de2a8 Escape HTML in raw source of Cards 2016-06-08 16:26:46 -04:00
Francis Lachapelle 64ce3c9c22 Escape HTML in raw source of events and tasks
Fixes #3718
2016-06-08 16:06:58 -04:00
Francis Lachapelle 97e6385f4c (js) Fix validation of Sieve filter editor 2016-06-08 15:21:36 -04:00
Francis Lachapelle 076b6b6ad5 (html) Fix generic avatar in lists
Fixes #3719
2016-06-08 14:03:18 -04:00
InverseBot 44d184b1cf (js/css) Update generated files 2016-06-08 01:21:25 -04:00
Francis Lachapelle 77ce13967c (js) Improve $scope.$watch 2016-06-07 11:08:06 -04:00
Francis Lachapelle cebd79a66e Add missing JS vendor lib to makefile 2016-06-07 10:47:13 -04:00
InverseBot 79085d6ddd (js/css) Update generated files 2016-06-07 10:31:29 -04:00
Francis Lachapelle bba673e0ef Fix negative offset when saving an all-day event 2016-06-07 10:09:25 -04:00
Francis Lachapelle c6f6f7896c Update ChangeLog 2016-06-06 16:12:32 -04:00
Francis Lachapelle a3989926e3 Preparation for release 3.1.2 2016-06-06 16:12:08 -04:00
Francis Lachapelle f753ed9680 (css,js) Update Angular Material to v1.1.0-rc.5 2016-06-06 16:11:03 -04:00
Francis Lachapelle e227ffa8d3 (js/css) Update generated files 2016-06-06 16:10:03 -04:00
Ludovic Marcotte f0f9ca9ff0 (fix) properly initialize values 2016-06-06 13:28:42 -04:00
Francis Lachapelle ec61fd10fc Fix negative offset when saving an all-day event
Fixes #3717
2016-06-06 13:29:00 -04:00
Ludovic Marcotte e54d5c1b06 (fix) skip potentially bogus cards coming from LDAP 2016-06-06 13:07:48 -04:00
extrafu b4a79db603 Merge pull request #212 from inverse-inc/conditional_compiler_flags
Do not force -frecord-gcc-switches flag
2016-06-06 11:13:31 -04:00
Patrice Levesque a69e99b4c8 Do not force -frecord-gcc-switches flag
The -frecord-gcc-switches flag does not exist for
GCC <= 4.3; hence only use it when available.
2016-06-06 11:03:32 -04:00
Francis Lachapelle 2a053400d7 (js) Fix loading of card from global addressbooks 2016-06-06 10:38:22 -04:00
Patrice Levesque 5983c5cf4d Fix sogo system user creation (extra)
Missing file in commit 9dcc25abc5
2016-06-06 10:33:49 -04:00
InverseBot e7114277fd (js/css) Update generated files 2016-06-04 01:13:42 -04:00
Wayne A. Ptaff 9dcc25abc5 Fix sogo system user creation 2016-06-03 10:35:40 -04:00
Francis Lachapelle 568e438069 (js) Add the "Paste from word" CKEditor plugin
Fixes #2295
Fixes #3313
2016-06-03 10:07:04 -04:00
Francis Lachapelle ab74ef0c41 (js) Fix event classification icon in month view
Fixes #3711
2016-06-03 09:15:47 -04:00
Francis Lachapelle 717bab718c (js) Fix user removal from ACLs in Admin module
Fixes #3713
2016-06-03 09:01:26 -04:00
Francis Lachapelle 8395a78f6d (js) Fix error handling when renaming a mailbox 2016-06-03 09:01:26 -04:00
Francis Lachapelle 8f417cb10b Update for latest md changes 2016-06-03 09:01:26 -04:00
Zhang Huangbin 93f0678a5e Supports multiple web domains in Apache.
Using "%(HTTP_HOST)e" will make default Apache config file support multiple web domains, no change required by sys admin.
2016-06-03 19:14:50 +08:00
extrafu 8225480029 Merge pull request #210 from inverse-inc/compiler_flags
Add -O2 compilation by default and -g debug info
2016-06-03 07:12:46 -04:00
InverseBot 12eb839d73 (js/css) Update generated files 2016-06-03 02:05:30 -04:00
Francis Lachapelle 87283acd86 Update ChangeLog 2016-06-02 13:24:06 -04:00
Francis Lachapelle d287024d37 (js/css) Update generated files 2016-06-02 13:23:07 -04:00
Francis Lachapelle d28625ae6a (css) Improve display of events in calendar views 2016-06-02 13:22:21 -04:00
Francis Lachapelle d03e03e3ea Update for latest md changes 2016-06-02 13:22:03 -04:00
Francis Lachapelle 9b9d214760 (js) Load CKEditor in Calendar module 2016-06-02 12:35:35 -04:00
Francis Lachapelle ff0c815c08 (js/css) Update generated files 2016-06-02 12:26:39 -04:00
Francis Lachapelle b6037e4842 Preparation for release 3.1.1 2016-06-02 12:23:22 -04:00
Patrice Levesque 04d12f52f8 Add -O2 compilation by default and -g debug info
Also store GCC command-line switches in the binaries for easier
debugging.
2016-06-02 11:37:19 -04:00
Francis Lachapelle 80d9463e86 (i18n) Update translations 2016-06-02 11:33:36 -04:00
Francis Lachapelle 6d8dc29f28 (js) Minor cleanup 2016-06-02 11:24:58 -04:00
Francis Lachapelle 6b2ae87010 (CKEditor) Add base64image and new translations 2016-06-02 11:20:09 -04:00
Francis Lachapelle fd8494be95 (js) Update CKEditor to version 4.5.9 2016-06-02 11:18:29 -04:00
InverseBot e7668e0ef2 (js/css) Update generated files 2016-06-02 00:03:12 -04:00
Francis Lachapelle 0a2b1c3b00 (i18n) Update translations 2016-06-01 22:37:40 -04:00
Francis Lachapelle bfda86e31c Fix recipients of reply message from Sent mailbox
Fixes #2625
2016-06-01 16:22:25 -04:00
Francis Lachapelle e07a5f75ec Force minimum number of chars in search of events
Respecting SOGoSearchMinimumWordLength
2016-06-01 15:08:50 -04:00
Francis Lachapelle b008e220fe (js) Fix error when visiting the Preferences 2016-06-01 14:00:41 -04:00
Ludovic Marcotte 99e8c42a87 (fix) more PEEK changes 2016-06-01 09:38:45 -04:00
Francis Lachapelle 59bf86fe86 Update NEWS file 2016-06-01 09:29:53 -04:00
Ludovic Marcotte 21054ea3d6 Updated NEWS file 2016-06-01 09:10:10 -04:00
Ludovic Marcotte 9a38db1667 (fix) use PEEK when fetching attachments using ItemOperations 2016-06-01 08:52:56 -04:00
InverseBot 74e639bf5d (js/css) Update generated files 2016-06-01 01:24:46 -04:00
Francis Lachapelle 5ab405efcc (js) Compose mail from attendee's email addresses 2016-05-31 21:56:10 -04:00
Francis Lachapelle b71fb2e525 Display messages sizes in list of Mail module 2016-05-31 15:40:45 -04:00
Francis Lachapelle c11839cd5e Improve handling of attachments names with quotes
Partially resolves #2272
2016-05-31 15:34:48 -04:00
Francis Lachapelle 1dca078c56 Improve handling of attachments names with quotes
Partially resolves #2272
2016-05-31 15:31:03 -04:00
Francis Lachapelle ac229bacf6 Improve Mail editor
Resolves #3705
2016-05-31 11:49:10 -04:00
Patrice Levesque 0d507ff038 Use table naming convention from the documentation 2016-05-31 11:36:33 -04:00
Francis Lachapelle 1b8bc408d1 Fix davacl test for secured content 2016-05-31 10:48:34 -04:00
InverseBot 98970712fd (js/css) Update generated files 2016-05-31 01:11:59 -04:00
Patrice Levesque 2e38215988 Add safeguard to optional SQL upgrade script.
Ensure nobody runs this by mistake, it can seriously break a SOGo installation.
2016-05-30 15:18:36 -04:00
Francis Lachapelle 5c2aedb3c9 (js) Show loading progress for messages and cards 2016-05-30 12:31:31 -04:00
Patrice Levesque c46a5f8df7 Ensure 'sogo' UNIX group exists at installation
Previous logic only checked for user existence.
2016-05-30 11:40:25 -04:00
Francis Lachapelle f623de931a (i18n) Update Hungarian translation 2016-05-30 10:20:55 -04:00
InverseBot d9b5728585 (js/css) Update generated files 2016-05-28 01:11:08 -04:00
Francis Lachapelle ec8dfdfd05 (css) Fix close button of card and msg viewers 2016-05-27 16:09:43 -04:00
Ludovic Marcotte 1ba8ba9e58 (fix) avoid crashing due to bogus URLs (GNUstep braindamage) 2016-05-27 15:29:33 -04:00
Francis Lachapelle f4d83bfa19 (js) Fix automatic expansion of mail account 2016-05-27 13:55:14 -04:00
Francis Lachapelle 45290c6414 Improve CSS sanitizer for HTML messages
At-rules are now completely removed. Fixed a possible issue where the
first rule would not be prefixed by our CSS selector.

Fixes #3700
2016-05-27 13:42:44 -04:00
Ludovic Marcotte 875a4aca32 (fix) improved previous commit for attributes stripping and UID generation (fixes #3695 and #3696) 2016-05-27 10:53:16 -04:00
InverseBot 604705960e (js/css) Update generated files 2016-05-27 01:23:53 -04:00
Francis Lachapelle ac33bb62d5 (css) Avoid outline on focus of message 2016-05-26 16:01:45 -04:00
Francis Lachapelle 06f596f821 (js) Collapsable mail accounts
Fixes #3493
2016-05-26 15:48:15 -04:00
Francis Lachapelle 4b29b5302e Sort languages list of SOGoDefaults.plist 2016-05-26 15:37:55 -04:00
Francis Lachapelle 8bee076135 Minor HTML improvements 2016-05-26 15:04:42 -04:00
Ludovic Marcotte 39ba7fc7f8 Updated NEWS 2016-05-26 14:43:29 -04:00
Ludovic Marcotte c9f63a7ce2 (fix) make sure to strip X- tags when securing content (#3695) 2016-05-26 14:42:13 -04:00
Francis Lachapelle 7c4b1b36cf (js) Fix restore of mailboxes expansion states 2016-05-26 11:18:36 -04:00
Francis Lachapelle d61a9d0b80 (css) Enlarge clickable zone in sidenav list 2016-05-26 11:04:36 -04:00
InverseBot 6ff125c679 (js/css) Update generated files 2016-05-26 01:24:01 -04:00
Francis Lachapelle a9ee261eff Allow disabling Gravatar
Resolves #3600
2016-05-25 16:07:40 -04:00
Francis Lachapelle 9fc22f2689 (js) Fix contact's nickname when composing msg
The nickname is wrapped with <em> tags when viewing the card but those
tags must not appear when composing a new message from one of the
contact's email addresses.
2016-05-25 11:33:25 -04:00
Francis Lachapelle c9346e4f24 (js) Fix display of email of search results 2016-05-25 10:52:04 -04:00
Francis Lachapelle fd4b09428f Expose all email addresses in autocompletion
This change is immediately applicable to LDAP-based system address
books. However, personal SQL-based address books must have their quick
tables recreated. To do so, one must use sogo-tool to backup and restore
the user's data.

Resolves #3443, #3526
2016-05-25 10:25:53 -04:00
InverseBot 6dc80e1159 (js/css) Update generated files 2016-05-25 01:25:39 -04:00
Francis Lachapelle 968a5bd5fb (i18n) Restore Catalan and Slovak translations
Fixes #3687
2016-05-24 12:11:08 -04:00
Francis Lachapelle d2a4ddd3df (js) Fix display of mailboxes list on mobile
Fixes #3654
2016-05-24 11:55:31 -04:00
Francis Lachapelle 0773dec6b8 (js) Fix event classification icon in days views 2016-05-24 11:07:04 -04:00
Francis Lachapelle e3a9ba910c (i18n) Update Turkish (Turkey) translation 2016-05-24 11:03:15 -04:00
Patrice Levesque 8225a4ccb0 Soft-ensure SOGo is started after MariaDB. 2016-05-24 10:29:33 -04:00
InverseBot 9f28872671 (js/css) Update generated files 2016-05-24 01:22:54 -04:00
InverseBot 0306aa07a9 (js/css) Update generated files 2016-05-23 01:25:22 -04:00
InverseBot 321b92fd15 (js/css) Update generated files 2016-05-22 01:22:32 -04:00
Ludovic Marcotte 0e57e3b571 (fix) enable SAML2 support on CentOS 7 2016-05-20 11:11:13 -04:00
Francis Lachapelle 0e2c6dc5cd Fix offset when converting event to all-day
Fixes #3655
2016-05-20 10:06:13 -04:00
InverseBot 03bbe63cdc (js/css) Update generated files 2016-05-20 01:23:51 -04:00
Francis Lachapelle ac13ef0005 (js) Fix month view when spawning six weeks
Fixes #3663
2016-05-19 17:24:47 -04:00
Francis Lachapelle cc28357553 (js) Fix autocompletion of LDAP-based groups
Fixes #3673
2016-05-19 16:34:42 -04:00
Francis Lachapelle fdc82913ef (js) Fix composition of new msgs from Contacts 2016-05-19 15:58:26 -04:00
Francis Lachapelle 35d549121d (js) Fix creation of chip on blur 2016-05-19 15:01:26 -04:00
Francis Lachapelle 0c02712b35 (doc) Update languages list 2016-05-19 10:04:01 -04:00
Francis Lachapelle 44696896f2 (css) Fix height of dense toolbar 2016-05-18 16:43:00 -04:00
Francis Lachapelle 335621ba42 Update ChangeLog 2016-05-18 16:09:54 -04:00
Francis Lachapelle 3ed32cc4c1 (js/css) Update generated files 2016-05-18 16:08:56 -04:00
Francis Lachapelle 9db6e2c411 (i18n) Update translations 2016-05-18 16:07:58 -04:00
Francis Lachapelle ee8f199603 Preparation for release 3.1.0 2016-05-18 16:02:39 -04:00
Francis Lachapelle d3fa7cb9c7 (css) Update Angular Material to v1.1.0-rc4 2016-05-18 15:56:03 -04:00
Francis Lachapelle 56a470314d (js) Fix breakpoints consistency 2016-05-18 15:32:46 -04:00
Francis Lachapelle abb26dfd22 (js) Fix breakpoints consistency 2016-05-18 14:48:53 -04:00
Francis Lachapelle ce1fb708a0 (js) Fix navigation in Mail advanced search mode 2016-05-18 14:47:33 -04:00
Francis Lachapelle 045013bc74 (js) Fix breakpoints consistency 2016-05-18 14:35:24 -04:00
Francis Lachapelle 33ca545f8b (js) Use minimized version of angular material 2016-05-18 11:09:02 -04:00
Francis Lachapelle 32ed6a14d5 (js) Directive to create chip on blur
Fixes #3470
2016-05-18 09:37:14 -04:00
Francis Lachapelle 7fe576f277 (js) Fix exception when no match in AB search 2016-05-18 08:31:43 -04:00
InverseBot 4b0fadbe22 (js/css) Update generated files 2016-05-18 02:10:53 -04:00
Francis Lachapelle 669eee301b (js) Different behaviour when deleting msg in xs 2016-05-17 16:39:12 -04:00
Francis Lachapelle 69c526eb67 (css) Improve expandable card 2016-05-17 16:35:47 -04:00
Francis Lachapelle ddbb05fd30 (css) Fix tooolbar of month view on xs media 2016-05-17 16:31:35 -04:00
Francis Lachapelle d17944091a Respect time locale in days views 2016-05-17 16:22:50 -04:00
Francis Lachapelle 87fbedb89d (css) Improve subheader with icon buttons 2016-05-17 15:10:09 -04:00
Francis Lachapelle 8c4d4e0e2d (js) Fix usage of the "export" reserved word 2016-05-17 14:31:31 -04:00
Ludovic Marcotte 00e0aa7ab4 Updated NEWS file 2016-05-17 11:28:04 -04:00
Ludovic Marcotte 877165f4ed (fix) safe guard against bogus tz offset definition 2016-05-17 11:19:33 -04:00
InverseBot 60f8641d27 (js/css) Update generated files 2016-05-17 02:14:49 -04:00
Francis Lachapelle bce14b0912 (js) Fix newMessage fcn in AddressBook service 2016-05-16 14:23:01 -04:00
Francis Lachapelle 7f867f9410 Add TurkishTurkey language to configure script 2016-05-16 13:53:47 -04:00
Francis Lachapelle bcff953726 Remove duplicated language 2016-05-16 13:48:30 -04:00
Francis Lachapelle c8f8b505cb Add Turkish (Turkey) translation 2016-05-16 13:28:12 -04:00
Francis Lachapelle 9375d756c6 (doc) Improve Installation Guide 2016-05-16 08:52:03 -04:00
Ludovic Marcotte 0aed09b517 (doc) documented XSRF support and disabled per default for now 2016-05-16 08:39:08 -04:00
extrafu 446531085b Merge pull request #208 from inverse-inc/mysql-utf8mb4-doc
(doc) Add MySQL complete Unicode compliance steps.
2016-05-15 13:57:26 -04:00
Wayne A. Ptaff 3ee3ae24b0 (doc) Add MySQL complete Unicode compliance steps. 2016-05-15 13:41:11 -04:00
Wayne A. Ptaff c14f6e56fe (doc) Fix non-ASCII quoting in configuration block. 2016-05-15 10:46:44 -04:00
InverseBot 0b062e1832 (js/css) Update generated files 2016-05-14 01:24:07 -04:00
Francis Lachapelle e396e29430 Fix handling of Web calendars
- handle Web calendars that require authentication;
- properly save the "reload on login" option;
- reload Web calendars when clicking on the reload button on top of the
  events/tasks list;
- properly activate the checkbox of new calendars (as they are enabled
  by default).

Fixes #3326
2016-05-13 15:50:24 -04:00
Ludovic Marcotte 199a5f5215 (fix) don't try to initialize location values when using single store mode 2016-05-13 11:14:28 -04:00
extrafu 32c6fa9757 Merge pull request #207 from inverse-inc/mysql-utf8mb4
Add MySQL utf8mb4-enabled database schema
2016-05-13 07:50:07 -04:00
Patrice Levesque 0bcfadc780 (doc) Add missing mention of two tables SOGo creates.
Which are sogo_quick_appointment and sogo_quick_contact.
2016-05-12 18:02:05 -04:00
Patrice Levesque 49a6d58a07 Add MySQL utf8mb4-enabled database schema
This alternative database schema can be used to enable complete Unicode coverage on SOGo with MySQL, under certain circumstances.
2016-05-12 17:34:19 -04:00
InverseBot ca53e4b225 (js/css) Update generated files 2016-05-12 01:22:01 -04:00
Francis Lachapelle 26c1f26881 (css) Improve month view of Calendar module 2016-05-11 13:49:41 -04:00
Francis Lachapelle 55367cdc97 (css) Improve custom contact chip 2016-05-11 13:37:29 -04:00
Ludovic Marcotte dc868e412e Updated NEWS file 2016-05-11 12:31:02 -04:00
Francis Lachapelle f4a95edc75 (js) Adjust icon height of sg-avatar-image 2016-05-11 12:26:36 -04:00
Francis Lachapelle cba3819e47 (html) Avoid dialog resize when creating new msg 2016-05-11 11:17:17 -04:00
Francis Lachapelle 2163aa99cf (html) Remove highlight color from unloaded msgs 2016-05-11 11:15:44 -04:00
Francis Lachapelle 92b180b1e3 (js) Fix new SOGoHelpURL usage 2016-05-11 11:04:10 -04:00
Francis Lachapelle eeff287e35 (html) Fix color flickering in topnav toolbar 2016-05-11 11:00:20 -04:00
Ludovic Marcotte b5b9d596f0 (fix) handle multi-value org units 2016-05-11 10:16:34 -04:00
Ludovic Marcotte a30d620502 (fix) avoid using for now the XSRF code for proxy-auth (fixes #3668) 2016-05-11 08:55:05 -04:00
InverseBot d802a7d5e4 (js/css) Update generated files 2016-05-11 01:22:36 -04:00
Francis Lachapelle 68381b31d8 (js) Create new message when opening a mailto link
Fixes #3588
2016-05-10 21:29:18 -04:00
Francis Lachapelle 42bdfbcf7b (js) Update raw source when editing a draft 2016-05-10 21:23:15 -04:00
Francis Lachapelle 315117b029 (js) Check for undefined message flags 2016-05-10 21:18:51 -04:00
Ludovic Marcotte 557797d634 (fix) don't use removeItemAtPath - it is not available on Precise 2016-05-10 15:51:32 -04:00
Francis Lachapelle a1e0f2767f Fix sender addresses of draft
The sender addresses select menu is now populated with the identities of
the selected account *only*. The chosen sender address is also restored
from the draft.

Fixes #3577
2016-05-10 14:41:24 -04:00
Francis Lachapelle 7d5255f762 Fix display of contextual menu of selected mailbox 2016-05-10 14:29:03 -04:00
Ludovic Marcotte 9acebbb6d5 Updated NEWS 2016-05-10 08:54:20 -04:00
Ludovic Marcotte ad67239cda (fix) fixed bogus headers generation when stripping folded bcc headers (fixes #3664) 2016-05-10 08:52:54 -04:00
InverseBot 9e82affac1 (js/css) Update generated files 2016-05-10 01:21:42 -04:00
Francis Lachapelle 8334c975e4 (js) Handle invalid dates in component editor 2016-05-09 15:53:19 -04:00
Francis Lachapelle 6aae6357c4 (js) Improve events display with many categories 2016-05-09 15:51:54 -04:00
Ludovic Marcotte 9ad983e0cb Updated NEWS 2016-05-09 15:15:47 -04:00
Ludovic Marcotte 29e0799b11 (fix) use uid and not always-nil login value at this point 2016-05-09 15:09:48 -04:00
Francis Lachapelle 8cf8ce86d7 (js) Improved input parsing of time picker
Fixes #3659
2016-05-09 14:48:22 -04:00
Francis Lachapelle d8ebd0bccf (js,css) Adapt time picker to latest md changes 2016-05-09 13:54:21 -04:00
InverseBot 4a0d4eb343 (js/css) Update generated files 2016-05-09 01:24:00 -04:00
InverseBot 554ae9ac32 (js/css) Update generated files 2016-05-07 01:22:18 -04:00
Francis Lachapelle 68799755be (js) Improve sgToggleGrid directive with ngModel
This allows a form to be set as "dirty" when a grid element is toggled.
2016-05-06 16:49:47 -04:00
Francis Lachapelle 8789db67b3 (js) Fix drag'n'drop in month view 2016-05-06 15:45:42 -04:00
Francis Lachapelle bf5bee87e6 Fix missing variable 2016-05-06 14:28:10 -04:00
Francis Lachapelle f2903db43c (js) Check for undefined priority in cmpt editor 2016-05-06 14:22:53 -04:00
Francis Lachapelle c5eeadf041 Allow user to choose which weekdays to display
Closes #1841
2016-05-06 14:22:52 -04:00
Ludovic Marcotte 3c6da09ff8 (fix) make sure we don't double-append domain part (fixes #3614) 2016-05-06 13:47:35 -04:00
Ludovic Marcotte 74602de1db (fix) make sure found tag is always defined 2016-05-06 08:14:37 -04:00
Ludovic Marcotte 8aa452539a (fix) improvement for #3518 2016-05-06 08:01:54 -04:00
InverseBot 7bd7272bd1 (js/css) Update generated files 2016-05-06 01:23:45 -04:00
Ludovic Marcotte d3ba62854c (fix) missing import 2016-05-05 08:24:26 -04:00
InverseBot 761029f5c5 (js/css) Update generated files 2016-05-05 01:22:49 -04:00
Ludovic Marcotte 4e3baf9813 NEWS file update for release prep 2016-05-04 15:52:38 -04:00
Ludovic Marcotte f3f1f6dcb4 (fix) XSRF supprot for all calendar operations 2016-05-04 14:52:06 -04:00
Ludovic Marcotte 5f2a862bc8 (fix) XSRF supprot for all contact operations 2016-05-04 14:15:18 -04:00
Ludovic Marcotte d4fc1775b2 (fix) code improvement for readability 2016-05-04 12:45:08 -04:00
Ludovic Marcotte de0540c784 (fix) completed the required modifications for XSRF in the mail module 2016-05-04 11:12:30 -04:00
Francis Lachapelle 993ff15e7f (fix) Load renamed ng-sortable JS library 2016-05-04 10:33:21 -04:00
Ludovic Marcotte e1ced4ac65 (fix) moved SOGoDirectAction from CommonUI to SOGoUI 2016-05-04 09:43:27 -04:00
Ludovic Marcotte 54b114712f Revert "(fix) we now load 'base products' before any other ones"
This reverts commit 3157fa022e.
2016-05-04 09:28:25 -04:00
Ludovic Marcotte 031e2d4836 Revert "(fix) missing import for SOGoDirectAction"
This reverts commit 924886e448.
2016-05-04 09:28:16 -04:00
InverseBot d5f7b3fe8e (js/css) Update generated files 2016-05-04 01:21:59 -04:00
Ludovic Marcotte 3157fa022e (fix) we now load 'base products' before any other ones 2016-05-03 20:31:45 -04:00
Ludovic Marcotte 924886e448 (fix) missing import for SOGoDirectAction 2016-05-03 19:20:25 -04:00
Francis Lachapelle 64ce63d812 (js) Add support for XSRF token with downloads
Initial support to download a file from an Ajax query. This allows the
XSRF token to be sent and verified by the server.
2016-05-03 12:57:36 -04:00
Ludovic Marcotte 7bf7a34a78 Fixed typo 2016-05-03 09:57:54 -04:00
Ludovic Marcotte 27eac2500b Updated NEWS file 2016-05-03 09:09:57 -04:00
Ludovic Marcotte bb34a22578 (fix) correctly write the content on disk before zipping it 2016-05-03 09:05:52 -04:00
InverseBot 8853bc4977 (js/css) Update generated files 2016-05-03 08:23:51 -04:00
Francis Lachapelle 03c7604f3e (fix) Rename ng-sortable directive file 2016-05-03 06:33:21 -04:00
Ludovic Marcotte 3212e978b3 (fix) handle correctly files being uploaded that are bigger than limit 2016-05-02 11:48:37 -04:00
Ludovic Marcotte ed15e13100 Updated NEWS file 2016-05-02 10:13:36 -04:00
Ludovic Marcotte 9255775ca1 (fix) don't mark calendar invitations as read when using EAS and fetching mesasges 2016-05-02 10:09:19 -04:00
Ludovic Marcotte cd89b46c01 (fix) correctly set flags when replying/forwarding emails using EAS 2016-05-02 09:42:39 -04:00
Francis Lachapelle 2a3a575e72 (js) angularFileUpload now requires ngCookies 2016-05-02 09:39:55 -04:00
Francis Lachapelle f190ad1c3c (js) Add support for XSRF token with file uploader 2016-05-02 09:34:43 -04:00
InverseBot 6c84a7b7cc (js/css) Update generated files 2016-04-30 01:22:41 -04:00
Francis Lachapelle b8dd73c32b Update guides for HTML generation 2016-04-29 15:48:22 -04:00
Francis Lachapelle ecf58246d7 (css) Fix overflow of all-day events 2016-04-29 10:52:44 -04:00
InverseBot d1c13da924 (js/css) Update generated files 2016-04-29 01:22:25 -04:00
Francis Lachapelle 965e01e36c (css,js) Update Angular Material to v1.1.0-rc4 2016-04-28 09:54:11 -04:00
InverseBot f2fc7abb25 (js/css) Update generated files 2016-04-28 01:24:57 -04:00
Francis Lachapelle 2963654800 (html,js) Reorder and filter calendars list 2016-04-27 15:48:31 -04:00
Francis Lachapelle 6cb513f30b New user setting to set calendars display order 2016-04-27 15:25:01 -04:00
Francis Lachapelle d19f1572ae (css) Remove CSS reset to respect HTML messages
Fixes #3582
2016-04-27 15:22:18 -04:00
Francis Lachapelle 5454690c38 (css) Fix menu visibility when printing an email
Fixes #3584
2016-04-27 11:18:59 -04:00
InverseBot 712e5dc2ef (js/css) Update generated files 2016-04-27 01:26:27 -04:00
Francis Lachapelle 48e58164f7 Improve settings cleanup when removing a calendar 2016-04-26 11:37:38 -04:00
Ludovic Marcotte 582baf2960 (feat) added AngularJS's XSRF support (#3246) 2016-04-26 11:07:22 -04:00
Francis Lachapelle 2da7a04bac (js) Integrate ngCookies 2016-04-26 10:59:13 -04:00
InverseBot ae2982e2bc (js/css) Update generated files 2016-04-26 01:24:56 -04:00
Francis Lachapelle 9ecb5b5690 (js) Integrate ngCookies 2016-04-25 15:33:40 -04:00
Francis Lachapelle 5e8f65738a (js) Integrate ngCookies 2016-04-25 15:16:49 -04:00
Ludovic Marcotte 42e73d5edf (fix) removed old code 2016-04-23 14:12:44 -04:00
Ludovic Marcotte 0f86d78f22 (fix) removed old code 2016-04-23 14:11:38 -04:00
InverseBot b0ab9ab1b8 (js/css) Update generated files 2016-04-23 01:25:39 -04:00
Francis Lachapelle 7ea3608dab Style transparent (not opaque) events
Fixes #3192
2016-04-22 12:22:02 -04:00
Francis Lachapelle 09d04984a5 (css) Force bg color of Calendar views to white 2016-04-22 12:13:07 -04:00
Francis Lachapelle 1a30df03c8 Style events depending on user participation state
Also use one-time binding for non-ghost events.
2016-04-22 10:55:26 -04:00
Francis Lachapelle 0bc7e5f5bd (css) Cleanup rules related to icons 2016-04-22 09:45:09 -04:00
InverseBot 267551cc41 (js/css) Update generated files 2016-04-21 17:57:08 -04:00
Francis Lachapelle 0b7485228c Display components priorities in list and views 2016-04-21 17:02:07 -04:00
Ludovic Marcotte 6e1369e6b1 (doc) improve the doc regarding non-alpha characters in password (fixes #1059) 2016-04-21 16:00:02 -04:00
Francis Lachapelle 9a4d3251a1 Return component's priority as an integer 2016-04-21 13:53:57 -04:00
Francis Lachapelle fba40c43d6 (css) Adapt to md changes and improve multi-select 2016-04-21 13:40:47 -04:00
Francis Lachapelle 6a139b81c1 (i18n) Update Croatian translation 2016-04-20 09:04:01 -04:00
InverseBot 0d11f93250 (js/css) Update generated files 2016-04-20 01:43:22 -04:00
InverseBot e08d915770 (js/css) Update generated files 2016-04-19 01:43:09 -04:00
InverseBot 4d5adab28b (js/css) Update generated files 2016-04-18 01:48:40 -04:00
InverseBot 2fcb11901b (js/css) Update generated files 2016-04-17 01:43:40 -04:00
InverseBot d84a8d143f (js/css) Update generated files 2016-04-16 01:43:22 -04:00
InverseBot 3ac6a1f810 (js/css) Update generated files 2016-04-15 01:44:33 -04:00
Ludovic Marcotte 1401aba041 Updated NEWS file 2016-04-14 15:24:28 -04:00
Ludovic Marcotte 4ec0615bcd (fix) encore CR for EAS (fixes #3626) 2016-04-14 15:21:49 -04:00
InverseBot 4d52b7d2b5 (js/css) Update generated files 2016-04-14 01:43:07 -04:00
InverseBot 8dca36097a (js/css) Update generated files 2016-04-13 11:27:16 -04:00
Patrice Levesque f36570fb90 Add missing EOF that got lost somewhere 2016-04-13 09:41:05 -04:00
InverseBot fed87ed818 (js/css) Update generated files 2016-04-13 01:18:56 -04:00
Ludovic Marcotte 5dad2b4d16 Fixed typo 2016-04-12 14:30:45 -04:00
Ludovic Marcotte 34eac1525e Updated NEWS 2016-04-12 13:20:09 -04:00
Ludovic Marcotte 2774878fa2 (fix) avoid double-appending domain in cache (fixes #3614) 2016-04-12 13:20:09 -04:00
Patrice Levesque 117af61609 Port two recent debian packaging commits to debian-multiarch
Add a post-install/upgrade note on DB schema upgrade.
commit 9d7a21883a

Make example scripts in documentation executable.
commit 1f029c9c70
2016-04-12 13:18:22 -04:00
Patrice Levesque 02bb9ba9d0 Wrap RequestHeader in conditional for safety.
Prevent breaking users' Apache configuration (and prevent frightening
error message) when mod_headers is not turned on at SOGo installation.
2016-04-12 13:04:50 -04:00
InverseBot 3b5e27a2c3 (js/css) Update generated files 2016-04-12 01:49:01 -04:00
extrafu c9fea41995 Merge pull request #206 from inverse-inc/upgrade-package-note
Add a post-install/upgrade note on DB schema upgrade.
2016-04-11 17:23:05 -04:00
Patrice Levesque 9d7a21883a Add a post-install/upgrade note on DB schema upgrade. 2016-04-11 17:07:47 -04:00
Ludovic Marcotte 1e8a565224 (fix) adjust offset datatype to avoid int overflows (fixes #3628) 2016-04-11 15:55:12 -04:00
Ludovic Marcotte adc227a7eb (fix) avoid broken redirects on sessions expiration 2016-04-11 14:53:17 -04:00
Patrice Levesque e88ce682f3 Make example scripts in documentation executable (RHEL).
Addresses bug #3053 at http://sogo.nu/bugs/view.php?id=3053
2016-04-11 14:23:02 -04:00
Patrice Levesque 1f029c9c70 Make example scripts in documentation executable.
Addresses bug #3053 at http://sogo.nu/bugs/view.php?id=3053
2016-04-11 11:30:23 -04:00
Ludovic Marcotte 5f46df39cd (fix) avoid going to far when checking logins if no login is defined 2016-04-11 10:18:55 -04:00
InverseBot 29f6ffb04c (js/css) Update generated files 2016-04-09 01:49:17 -04:00
Ludovic Marcotte aa6a102132 (fix) rename the start var to avoid potential SOPE confusion 2016-04-07 14:22:17 -04:00
Ludovic Marcotte 5d26175d56 (fix) don't escape \r 2016-04-07 09:27:57 -04:00
Ludovic Marcotte dd5b815cd3 Fixed typo 2016-04-06 16:08:40 -04:00
Ludovic Marcotte 2404f4bbfb (fix) avoid return search results on objects without read permissions (fixes #3619) 2016-04-06 16:05:03 -04:00
Ludovic Marcotte d027f59619 Updated NEWS file 2016-04-06 11:20:23 -04:00
Ludovic Marcotte 35d1cab856 (fix) properly XML escape wide characters (fixes #3616) 2016-04-06 11:19:18 -04:00
InverseBot 17ebfce2c7 (js/css) Update generated files 2016-04-06 11:10:02 -04:00
Ludovic Marcotte 0c6beb3fd7 (fix) properly escape the user's display name (fixes #3617) 2016-04-06 08:50:40 -04:00
Francis Lachapelle 59dadfd6a4 (html) Improve validation of preferences forms 2016-04-05 22:29:52 -04:00
Francis Lachapelle 42c780dd5d (html) Improve initial display of mailboxes 2016-04-05 22:10:38 -04:00
Francis Lachapelle bfd69d3f28 Improve handling of a contact's birthday
Fixes #3579
2016-04-05 22:03:52 -04:00
Francis Lachapelle af4aae2019 Move [iCalEntityObject+SOGo dateFromString:]
.. to CardElement+SOGo so it's also accessible from a NGVCard.
2016-04-05 21:57:09 -04:00
Ludovic Marcotte 66c429740f Updated NEWS file 2016-04-05 15:22:46 -04:00
Ludovic Marcotte 852d3db491 (fix) Make sure we escape the organizer name over EAS (fixes #3615) 2016-04-05 15:21:14 -04:00
Francis Lachapelle d697c34b6b grunt-cli should be only installed globally 2016-04-05 14:05:12 -04:00
InverseBot 665accb432 (js/css) Update generated files 2016-04-05 14:01:10 -04:00
Francis Lachapelle f4a537d811 (i18n) Update translations 2016-04-05 11:49:10 -04:00
Francis Lachapelle 3da59cbc7e (js) Fix saving of a custom weekly recurrence 2016-04-04 16:12:24 -04:00
Francis Lachapelle d4c58f4f23 (html) Fix mail accounts handling 2016-04-04 15:33:31 -04:00
Ludovic Marcotte 51d1830dd2 (fix) rename sig handler 2016-04-04 08:35:19 -04:00
Ludovic Marcotte 7ce7d1194a Updated NEWS 2016-04-04 08:30:47 -04:00
Ludovic Marcotte 0a417f4adb (fix) sanitize non-us-ascii 7bit emails 2016-04-04 08:21:15 -04:00
InverseBot a6e883c43b (js/css) Update generated files 2016-04-02 01:56:14 -04:00
Francis Lachapelle bd1fae0baf (css) Adapt to latest md changes 2016-04-01 16:05:55 -04:00
Francis Lachapelle 2844732b6f Add missing JavaScript lib to makefile 2016-04-01 15:12:18 -04:00
Ludovic Marcotte a304dec489 Updated NEWS 2016-04-01 14:54:58 -04:00
Ludovic Marcotte 80d29f2887 (fix) now cache heartbeat and folders during EAS ping ops (fixes #3606) 2016-04-01 14:52:31 -04:00
Francis Lachapelle f113f86c42 (doc) Improve formatting 2016-04-01 08:59:22 -04:00
Francis Lachapelle d80b32a25f Merge pull request #205 from JensErat/doc-db-alias
(doc) Add caveat on using a database host alias
2016-04-01 08:54:31 -04:00
Jens Erat 25a1430e6e (doc) Add caveat on using a database host alias 2016-04-01 11:45:45 +02:00
InverseBot 3c1113cab1 (js/css) Update generated files 2016-04-01 01:55:19 -04:00
InverseBot 401bea2133 (js/css) Update generated files 2016-03-31 01:53:20 -04:00
Ludovic Marcotte eb14676489 (fix) set minimal interval (fixes #3605) 2016-03-30 14:31:57 -04:00
Francis Lachapelle 2e9a7c17f5 Fix handling of priority mail header 2016-03-30 12:22:40 -04:00
Francis Lachapelle 7dc267c96b (css) Adapt to latest md changes 2016-03-30 11:16:05 -04:00
Francis Lachapelle fd388e2373 (css,js) Btn to expand toolbar of all-day events 2016-03-30 11:11:23 -04:00
Ludovic Marcotte 0cce8f6053 (fix) added missing header 2016-03-30 08:45:19 -04:00
InverseBot 87653c3144 (js/css) Update generated files 2016-03-30 01:46:00 -04:00
Francis Lachapelle 632ecfce2c (html) Fix reference to UIxTopnavToolbar 2016-03-29 21:59:21 -04:00
Francis Lachapelle 65f56f47b5 (js) Improve Preferences module
- Added constraint to timezone;
- Enable save button only if form is dirty and valid;
- Confirm unsaved changes before leaving.
2016-03-29 15:07:04 -04:00
Ludovic Marcotte 29ec1a8ba0 Updated NEWS 2016-03-29 11:39:38 -04:00
Ludovic Marcotte eb989fdd1b (fix) use PEEK when archiving messages (fixes #2792) 2016-03-29 11:37:40 -04:00
Ludovic Marcotte 48dfcb2e13 Updated NEWS file 2016-03-29 10:36:01 -04:00
Ludovic Marcotte d03afba739 (fix) handle EAS termination when SOGo is being shutdown (fixes #3604) 2016-03-29 10:32:10 -04:00
InverseBot 65d6aa82e8 (js/css) Update generated files 2016-03-29 02:37:16 -04:00
Ludovic Marcotte 01c796cd67 Updated NEWS file 2016-03-28 17:38:09 -04:00
Ludovic Marcotte 5a342f2fed (fix) prevent double Sync ops from same device (fixes #3603) 2016-03-28 17:37:07 -04:00
Ludovic Marcotte f3a8c30c17 (fix) memory leak 2016-03-28 15:10:12 -04:00
Ludovic Marcotte c5b7a91603 Updated NEWS file 2016-03-28 11:19:18 -04:00
Ludovic Marcotte 1216464f28 (fix) handle Dovecot's mail_shared_explicit_inbox when using EAS 2016-03-28 11:13:41 -04:00
Francis Lachapelle 4eda59b3e7 (js) Fix handling of mail tags in msg viewer 2016-03-28 10:43:16 -04:00
Ludovic Marcotte 506b8ceac7 Updated NEWS file 2016-03-28 08:45:55 -04:00
Ludovic Marcotte f6f5613be5 (fix) handle FilterType changes using EAS (fixes #3543) 2016-03-28 08:43:56 -04:00
InverseBot 94d13b3295 (js/css) Update generated files 2016-03-25 01:41:29 -04:00
Francis Lachapelle 0c0505468b Respect user's language for calendar categories 2016-03-24 21:44:29 -04:00
Ludovic Marcotte 49f1c30e77 (feat) now able to copy/move events and also duplicate them (fixes #3196) 2016-03-24 14:53:27 -04:00
Ludovic Marcotte 01f9f68d88 Updated NEWS 2016-03-23 13:43:33 -04:00
Ludovic Marcotte 3a9c28f0ea (fix) handle default classification for tasks (fixes #3541) 2016-03-23 13:41:08 -04:00
Ludovic Marcotte 0291b49fd1 (fix) adding missing var for HelpURL 2016-03-23 13:40:31 -04:00
Ludovic Marcotte 573e63d3e0 (fix) small performance optimization 2016-03-23 13:25:46 -04:00
Ludovic Marcotte 9542f7444b (fix) show the To instead of From when we are in the Sent folder (fixes #3547) 2016-03-23 09:48:18 -04:00
InverseBot 744a95b1ba (js/css) Update generated files 2016-03-23 01:36:30 -04:00
Francis Lachapelle 9975ce8986 Merge pull request #203 from emiliojsf/master
Fix Translation string
2016-03-22 15:18:32 -04:00
Emílio José de Souza Fonseca 5cbb43871f FIX -- Adding missing localized string 2016-03-22 16:10:43 -03:00
Emílio José de Souza Fonseca d87569be8f Adding missing localized string 2016-03-22 15:55:52 -03:00
Ludovic Marcotte 916806cc2c (feat) new SOGoHelpURL preference to set a custom URL for SOGo help (fixes #2768) 2016-03-22 14:25:55 -04:00
Emílio José de Souza Fonseca 72e0e0ad2e Fix Translation string 2016-03-22 15:19:09 -03:00
Ludovic Marcotte fee310908b (feat) we now "cc" delegates during invitation updates (fixes #3195) 2016-03-22 13:08:38 -04:00
Ludovic Marcotte 2c038d641a (fix) show repeating events when we ask for "All" or "Future" events (fixes #69) 2016-03-22 10:44:23 -04:00
InverseBot 3dd5ca772b (js/css) Update generated files 2016-03-22 01:37:36 -04:00
Ludovic Marcotte 318fff70b0 (doc) documented WOMaxUploadSize 2016-03-21 13:05:12 -04:00
Francis Lachapelle f737c9a219 (i18n) Restore missing strings
Fixes #3593
2016-03-21 11:16:32 -04:00
Francis Lachapelle a2f1561e44 (js) Fix formatting of Date with %e placeholder 2016-03-21 09:21:19 -04:00
Ludovic Marcotte 79037fc9ab (fix) make sure we don't consider SOGoMaximumRequestCount when it is 0 2016-03-21 08:20:14 -04:00
InverseBot b9ef3db5e9 (js/css) Update generated files 2016-03-20 01:35:49 -04:00
InverseBot d7adb1b802 (js/css) Update generated files 2016-03-19 01:36:45 -04:00
Ludovic Marcotte 0afc6d2307 Updated NEWS file 2016-03-18 13:02:43 -04:00
Ludovic Marcotte 284c45f111 (fix) use the correct message class for S/MIME mails 2016-03-18 13:01:29 -04:00
Ludovic Marcotte bc0eba3504 Updated NEWS file 2016-03-18 12:55:56 -04:00
Ludovic Marcotte 638dbc904c (fix) handle empty body data correctly (fixes #3581) 2016-03-18 12:54:50 -04:00
Ludovic Marcotte f08c718c00 (fix) handle "username" as path 2016-03-18 12:50:40 -04:00
Ludovic Marcotte 510d568cb1 Updated NEWS file 2016-03-18 12:39:12 -04:00
Ludovic Marcotte 00777fa7f3 (fix) respect the LDAP attributes mapping in the list view 2016-03-18 12:38:47 -04:00
Ludovic Marcotte e786dd8f2b Updated NEWS file 2016-03-18 11:06:24 -04:00
Ludovic Marcotte 9d6ab2df33 (feat) user rate-limiting support for all SOGo requests 2016-03-18 11:04:41 -04:00
InverseBot bb04ce39d6 (js/css) Update generated files 2016-03-17 02:28:59 -04:00
Francis Lachapelle edd075c88a Update translations 2016-03-16 10:27:21 -04:00
Ludovic Marcotte 69b6f7878f (fix) minor EAS fixes relating to path handling in v3 2016-03-16 09:05:43 -04:00
Ludovic Marcotte e9da4ca4f7 Updated NEWS file 2016-03-16 09:00:23 -04:00
Ludovic Marcotte cd6c56953b (fix) properly split long headers (fixes #3152)
Conflicts:

	ActiveSync/SOGoMailObject+ActiveSync.m
2016-03-16 08:57:39 -04:00
InverseBot 422d586035 (js/css) Update generated files 2016-03-16 01:33:49 -04:00
Francis Lachapelle 68689b7e99 (html) Fix position of warning when JS is disabled
Fixes #3449
2016-03-15 16:28:58 -04:00
Francis Lachapelle ed9a51c153 Update NEWS file 2016-03-15 16:07:34 -04:00
Francis Lachapelle dec3f94392 (js) Fix message initialization in popup window
Fixes #3583
2016-03-15 09:59:57 -04:00
Francis Lachapelle 0af364d076 (js) Fix display of CC/BCC fields in msg editor 2016-03-15 09:54:15 -04:00
Ludovic Marcotte 6d18db5499 (fix) don't show attendees if there are none (like in cancelation emails) 2016-03-15 08:44:07 -04:00
InverseBot 9878569478 (js/css) Update generated files 2016-03-15 02:29:27 -04:00
Ludovic Marcotte e7b0119ab1 (fix) don't skip last identity 2016-03-14 13:18:56 -04:00
Francis Lachapelle 08a94fa539 Add Lithuanian translation 2016-03-14 10:08:25 -04:00
InverseBot dd3361bad3 (js/css) Update generated files 2016-03-14 01:37:31 -04:00
Ludovic Marcotte 9a4d2c6b1c (fix) properly null-terminate IS8601-formatted dates (fixes #3539) 2016-03-13 14:25:09 -04:00
Ludovic Marcotte beb4af9f9f (fix) avoid compilation warning from previous commit 2016-03-13 13:45:58 -04:00
Ludovic Marcotte 85cacd97de Use GMT tz when setting birthday (fixes #3579) 2016-03-13 13:44:42 -04:00
extrafu 5a7652de87 Merge pull request #202 from RaphWeyman/master
Update SOGoActiveSyncDispatcher.m - local memory pool for ping cycle.
2016-03-13 09:01:12 -04:00
InverseBot 6d77de4e9a (js/css) Update generated files 2016-03-13 01:35:09 -05:00
RaphWeyman dd183d039f Update SOGoActiveSyncDispatcher.m
Add local memory pool so as to restrict memory consumption while waiting in the ping cycle.
Consumption can otherwise grow quite large while if the SOGoMaximumPingInterval and SOGoMaximumSyncInterval have been increased to allow for push ActiveSync.
2016-03-12 12:51:17 +00:00
InverseBot 8b7dd58e3f (js/css) Update generated files 2016-03-12 01:40:35 -05:00
Francis Lachapelle f3f165d0fd (html) Improve consistency in folder menus 2016-03-11 14:29:30 -05:00
Francis Lachapelle e855422891 (html) Improve consistentcy in dialogs 2016-03-11 14:29:30 -05:00
Francis Lachapelle ce5ccbb3b8 (html) Improve message viewer 2016-03-11 14:29:29 -05:00
Francis Lachapelle 4dcf5792c7 (html) Improve display of inline messages 2016-03-11 14:29:29 -05:00
InverseBot 4296c86230 (js/css) Update generated files 2016-03-11 02:04:05 -05:00
Ludovic Marcotte 4ac41dace7 (core) new database structure options to make SOGo use a total of nine tables 2016-03-10 16:34:06 -05:00
Francis Lachapelle 819851bb92 (js) Respect super user creation privilege 2016-03-10 09:22:46 -05:00
InverseBot c8634c8596 (js/css) Update generated files 2016-03-10 01:34:00 -05:00
Francis Lachapelle efc34658ec (js) Fix handling of mail labels in Preferences 2016-03-09 16:08:51 -05:00
Francis Lachapelle 9d5de9afb7 Merge pull request #201 from inverse-inc/warning-removal-again
Warning removal, next part.
2016-03-09 15:59:11 -05:00
Ludovic Marcotte 4026c4e2d9 (fix) more attendee checks 2016-03-09 10:06:18 -05:00
Francis Lachapelle ef00885941 (js) Fix display of ghosts when dragging events 2016-03-09 09:18:21 -05:00
Ludovic Marcotte be7ee69f0f (fix) avoid truncating the MIME content when fetching the whole message 2016-03-09 08:57:51 -05:00
InverseBot d75479f835 (js/css) Update generated files 2016-03-09 01:33:35 -05:00
Francis Lachapelle 16f2b8a533 GCSFolder: Add ORDER BY fields in SELECT clause
Without this fix, PostgreSQL would complain about unknown columns.
2016-03-08 15:34:15 -05:00
Francis Lachapelle 45e1f184d3 (html) Improve Calendar properties dialog 2016-03-08 13:54:09 -05:00
Francis Lachapelle 19d22cdcfb Adapt to latest md changes 2016-03-08 13:21:11 -05:00
Ludovic Marcotte bd81a56e58 (fix) make sure the attendee name is defined before using it 2016-03-08 10:41:49 -05:00
Ludovic Marcotte 81daade9ec (fix) remove unnecessary error message 2016-03-08 08:24:16 -05:00
Francis Lachapelle 255e21795e Update translations 2016-03-07 10:59:54 -05:00
Patrice Levesque 990a5f4823 Fix behaviour change in error handling, introduced by commit f284fb71dda0ea9754f1582c6951d5f462e947bc
As pointed out on https://github.com/inverse-inc/sogo/pull/201#discussion_r54881994
2016-03-07 10:50:17 -05:00
Patrice Levesque c3f69416be Replace stubs with parent implementations.
Which makes real sense; reference from
https://github.com/inverse-inc/sogo/pull/201#discussion_r54880038 and
https://github.com/inverse-inc/sogo/pull/201#discussion_r54880094
2016-03-07 10:46:40 -05:00
Patrice Levesque 4210131e12 Initialize highestmodseq to avoid any surprise.
Strongly inspired by comment at https://github.com/inverse-inc/sogo/pull/201#discussion-diff-54879796
2016-03-07 10:43:38 -05:00
Patrice Levesque ce38a9c606 Fix one warning: expected ‘struct NSError **’ but argument is of type ‘id’
nil is not recognized by GCC as a (NSError**), but as an (id).  NULL works the
same but does not spawn warnings.
2016-03-07 10:34:41 -05:00
Patrice Levesque a813e38897 Comment out sendMail method in SOGoDraftObject and replace its sole known usage by sendMailAndCopyToSent.
In a 2011-09-26 commit (in Changelog.old), I understand the author wanted to
phase sendMail out and replace it by sendMailAndCopyToSent.  Since there are
compilation warnings related to sendMail, removing the sendMail method and
replacing the sole call to it seemed like the cleanest way.
2016-03-07 10:34:41 -05:00
Patrice Levesque fc9dde885b Fix warnings; both ‘WORequest’ may not respond to ‘-httpRequest’ and no ‘-parts’ method found. 2016-03-07 10:34:41 -05:00
Patrice Levesque 281062a1a1 Fix warning: incomplete implementation of category ‘SOGoExtensions’
Original method was commented out, but not its matching .h declaration;
hence commenting out the .h declaration.
2016-03-07 10:34:41 -05:00
Patrice Levesque f55391b7d0 Add missing header declarations that made the compiler spit out warnings. 2016-03-07 10:34:41 -05:00
Patrice Levesque c1095a5ea9 Fix warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
As previous commit, this code assumed pointers are unsigned int, for display
purpose.  Replaced the cast with the native '%p' token from
NSMutableString::appendFormat that's provided for pointer address output.
2016-03-07 10:34:41 -05:00
Patrice Levesque 022fd81474 Fix warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Those are all log formatting routines that assume pointers are unsigned int,
for display purpose.  Replace the cast with the native '%p' token from
NSString::stringWithFormat that's provided for pointer address output.
2016-03-07 10:34:41 -05:00
Patrice Levesque 478b313122 Fix warning: distinct Objective-C type in return
Method is supposed to return a WOResponse pointer, but currently returns a
NSException pointer; typecast the return value, just like the archiveUIDs
method does.
2016-03-07 10:34:41 -05:00
Patrice Levesque 3ba0e9f82f Implement stubs for SOGoCalendarComponent::isNew and SOGoCalendarComponent::setIsNew methods.
Those are required to implement the SOGoComponentOccurence protocol hence
their absence creates compilation warnings.
2016-03-07 10:34:40 -05:00
Patrice Levesque 0b1cf9faaf Avoid warning: the address of ‘timezone’ will always evaluate as ‘true’
As timezone is a pointer allocated on the stack, there is no need to check
for a NULL pointer - if that was ever the initial intention.
2016-03-07 10:34:40 -05:00
Patrice Levesque 986665f011 Workaround warning: ‘locale’ is used uninitialized in this function [-Wuninitialized]
'locale' being an uninitialized pointer, I don't believe setting it to nil will
make things worse here.
2016-03-07 10:34:40 -05:00
Patrice Levesque 5b71ed319a Fix warning: variable ‘uidnext’ set but not used [-Wunused-but-set-variable]
Remove uidnext declaration and calls that change its value.
2016-03-07 10:34:40 -05:00
Patrice Levesque ddade629fd Synchronize .h and .m method signatures. 2016-03-07 10:34:40 -05:00
Patrice Levesque 5e9d0ce95a Fix warning: ‘-textValue’ not found in protocol(s)
Confusingly, labelNode is a DOMElement, not a DOMNode, so textValue cannot
apply here; textContent which would be an appropriate replacement does not
exist AFAIK in this DOM Library.

So we manually get the text node via firstChild then get its text value
via nodeValue.
2016-03-07 10:34:40 -05:00
InverseBot 50eae4c656 (js/css) Update generated files 2016-03-05 01:41:46 -05:00
Francis Lachapelle b57dd57c53 Update ChangeLog 2016-03-04 12:10:32 -05:00
Francis Lachapelle 2102385f08 Preparation for release 3.0.2 2016-03-04 12:09:11 -05:00
Francis Lachapelle c0e528a2fb Update French and Finnish translations 2016-03-04 12:08:30 -05:00
Francis Lachapelle 240557a5c5 (js/css) Update generated files 2016-03-04 12:02:19 -05:00
Francis Lachapelle ebd0b9e188 (html) Can't set an alarm or recurrence to a task 2016-03-04 11:35:39 -05:00
Francis Lachapelle eefb9056ca (html) Use datepicker for task completion date 2016-03-04 11:34:02 -05:00
Francis Lachapelle cb03a1d97e (js) Improve Card initialization 2016-03-04 11:08:38 -05:00
Francis Lachapelle 9dd5dc4c47 (js) Cleanup of "catch" for promises 2016-03-04 11:00:44 -05:00
Francis Lachapelle aedb66f972 (js) Fix stalled progress indicator in Contacts 2016-03-04 10:59:03 -05:00
Francis Lachapelle b808067cf7 Keep specified task status when not completed
Fixes #3499
2016-03-04 10:24:12 -05:00
Francis Lachapelle f19b213c02 (json) Return ACLs when subscribing to a folder 2016-03-04 09:54:50 -05:00
Francis Lachapelle 5aa19ebfb7 (js) Enable new calendar subscriptions by default 2016-03-04 09:54:49 -05:00
InverseBot 9e152adc7d (js/css) Update generated files 2016-03-04 01:32:30 -05:00
Francis Lachapelle fd8d7bb6ed (js) Fix attachments display when forwarding a msg
Fixes #3560
2016-03-03 15:41:29 -05:00
Francis Lachapelle 72a38c51b4 (js) Fix selection of search results in Webmail
When performing a search from the special router state
"mail.account.inbox", the first selection was changing the state name
and resetting the search. The special "inbox" state will now force a URL
change to avoid this problem.
2016-03-03 15:03:42 -05:00
Francis Lachapelle 599264b3d9 (css) Don't force the bg color of input fields 2016-03-03 13:48:38 -05:00
Francis Lachapelle d4745ef598 (js) Update lodash to version 4.6.1 2016-03-03 13:46:14 -05:00
Francis Lachapelle fadf52b01e (css) Set toolbar bg color for Calendar dialogs 2016-03-03 11:04:40 -05:00
Francis Lachapelle 4e83dce4a6 (doc) Improve installation guide 2016-03-03 09:31:23 -05:00
Francis Lachapelle 540ed1f63b (js) Fix pos. of personal calendar after rename 2016-03-03 09:29:12 -05:00
InverseBot 44f748659e (js/css) Update generated files 2016-03-03 01:32:41 -05:00
Francis Lachapelle 9dd444e668 (js) Fix date parsing for timezone after UTC+0
Fixes #3481, #3494
2016-03-02 16:14:36 -05:00
Francis Lachapelle 73decf2df9 Update README.md 2016-03-02 09:59:02 -05:00
InverseBot f63ae5c3bb (js/css) Update generated files 2016-03-02 01:34:57 -05:00
Francis Lachapelle d60f49d8fa Improve display of a contact's URLs
Ensure the URL is valid and begins with a schema.
2016-03-01 16:53:08 -05:00
Francis Lachapelle 68cb3d091c (html) Colorize event/task categories chips 2016-03-01 14:31:52 -05:00
Francis Lachapelle 9b58693873 (html) Use new sg-checkmark element
This fixes the issue of md-checkbox not usable in an md-menu in Firefox.

Fixes #3557
2016-03-01 14:15:04 -05:00
Francis Lachapelle 0b7824a8b7 (js) New sgCheckmark directive
To be used as checkmarks in menus.
2016-03-01 14:07:30 -05:00
Francis Lachapelle 0a78b65cdc (html) Clarify action buttons in Prefs module 2016-03-01 09:55:08 -05:00
InverseBot c34603b3eb (js/css) Update generated files 2016-03-01 01:33:09 -05:00
Francis Lachapelle d92bf122ed (js) Improve ng-messages of sg-subscribe
Improved dry mode of User.$filter and added error message when users
search returns no match.
2016-02-29 15:13:09 -05:00
Francis Lachapelle 03ddcfd07a (js) Improve event editor (attendees list) 2016-02-29 14:02:31 -05:00
Francis Lachapelle 1d25944c43 (js) Improve event editor (attendees list)
Respect SOGoSearchMinimumWordLength and hide detailed view after
deleting the last attendee.
2016-02-29 13:59:31 -05:00
Francis Lachapelle da2067dd86 (html) Respect minSearchLength in subscribe dialog 2016-02-29 12:15:24 -05:00
Francis Lachapelle 3529d52c3b Fix extraction of mail column from SQL source
Fixes #3544
2016-02-29 11:56:32 -05:00
InverseBot 30f23ba07a (js/css) Update generated files 2016-02-27 01:33:01 -05:00
Francis Lachapelle a93874b6fe (js) Fix references to Card objects in controllers 2016-02-26 16:24:18 -05:00
Francis Lachapelle 12f4f236e8 (html) Cleanup old inline CSS 2016-02-26 16:14:48 -05:00
Francis Lachapelle 699399f339 (css) Initial media print (for messages only) 2016-02-26 15:45:28 -05:00
InverseBot dc338e2062 (js/css) Update generated files 2016-02-26 15:28:20 -05:00
Francis Lachapelle 163e4637aa (js) Improve display of msgs with many recipients 2016-02-26 15:19:33 -05:00
Francis Lachapelle ea91767410 (html) Fix usage of sgSearch directive in Admin 2016-02-26 15:01:16 -05:00
Francis Lachapelle a668d89ef9 Fix unseen count retrieval of nested IMAP folders 2016-02-26 14:59:54 -05:00
Francis Lachapelle 50c790c846 Update URL in documentation guides 2016-02-26 14:00:44 -05:00
Francis Lachapelle de13f49bd3 Fix Chinese (Taiwan) translation (double-quotes) 2016-02-26 13:45:56 -05:00
Francis Lachapelle 044e426d22 (js) Add missing vendor libs
angular-file-upload (angularFileUpload) and angular-messages
(ngMessages).
2016-02-26 11:50:05 -05:00
Francis Lachapelle a2e300fec5 (doc) Update installation guide for RHEL7 2016-02-26 11:46:40 -05:00
Francis Lachapelle 07d47829ab Fix default priority of sent messages
Fixes #3542
2016-02-25 11:53:34 -05:00
InverseBot 4755358685 (js/css) Update generated files 2016-02-25 11:52:37 -05:00
Francis Lachapelle e27cdff8cc (html) Fix fab button position in Calendar module
Fixes #3462
2016-02-25 11:15:08 -05:00
Francis Lachapelle 4526227b1c (css) Fix squashed toolbar in Calendar view (xs)
Fixes #3529
2016-02-25 10:57:32 -05:00
InverseBot aeba0aaf2f (js/css) Update generated files 2016-02-25 10:22:22 -05:00
InverseBot 795ec46c81 git-diff check happens post-git-add; the check needs to happen vs. the staged files, if not, git-diff will always be empty 2016-02-25 10:20:26 -05:00
Francis Lachapelle b294c5381a (js) Improve sg-search directive 2016-02-25 10:10:53 -05:00
Francis Lachapelle e5fe211dcd (js) Add missing dependency to msg popup view
Fixes #3545
2016-02-25 08:59:02 -05:00
Francis Lachapelle 1016f6d8b8 (html) Improve move/copy menu items in Mailer 2016-02-24 21:44:45 -05:00
Francis Lachapelle 70fbeab27a (js) Improve sg-search directive
Will now respect the "listRequiresDot" source parameter and uses
ng-messages to show an error if the minimum number of characters is not
reached.

Fixes #438, #3464
2016-02-24 21:41:03 -05:00
Francis Lachapelle 4b816677b0 (js) Include ng-messages 2016-02-24 21:12:23 -05:00
Francis Lachapelle 5387b5d5a3 Expose listRequiresDot in SOGoContactSourceFolder 2016-02-24 16:47:07 -05:00
Francis Lachapelle e51a37c37a (html) Cleanup 2016-02-24 13:23:44 -05:00
Francis Lachapelle 58cb40caa7 (js) Cleanup unused function 2016-02-23 15:25:46 -05:00
Francis Lachapelle 9705fd7086 Fix JSON payload of errors in Mail listing actions 2016-02-23 12:00:39 -05:00
Francis Lachapelle a8ccaac1fa Review order of ProxyPass directives
Fixes #3461
2016-02-23 11:58:28 -05:00
Francis Lachapelle 42acf8974c (html) Improve ACL confirmation buttons 2016-02-23 10:31:26 -05:00
Francis Lachapelle a838871361 (js) Fix UIDs range when preloading messages 2016-02-23 10:23:51 -05:00
Francis Lachapelle 696aff84cb (html) Improve mail user delegation template 2016-02-23 10:22:40 -05:00
Francis Lachapelle f143048217 Improve JSON API documentation 2016-02-23 10:22:12 -05:00
Francis Lachapelle e328d43403 Fix ACL editor for authenticated users in Mailer 2016-02-23 10:21:37 -05:00
Francis Lachapelle aae02741f9 (test) Fix compatibility with Python 2.4 2016-02-23 09:15:39 -05:00
Francis Lachapelle 276588a548 (doc) Fix dash characters 2016-02-22 16:25:49 -05:00
Francis Lachapelle 31a51ccc83 (test) New JSON payload for contacts list
Results are now an array of arrays instead of an array of dictionaries.
2016-02-22 14:16:37 -05:00
Ludovic Marcotte aab87212d0 (fix) avoid compilation warning 2016-02-21 07:27:42 -05:00
Francis Lachapelle 4030cf86fd (feature) Live loading of (GCS) addressbooks
Using md-on-demand of md-virtual-repeat, we now progressively load the
cards metadata of a personal addressbook.
2016-02-19 23:19:07 -05:00
Francis Lachapelle 1b5970b9bc (html) Fix email addresses of list members 2016-02-19 16:47:18 -05:00
Francis Lachapelle ed4e70faab (fix) Blank view when selecting descending order 2016-02-19 16:44:00 -05:00
Francis Lachapelle ef601c0409 Localization 2016-02-19 16:42:15 -05:00
Francis Lachapelle 21dcb57ca9 Remove unrelevent #warning 2016-02-19 16:28:43 -05:00
Francis Lachapelle 485a9d4462 Fix import of cn from SQL source 2016-02-19 16:09:08 -05:00
Francis Lachapelle 7c00ad7110 Don't query content table when not required
When only requesting the c_name field, limit the SQL query to the quick
table.
2016-02-19 14:56:46 -05:00
Ludovic Marcotte 95d0a18c08 (fix) avoid truncating XML entities 2016-02-19 09:07:53 -05:00
Patrice Levesque 10729b9a5f Merge branch 'master' of https://github.com/inverse-inc/sogo 2016-02-17 10:11:04 -05:00
Patrice Levesque 2de72e5070 Partly revert recent changes removing #imports and #includes, under OpenChange, as they cause more problems than they solve. 2016-02-17 10:09:18 -05:00
Ludovic Marcotte 4cd0c501bd (fix) make use of existing string 2016-02-17 08:40:57 -05:00
Ludovic Marcotte 1f71cff18d (feat) you can now limit the file upload size using WOMaxUploadSize 2016-02-17 08:24:32 -05:00
Ludovic Marcotte e47bc8cb1b (fix) fixed missing includes in tool 2016-02-16 19:08:12 -05:00
Patrice Levesque 6bb2065f46 Fix too aggressive #include and #import removal in ActiveSync directory - it broke master branch. 2016-02-16 18:39:58 -05:00
waptaff 1aab0595a1 Merge pull request #199 from inverse-inc/fix-some-warnings
Housekeeping: fix some warnings / remove dead code / remove pointless #includes and #imports
2016-02-16 14:34:37 -05:00
Patrice Levesque 9cb1b899b0 Merge branch 'master' into fix-some-warnings
Conflicts:
	UI/Scheduler/UIxAppointmentActions.m
2016-02-16 14:32:50 -05:00
Francis Lachapelle 4c01417690 Handle resource limits in the Web interface
See @d7b010
2016-02-16 12:40:59 -05:00
Francis Lachapelle 3d7192ffef Update NEWS file 2016-02-16 10:41:06 -05:00
Francis Lachapelle 2d3a5b4243 (html) Improve actions buttons of event editor 2016-02-16 10:39:32 -05:00
Francis Lachapelle 2edacc94ce (html) Fix email notification field for calendar
Fixes #3522
2016-02-16 10:39:32 -05:00
Ludovic Marcotte e51f8625d6 (fix) don't mark content as truncated if it's not 2016-02-16 08:32:04 -05:00
Ludovic Marcotte 635c647f48 Updated NEWS file regarding previous commits 2016-02-15 17:40:17 -05:00
Ludovic Marcotte 929915542c Make sure we don't go overbounds 2016-02-15 16:12:21 -05:00
Ludovic Marcotte 42131c564a (fix) support EAS MIMETruncation 2016-02-15 16:04:18 -05:00
Francis Lachapelle d56d9f8b08 Handle attendee conflicts in the Web interface
See @d7b010
2016-02-15 16:03:16 -05:00
Patrice Levesque a5cc2bb5d5 Merge branch 'master' into fix-some-warnings
Conflicts:
	SoObjects/Appointments/SOGoAppointmentObject.m
2016-02-15 11:23:27 -05:00
Patrice Levesque 9e83ff9f04 Fix compilation errors with OpenSSL 2016-02-15 11:14:06 -05:00
Francis Lachapelle f2ffb52318 Merge pull request #200 from inverse-inc/fix-empty-make-prod-commit
Prevents 'make prod' from failing on empty git-commits
2016-02-15 10:27:46 -05:00
Patrice Levesque 5bd2f558bf Prevents 'make prod' from failing when auto-generated files do not change. 2016-02-15 10:18:34 -05:00
Patrice Levesque 520b1094be Remove now-useless preprocessor conditional block 2016-02-13 18:15:38 -05:00
Patrice Levesque bd56f4cf9f Remove pointless #include from .m and .h files
This was done with a brute-force approach, ensuring no additional
warnings from GCC 4.9 under x86_64.
2016-02-13 17:41:54 -05:00
Patrice Levesque 7c25b53fdf Remove pointless #imports from .m and .h files
This was done with a brute-force approach, ensuring no additional
warnings from GCC 4.9 under x86_64.
2016-02-13 16:11:52 -05:00
InverseBot e1b8d80420 (js/css) Update generated files 2016-02-13 01:32:07 -05:00
Ludovic Marcotte 132234cc19 (fix) don't consider default ACLs for attendees 2016-02-12 14:40:51 -05:00
Ludovic Marcotte 4c6a0e6936 (fix) typo in method call from previous commit 2016-02-12 13:48:51 -05:00
Ludovic Marcotte d5f95c6b30 (fix) make sure our heartbeat interval is always greater than the internal one 2016-02-12 13:07:34 -05:00
Francis Lachapelle 5d28d81c1e (js) Improve handling of SOGoMailComposeFontSize 2016-02-12 12:03:26 -05:00
Francis Lachapelle 5039a30405 (js) New ng-sortable.js vendor JavaScript 2016-02-12 06:25:14 -05:00
Francis Lachapelle 256a64172e (feature) Custom base font size for HTML messages
If SOGoMailComposeFontSize is set to zero, we keep the previous
behaviour (no font-size added to the message HTML body).
2016-02-11 17:45:57 -05:00
Ludovic Marcotte e897bb0399 Update regarding previous commit 2016-02-11 15:07:47 -05:00
Ludovic Marcotte 4f1ce3f2df (fix) avoid EAS bday offset (fixes #3518) + small fix in previous commit 2016-02-11 15:04:44 -05:00
Ludovic Marcotte 9d6e779bb0 Updated NEWS file regarding previous commit 2016-02-11 14:36:38 -05:00
Ludovic Marcotte c9e7eac3fd (fix) EAS issue with attachments in 2nd-level mailboxes (fixes #3505) 2016-02-11 14:33:39 -05:00
Francis Lachapelle fbdcfd49fc Update GNUmakefile for new ng-sortable.js 2016-02-11 14:14:12 -05:00
InverseBot 297eefd58f (js/css) Update generated files 2016-02-11 13:54:42 -05:00
Ludovic Marcotte decda96697 (fix) password change (fixes #3496) 2016-02-11 13:46:18 -05:00
Francis Lachapelle c8ea2000d8 (js) Fix mail draft autosave in preferences
Fixes #3519
2016-02-11 11:41:09 -05:00
Ludovic Marcotte d7b010526b (feat) warn when double-booking attendees and offer force save option 2016-02-11 10:54:07 -05:00
Francis Lachapelle 9cc4bfd9be (js) Fix batch delete of components
Fixes #3516
2016-02-11 09:33:58 -05:00
InverseBot f70c0fa6e6 (js/css) Update generated files 2016-02-11 02:25:48 -05:00
Francis Lachapelle dfc0d23fa7 (js) Remove deferred promise 2016-02-10 16:40:38 -05:00
Francis Lachapelle eb11e2e672 (js) Set focus to title of mail filter editor 2016-02-10 16:21:44 -05:00
Francis Lachapelle 8d9ba7c04b (html) Fix links on list members email addresses 2016-02-10 16:20:12 -05:00
Francis Lachapelle fed57435d4 (js) Fix exposure of date locale provider
Expose $mdDateLocaleProvider in the Preferences singleton.
2016-02-10 16:18:12 -05:00
Francis Lachapelle 35af07fef1 (html) Add background icon to event/task editors 2016-02-10 16:17:09 -05:00
Francis Lachapelle 99e5c1b93c (feature) Convert a message to an event or task
Resolves #1722
2016-02-10 16:15:00 -05:00
Patrice Levesque 31f0472db4 Cleanup unused variables 2016-02-10 15:17:19 -05:00
Patrice Levesque 93158f5121 Wrap common looping idiom inside double-parenthesis to shutup warning 2016-02-10 15:16:42 -05:00
Ludovic Marcotte fec263a3d6 Updated NEWS file regarding previous commit. 2016-02-10 15:06:38 -05:00
Ludovic Marcotte 8c99fdc99a (fix) allow resources to prevent invitations (fixes #3410) 2016-02-10 15:03:20 -05:00
Patrice Levesque 296d510572 Merge branch 'missing-prototypes' into fix-some-warnings
Avoid compilation errors when using GCC with -Werror=missing-declarations
and -Werror=missing-prototypes (those flags are wanted to track and fix
further warnings).
2016-02-10 14:58:28 -05:00
Patrice Levesque 51cbb980ad Add some missing preprocessing #import directives
Fixes most GCC warnings of form:
	warning: @interface of class ‘MyClass’ not found
2016-02-10 14:46:11 -05:00
Ludovic Marcotte e6d1cb9231 Fixed file. 2016-02-10 14:29:13 -05:00
Ludovic Marcotte 6876ba8709 (feat) show all/only this calendar 2016-02-10 13:47:17 -05:00
Patrice Levesque d2695bab82 Better fix for *_stringForCharacterAtIndex's missing prototype 2016-02-10 11:29:43 -05:00
Francis Lachapelle 37f4b11834 (js) Improve confirm dialogs for deletions 2016-02-10 10:52:46 -05:00
Ludovic Marcotte 693f80dc9a (feat) now supports RFC6154 and NoInferiors IMAP flag 2016-02-10 10:00:59 -05:00
Francis Lachapelle f5b28b0274 (js) Fix autocompletion of mail editor in Contacts 2016-02-10 09:32:44 -05:00
Francis Lachapelle 1f3149fa63 (js) Improve Gruntfile.js 2016-02-10 09:29:00 -05:00
InverseBot cd181c3503 (js/css) Update generated files 2016-02-10 01:34:40 -05:00
Francis Lachapelle aa663fd03e (js) Expose how to change default font size of CKE
(CKE = CKEditor)
2016-02-09 15:58:16 -05:00
Francis Lachapelle 2380890428 (js) Allow mail filters to be sortable
Added dependency to https://github.com/RubaXa/Sortable
2016-02-09 15:57:51 -05:00
Ludovic Marcotte 3e76de1e6e (fix) really delete mailboxes being deleted from the Trash folder (#595, #1189, #641) 2016-02-09 15:46:52 -05:00
Ludovic Marcotte eff8ab3e0e (fix) don't offer forward/vacation options in filters if not enabled 2016-02-09 14:15:23 -05:00
Francis Lachapelle 187cd5e4ae (font) Update Material Icons font to 2.1.3 2016-02-09 14:06:44 -05:00
InverseBot 4d702c2be9 (js/css) Update generated files 2016-02-09 01:32:30 -05:00
Patrice Levesque 5539b7a823 Add missing header prototypes
Fixes compiling errors with GCC using -Werror=missing-prototypes.
2016-02-08 16:14:33 -05:00
Francis Lachapelle 1c52093537 (js) Move to top when changing mailbox 2016-02-08 15:43:02 -05:00
Francis Lachapelle 5a408bf14b (js) Fix virtual repeater when moving up in msgs 2016-02-08 15:39:25 -05:00
Ludovic Marcotte ee3276f01d (feat) added Junk handling feature from v2 2016-02-08 15:36:01 -05:00
InverseBot ace7e0771f (js/css) Update generated files 2016-02-08 12:54:12 -05:00
Ludovic Marcotte 1d2763af3c (fix) safe-guarding against bogus value coming from the quick tables 2016-02-08 10:32:18 -05:00
Francis Lachapelle d63e277fc6 (js) Apply search filters when reloading mailbox
Fixes #3507
2016-02-08 10:07:44 -05:00
Francis Lachapelle 9e905b43ff Handle birthday dates before 1970 2016-02-05 16:39:33 -05:00
Francis Lachapelle 9f7c205da9 Update ChangeLog 2016-02-05 12:41:38 -05:00
Francis Lachapelle 89655cf192 Preparation for release 3.0.1 2016-02-05 12:41:19 -05:00
Francis Lachapelle 7b4f4cbc0d (css) Fix display of link and image attachments 2016-02-05 12:04:26 -05:00
Francis Lachapelle 03c6118224 (css) Improve display of md-menus in Calendar 2016-02-05 11:17:42 -05:00
Francis Lachapelle f2da7d67d7 (js) Fix DnD of all-day events in multicolumn view 2016-02-05 11:15:45 -05:00
Francis Lachapelle 13a6290d0d (js) Respect sort when searching in Webmail 2016-02-05 11:06:20 -05:00
Francis Lachapelle 7a401374f2 (css,js) Update Angular Material to v1.0.5 2016-02-05 11:04:28 -05:00
Francis Lachapelle 2cc37238c1 Update NEWS file 2016-02-05 11:03:43 -05:00
Francis Lachapelle e3fbde3c16 (js) Verify $topIndex of virtual-repeater
Fixes #3500
2016-02-05 10:55:05 -05:00
Ludovic Marcotte b74dd0c942 Updated NEWS file 2016-02-05 10:10:27 -05:00
Ludovic Marcotte dd19f380ad (fix) added local memory pool 2016-02-05 10:03:56 -05:00
Ludovic Marcotte d3f59ba621 (fix) add shared/public namespaces in the list or returned folders 2016-02-05 10:01:18 -05:00
InverseBot aa5d1f3842 (js/css) Update generated files 2016-02-05 01:37:18 -05:00
Francis Lachapelle c68ca9dbb7 Aria attributes 2016-02-04 20:59:34 -05:00
Francis Lachapelle 5ccd33c126 Adapt to latest md changes 2016-02-04 20:59:34 -05:00
InverseBot 82f0471fb1 (js/css) Update generated files 2016-02-04 15:26:04 -05:00
InverseBot 7e06894700 (js/css) Update generated files 2016-02-04 15:19:27 -05:00
Patrice Levesque 1d868ff73c Remove 'git stash' commands from 'prod' recipe: it caused odd side-effects on pristine local repositories 2016-02-04 15:03:41 -05:00
Francis Lachapelle a49bb9ab03 (js) Update CKEditor to version 4.5.7 2016-02-04 14:16:43 -05:00
Francis Lachapelle d4ab5dd21b Update translations 2016-02-04 14:01:31 -05:00
Francis Lachapelle 5624bf47ae Update NEWS file 2016-02-04 12:43:29 -05:00
Francis Lachapelle d4e01a83a0 Handle broken messages with no date
Fixes #3498
2016-02-04 11:36:26 -05:00
Ludovic Marcotte c12200c7b5 (fix) correctly encode filename of attachments over EAS (#3491) 2016-02-04 10:34:55 -05:00
Francis Lachapelle a8845d262f Fix frequency detection of recurrence rule 2016-02-04 09:20:11 -05:00
Francis Lachapelle 7437ca1ab8 (js) Fix support for %p in date formatting 2016-02-04 09:19:25 -05:00
Francis Lachapelle 66d4b9ec43 (js/css) Update generated files 2016-02-04 08:37:59 -05:00
Francis Lachapelle f321e1c949 (js) Add "Move To" option for selected messages
Fixes #3477
2016-02-03 16:48:04 -05:00
Ludovic Marcotte 0e2b1e41a7 (fix) IMIP accept/decline when there is only one MIME part 2016-02-03 15:53:12 -05:00
Francis Lachapelle 1eced8bcec (js) Set summary when creating event from DnD 2016-02-03 14:37:53 -05:00
Francis Lachapelle 7099432caf (html) Fix for flexbox with Chrome 48 2016-02-03 14:37:14 -05:00
Francis Lachapelle 0236d9ef46 (js) Remove empty error callbacks for promises 2016-02-03 14:32:29 -05:00
InverseBot c4fdba678e Merge branch 'master' of github.com:inverse-inc/sogo 2016-02-03 14:00:01 -05:00
Francis Lachapelle bd4f42b948 Fix comparisons with NSNotFound
Fixes #3472
2016-02-03 13:54:08 -05:00
InverseBot 2bbb88e014 (js/css) Update generated files 2016-02-03 13:34:41 -05:00
Ludovic Marcotte 3c53186db3 (js/css) Update generated files 2016-02-03 10:56:12 -05:00
Francis Lachapelle 1a7e5c248f (js) Improve scrolling behavior when deleting msg
Fixes #3489
2016-02-03 10:53:26 -05:00
Francis Lachapelle 47701e880a (html) Fix display of a message raw source
Fixes #3490
2016-02-03 09:50:37 -05:00
Ludovic Marcotte 5413ac8aa3 (fix) make sure an email is defined before trying to use it (#3488) 2016-02-03 09:00:08 -05:00
Francis Lachapelle cf91004ae6 (js) Improve handling of IMAP connection problem
Fixes #194
2016-02-02 15:06:00 -05:00
Francis Lachapelle 15dee723d4 (css) Update SASS for latest md 2016-02-02 12:12:18 -05:00
Francis Lachapelle 50791b9c3a (css) Improve padding in message editor 2016-02-02 12:11:20 -05:00
Francis Lachapelle fa9bd3995e (css) Decrease all-day events margin in day view 2016-02-02 12:09:55 -05:00
Francis Lachapelle 4fb71ffdd0 (css) Fix for flexbox with Chrome 48
Fixes #3487
See https://github.com/angular/material/issues/6841
2016-02-02 12:07:44 -05:00
Francis Lachapelle 6bfc44fb53 (js) Add support for %p in date formatting
Fixes #3480
2016-02-01 20:54:37 -05:00
Francis Lachapelle a95fd25e09 (css) Improve display of mail attachments 2016-02-01 16:07:21 -05:00
Francis Lachapelle ff1dc9c82d (html) Wrap invitation in a md-card 2016-02-01 16:06:34 -05:00
Francis Lachapelle b5a7447cba Update NEWS file 2016-02-01 14:02:31 -05:00
Francis Lachapelle 687521d60c (js) Improve saving of events/tasks 2016-02-01 14:01:43 -05:00
Francis Lachapelle b09e7163dd (fix) Show user's default email address
Fixes #3473
2016-02-01 10:41:22 -05:00
Francis Lachapelle 020f362aa1 Merge pull request #193 from emiliojsf/master
(Fix) Calendar view when Descending Order is selected
2016-01-29 14:53:37 -05:00
Francis Lachapelle c7283b8890 (doc) Update repository in installation guide 2016-01-29 11:15:08 -05:00
Emílio Fonseca 978e1cdaf0 (Fix) Calendar view gets blank when Descending Order is selected 2016-01-29 13:32:58 -02:00
Francis Lachapelle c1ee1378ff (css) Improve toasts with an icon 2016-01-29 10:06:04 -05:00
Francis Lachapelle ac8cf16885 (fix) Safeguard againts mailboxes with no quota
Fixes #3468
2016-01-29 10:03:56 -05:00
Ludovic Marcotte fe0221f630 (fix) disable test 2016-01-27 14:43:23 -05:00
Francis Lachapelle 6e4aa79038 Update ChangeLog 2016-01-27 13:20:07 -05:00
Francis Lachapelle 34215142bd Preparation for release 3.0.0 2016-01-27 13:19:12 -05:00
Francis Lachapelle 0eb1b00c6b Update translations 2016-01-27 13:16:16 -05:00
Francis Lachapelle 3339f53f19 Update NEWS file 2016-01-27 13:03:45 -05:00
Francis Lachapelle d913bce41a Update .gitignore 2016-01-27 13:03:14 -05:00
Francis Lachapelle b82c96a2dd (js) Update CKEditor to version 4.5.6 2016-01-27 13:02:32 -05:00
Francis Lachapelle 85e181edc4 (js/css) Update generated files 2016-01-27 11:33:16 -05:00
Francis Lachapelle 841e29b091 (html) Improve task editor 2016-01-27 11:27:33 -05:00
Francis Lachapelle 30a96f33e9 Cleanup French locale 2016-01-27 11:27:33 -05:00
Francis Lachapelle ce80cd5ec0 (doc) Update installation guide 2016-01-27 11:27:33 -05:00
Francis Lachapelle c9944f0265 (doc) Update developer's guide 2016-01-27 11:27:33 -05:00
Francis Lachapelle dc2d153e0c Update npm package.json 2016-01-27 11:27:32 -05:00
Francis Lachapelle c2322eedac (font) Update Fira typeface 2016-01-27 11:27:31 -05:00
Francis Lachapelle b0f37e792f (css) Cleanup 2016-01-27 11:27:30 -05:00
Francis Lachapelle 7b297ed483 (css) Lower the font weight of buttons in sidenav 2016-01-27 11:27:30 -05:00
Francis Lachapelle 5a927dfeb3 Improve formatting of SOGoDefaults.plist 2016-01-27 11:27:30 -05:00
Ludovic Marcotte 5e60a68634 NEWS file update for v3 final 2016-01-27 10:41:11 -05:00
Francis Lachapelle be441f5cd3 (css,js) Fix display of all-day events 2016-01-27 10:28:40 -05:00
extrafu b064512549 Update README.md 2016-01-27 09:14:31 -05:00
extrafu 46c952ee13 Update README.md 2016-01-27 09:14:00 -05:00
Francis Lachapelle c21a2c647a (js/css) Update generated files 2016-01-26 09:17:16 -05:00
Francis Lachapelle 5754278ffa (css) Add $quarter_height variable in SchedulerUI 2016-01-26 09:09:25 -05:00
Francis Lachapelle 867bc4bc96 (css) Fix events spanning whole days 2016-01-26 09:07:00 -05:00
Francis Lachapelle 8a177bea47 (js) Fix date parsing on Safari 2016-01-26 09:07:00 -05:00
Francis Lachapelle 53b2e19fee Merge pull request #188 from emiliojsf/master
Adding TAB to separate recipients in Mail Editor
2016-01-25 15:02:47 -05:00
Emílio Fonseca bf3a072e6b Adding TAB to separate recipients in Mail Editor 2016-01-25 17:54:11 -02:00
Ludovic Marcotte dd59ef6c1d Remove superfluous code. 2016-01-25 14:32:56 -05:00
Ludovic Marcotte 5ad4d317df (fix) delete messages from Drafts folder that aren't meant to be sent 2016-01-25 14:21:38 -05:00
Francis Lachapelle b265de91fd Add Croatian translation 2016-01-25 11:14:45 -05:00
Ludovic Marcotte ec3e0e87f9 (doc) missing SOGoMailKeepDraftsAfterSend documentation 2016-01-25 11:09:29 -05:00
Ludovic Marcotte 9a6cf0eb66 (fix) do not try to decode non-wbxml responses for debug output (#3444) 2016-01-25 10:26:31 -05:00
Ludovic Marcotte 42c2edce19 (feat) newly created folders using EAS are always sync'ed by default (#3454) 2016-01-25 10:21:46 -05:00
ethoms 99765aae53 fix (revised) for issue with CardDAV sync with the DAVDroid sync client.
This is a revised fix for the issue raiased in sogo bug tracker 3370 and 3373. It supercedes the fix in commit  2c723070c6 .

The fix was noted in NEWS with the comment "we now return all cards when we receive an empty addressbook-query REPORT". However it did not work for me and at least two others, as can be seen in the commit comments. In summary, only contacts with email addresses were synced. The suggested change from kwirk fixes the regular address book sync, but it completely breaks syncing of the read-only Group Directory (Corporate Directory). My suggested changes work in full (as far as I'm able to test).

I have done some fairly extensive testing of CardDAV sync (with DAVDroid only) and it seems to work 100% now. In addition to the obvious tests, I have tested with contacts that only have one field of data entered. The feilds I've tested (with all other fields empty) are as follows:

First name
Last name
Display name
email address
Work (telephone)
Home (telephone)
Fax (telephone)
Mobile (telephone)

Additionally, I tested syncing of a contact with only the Work Address fully populated. In the webmail, since the name fields are all missing, the "Organization" field of the Work Address takes the place of the name field in the 'Name' column. This does get synced to my phone and it also appears my Android contact list with 'Name' set to the 'Organization' field data. The address, organization and website fields being in tact also.

In addition, I tested a Group Directory (Corporate Directory) [SOGoUserSources->isAddressBook] sync. It seems contacts without email addresses do not sync. This seems to be the behaviour across the board with a "." search filter. This happens despite the filter in SOGoUserSources including ldap entries without a mail attribute. Nothing I can do to patch this in SOGoFolder+CardDAV.m, that would have to be fixed in the code that deals with the special "." search filter (I guess).

I think the contact search system needs some looking into, particularly the "." search filter behaviour. There is another bug related to contact search in the webmail address book view. I will make a bug report on that soon. It's a shame there isn't an "all" search filter, it would seem it would make various parts of SOGo easier to get the right behaviour.
2016-01-25 09:19:41 -05:00
Ludovic Marcotte 3c0059192d (fix) rewrote the string sanitization to be 32-bit Unicode safe 2016-01-22 20:31:55 -05:00
Ludovic Marcotte 81f13404bf (fix) more fix regarding recurrence exceptions and body tags
Conflicts:

	ActiveSync/iCalEvent+ActiveSync.m
2016-01-22 14:05:00 -05:00
Ludovic Marcotte 30377c0fd6 (feat) new junk/not junk capability with generic SMTP integration
Conflicts:

	NEWS
	SoObjects/Mailer/SOGoMailAccount.m
	SoObjects/SOGo/SOGoDefaults.plist
	SoObjects/SOGo/SOGoUser.m
	UI/MailerUI/UIxMailFolderActions.h
	UI/MailerUI/UIxMailFolderActions.m
	UI/MailerUI/product.plist
2016-01-22 13:58:45 -05:00
Ludovic Marcotte 88207d27c4 (fix) now always generate invitation updates when using EAS
Conflicts:

	NEWS
2016-01-22 13:50:48 -05:00
Ludovic Marcotte 9ba7425e56 (fix) make sure we escape control chars 2016-01-22 13:50:19 -05:00
Francis Lachapelle f1873edf21 (js) Display event ghost block start/end hours 2016-01-21 20:46:04 -05:00
Francis Lachapelle 54100c1f78 Bump version to 3.0.0b6 2016-01-21 15:00:56 -05:00
Francis Lachapelle 395400ca61 (js/css) Update generated files 2016-01-21 14:59:58 -05:00
Francis Lachapelle 218aeb5f28 (css) Fix display of md-cards in .view-detail 2016-01-21 14:58:10 -05:00
Francis Lachapelle 522dc5f85a (js/css) Update generated files 2016-01-21 10:21:45 -05:00
Francis Lachapelle 8076a1a7ef Update translations 2016-01-21 10:17:36 -05:00
Francis Lachapelle 164f7fd709 (html) Hide export/source options for remote ab 2016-01-20 14:02:49 -05:00
Francis Lachapelle 21f5dd747b (css) Cleanup md-content 2016-01-19 15:23:15 -05:00
Francis Lachapelle 914379884b (css) Fix md-backdrop 2016-01-19 15:22:35 -05:00
Francis Lachapelle a83080ae3a (js,html) Improve Administration module
Warp ACL editor with a md-card and improve display on small screens.
2016-01-19 15:21:06 -05:00
Francis Lachapelle f3b7bf4728 (js) Fix md-require-match usage
Fixes #163
2016-01-18 20:10:59 -05:00
Francis Lachapelle 9e8ecfac2c (js) Fix display of prompt dialog on xs screens 2016-01-18 16:42:05 -05:00
Francis Lachapelle 01fd6f4309 (css) Various adjustments 2016-01-18 16:40:55 -05:00
Francis Lachapelle 2537abf9e6 (js) Use Date.format instead of local functions 2016-01-18 16:32:26 -05:00
Francis Lachapelle b316d928fc (css) Hide optional elements from messages list
Those elements will no longer flash when reload a mailbox.
2016-01-18 16:30:52 -05:00
Francis Lachapelle 0b189e9ca7 (css) Cleanup 2016-01-18 16:19:12 -05:00
Francis Lachapelle 629db3c728 (css) New .sg-input-no-message class 2016-01-18 16:17:17 -05:00
Francis Lachapelle 612f2867a1 (css) Improve timepicker 2016-01-18 16:15:33 -05:00
Francis Lachapelle 5076365956 (css) New .sg-input-no-message class
For md-autocomplete
2016-01-18 16:14:58 -05:00
Francis Lachapelle a440defa61 (html) Improve display of event/task viewer/editor 2016-01-18 16:12:54 -05:00
Francis Lachapelle c6bc8245a2 (css) Apply .sg-app-content to body 2016-01-18 16:04:09 -05:00
Francis Lachapelle 2e73b66e53 (js) Fix second search with same attributes 2016-01-18 15:37:27 -05:00
Francis Lachapelle 5c4da276bf (js) Fix handling of contact categories 2016-01-18 14:46:23 -05:00
Francis Lachapelle 3787296fd6 (js) Scroll to previously selected message 2016-01-18 14:33:31 -05:00
Ludovic Marcotte 691ab3ff27 (fix) don't use false, but use NO 2016-01-18 14:06:21 -05:00
Francis Lachapelle 3fa0c83626 (js) Close sidenav when searching on small screen 2016-01-18 14:05:33 -05:00
Francis Lachapelle 20adc2d821 (css) Improve display of msg viewer/editor 2016-01-18 14:03:28 -05:00
Francis Lachapelle a44ebee39a Merge pull request #186 from emiliojsf/master
Fix path of Draft mailbox when reply and forward message
2016-01-18 13:28:06 -05:00
Emílio Fonseca b55ef0d05b Fix path of Draft mailbox when reply and forward message 2016-01-18 16:04:28 -02:00
Francis Lachapelle 9984204987 (css) Improve display on mobile devices 2016-01-18 12:16:17 -05:00
Ludovic Marcotte e73fc61a27 (fix) old case with gcc 2016-01-18 11:14:56 -05:00
Ludovic Marcotte 9a831a85c0 (fix) re-enabled old test 2016-01-18 11:08:35 -05:00
Ludovic Marcotte c42fa9489c (fix) added new tests 2016-01-18 10:56:50 -05:00
Ludovic Marcotte b3bc6bb7dc Applied changes coming from v2/PR#184. 2016-01-18 09:26:07 -05:00
Ludovic Marcotte 985db9465c (fix) avoid generating empty ConversationId which can break Android EAS 2016-01-17 06:29:13 -05:00
Ludovic Marcotte defd9ab84b (fix) don't generate dual Body tag for event exceptions 2016-01-16 08:08:37 -05:00
Francis Lachapelle 3f2c6efe7e Fix path of Draft mailbox when composing message
Fixes #3439
2016-01-15 15:10:16 -05:00
Francis Lachapelle be6bd47c15 (js) Improve URL routing in Mail module 2016-01-15 15:09:13 -05:00
Francis Lachapelle eda112c4bd (html) Don't toggle checkbox when clicking input
When selecting a mail filter's name, the checkbox was toggled.

Fixes #128
2016-01-15 11:22:17 -05:00
Francis Lachapelle d29cdf2467 (html) No mail threading for now 2016-01-15 11:21:44 -05:00
Francis Lachapelle 94b6213ba9 (js) Use $window instead of window when possible 2016-01-15 10:26:38 -05:00
Francis Lachapelle 37a419a7ae (js) Set ACLs of new Addressbook
Fixes #133
2016-01-15 10:25:13 -05:00
Francis Lachapelle 2ba3371ea2 (js) Go to personal addressbook after deletion 2016-01-15 10:24:26 -05:00
Francis Lachapelle c7f1d8bb5e (js) Fix addressbook reload after a dry search
Fixes #148
2016-01-15 10:07:59 -05:00
Francis Lachapelle 8593ee9fbb Improve handling of ATTACH property (URIs) 2016-01-15 09:25:28 -05:00
Francis Lachapelle fe7a12bad0 (js) Improve initialization of Calendar model
Fixes #156
2016-01-14 16:41:58 -05:00
Francis Lachapelle d90e1dc0ec (html) Review ACL editor for better FF support
Fixes #152
2016-01-14 16:36:13 -05:00
Francis Lachapelle 27bf8459c2 (js/css) Update generated files 2016-01-14 16:10:37 -05:00
Francis Lachapelle f5432525ec (js) Remove dependency on stateAccount 2016-01-14 16:06:55 -05:00
Francis Lachapelle 59cc13f41c (css) Fix overflow on sidenav of Calendar module
Fixes #158
2016-01-14 16:00:12 -05:00
Francis Lachapelle 3d4311194c (js) Fix handling of new contact categories
Fixes #175
2016-01-14 15:52:04 -05:00
Francis Lachapelle 667e6dff7c (js) Fix selection of card
The previous card was incorrectly highlighted when revisiting an
addressbook.
2016-01-14 15:06:01 -05:00
Ludovic Marcotte f3ea377bdb (fix) correctly remove the event/task 2016-01-14 14:49:59 -05:00
Francis Lachapelle 491f8b4f2a (js) Fix sg-avatar-image with md-virtual-repeat 2016-01-14 14:45:50 -05:00
Francis Lachapelle 936f6cb073 (css) Improve cards/lists display of contacts 2016-01-14 14:21:42 -05:00
Francis Lachapelle 78771d7abb (js) Fix highlight of selected message 2016-01-13 16:24:37 -05:00
Francis Lachapelle e470996dcf Update French translation 2016-01-13 13:32:58 -05:00
Ludovic Marcotte ab23d0f766 (fix) added translations + fixed typos 2016-01-13 12:48:20 -05:00
Francis Lachapelle 2c59495005 (js) Unselect message when selecting same mailbox 2016-01-13 12:34:15 -05:00
Ludovic Marcotte 279ee42d35 (fix) added missing string for v2 2016-01-13 11:40:17 -05:00
Ludovic Marcotte 565ad6900b Updated JS files for new build 2016-01-13 09:18:14 -05:00
Ludovic Marcotte 302187410c (js/css) Update generated files 2016-01-13 09:15:07 -05:00
Ludovic Marcotte de47df7c76 (fix) more safeguards when expunging mailboxes with no quota 2016-01-12 16:02:10 -05:00
Ludovic Marcotte d2f164dfb7 (fix) safeguard ourselves againts mailboxes with no quota 2016-01-12 15:57:43 -05:00
Francis Lachapelle 98e780dc6f (html) Group nav buttons in Calendar views 2016-01-12 13:44:14 -05:00
Francis Lachapelle dad9b71a5b (js) Preserve selected date when switching view 2016-01-12 13:38:54 -05:00
Francis Lachapelle 77baffb85c Localize datepicker and respect user's defaults 2016-01-12 11:57:38 -05:00
Francis Lachapelle 09b3b4e13f (css,html) Colorize tags of messages 2016-01-08 22:06:35 -05:00
Francis Lachapelle dc43146a4e (html) Change bg color of selected message or card 2016-01-08 21:30:52 -05:00
Francis Lachapelle 6ba9bd5295 Improve sidenav of Webmail
- fixed highlight issue when multiple accounts are configured;
- added divider between accounts;
- added tooltips to account buttons.
2016-01-08 16:34:13 -05:00
Francis Lachapelle 1bcdac328a (js) Improve message selection when deleting msgs 2016-01-08 16:31:06 -05:00
Francis Lachapelle 5f9c87cae3 (css) Fix virtual-repeater scrolling bug 2016-01-08 16:18:32 -05:00
Francis Lachapelle b6076c9e8e Fix deletion of an appointment with attendees 2016-01-08 13:41:04 -05:00
Ludovic Marcotte 321193472d (fix) when deleting an event using EAS, properly invoke the auto-scheduling code 2016-01-08 13:13:39 -05:00
Ludovic Marcotte 0b5e38e88c (fix) we now follow 301 redirects when fetching ICS calendars 2016-01-08 13:13:35 -05:00
Ludovic Marcotte 4935eb23a9 (fix) Fixed DomainLessLogin logins in multi-domain 2016-01-08 11:40:02 -05:00
Ludovic Marcotte 96588aef6a (fix) properly handle mail subfolders for EAS 2016-01-08 10:29:14 -05:00
Francis Lachapelle f8d71966b9 Improve selection of mailboxes 2016-01-07 16:33:41 -05:00
Francis Lachapelle c86499f658 (js) Show indicator when swtiching mailbox 2016-01-07 16:32:08 -05:00
Francis Lachapelle 68c72f681c (js) Improve message viewer/editor in popup window 2016-01-07 15:45:16 -05:00
Francis Lachapelle 78dfe84d41 Localization of templates 2016-01-07 15:19:53 -05:00
Francis Lachapelle a1647d9cd0 Simplify creation of response in MailListActions 2016-01-07 15:12:13 -05:00
Ludovic Marcotte 030272d48a (fix) EAS folder name for emails in v3 2016-01-07 11:50:15 -05:00
Ludovic Marcotte ed799c5c35 (fix) EAS mail sync fix for v3 2016-01-07 11:39:15 -05:00
Ludovic Marcotte a755546f75 (fix) properly escape the UID too 2016-01-07 10:17:37 -05:00
Ludovic Marcotte 8237aaf74a (fix) updated NEWS file 2016-01-07 10:01:24 -05:00
Ludovic Marcotte 9d9f7b4c56 (fix) don't escape twice (#3423) 2016-01-07 10:01:17 -05:00
Ludovic Marcotte c355254467 (feat) UI + localization for previous commit 2016-01-07 09:24:29 -05:00
Ludovic Marcotte 6ffeba59ed (feat) Now able to sync only default mail folders when using EAS
Conflicts:

	NEWS
	SoObjects/SOGo/SOGoUserDefaults.h
	SoObjects/SOGo/SOGoUserDefaults.m
2016-01-07 09:19:44 -05:00
Francis Lachapelle 609c5aabf7 (html) Improve display of attachments 2016-01-06 12:30:34 -05:00
Francis Lachapelle 0bbdd01025 (html,css) Improve display of mail attachments
Added extension of file in a small frame
2016-01-06 12:24:34 -05:00
Francis Lachapelle c65a9155be Improve verification of SOGoLoginDomains array 2016-01-06 09:53:18 -05:00
Francis Lachapelle b19d894f27 Don't try to translate "SOGo" 2016-01-05 14:00:43 -05:00
Francis Lachapelle 23cc8154cc (js/css) Update generated files 2016-01-04 15:59:01 -05:00
Francis Lachapelle 2acf9830f1 (js) Move ngSanitize dependency to SOGo.Common 2016-01-04 11:51:59 -05:00
Francis Lachapelle 7121233a18 (css) Improve display of mail quota 2016-01-04 11:50:25 -05:00
Ludovic Marcotte ae6ed0c055 (feat) applied all changes as a patch coming from PR #180 2015-12-30 09:22:08 -05:00
Ludovic Marcotte d05fd407bd (fix) sync'ed NEWS file across branches 2015-12-30 09:09:51 -05:00
Francis Lachapelle 0d43b02cab (js) Fix the "save" method of Component service 2015-12-22 22:37:36 -05:00
Francis Lachapelle ccc0d61202 Improve display of preferences on small devices 2015-12-22 22:05:05 -05:00
Francis Lachapelle d18e80df08 (css) Visually identify attendees with no freebusy 2015-12-22 21:55:26 -05:00
Francis Lachapelle d08c490992 (js) Decompose contacts list in attendees editor 2015-12-22 17:24:16 -05:00
Francis Lachapelle 6464e35704 (js) Decompose contacts list in mail editor 2015-12-22 16:58:40 -05:00
Francis Lachapelle 711e159b4b Properly compute the last week number for the year
Fixes #1010
2015-12-22 14:19:02 -05:00
Francis Lachapelle ee4e46439f Indentation 2015-12-21 22:20:32 -05:00
Francis Lachapelle b8a7a43fd0 (js) Fix md-checkbox in md-menu 2015-12-21 22:19:10 -05:00
Francis Lachapelle 50f4f8a5c6 Localization 2015-12-21 22:18:20 -05:00
Francis Lachapelle 1419f4b6ca Improve JSON responses for message actions 2015-12-21 22:17:40 -05:00
Francis Lachapelle 1e45606681 (js) Remove obsolete call to "catch" 2015-12-21 21:19:19 -05:00
Francis Lachapelle 1c0cd2bc28 (html) Improve display of members of a list 2015-12-21 21:18:25 -05:00
Francis Lachapelle 662201a428 (js) Show message when emptying the trash 2015-12-21 21:16:20 -05:00
Francis Lachapelle 39510a3242 Show inbox quota information in Mail module 2015-12-21 21:14:39 -05:00
Francis Lachapelle 3cd1c641ab Improve JSON responses for mailbox actions 2015-12-21 21:07:43 -05:00
Francis Lachapelle d8f5673a14 (css) Force background-color of .md-button:hover 2015-12-21 12:03:23 -05:00
Francis Lachapelle c08f507dbf Fix multi-selection of cards in Firefox 2015-12-21 11:40:01 -05:00
Francis Lachapelle 40d9fa059f (html) Fix select menus of login page 2015-12-18 16:35:30 -05:00
Francis Lachapelle 33f03f1cfc Enable virtual-repeat in list of mailboxes 2015-12-18 16:33:01 -05:00
Francis Lachapelle 2628b0e79a "make prod" to build generated css/js files 2015-12-18 14:08:34 -05:00
Francis Lachapelle f778031176 Bump version to 3.0.0b5 2015-12-18 11:48:11 -05:00
Francis Lachapelle b7bfc17f5b (js/css) Update generated files 2015-12-18 11:46:19 -05:00
Francis Lachapelle 80533a6f9a (js) Automatically close sidenav on small devices 2015-12-18 11:43:05 -05:00
Francis Lachapelle 530e7a9d99 (css) Minor cleanup 2015-12-18 11:41:48 -05:00
Francis Lachapelle d2ecb1e95e (html) Fix toolbar alignment of messages list 2015-12-18 11:39:56 -05:00
Francis Lachapelle 39dfc84800 (css) Improve message editor 2015-12-18 11:38:53 -05:00
Francis Lachapelle 140803ebf2 (css) Improve autocompletion display 2015-12-18 09:11:36 -05:00
Francis Lachapelle d225865a3f (css) Don't wrap titles 2015-12-18 09:04:56 -05:00
Francis Lachapelle 904c2f071a (js) No 404 images with contacts chips 2015-12-17 23:34:25 -05:00
Francis Lachapelle f496f2b28f (js) Respect SOGoSearchMinimumSearchLength 2015-12-17 14:53:56 -05:00
Francis Lachapelle b1b8116aff (css) Fix for Safari 2015-12-17 14:26:02 -05:00
Francis Lachapelle e67661e84b (css) Improve buttons of sgToggleGrid directive 2015-12-17 14:25:05 -05:00
Francis Lachapelle 0f4e966ecf (html) Improve contact editor on small devices 2015-12-17 14:02:15 -05:00
Francis Lachapelle 89e947b07b (js) Improve handling of dates changes 2015-12-17 14:00:56 -05:00
Francis Lachapelle fe6bd70b72 (html,css) Group settings in event/task editors 2015-12-17 14:00:42 -05:00
Francis Lachapelle 020563016b (js) Component: move some code from $omit to $save 2015-12-17 13:22:57 -05:00
Francis Lachapelle 52863bf820 (js) Fix JavaScript syntax error in Component 2015-12-17 13:19:34 -05:00
Francis Lachapelle 4973580b4b (js) Improve parsing of dates in component editor 2015-12-16 22:16:04 -05:00
Francis Lachapelle 84199e9c70 (html) Improve color chip of events/tasks lists 2015-12-16 15:37:19 -05:00
Francis Lachapelle 8ff6fc8c1f (js) Fix DnD in multicolumn calendars view 2015-12-15 22:55:40 -05:00
Ludovic Marcotte 3404ae8105 (fix) carry over delegatedFrom too 2015-12-15 16:28:58 -05:00
Ludovic Marcotte 76f0ec9ae0 (fix) carry over the delegatedTo, not only the part stat 2015-12-15 16:28:13 -05:00
Ludovic Marcotte 0f578876af (fix) small fix over previous commit 2015-12-15 11:15:28 -05:00
Ludovic Marcotte cfb741fc9f (fix) avoid duplicating attendees when accepting event using a different identity over CalDAV
Conflicts:

	SoObjects/Appointments/iCalEntityObject+SOGo.h
2015-12-15 11:12:59 -05:00
Francis Lachapelle 544cb85e4d Localization 2015-12-15 10:05:46 -05:00
Francis Lachapelle ffe4d0f232 Localization 2015-12-15 09:56:52 -05:00
Francis Lachapelle 43926f28cb (js/css) Update generated files 2015-12-15 08:37:55 -05:00
Francis Lachapelle 5a8d986cad (js) Respect SOGoDefaultCalendar 2015-12-14 15:04:31 -05:00
Francis Lachapelle c7068b11a7 (css) Improve sg-color-chip of events/tasks lists 2015-12-14 13:53:39 -05:00
Francis Lachapelle 5499746b3a (js) Fix promise of $http in Resource service 2015-12-14 13:16:11 -05:00
Francis Lachapelle bb102e07e1 (js) Remove calls to deprecated methods 2015-12-14 12:20:39 -05:00
Francis Lachapelle 558795327e (js) Improve addressbook create/delete handling 2015-12-14 12:19:15 -05:00
Francis Lachapelle bbb9f31c29 (js) Remove calls to deprecated methods
$http.success and $http.error are deprecated.
2015-12-14 12:16:47 -05:00
Francis Lachapelle 5a1816a5d4 (js) Allow HTML in Dialog alert and confirm
Fixes #177
2015-12-14 12:09:58 -05:00
Francis Lachapelle 38fecebafd (js) Autofocus input field of prompt dialog 2015-12-14 11:30:27 -05:00
Francis Lachapelle 6dd5210cbf (css) Use md-secondary button in messages list
This fixes an issue with Firefox where it's impossible to select
multiple messages by clicking on the avatar.
2015-12-14 10:39:10 -05:00
Francis Lachapelle 04a6e579cf (js) Top navbar: remove divider when no logout
This happens when SOGoTrustProxyAuthentication is enabled.
2015-12-14 09:23:07 -05:00
Francis Lachapelle 5dfb57a955 (js/css) Update generated files 2015-12-11 15:44:55 -05:00
Francis Lachapelle 4b5abdb5ce Adapt to latest md changes
See https://github.com/angular/material/commit/17797f0
2015-12-11 15:12:43 -05:00
Ludovic Marcotte 0b10e20d37 (fix #127) fallback to "work" when export as ldif 2015-12-11 14:50:26 -05:00
Ludovic Marcotte 12da6dc021 (fix #119) disable servername and url by default 2015-12-11 14:10:39 -05:00
Ludovic Marcotte bf07ed5043 (fix #118) handle /.well-known/carddav 2015-12-11 14:02:59 -05:00
Ludovic Marcotte 153c2c33e5 (fix #147) can now add multiple mail labels 2015-12-10 15:12:12 -05:00
Ludovic Marcotte 96e93c0eeb (feat) show toast when compacting folder 2015-12-10 13:54:24 -05:00
Ludovic Marcotte 28399b698a (feat) show toast when saving and sending messages 2015-12-10 13:41:07 -05:00
Ludovic Marcotte 2657612136 (fix) use message instead of error as key 2015-12-10 13:40:31 -05:00
Ludovic Marcotte 89ae2a3d8d (fix #154) show toast upon subscribtion - strings will be added in separate commit 2015-12-10 13:24:31 -05:00
Francis Lachapelle cfe6a30d64 (js) Show all mailboxes when copying messages 2015-12-10 12:07:01 -05:00
Francis Lachapelle b74b73bca4 (js) Focus to new calendar/contact category field
Fixes #172
2015-12-10 11:47:43 -05:00
Francis Lachapelle eb539c1354 (js) Change icon color of color picker 2015-12-10 11:46:05 -05:00
Francis Lachapelle 6672e03c22 (js) Fix batch delete of messages
Internal arrays/objects were not properly updated.
2015-12-10 11:22:43 -05:00
Ludovic Marcotte ccd031693e (fix) also update the task editor 2015-12-10 11:16:00 -05:00
Ludovic Marcotte 156463c084 (fix #157) we now honor which calendars we can write to 2015-12-10 11:11:22 -05:00
Francis Lachapelle 95ca7d0193 (js) Don't allow export from system addressbook 2015-12-09 20:28:07 -05:00
Francis Lachapelle 28163b859c (html) Allow clicking on folder name to search 2015-12-09 20:27:22 -05:00
Francis Lachapelle 49fb7b3487 (js) Remove draggable CSS class when not editable 2015-12-09 20:13:19 -05:00
Francis Lachapelle 20b3a98282 (css/js) Update generated files 2015-12-09 19:38:22 -05:00
Francis Lachapelle 6e988404d9 (js) Make sure some arrays are initialized 2015-12-09 19:28:26 -05:00
Ludovic Marcotte 93ced64456 (fix) make sure empty categories are possible 2015-12-09 19:23:20 -05:00
Francis Lachapelle fcf88444c9 (css/js) Update generated files 2015-12-09 18:55:04 -05:00
Francis Lachapelle ad550a61bc (js) Fix JavaScript syntax 2015-12-09 18:53:35 -05:00
Francis Lachapelle f4e80aa819 (js) Adapt md-toast following changes in md 2015-12-09 18:52:52 -05:00
Ludovic Marcotte 450e3f03e2 (fix) make sure we don't have empty addresses 2015-12-09 18:40:03 -05:00
Ludovic Marcotte 889570d672 (fix) disabled message view caching for now 2015-12-09 18:24:09 -05:00
Francis Lachapelle 845624f569 (html) Add tooltip to "Today" button 2015-12-09 17:51:28 -05:00
Francis Lachapelle 90299dbe91 (css/js) Update generated files 2015-12-09 17:43:12 -05:00
Francis Lachapelle 52fd2174b8 (html) Adapt templates to new breakpoints 2015-12-09 16:52:54 -05:00
Francis Lachapelle 9389957b5f (js) Add upload by DnD in message editor 2015-12-09 16:01:59 -05:00
Francis Lachapelle 5020e3658b (html) Fix login page for mobile devices 2015-12-09 15:15:22 -05:00
Francis Lachapelle 767bad7c94 Remove duplicate key in MainUI localization 2015-12-09 15:14:34 -05:00
Ludovic Marcotte 9926653faa (fix) improve default vacation preferences handling 2015-12-09 14:06:07 -05:00
Francis Lachapelle 903c4280f4 (js) Set default Calendar view to 'week' 2015-12-09 11:55:21 -05:00
Francis Lachapelle 8ad854e30d (html) Fix mail account template 2015-12-09 09:49:27 -05:00
Francis Lachapelle aa54210c44 (css/js) Update generated files 2015-12-09 09:48:09 -05:00
Francis Lachapelle 464a405cee (js) Update Angular Material 2015-12-09 09:46:24 -05:00
Francis Lachapelle 5e978940f9 Improve JSON responses from server 2015-12-09 09:44:33 -05:00
Francis Lachapelle 38e5588c67 (html) Fix mail account template 2015-12-09 09:42:10 -05:00
Francis Lachapelle db96b2830e (js) Intercept and show HTTP errors in md-toast 2015-12-08 16:45:24 -05:00
Francis Lachapelle 24520418f9 Bump version to 3.0.0b4 2015-12-08 14:38:53 -05:00
Francis Lachapelle 623f2720f5 (css) Improve menu display in sidenav 2015-12-08 14:29:00 -05:00
Francis Lachapelle ccdb968e22 Revert "Fix HTML content type when attaching files"
This reverts commit 970f5e5bfe.
2015-12-08 14:14:46 -05:00
Francis Lachapelle 8d115733c3 (css) Fix language select menu of login page 2015-12-08 14:11:36 -05:00
Francis Lachapelle 375cccacc2 (css/js) Update generated files 2015-12-08 12:23:54 -05:00
Francis Lachapelle bc1d9020cc (js) Remove shrinkable toolbar in month's view 2015-12-08 12:16:25 -05:00
Francis Lachapelle c3ce235972 (html) Move delegation button of mail accounts 2015-12-08 12:10:15 -05:00
Francis Lachapelle b10f3e1d62 (html) Improve display of message editor 2015-12-08 11:56:36 -05:00
Francis Lachapelle 7b1febe841 Fix display of S/MIME signature validation 2015-12-08 11:56:01 -05:00
Francis Lachapelle 5289079d67 (html) Remove "from" label in message viewer 2015-12-08 11:49:57 -05:00
Francis Lachapelle 76dd9b1b32 (js) Fix compose message from Contacts module 2015-12-08 10:35:26 -05:00
Francis Lachapelle a79205fb7c (css) Move base_styles/* to structure.scss 2015-12-07 20:54:26 -05:00
Francis Lachapelle 11d03569a4 (css) Fix display of message in popup window 2015-12-07 16:41:06 -05:00
Francis Lachapelle ee71829134 (js) Fix reply and compose message links 2015-12-07 14:07:48 -05:00
Francis Lachapelle 04e0286992 (html) Improve Preferences template 2015-12-07 11:08:39 -05:00
Francis Lachapelle ecf297208a (js) Fix handling of prevent invitations whitelist 2015-12-07 11:05:01 -05:00
Francis Lachapelle a4bc4fc652 (js/css) Update generated files 2015-12-04 15:38:30 -05:00
Francis Lachapelle e14414ed56 Various Web interface changes
- more contrasted primary palette;
- white toolbars for list and detail views;
- modules navigation always visible;
- wrapped detail views into a md-card;
- moved preferences button to the sidenav;
- moved the sidenav toggle button to the top toolbar;
- new "flip" visual effect when looking at the raw source of cards and
  messages.
2015-12-04 15:15:44 -05:00
Ludovic Marcotte efba979f3d (fix) added missing Locale files 2015-12-04 13:56:46 -05:00
Ludovic Marcotte 9b5d37ff3d (fix) added missing languages to the plist 2015-12-04 13:52:10 -05:00
Ludovic Marcotte e80c7da188 (fix) add the languages to the classes too 2015-12-04 13:49:11 -05:00
Ludovic Marcotte b4aa8b27d4 (fix) added Macedonian and Portuguese to the GNUmakefile files 2015-12-04 13:43:36 -05:00
Ludovic Marcotte 3cd973b365 (fix) added missing files for Macedonian and Portuguese translations 2015-12-04 13:03:11 -05:00
Ludovic Marcotte c427a62fb0 (fix) sync'ed translations with files from v2 2015-12-04 12:48:52 -05:00
Francis Lachapelle d19369a5aa (js/css) Update vendor files 2015-12-04 09:07:07 -05:00
Ludovic Marcotte f4679ec4ab (fix) added missing strings for upcoming translations 2015-12-03 11:34:59 -05:00
Ludovic Marcotte fee7adfc0c Merge branch 'feature/addMissingStrings2' 2015-12-03 11:17:33 -05:00
Ludovic Marcotte 9b0a2c5fae Merge branch 'master' into feature/addMissingStrings2
Conflicts:
	UI/AdministrationUI/English.lproj/Localizable.strings
	UI/PreferencesUI/English.lproj/Localizable.strings
	UI/Templates/PreferencesUI/UIxFilterEditor.wox
2015-12-03 11:16:17 -05:00
Francis Lachapelle 9e776be2ce Enable zoom of images in message viewer 2015-12-03 10:35:34 -05:00
Francis Lachapelle 4189406962 Localization 2015-12-03 10:30:21 -05:00
Francis Lachapelle 348ba65c6e (js) Restore dot search in Contacts module 2015-12-02 16:43:06 -05:00
Francis Lachapelle af5599015b (js) Add links to attachments in message editor 2015-12-02 16:32:39 -05:00
Francis Lachapelle 8f8885a8ea (css) Fix "view-detail" of Calendar module
Will now take all space when sidenav is hidden.
2015-12-02 14:53:06 -05:00
Francis Lachapelle 9c2d7b5316 (css) Improve day and week display of events 2015-12-02 14:07:29 -05:00
Francis Lachapelle 8635eab502 Improve display of message attachments
Images are now "zoomable" by clicking on them.
2015-12-02 14:03:10 -05:00
Francis Lachapelle b02de72e57 Add sidenav toggle button in Calendar module
Also show the current list filter on the right side of the toggle
button.
2015-12-02 13:55:08 -05:00
Francis Lachapelle b2c2fc5dcd Improve attachments of message editor
Needed to disable multiple files upload at the same time until this bug
is resolved:

https://github.com/nervgh/angular-file-upload/issues/525
2015-12-02 10:52:35 -05:00
Francis Lachapelle f0ec431f30 (js) Refresh draft folder when saving new message 2015-12-01 16:26:30 -05:00
Francis Lachapelle 38963916aa Improve uglify Grunt task 2015-12-01 16:12:30 -05:00
Francis Lachapelle 970f5e5bfe Fix HTML content type when attaching files 2015-12-01 16:12:30 -05:00
Francis Lachapelle 5bb6cea09e (js,css) Improve handling of attachments in editor 2015-12-01 16:12:30 -05:00
Ludovic Marcotte 0660db7bf6 (fix) reverted change for #3389 2015-12-01 11:41:18 -05:00
Francis Lachapelle 827bc00982 (js) Fix list refresh when saving draft at index 0 2015-12-01 11:19:18 -05:00
Ludovic Marcotte d51d5c85b0 (fix) prevent characters in calendar component UID causing issues during import process 2015-12-01 09:27:27 -05:00
Francis Lachapelle fdb36970d4 (css) Adapt to new breakpoints and layout-align 2015-11-30 14:13:15 -05:00
Ludovic Marcotte 77755770a8 (feat) Initial support for EAS calendar exceptions 2015-11-30 09:19:25 -05:00
Francis Lachapelle 3106fa44c8 (html) Fix "no selection" right-side of Contacts 2015-11-27 17:34:42 -05:00
Francis Lachapelle 33edaacb13 (js) Fix height of virtual repeater in Contacts 2015-11-27 17:30:49 -05:00
Francis Lachapelle d19593afc3 (js) Allow hiding the sidenav on large screens
Position of button is not final as it causes an issue with the tabs of
the Calendar module.
2015-11-27 16:40:23 -05:00
Ludovic Marcotte 403d6fa54f (feat) you can now select your alternate avatar 2015-11-27 16:04:12 -05:00
Ludovic Marcotte 39455a283a (fix) replace .md-actions with md-dialog-actions in JS files 2015-11-27 13:56:31 -05:00
Ludovic Marcotte 6d29e50f22 (fix) replace .md-actions with md-dialog-actions 2015-11-27 13:00:39 -05:00
Francis Lachapelle 656835ca19 (html) Improve custom dialog for recurrent events 2015-11-27 11:58:14 -05:00
Ludovic Marcotte 62255eaf33 (feat) role can be displayed and set 2015-11-27 11:27:38 -05:00
Ludovic Marcotte ba7670ad59 (fix) added missing semicolon 2015-11-27 11:22:50 -05:00
Francis Lachapelle adb3c3a0e6 (html) Hide tags chips if message has none 2015-11-27 11:20:07 -05:00
Ludovic Marcotte dbffc50f06 (feat) screenname (x-aim) is now shown and editable 2015-11-27 10:58:56 -05:00
Ludovic Marcotte 4d0361759a (fix) use toast to warn about too many sent mails 2015-11-26 16:30:21 -05:00
Francis Lachapelle fe3f1d6678 (html) Improve priority icon for messages 2015-11-26 15:02:21 -05:00
Francis Lachapelle 93fa67c492 (css) Improve list in sidenav 2015-11-26 13:48:29 -05:00
Francis Lachapelle 00b22a71db (js) Only allow dragging of editable events 2015-11-26 13:31:26 -05:00
Francis Lachapelle 2e2d8b6963 (js) Fix count of selected events/tasks 2015-11-26 12:11:39 -05:00
Francis Lachapelle bb88643568 (js) Improve condition in CalendarListController 2015-11-26 12:04:52 -05:00
Francis Lachapelle f161cbe56b (html) Improve dates display in event/task viewer 2015-11-26 12:03:35 -05:00
Francis Lachapelle 71b03b925d (html) Fix "selected" icon for tasks list 2015-11-26 12:03:03 -05:00
Ludovic Marcotte 0114f8dc6a (fix) wrong check for viewable property 2015-11-26 11:38:31 -05:00
Francis Lachapelle 877ce7e4e4 (css) Add variable for latest md changes 2015-11-26 10:16:14 -05:00
Francis Lachapelle 418d30193b Improve users search in Administration module 2015-11-25 16:16:32 -05:00
Ludovic Marcotte 4edb87978b (fix) correctly handle all-day event exceptions when the master event changes 2015-11-25 15:53:48 -05:00
Ludovic Marcotte faa5d83cf6 (fix) EAS fix on qp-encoded subjects (#3390) 2015-11-25 15:09:48 -05:00
Francis Lachapelle 5f54ee09f1 (js) Fix navigation when deleting a card 2015-11-25 11:23:13 -05:00
Francis Lachapelle 5c6e19a67c (html) Add placeholder to search input fields 2015-11-25 11:23:12 -05:00
Francis Lachapelle 77fa55c6a4 (js) Reload the page when changing language cont'd 2015-11-25 11:23:12 -05:00
Francis Lachapelle 6c1e443d01 (css) Reclaim some space in addressbook list 2015-11-25 11:23:11 -05:00
Francis Lachapelle 6918650f5b (js) Close sidenav on small devices 2015-11-25 11:23:11 -05:00
Ludovic Marcotte b9462ed86d (fix) adjust doc and packaging regarding oc cleanup script 2015-11-25 10:57:16 -05:00
Francis Lachapelle 3d75d6affa (css) Reclaim some space in the left sidenav 2015-11-25 10:06:48 -05:00
Francis Lachapelle 69ff0634b4 (html) Fix "no selection" right-side views 2015-11-25 09:37:59 -05:00
Francis Lachapelle 00c923df7a (css) Add variables for latest md changes 2015-11-25 08:51:04 -05:00
Francis Lachapelle b6930fde26 (js) Move 'Reply All' action to a distinct button 2015-11-24 16:30:36 -05:00
Francis Lachapelle 5a5b4cc829 (js) Various improvements and fixes 2015-11-24 15:05:32 -05:00
Francis Lachapelle 333d279246 (js) Ask to reload the page when changing language 2015-11-24 15:05:32 -05:00
Ludovic Marcotte 9a12fb24a6 (fix) EAS fix for wrong charset being used (#3392) 2015-11-23 18:09:58 -05:00
Ludovic Marcotte 888db0b1be Updated NEWS file from v2 branch 2015-11-23 18:09:30 -05:00
Francis Lachapelle 3ec8847590 (html) Move 'Delete' button with action buttons
In appointment and task viewers.
2015-11-23 16:34:02 -05:00
Francis Lachapelle 823da43776 (html) Remove 'all day' option from task editor
This option is not supported yet (as in v2).
2015-11-23 16:25:09 -05:00
Francis Lachapelle c2d539d3c8 (js) Scroll to user's defined day start hour 2015-11-23 16:22:32 -05:00
Francis Lachapelle edf69e5989 (js) Improve task viewer 2015-11-23 15:12:44 -05:00
Ludovic Marcotte 6cdf9f55b4 (fix) fixed one unit test 2015-11-23 13:22:11 -05:00
Francis Lachapelle 3baef22df4 (js) Create event by dragging in month's view 2015-11-20 15:36:24 -05:00
Francis Lachapelle 90e79e7605 (js) Add drag'n'drop to month's view 2015-11-20 13:31:04 -05:00
Ludovic Marcotte 6a3a249bd6 (fix) domain in doc 2015-11-20 11:22:14 -05:00
extrafu c5017fc69e (fix) allow getting password from context for OC 2015-11-19 17:58:25 -05:00
Francis Lachapelle 7c86a43e48 (html) Fix color picker height in Firefox
Solution was to wrap the grid content into a md-content.
2015-11-17 15:15:39 -05:00
Francis Lachapelle e4eef9b780 (js,css) Show categories in events/tasks lists 2015-11-17 12:22:06 -05:00
Francis Lachapelle 2d6bdd37da (css) Improve display of events with categories 2015-11-17 11:28:50 -05:00
Francis Lachapelle 450ec06bd8 (js) Add shadow to event ghost (DnD) 2015-11-17 11:27:30 -05:00
Francis Lachapelle 0bd29e250e (css) Don't impose a transition to all md-toolbars 2015-11-16 16:19:25 -05:00
Francis Lachapelle 4685c0ff2a (js) Show events categories as color bands 2015-11-14 14:29:21 -05:00
Francis Lachapelle ace9fa9e4e (html) Show event location in Calendar days views 2015-11-13 15:45:44 -05:00
Francis Lachapelle 58dfa2e43b Return categories (from quick table) as an array 2015-11-13 14:43:03 -05:00
Francis Lachapelle 9d0bc5570b (js) Highlight selected color in color picker 2015-11-13 14:19:11 -05:00
Francis Lachapelle 5ed142853a (html) Mark recurrent events in Calendar views 2015-11-13 10:52:38 -05:00
Francis Lachapelle fc1dfcff10 (js) Fix display and refresh of freebusy 2015-11-13 10:46:32 -05:00
Francis Lachapelle 4f6c099564 (js) Fix creation of a task 2015-11-12 16:04:31 -05:00
Francis Lachapelle d081f3c6eb Display description for alarm & repeat definitions
This is not the perfect solution has the localization may be unsuitable
in some languages.
2015-11-12 12:29:10 -05:00
Francis Lachapelle 98493fbcac (css) Fix scrollbars in Calendar views 2015-11-11 16:44:26 -05:00
Francis Lachapelle b30f20e1b3 (js) Fix creation of a Calendar 2015-11-11 16:42:46 -05:00
Francis Lachapelle 87fc7b39cc Handle ExpandedFolders settings from v2 2015-11-11 16:01:37 -05:00
Ludovic Marcotte c7ef7a1d2f (feat) added calendar import/export feature 2015-11-11 11:18:49 -05:00
Francis Lachapelle 7316d13176 Improve contacts import dialog box 2015-11-10 15:05:41 -05:00
Francis Lachapelle 6a9e3a6e96 (html) Contextual icons in fab button of Calendars 2015-11-09 14:57:26 -05:00
Francis Lachapelle 0f2d0e9069 (css) Improve input field for folder name 2015-11-09 14:49:27 -05:00
Francis Lachapelle cc5cc30c24 (js) Improve addressbook renaming
The AddressBook instance to list the cards is now the same as the one
from the list of addressbooks. Therefore, when renaming an addressbook,
the addressbook name in the list is automatically updated.
2015-11-09 14:46:30 -05:00
Ludovic Marcotte dc3e42fd62 (fix) additional fix for #3356 2015-11-09 14:31:28 -05:00
Francis Lachapelle d23f7f1cc2 (js) Improve event creation through DnD 2015-11-09 12:15:16 -05:00
Francis Lachapelle a576b95663 (js) Add sgCalendarDayBlockGhost directive 2015-11-06 16:07:52 -05:00
Francis Lachapelle 2e02380a93 Initial drag'n'drop support in Calendar module
TODO:
- drag'n'drop in month's view;
- drag to create an all-day event;
- drag'n'drop to a calendar in the sidenav;
- touchscreen gestures support.
2015-11-06 15:15:37 -05:00
Ludovic Marcotte fc16d6ad90 (fix) fixed addressbrook-only source entires having a c_uid set
Conflicts:

	NEWS
	SoObjects/Contacts/SOGoContactSourceFolder.m
2015-11-06 13:38:26 -05:00
Ludovic Marcotte bdfe95a7fb (fix) fixed wrong comparison of meta vs. META tag in HTML mails
Conflicts:

	NEWS
2015-11-06 09:28:46 -05:00
Ludovic Marcotte 0d919dbd02 (fix) small fixes 2015-11-06 09:02:06 -05:00
Ludovic Marcotte c18f5c2246 We drop Lucid. 2015-11-05 15:40:40 -05:00
Ludovic Marcotte ab322093cd (fix) handle emails having an attachment as their content 2015-11-05 15:21:33 -05:00
Ludovic Marcotte 350fe2e7e0 (fix) one more fix for #3118 2015-11-05 14:59:41 -05:00
Francis Lachapelle f3f7ca8599 Merge pull request #115 from ethoms/clang-warnings-stage8
Stage 8 of clang compiler warning patches.
2015-11-05 13:22:08 -05:00
ethoms 3a103fd0dd Update WORequest+SOGo.m 2015-11-06 01:47:32 +08:00
Francis Lachapelle c5cac316c3 (js) Fix all-day dates covering a timezone change 2015-11-05 11:53:44 -05:00
Ludovic Marcotte a8525658b3 (fix) additional fix for #3118 2015-11-05 11:11:49 -05:00
Ludovic Marcotte 5f82d3fb37 (fix) manually added fixes from PR#120 2015-11-05 09:59:31 -05:00
Ludovic Marcotte edebdf1171 Updated NEWS file regarding PR#120
Conflicts:

	NEWS
2015-11-05 09:49:26 -05:00
extrafu 9fb69a8095 Merge pull request #113 from ethoms/clang-warnings-stage6
Stage 6 of clang compiler warning patches.
2015-11-05 09:34:24 -05:00
ethoms bf87c71671 Update WORequest+SOGo.m 2015-11-05 10:23:01 +08:00
ethoms 30488f4f6d Update WORequest+SOGo.m 2015-11-05 10:22:11 +08:00
ethoms 4ca3a1f42d Update SOGoParentFolder.m 2015-11-05 08:01:38 +08:00
ethoms efbf8825b1 Update SOGoParentFolder.m 2015-11-05 07:29:45 +08:00
ethoms becfdc215f Update SOGoParentFolder.h 2015-11-05 07:20:36 +08:00
extrafu d805cdfef4 Merge pull request #109 from ethoms/clang-warnings-stage2
Stage 2 of clang compiler warning patches.
2015-11-04 13:48:27 -05:00
extrafu cc1555af22 Merge pull request #108 from ethoms/clang-warnings-stage1
Stage1 of clang compiler warning patches.
2015-11-04 13:40:09 -05:00
Ludovic Marcotte 72b1fc1f3f (fix) wrong class for list avatar 2015-11-04 11:26:21 -05:00
Ludovic Marcotte 12863f1d2f (feat) now properties dialog for addressbooks
Now also possible to set the EAS sync flag for addressbooks
2015-11-04 10:38:24 -05:00
Ludovic Marcotte 39601a9cf9 (feat) moved FolderSynchronize code to GCS
Conflicts:

	SoObjects/Appointments/SOGoAppointmentFolder.h
2015-11-04 09:55:02 -05:00
ethoms 0cb1504f2c Update SOGoCalendarComponent.m 2015-11-04 08:18:23 +08:00
ethoms d19c883622 Update UIxCalListingActions.m 2015-11-04 07:38:47 +08:00
ethoms a1c6a6676e Update UIxCalListingActions.m 2015-11-04 07:37:34 +08:00
ethoms 59c8a0f722 Update UIxMailPartViewer.m 2015-11-04 07:33:28 +08:00
ethoms 6dc912eee5 Update SOGoGCSFolder.m 2015-11-04 07:29:50 +08:00
ethoms 1a0915ebf6 Update SOGoFolder.m 2015-11-04 07:27:53 +08:00
ethoms 6bff05b84a Update SOGoMailLabel.m 2015-11-04 07:24:02 +08:00
ethoms b5eb13c3b7 Update SOGoContactSourceFolder.m 2015-11-04 07:19:37 +08:00
extrafu 1fab2028e2 Merge pull request #116 from ethoms/clang-warnings-stage9
Stage 9 of clang compiler warning patches.
2015-11-03 18:08:28 -05:00
extrafu b7ebf6e781 Merge pull request #112 from ethoms/clang-warnings-stage5
Stage 5 of clang compiler warning patches.
2015-11-03 18:06:33 -05:00
extrafu d9a929762f Merge pull request #111 from ethoms/clang-warnings-stage4
Stage 4 of clang compiler warning patches.
2015-11-03 18:02:48 -05:00
extrafu 165337bebc Merge pull request #110 from ethoms/clang-warnings-stage3
Stage 3 of clang compiler warning patches.
2015-11-03 18:01:04 -05:00
Euan Thoms 46ccd04c70 Stage 9 of clang compiler warning patches. 2015-11-04 06:13:01 +08:00
Euan Thoms 440a86d3f2 Stage 8 of clang compiler warning patches. 2015-11-04 06:02:45 +08:00
Euan Thoms 0b4c355c2c Stage 6 of clang compiler warning patches. 2015-11-04 05:37:39 +08:00
Euan Thoms 36c1ba88a5 Stage 5 of clang compiler warning patches. 2015-11-04 05:28:03 +08:00
Euan Thoms 2303a250c5 Stage 4 of clang compiler warning patches. 2015-11-04 04:59:27 +08:00
Francis Lachapelle cbf9b6da3e Fix all-day events covering a timezone change 2015-11-03 15:47:30 -05:00
Euan Thoms a64d55f95c Stage 3 of clang compiler warning patches. 2015-11-04 03:59:40 +08:00
Euan Thoms 9a3f8549ea Delete .orig files left over from applying patches to Stage 2. 2015-11-04 03:40:53 +08:00
Euan Thoms 212ff64828 Stage 2 of clang compiler warning patches. 2015-11-04 03:36:34 +08:00
Euan Thoms 7541fb62e0 Merge branch 'master' of https://github.com/inverse-inc/sogo into clang-warnings-stage1 2015-11-04 02:14:50 +08:00
Francis Lachapelle e5c71a4179 Fix Brazilian (Portuguese) translation
Fixes #3355
2015-11-03 08:33:01 -05:00
Euan Thoms 3c62cc744e Stage 1 of clang compiler warning patches. 2015-10-31 14:10:03 +08:00
Francis Lachapelle 0b490a00c6 (js) Improve dates adjustments in editors
The main issue to resolve was to handle the time reset by the datepicker
when changing dates.
2015-10-30 08:38:19 -04:00
Francis Lachapelle 2bad5c0da4 (js) Preserve the time when changing the day 2015-10-29 16:17:37 -04:00
Francis Lachapelle 293b93ec69 (css) Color transition when changing calendar 2015-10-27 16:14:36 -04:00
Francis Lachapelle dc385a82ff (js) Reload page when session has expired 2015-10-27 11:31:31 -04:00
Francis Lachapelle 4172c216f5 (js) Select newly added user in ACLs editor 2015-10-27 11:28:42 -04:00
Ludovic Marcotte 09e354ed0e (feat) support for ghosted elements on contacts over EAS 2015-10-26 10:27:13 -04:00
Ludovic Marcotte d7fb79381e (feat) we now save the supported elements in EAS collections 2015-10-26 10:16:09 -04:00
Ludovic Marcotte 700a00b822 (fix) prevent postal address showing on single line over EAS (#2614) 2015-10-26 10:08:28 -04:00
extrafu ffbc20916a Merge pull request #105 from inverse-inc/feature/TestNGMailAddressParser
Added new tests for NGMailAddressParser
2015-10-23 15:52:11 -04:00
Ludovic Marcotte 746eea4bb6 (fix) perms fixes on scripts 2015-10-23 15:40:19 -04:00
Ludovic Marcotte 987700cd87 (fix) inline images sent from SOGo webmail are not displayed in Mozilla Thunderbird (#3271) 2015-10-23 14:35:10 -04:00
Ludovic Marcotte a55d5c95b5 (fix) avoid crash when replying to a mail with no recipients (#3359) 2015-10-23 12:45:28 -04:00
Ludovic Marcotte 907c30061f (fix) we now return all cards when we receive an empty addressbook-query REPORT 2015-10-21 10:55:09 -04:00
Ludovic Marcotte 2ee09159a2 (feat) now possible to choose which folders to sync over EAS 2015-10-20 15:33:48 -04:00
Ludovic Marcotte 114622fee0 (fix) last fixes for cache coherency 2015-10-20 08:49:32 -04:00
Ludovic Marcotte 74085ed96b (fix) make sure a recipient is defined before enabling the Send button 2015-10-16 14:00:04 -04:00
Ludovic Marcotte 8979aebe31 (fix) oh well, old crappy distros 2015-10-15 16:11:30 -04:00
Ludovic Marcotte 020fa78848 (feat) initial S/MIME support for EAS (#3327) 2015-10-15 15:32:15 -04:00
Francis Lachapelle ddf97ebb13 (js) Improve sgColorPicker directive
- replaced sg-on-select by ng-model;
- set button background (no more wrapping necessary).
2015-10-15 15:13:28 -04:00
Ludovic Marcotte b02a4f82a0 (fix) don't escape quoted strings during versit generation 2015-10-15 12:51:58 -04:00
Francis Lachapelle 2c2c5241eb (css) Improve Calendar views 2015-10-15 10:50:24 -04:00
Francis Lachapelle 24ad2493a4 (css) Add material grey palette to Sass 2015-10-15 10:49:23 -04:00
Francis Lachapelle e0e4a94b87 (js) Improve handling of calendar color edition 2015-10-14 21:05:17 -04:00
Francis Lachapelle dc3741f436 (html,js) Adjust padding of dialogs
Following this commit:
d2140b1565
2015-10-14 10:31:15 -04:00
Francis Lachapelle feac8bb8f4 (js) Compute contrast color for background color 2015-10-14 10:00:14 -04:00
Francis Lachapelle 9f11e68de8 Group functions in utils.js 2015-10-14 10:00:13 -04:00
Ludovic Marcotte 15de70b938 (fix) make sure English is always used when generating Date headers using EAS (#3356) 2015-10-14 09:58:42 -04:00
Ludovic Marcotte ea24e9586b (fix) we no longer always rewrite emails for Outlook when using EAS 2015-10-14 09:30:35 -04:00
Ludovic Marcotte 4e9911419a (fix) handle references correctly over EAS (#3365) 2015-10-14 09:28:12 -04:00
Ludovic Marcotte bfa3cf379c (fix) numerous EAS fixes when connections are dropped before the EAS client receives the response (#3058, #2849)
Conflicts:

	NEWS
2015-10-14 09:23:03 -04:00
Francis Lachapelle 4002da9323 (css) Adjustment in day/week views 2015-10-14 09:06:11 -04:00
Francis Lachapelle d5c09f6114 Change order of JS files in Mail module 2015-10-14 09:00:01 -04:00
Francis Lachapelle 737a19e653 (html) Add labels in appointment & task editors 2015-10-14 08:59:11 -04:00
Francis Lachapelle 43248fb5ea (html) Minor improvements to message viewer 2015-10-14 08:55:57 -04:00
Francis Lachapelle 1118dbceff Bump version to 3.0.0b3 2015-10-13 16:09:36 -04:00
Francis Lachapelle 369060a52f (js/css) Update generated files
With Angular Material 0.11.3
2015-10-13 16:05:39 -04:00
Francis Lachapelle 4da53b88b6 Fix display of Admin module on small devices 2015-10-13 14:30:09 -04:00
Francis Lachapelle 8924a2b670 (css) Adjustments in Contact viewer and editor 2015-10-09 16:50:54 -04:00
Francis Lachapelle 62537e0c15 (doc) Improve API documentation 2015-10-09 16:50:09 -04:00
Francis Lachapelle 7ef976bfe4 (css) Adjustments in Contact viewer and editor 2015-10-09 16:49:33 -04:00
Francis Lachapelle 05515673b7 Improve ACL editor 2015-10-09 16:49:08 -04:00
Francis Lachapelle 84f4698225 (js) Add missing dependency in Scheduler routing 2015-10-09 16:20:19 -04:00
Francis Lachapelle e5fdc28241 (js) Improve error handling in Contacts routing 2015-10-09 16:19:28 -04:00
Francis Lachapelle 7ddf7be705 Improve Administration module 2015-10-09 16:10:39 -04:00
Francis Lachapelle b63ee6998d (js) Fix avatar for groups 2015-10-09 16:03:05 -04:00
Francis Lachapelle 0b3095f7ed (js) Add missing dependency to Contact module 2015-10-09 16:01:56 -04:00
Francis Lachapelle e88af22708 (css) Minor improvement to preferences template 2015-10-09 13:37:01 -04:00
Francis Lachapelle d68008b5fd Update npm packages and add time-grunt 2015-10-09 12:11:37 -04:00
Francis Lachapelle e2d6e8ffe9 (js) Fix "file into" option of Sieve filter 2015-10-08 16:42:24 -04:00
Francis Lachapelle 2ad02b8386 (js) Improve User.$filter 2015-10-08 10:04:25 -04:00
Ludovic Marcotte 58afdedcc1 (fix) added missing template 2015-10-07 16:21:06 -04:00
Ludovic Marcotte e6be7e00ba (fix) improved the start/end delta handling and fixed the attendees viewer 2015-10-07 14:42:37 -04:00
Ludovic Marcotte 74eb0846e8 (fix) correctly round up the start/end/due time to 15 mins 2015-10-07 09:22:26 -04:00
Ludovic Marcotte 4f4b00cc54 (feat) first pass of working code for ACL admin module 2015-10-06 16:38:16 -04:00
Francis Lachapelle ad40bff91f Add missing content type to mixed part viewer 2015-10-06 15:38:37 -04:00
Francis Lachapelle 13f4e5a4de (css) Update SASS for latest md 2015-10-06 13:38:15 -04:00
Francis Lachapelle 459b183a42 Add jsdoc.json
Configuration file for jsdoc:

  jsdoc -c jsdoc.json
2015-10-06 09:55:32 -04:00
Francis Lachapelle 9fa9b7acab Improve mail (Sieve) filter editor
- Used 'controller as' syntax;
- Don't create new filter if user cancels the edition;
- Set default values for new filter.
2015-10-05 10:45:30 -04:00
Francis Lachapelle a393128d7a (js,html) View raw source of components 2015-10-02 17:01:06 -04:00
Francis Lachapelle 73ac55acfe (js) Fix advanced search construction 2015-10-02 15:43:02 -04:00
Francis Lachapelle e1393c3af2 Improve display of current day in month view 2015-10-02 15:13:30 -04:00
Francis Lachapelle d27c792324 (js,html) Allow the removable of attendees 2015-10-02 11:22:30 -04:00
Francis Lachapelle 42d306a24b (js) Remove some debugging output 2015-10-02 11:16:47 -04:00
Francis Lachapelle 6a7e06b0bb (html) Fix display of attendees
This bug is due to changes in the CSS of Angular Material.
2015-10-02 11:15:26 -04:00
Francis Lachapelle e36e9fd826 (html) Fix secondary click in calendars list 2015-10-02 09:41:57 -04:00
Francis Lachapelle aface8f8cf (html) Restore shadows in toolbars 2015-10-01 09:34:37 -04:00
Francis Lachapelle 790fc8e940 (js) Fix (sub)mailboxes state restore 2015-09-30 16:41:29 -04:00
Francis Lachapelle 35d1ca8775 Restore expandable mailboxes 2015-09-30 16:17:05 -04:00
Francis Lachapelle e8ca329070 Save mailboxes state as an array, not a string 2015-09-30 16:12:23 -04:00
Luc Charland f4ed7d9448 removed empty line 2015-09-30 12:17:20 -04:00
Luc Charland c7825601e6 removed author 2015-09-30 11:47:43 -04:00
Francis Lachapelle d07e254026 (js) Simplify Mailbox service 2015-09-30 11:29:05 -04:00
Francis Lachapelle 0f08571a83 (js) Fix ensureTarget filter to preserve CSS 2015-09-30 11:28:22 -04:00
Luc Charland 781e408091 - used tab instead of spaces for GNUMakefile
- removed unused logging
- used generic names
2015-09-30 11:23:45 -04:00
Luc Charland 549c57f8a6 Added new tests for NGMailAddressParser 2015-09-30 11:04:14 -04:00
Francis Lachapelle 45bc5a5368 Multicolumn day view
Restored multicolumn day view from v2.

Month view as also been improved.
2015-09-29 14:17:04 -04:00
Francis Lachapelle d51bef162a (js) Add border class for folder colors 2015-09-29 14:01:16 -04:00
Francis Lachapelle 1535660a31 Localization 2015-09-29 09:34:01 -04:00
Francis Lachapelle 90063ae563 (js) Fix error in advanced search mode 2015-09-29 08:58:23 -04:00
Francis Lachapelle b27cfc2bd8 (js) Delete an event or a task 2015-09-28 11:27:20 -04:00
Francis Lachapelle 5496dd97d9 Improve lists by compacting items 2015-09-25 16:07:56 -04:00
Francis Lachapelle 31f2e4b549 (js) Fix selected message class in advanced search
Also improved display of accounts subheaders.
2015-09-24 21:42:33 -04:00
Francis Lachapelle ec8c2d08e2 Fix handling of mail priority 2015-09-24 14:36:37 -04:00
Ludovic Marcotte 1ce9d71635 (fix) add robustness to part states handling 2015-09-24 13:21:23 -04:00
Francis Lachapelle a6c440d245 (js) Improve renaming an address book 2015-09-24 11:12:57 -04:00
Ludovic Marcotte e3d3eb171d (fix) small optimization 2015-09-24 11:03:19 -04:00
Francis Lachapelle 3a4365b15a (js) Fix ngSwitch in Contacts module 2015-09-24 11:01:27 -04:00
Francis Lachapelle 7f3d57c8dc (html) Sort by lastname and firstname in Contacts 2015-09-24 10:55:08 -04:00
Ludovic Marcotte e93853d910 (fix) make sure to open card's url in new window 2015-09-23 20:35:55 -04:00
Francis Lachapelle fcba6f2ddb Improve Calendar views
Moved toolbars inside "list" and "detail" views, like we do in the other
modules. With this change, it was possible to move the navitation button
(chevrons) inside the top toolbar of the detail view. Also move the view
headers inside a toolbar. The all-day events of the day and week views
have also been moved inside this toolbar.
2015-09-23 15:24:24 -04:00
Ludovic Marcotte eb50f94b2b (fix) remove ng-click to allow FF to select/unselect personal calendars 2015-09-23 09:22:01 -04:00
Francis Lachapelle 9f7b69b037 (html) Restore active module icon as disabled 2015-09-22 12:00:07 -04:00
Francis Lachapelle c6cd3b0e1d Update angular-material 2015-09-22 11:58:18 -04:00
Francis Lachapelle 31026a5bed (js/css) Update generated files 2015-09-22 11:56:33 -04:00
Francis Lachapelle 08fbc00d7a (js) Add "today" button to Calendar module 2015-09-22 10:17:17 -04:00
Francis Lachapelle 957336b24c (css) Fix display of attendees editor 2015-09-22 09:41:47 -04:00
Francis Lachapelle 2a925de52c (js, css) Improve timepicker 2015-09-21 21:13:28 -04:00
Francis Lachapelle cf8dd02411 (css) Wrap Scheduler directives in unique selector 2015-09-21 20:56:55 -04:00
Francis Lachapelle da37b3f868 Rename Slovenian template
Closes #104
2015-09-21 20:40:39 -04:00
Francis Lachapelle 24450a9c20 Update NEWS file
Conflicts:

	NEWS
2015-09-21 16:13:16 -04:00
Francis Lachapelle 964f79db35 Update NEWS file 2015-09-21 16:10:43 -04:00
Ludovic Marcotte c0f51cf731 (fix) don't offer the delete option on personal resources 2015-09-21 15:00:32 -04:00
Francis Lachapelle ae3ce7186d (css) Set flex width of search field menu 2015-09-21 12:29:07 -04:00
Francis Lachapelle 5034a72ed1 (css) Lower events overlapping (5% => 2%) 2015-09-21 12:29:06 -04:00
Ludovic Marcotte fdad1e061a (fix) set default's module path name to SOGo 2015-09-21 12:02:33 -04:00
Francis Lachapelle d5d54822b0 (html) Improve mail editor 2015-09-21 11:58:48 -04:00
Francis Lachapelle 81cdf5be7b (css) Update SASS for latest md 2015-09-21 11:50:47 -04:00
Francis Lachapelle 959ea0f62f (html) Show active tasks count in Calendar module 2015-09-21 09:49:14 -04:00
Ludovic Marcotte 1c666e8ead (fix) simplified logic and improved code readability 2015-09-21 08:59:36 -04:00
Ludovic Marcotte 7692832672 (fix) define -modulePath to avoid broken ApplicationURL path 2015-09-21 08:41:31 -04:00
Francis Lachapelle 2bfd9f983d (html) Hide timepicker when editing all-day event 2015-09-19 22:22:39 -04:00
Francis Lachapelle 2a5e19a762 (css) Improve Calendar views 2015-09-19 22:22:39 -04:00
Ludovic Marcotte 258f5e0b25 (fix) correctly handle module name for "folder less" SOGo modules 2015-09-18 20:30:35 -04:00
Ludovic Marcotte 3609e41205 (fix) make sure the autoreply addresses are always defined to avoid an exception in v2 if not 2015-09-18 19:55:37 -04:00
Francis Lachapelle 2ea2edbccd Display all-day events in day & week views
All-day events are now displayed and the day/week views are now built using flexbox.
2015-09-18 16:11:31 -04:00
Francis Lachapelle fab9e938fc Fix URL escaping unti test 2015-09-18 13:53:32 -04:00
Ludovic Marcotte 9a2f3914e2 (fix) additional fix for issue #3152 2015-09-17 16:29:21 -04:00
Ludovic Marcotte f13b3dd201 (fix) typo in previous commit 2015-09-17 16:02:45 -04:00
Ludovic Marcotte 413550a025 (fix) memory leak when sync'ing GCS collections 2015-09-17 15:59:20 -04:00
Francis Lachapelle 06ac255f1a (css) Badge for mail folders unread count 2015-09-17 15:08:21 -04:00
Francis Lachapelle 0682b24438 (fix) Selection of Mail advanced search criteria 2015-09-17 15:06:48 -04:00
Francis Lachapelle a01926b878 (html) Improve folder subscription dialog box 2015-09-17 10:37:35 -04:00
Francis Lachapelle 58ff8139e9 Allow rename of calendars 2015-09-17 10:33:12 -04:00
Francis Lachapelle 70bb512bb8 Improve folders rename 2015-09-16 16:15:04 -04:00
Francis Lachapelle 7b580f8af6 (js) Fix variable verification in sgSearch 2015-09-16 14:26:24 -04:00
Francis Lachapelle 11d9765a69 Add verbose output to "sogo-tool remove" command 2015-09-16 11:40:14 -04:00
Ludovic Marcotte 24a3ecd2d6 Updated .gitingore for EAS bundle 2015-09-16 10:41:20 -04:00
Ludovic Marcotte 139ed39663 (fix) update the doc regarding the temporarily dropping rhel/old debian/ubuntu support 2015-09-16 09:58:36 -04:00
Francis Lachapelle 875d23aea0 (js/css) Update generated files 2015-09-15 12:05:37 -04:00
Francis Lachapelle c4ad8a64fa (html) Improve login page 2015-09-15 11:42:47 -04:00
Francis Lachapelle c464791d92 Improve display of mail advanced search 2015-09-14 21:35:34 -04:00
Francis Lachapelle 92bf494973 (css) Improve display of folder name 2015-09-14 14:58:00 -04:00
Francis Lachapelle 47ab4b837c (js) Fix issues with the mail advanced search
- fixed loading of headers when scrolling the virtual repeater;
- fixed viewing a single message;
- fixed search from a mailbox that contains subfolders.
2015-09-14 14:58:00 -04:00
Ludovic Marcotte e30fb0d1fb (feat) basic (but empty) admin module for SOGo v3 2015-09-14 14:09:29 -04:00
Ludovic Marcotte 3efbf65f80 (fix) added missing test 2015-09-14 13:40:29 -04:00
Juan Vallés 0982d50643 Improve first character check in CSS identifiers
A CSS identifier can't start with a digit, so when a folder name does,
a '_' character is appended at the beginning of its CSS identifier.

The check for this first character used the `isdigit()` function, which
takes a `char` argument, while `[self objectAtIndex: 0]` returns a
`unichar`, i.e. a 16-bit unsigned integer. This caused some non-digit
characters to pass this check (e.g. Chinese characters), ending up with
an underscore at the beginning of the folder name.
2015-09-14 12:55:32 -04:00
Enrique J. Hernández Blasco 532105f1fa oc-task: Save tasks from Outlook
It was not working because we try to save as component the
full calendar and its parent was nil. We have to save the calendar
itself to save the task in the personal calendar.
2015-09-14 12:55:26 -04:00
Ludovic Marcotte 7cdfaf4d9c (fix) add missing flex attribute 2015-09-14 11:23:27 -04:00
Ludovic Marcotte 8cb19546df (fix) improve spec file regarding disabling OC build 2015-09-14 11:06:18 -04:00
Ludovic Marcotte 6dc02abe80 (fix) Start/end shifting by 1 hour due to timezone change on last Sunday of October 2015 (#3344) 2015-09-14 10:56:14 -04:00
Francis Lachapelle f70876aa05 (html) Alternate conditions in topnav toolbar
Fixes an issue with Firefox
2015-09-14 10:14:00 -04:00
Francis Lachapelle 3efdbf0166 (js) Fix mdColors module dependencies 2015-09-11 12:24:30 -04:00
Francis Lachapelle 348c81bf6c (html) Fix display of Calendar module on "sm" 2015-09-11 12:08:18 -04:00
Francis Lachapelle 44158af057 (html) Fix display of avatars in invitation mails 2015-09-11 11:56:26 -04:00
Francis Lachapelle 4bb1fa0995 (html) Improve Task editor 2015-09-11 11:32:20 -04:00
Francis Lachapelle 05882362f0 (html) Fix UserRightsEditor templates 2015-09-11 11:30:54 -04:00
Francis Lachapelle 90a3fcacaf (js) Disable debug data if UIxDebug not enabled
Disable some Angular debugging information if SOGoUIxDebugEnabled is not
set.
2015-09-11 10:58:17 -04:00
Francis Lachapelle 45ac6845a5 (html) Improve appointment editor 2015-09-11 09:33:39 -04:00
Francis Lachapelle b4af6f5033 (css) Improve sgTimepicker 2015-09-11 09:32:17 -04:00
Ludovic Marcotte 6bbd182559 (fix) safe-guard against not-yet-created calendar of local users 2015-09-10 20:08:48 -04:00
Ludovic Marcotte 7290fa2ea2 (fix) disable oc builds on el6 for now 2015-09-10 19:45:59 -04:00
Ludovic Marcotte 788f36b96e (fix) slight modification for fix #3293 2015-09-10 19:11:37 -04:00
Ludovic Marcotte cb0d327f90 (feat) initial implementation of advanced email search
There's one bug where viewing of the messages from the results
is still impossible due to the ui-router. This will be fixed
very soon.
2015-09-10 16:38:30 -04:00
Francis Lachapelle b646e35f5d (js) Fix mail labels handling in the Mail module 2015-09-10 11:44:09 -04:00
Francis Lachapelle f3a5df37ae (js) Don't load card in multi-selection mode 2015-09-10 09:19:28 -04:00
Francis Lachapelle 7a7547c7c3 (js) mdColors module to expose the themes colors 2015-09-09 16:39:56 -04:00
Francis Lachapelle 11e7af3450 Adopt theming system of Angular Material
The SASS has been simplified so that different themes can be applied by
only using the $mdThemingProvider serivce.

The resulting design is more "Materialized" and less prone to the
future changes of Angular Material.
2015-09-09 16:35:09 -04:00
Francis Lachapelle 16d312eb98 (js) Don't load item in multi-selection mode
Also review the toolbars of the Calendar module.
2015-09-09 16:06:17 -04:00
Ludovic Marcotte 295b53df66 (fix) bumped to beta 2 2015-09-09 15:40:13 -04:00
Francis Lachapelle cab6a8c1e2 (html) Use md-subheader in contacts/messages lists 2015-09-09 14:43:09 -04:00
Ludovic Marcotte 59ad8a2e5a (fix) improved EAS speed during initial syncing of large mailboxes (#3293)
Conflicts:

	SoObjects/Mailer/SOGoMailFolder.h
	SoObjects/SOGo/SOGoGCSFolder.m
2015-09-09 10:22:29 -04:00
Ludovic Marcotte ab8feff67d (fix) avoid too-many LIST commands over EAS (#3294) 2015-09-09 10:13:27 -04:00
Ludovic Marcotte b9294da996 Updated NEWS file regarding PR#102 2015-09-09 08:25:23 -04:00
Ludovic Marcotte 18a300ca5b (fix) appplied fix from Zentyal - PR#102
Original commit: 33a1d2c397
2015-09-09 08:22:33 -04:00
Francis Lachapelle b8b45eda75 (js) Fix autocompletion of mail tags 2015-09-08 15:29:49 -04:00
Francis Lachapelle 370be4f835 (fix) Reload of message when saving draft 2015-09-08 12:22:37 -04:00
Francis Lachapelle 2720aebf04 Initial popup view for messages 2015-09-04 17:31:16 -04:00
Francis Lachapelle bf02b3046f (fix) Handle user's default for remote images 2015-09-04 16:43:01 -04:00
Francis Lachapelle 3d4a965412 (html) Use sgAvatarImage directive in Scheduler 2015-09-04 12:11:20 -04:00
Francis Lachapelle 372206e69e (html) Improve folder subscription dialog 2015-09-04 10:32:26 -04:00
Francis Lachapelle 9dc00acd53 (html) Fix toolbar padding 2015-09-04 10:31:40 -04:00
Francis Lachapelle 9d5f42eefa (js,html) Improve sgAvatarImage directive 2015-09-04 09:09:43 -04:00
Francis Lachapelle f4dcd37570 (html) Improve task editor 2015-09-04 08:53:47 -04:00
Francis Lachapelle c4858ffb2b (css) Decrease minimum height of list items 2015-09-03 22:36:07 -04:00
Francis Lachapelle d72188e2da Improve toolbars on small screens
- normalized toolbars in message viewer, contact viewer and contact
  editor;
- lower width of sidenav on medium screens;
- reworked display of message headers
2015-09-03 16:17:21 -04:00
Francis Lachapelle 3647f066da (js) Fix reference to org attribute in card 2015-09-03 15:51:55 -04:00
Francis Lachapelle e207cc79a7 (html) Improve appointment editor 2015-09-03 15:47:05 -04:00
Francis Lachapelle eb84e618e6 Localization 2015-09-03 15:42:54 -04:00
Francis Lachapelle 669bd99a2d (js) Fix bug when editing a saved draft 2015-09-03 14:11:39 -04:00
Francis Lachapelle 3b0ead7bbd (js) Cleanup unused dependencies 2015-09-03 14:11:39 -04:00
Francis Lachapelle 4483d47e89 (js) Bottom sheet is no longer used 2015-09-03 14:11:38 -04:00
Francis Lachapelle a5213b3321 (css) Improve subheaders with no buttons 2015-09-03 14:11:38 -04:00
Francis Lachapelle e6e34ae053 (js) Don't show progress indicator in dry mode 2015-09-03 14:11:37 -04:00
Francis Lachapelle 815b3b4b03 (html) Improve contact editor 2015-09-03 14:11:37 -04:00
Francis Lachapelle b08d98e2e1 (css) Fix width of sidenav on large screens 2015-09-03 14:11:36 -04:00
Francis Lachapelle 1d2c0ed350 (css) Cleanup Sass 2015-09-03 14:11:35 -04:00
Ludovic Marcotte 0bdbe5bbac (feat) added new sg-placeholder directive for dynamic placeholders 2015-09-03 13:25:44 -04:00
Francis Lachapelle acfa96263b (css) Improve md-dialog on small screens 2015-09-02 15:52:18 -04:00
Francis Lachapelle 99b1353faf (css) Add classes for star and star-border icons 2015-09-02 15:51:07 -04:00
Ludovic Marcotte 27e57e397e (fix) wrong handling of "last module" when logging in 2015-09-01 16:43:56 -04:00
Ludovic Marcotte 778612bf41 (feat) ensure links in mail are opened in a blank target 2015-09-01 15:00:03 -04:00
Ludovic Marcotte 9d92318524 (feat) autorefresh support for calendars 2015-09-01 10:50:50 -04:00
Francis Lachapelle cf9b7fab36 Update .gitignore 2015-09-01 09:55:55 -04:00
Ludovic Marcotte f1037e7d48 Updates for the 3.0b1 release. 2015-08-31 11:27:40 -04:00
Ludovic Marcotte 233b9c0613 (js/css) updates for the new packages 2015-08-31 11:08:41 -04:00
Francis Lachapelle 89206f3705 (css) Fix for latest md changes 2015-08-31 09:51:08 -04:00
Ludovic Marcotte a87daf282c (fix) workaround for Firefox with menus which include md-checkbox
See https://github.com/angular/material/issues/4212 for details
on the Angular Material bug.
2015-08-29 16:30:07 -04:00
Ludovic Marcotte fb4889a15e (fix) small code refactoring 2015-08-28 20:11:21 -04:00
Ludovic Marcotte 3fdabf8671 (fix) properly update flags when message was answered/forwarded 2015-08-28 15:50:46 -04:00
Ludovic Marcotte 66c52f22dd (fix) added timepicker directive 2015-08-28 15:26:21 -04:00
Francis Lachapelle 8f7334f11d (js) Simplify Account and Message services 2015-08-28 15:17:04 -04:00
Ludovic Marcotte 624833eca9 (fix) updates for new packages 2015-08-28 14:09:20 -04:00
Ludovic Marcotte 431c53b84d (feat) new time picker component + enabled it in the calendar module 2015-08-28 13:59:41 -04:00
Francis Lachapelle c9d9f7b47a (js) Add caching of cards 2015-08-27 15:55:56 -04:00
Francis Lachapelle 1667f8879d (js) New progress indicator in AddressBook module 2015-08-27 14:09:43 -04:00
Francis Lachapelle 3611c4021d Improve view detail (messages, cards) 2015-08-27 13:37:47 -04:00
Luc Charland bba0d6f44d make the tests more robust when data is invalid in DB/Webdav 2015-08-27 11:51:58 -04:00
Luc Charland bf390f17dd fixed when strings not initialized in prefs 2015-08-27 11:51:58 -04:00
Ludovic Marcotte 834aba85a6 (fix) cleanups 2015-08-27 11:47:51 -04:00
Ludovic Marcotte d878c69c15 (feat) can now create mails from address book module 2015-08-27 11:01:23 -04:00
Francis Lachapelle d9d59c6b52 (fix) Force a single mail composer dialog 2015-08-26 21:22:39 -04:00
Francis Lachapelle 69000a0929 Review animations of view detail (messages, cards) 2015-08-26 17:28:03 -04:00
Ludovic Marcotte 876d9cfa21 (fix) make messages loading very fast
Avoid calling angular.extend() loading when unwrapping the mailbox
and never call again Message.id directly, but rather use Message.$absolutePath()
which does initialization and caching
2015-08-26 11:56:47 -04:00
Luc Charland 117e6b6bc1 added the multiple phone test 2015-08-26 11:28:54 -04:00
Francis Lachapelle 01e2256483 (css) Improve autocompletion menu 2015-08-26 09:48:47 -04:00
Francis Lachapelle 49e7cf0994 (css) Adapt fullscreen dialogs to new md layout 2015-08-26 09:41:49 -04:00
Ludovic Marcotte b3d6973fb1 (fix) small optimization 2015-08-26 09:31:08 -04:00
Ludovic Marcotte aae522259f (fix) expose the json accounts call 2015-08-26 08:28:19 -04:00
Ludovic Marcotte 68ef8784a0 (fix) added json call to get all mail accounts 2015-08-26 08:27:45 -04:00
Francis Lachapelle da821ea6c7 (js) Improve recipient auto-completion 2015-08-25 22:17:57 -04:00
Ludovic Marcotte 4dee99e0ba (fix) improved padding usage to better align icons 2015-08-25 20:47:12 -04:00
Francis Lachapelle eea08d083d (html) Improve contacts list 2015-08-25 14:56:30 -04:00
Francis Lachapelle 8055acfd4a (fix) Restore previous sort in Contacts module 2015-08-25 14:20:20 -04:00
Francis Lachapelle 1fc947d8c8 (fix) Define CSS styles for ALL calendars 2015-08-25 13:46:33 -04:00
Francis Lachapelle 7b3a238fb9 (js) New progress indicator in Mail module 2015-08-25 12:20:46 -04:00
Ludovic Marcotte 99d121fd3e (fix) updates for new packages 2015-08-25 11:46:14 -04:00
Ludovic Marcotte eab3ee111a (feat) now use md-on-demand for (hopefully) faster mailbox loading 2015-08-25 11:45:17 -04:00
Luc Charland 9445315b30 Added a string, removed a double, removed a few colons 2015-08-25 11:11:46 -04:00
Francis Lachapelle eeb6be1f08 (css) Match new ng-material files names 2015-08-25 11:01:28 -04:00
Luc Charland c106f54b27 Added missing strings for translation 2015-08-25 10:45:47 -04:00
Francis Lachapelle 29108bbb62 (html) Localization 2015-08-25 06:34:34 -04:00
Ludovic Marcotte 9c6884bd7d (feat) add single export/save as actions 2015-08-24 20:04:56 -04:00
Francis Lachapelle 0aac4897fa (fix) Set virtual item size in contacts list 2015-08-24 17:28:01 -04:00
Ludovic Marcotte 2a99d1fd80 (fix) reset search filter when switching address books 2015-08-24 16:17:44 -04:00
Francis Lachapelle ba148eec5b (js) Fix error in Component.prototype.$reset 2015-08-24 14:54:25 -04:00
Francis Lachapelle 49c4884cc9 (html) Improve grids layout in recurrence editor 2015-08-24 14:40:20 -04:00
Francis Lachapelle e5d6ee93c3 Update Angular to version 1.4.x 2015-08-24 11:32:40 -04:00
Ludovic Marcotte 40eff05d4e (feat) added toolbar to account editing dialog 2015-08-24 11:26:00 -04:00
Francis Lachapelle be031fe2c9 (html) Restore animation when opening a card 2015-08-24 11:24:51 -04:00
Francis Lachapelle 0fe1419289 (html) Enlarge folder links dialog width 2015-08-24 11:23:34 -04:00
Francis Lachapelle 9db633cada (html) Replace md-layout-fill by layout-fill 2015-08-24 11:21:17 -04:00
Ludovic Marcotte 8a2d7d56e0 (feat) added toolbar to filter editor dialog 2015-08-24 11:20:23 -04:00
Francis Lachapelle 0c17e745f1 (html) Localization 2015-08-24 11:11:23 -04:00
Ludovic Marcotte 18bc75e50b (fix) adjust import path due to md changes 2015-08-24 08:49:31 -04:00
Ludovic Marcotte 68ad3c1045 (fix) localize 'me' 2015-08-22 07:51:13 -04:00
Ludovic Marcotte 85c8aebbd4 (feat) initial support for contact import in the address book module 2015-08-21 20:56:21 -04:00
Ludovic Marcotte 0a8834193f (fix) updates for new packages 2015-08-21 13:40:07 -04:00
Ludovic Marcotte 91e4c2cefc (feat) improved the mailviewer with regards to sender + recipients 2015-08-21 13:37:18 -04:00
Ludovic Marcotte b80d8dbb06 (fix) Session fix when SOGoEnableDomainBasedUID is enabled but logins are domain-less 2015-08-21 10:51:45 -04:00
Ludovic Marcotte 525d1ad80f (fix) also return all calendars in findAll 2015-08-20 22:38:01 -04:00
Ludovic Marcotte 332dd0d96d (fix) small optimization 2015-08-20 22:37:27 -04:00
Ludovic Marcotte a45000d15d (fix) show delete option only where objectEraser is on 2015-08-20 19:42:24 -04:00
Ludovic Marcotte 3301bdb055 (fix) return the complete list of addressbooks
This fixes many bugs / side effects, especially with ACLs
2015-08-20 19:37:30 -04:00
Francis Lachapelle 2f82b5cfd3 (js) Localization of toast message 2015-08-20 16:39:34 -04:00
Francis Lachapelle e3b64e035d (css) New md-fab-overlap-bottom class 2015-08-20 16:28:11 -04:00
Francis Lachapelle 1470258b5c (js) Simplify Account.prototype.$newMailbox 2015-08-20 16:28:11 -04:00
Francis Lachapelle 83fee27ca8 (js) Simplify Mailbox.prototype.$emptyTrash 2015-08-20 16:28:10 -04:00
Ludovic Marcotte e5b0596bc9 (fix) don't convert back the birthday date object on non-deep omits 2015-08-20 15:47:41 -04:00
Ludovic Marcotte 26e8276b08 (feat) improved ACLs handling for address book 2015-08-20 15:47:11 -04:00
Ludovic Marcotte 078ba95f8e (feat) show small toast when preferences are saved to give user's feedback 2015-08-20 14:53:43 -04:00
Ludovic Marcotte 65525dd33b (feat) added date picker in contact editor + now handle correctly birthday 2015-08-20 10:29:47 -04:00
Ludovic Marcotte da81f7bc58 (fix) set background to transparent by default 2015-08-19 20:45:07 -04:00
Ludovic Marcotte 8fcd594be6 (fix) removed unused code 2015-08-19 19:38:42 -04:00
Ludovic Marcotte 548f056b9c (fix) small formatting nit 2015-08-19 11:23:03 -04:00
Ludovic Marcotte dffdbf318c (feat) new 'viewable' property on events/tasks for full viewers 2015-08-19 11:22:17 -04:00
Ludovic Marcotte 161bcfac87 (fix) proper loading of transalations 2015-08-19 10:39:10 -04:00
Ludovic Marcotte c6f17cd45c (feat) make use of the sieve capabilities 2015-08-19 08:47:33 -04:00
Ludovic Marcotte 38713a6c67 (feat) handle multiple home/work phones, emails and urls 2015-08-18 16:21:47 -04:00
Ludovic Marcotte 8cef98eba1 (fix) add flex/flex-sm attributes 2015-08-18 15:32:44 -04:00
Ludovic Marcotte 2144d3122a (feat) added support back for SOGoForwardConstraints 2015-08-18 15:25:51 -04:00
Ludovic Marcotte 9d272ae063 (feat) added the 'add default email addresses' feature in vacation module 2015-08-18 14:57:29 -04:00
Ludovic Marcotte fcd0140ffd Revert "(fix) by default, open links in new tab/window from html mails"
This reverts commit 869b3c4cd1.
2015-08-18 14:52:47 -04:00
Ludovic Marcotte d783782af7 (fix) adding basic flags 2015-08-18 11:31:42 -04:00
Ludovic Marcotte 869b3c4cd1 (fix) by default, open links in new tab/window from html mails 2015-08-18 11:13:27 -04:00
Ludovic Marcotte 2da2937391 (fix) formatting improvements 2015-08-18 11:01:59 -04:00
Ludovic Marcotte 5034d6655a (fix) correctly refresh the mailboxes list when empty'ing the trash that contains subfolders 2015-08-18 10:10:37 -04:00
Ludovic Marcotte d1446f7dc1 (fix) broken top level mailbox creation 2015-08-18 09:57:07 -04:00
Ludovic Marcotte c5a219add8 (fix) wrong check for web calendars 2015-08-18 09:27:33 -04:00
Ludovic Marcotte bc2c839fbc Update for the new packaging 2015-08-18 08:39:20 -04:00
Ludovic Marcotte 2e736490d5 Merge branch 'master' of https://github.com/inverse-inc/sogo 2015-08-17 16:22:41 -04:00
Ludovic Marcotte 20bf66d931 (feat) handle links to addressbooks like we do for calendars
also included missing template commit for calendar
2015-08-17 16:21:10 -04:00
Francis Lachapelle 864a7f8028 (html) Improve Preferences module 2015-08-17 16:14:47 -04:00
Ludovic Marcotte 7b5541b5d1 (fix) reuse the calendar urls from the model 2015-08-17 13:44:21 -04:00
Ludovic Marcotte 744cba4422 (feat) integrated md-datepicker and enabled it in the Preferences module (Vacation)
The date picker suffers from this bug: https://github.com/angular/material/issues/4192

Which makes it not that usable right now.
2015-08-17 10:10:57 -04:00
Ludovic Marcotte ded467e0a2 (fix) add empty settings hashes to prever JS exceptions 2015-08-17 09:55:14 -04:00
Ludovic Marcotte a718b87d91 (fix) minor gui improvement to links templates 2015-08-16 21:42:53 -04:00
Ludovic Marcotte 6e2e71b202 (fix) correctly set flex attribut on sm devices 2015-08-15 17:25:04 -04:00
Ludovic Marcotte 04e63e5edf (fix) add minimal constraints when creating events or tasks 2015-08-15 17:08:15 -04:00
Ludovic Marcotte f1a50bcb74 (feat) added refresh support to calendar 2015-08-14 16:31:29 -04:00
Ludovic Marcotte 0672b96b8b (fix) show the alarm name as a floating label for now
This might change as the text is so tiny!
2015-08-14 15:51:17 -04:00
Ludovic Marcotte 93fa74d279 (feat) save/restore sorting state for address books
The initial loading doesn't work yet. Will work on this later.
2015-08-14 15:22:59 -04:00
Ludovic Marcotte ffa4079fa8 (fix) b0rk3n sort saving regarding the asc/desc state 2015-08-14 15:11:07 -04:00
Luc Charland 8f75bdce2d Use Json for testing webcalendar 2015-08-14 12:46:37 -04:00
Luc Charland 4f53ea70e1 Commented out testing two phones same type until fixed 2015-08-14 12:46:03 -04:00
Ludovic Marcotte b72a9383a4 (feat) major rework of the sidenav and top toolbars 2015-08-14 12:14:15 -04:00
extrafu d3d9a720dc Merge pull request #99 from inverse-inc/feature/saveSortContacts
Added sort saving to Contacts
2015-08-13 15:29:59 -04:00
Ludovic Marcotte 02daebe36b (fix) also handle tasks deletion correctly 2015-08-12 18:31:06 -04:00
Ludovic Marcotte 336e4c93e9 (fix) added temporary fix for file inputs on firefox 2015-08-12 18:25:15 -04:00
Ludovic Marcotte 47252affba (feat) initial selection + ops in calendar module 2015-08-12 16:11:38 -04:00
Luc Charland 8fb5c1d09f Added sort saving to Contacts 2015-08-12 14:39:26 -04:00
Ludovic Marcotte 54334b294e (fix) small fix in the template 2015-08-12 10:31:06 -04:00
Ludovic Marcotte c51bed2580 (fix) updated js/css/map files for packaging 2015-08-12 09:43:55 -04:00
Ludovic Marcotte 935df2bd00 (fix) wrong label name 2015-08-11 21:16:16 -04:00
Ludovic Marcotte 85a843bc1e (fix) now show the event/task list instead of the day/week/month views on sm devices 2015-08-11 20:58:39 -04:00
Ludovic Marcotte 723372dddb (fix) when batch deleting, update the unseen count accordingly 2015-08-11 15:05:31 -04:00
Ludovic Marcotte 9362513fee (fix) moved the mailbox cleanup after expunge in the service 2015-08-11 14:48:45 -04:00
Ludovic Marcotte 2e3057c2ce (fix) calendar views now honor "breakpoints"
We also now use again the default top nav toolbar and we
hide the fab button on sm devices. This of course needs a bit
more work but we are getting there!
2015-08-11 13:40:38 -04:00
Ludovic Marcotte 456649a38a (fix) allow fullsreen editor on sm devices 2015-08-11 13:38:28 -04:00
Ludovic Marcotte 86818d4f64 (fix) fixed scrolling during contact edition 2015-08-11 13:10:11 -04:00
Ludovic Marcotte b59287d6df (fix) removed unused code 2015-08-11 11:18:41 -04:00
Ludovic Marcotte bdc8dfb2b4 (fix) removed unused code 2015-08-11 09:38:53 -04:00
Ludovic Marcotte 2825285b72 (fix) author cleanup 2015-08-11 08:45:05 -04:00
Ludovic Marcotte 314dcfd30e (fix) properly cleanup the Trash folder after empty'ing 2015-08-10 23:48:59 -04:00
Ludovic Marcotte d28fccf71e (fix) open attachment in new window 2015-08-10 23:14:40 -04:00
Ludovic Marcotte ff632ec3e8 (fix) leave some room for the message date 2015-08-10 22:02:43 -04:00
Ludovic Marcotte b7af83f7e3 (feat) pimped the login window 2015-08-10 20:47:58 -04:00
Ludovic Marcotte d2aeee39ef (feat) now able to rename folders w/o double-tap 2015-08-10 14:13:25 -04:00
Ludovic Marcotte ecc0c453d7 (fix) pimped the priority editor 2015-08-10 13:27:35 -04:00
Ludovic Marcotte 420dece1e7 (feat) flag selected messages and mark selected messages as unread 2015-08-10 13:10:45 -04:00
Ludovic Marcotte c738a2dc70 (fix) wrong use of this which was breaking ACL module 2015-08-10 11:02:23 -04:00
Ludovic Marcotte e41e17c5d9 (fix) use proper var:string value 2015-08-10 09:54:14 -04:00
Ludovic Marcotte 5741d7f95c (feat) can now copy selected cards 2015-08-10 09:48:47 -04:00
Ludovic Marcotte e13f7a267b (feat) show email priority 2015-08-09 20:21:09 -04:00
Ludovic Marcotte dd7b929f17 (feat) compose mail with clicked email address 2015-08-09 10:36:54 -04:00
Ludovic Marcotte ad9b969d6d (fix) avoid displaying the chips line 2015-08-07 21:14:17 -04:00
Ludovic Marcotte 704307e6d6 (feat) pimped the mail part viewers 2015-08-07 20:38:26 -04:00
Francis Lachapelle ce8a4b6d8a (js) Make events clickable in month view 2015-08-07 15:32:00 -04:00
Francis Lachapelle 8ab591a1b6 (html) Improve task viewer 2015-08-07 14:25:57 -04:00
Francis Lachapelle 4434547a18 (css) Don't highlight disabled list items 2015-08-07 14:25:14 -04:00
Francis Lachapelle 29d86ad478 (js) Respect user's settings in Calendar module 2015-08-07 14:15:26 -04:00
Ludovic Marcotte 15a5ab0b12 (fix) added tooltip for consistency 2015-08-07 13:46:01 -04:00
Francis Lachapelle 3b5013555d (html) Improve/fix appointment/task viewer/editor 2015-08-07 11:22:24 -04:00
Francis Lachapelle 655a499cd4 (css) Fix subheader margin 2015-08-07 11:18:40 -04:00
Francis Lachapelle 52559087b3 (css) Merge autoScrollList.scss with list.scss 2015-08-07 11:17:09 -04:00
Francis Lachapelle fb7d5b628f (js) Make use of 'controllerAs' in MainUI module 2015-08-07 11:04:04 -04:00
Francis Lachapelle 6e82a7ba7b (js) Indentation 2015-08-07 11:02:34 -04:00
Ludovic Marcotte fbcaf25428 Bumped to v3.0.0 2015-08-07 10:46:45 -04:00
Ludovic Marcotte a17e59af58 (feat) added v3 js/css/map files for packaging 2015-08-07 10:37:36 -04:00
Francis Lachapelle b966fd3e30 (js) Move *.app.js files to their directories 2015-08-07 09:56:47 -04:00
Ludovic Marcotte caa50d25cb (fix) removed broken parts from the template 2015-08-07 09:49:51 -04:00
Francis Lachapelle 636e5c375e (js) Merge utils.js to Common.js 2015-08-07 09:38:21 -04:00
Ludovic Marcotte f6ea2229f8 (fix) reworked the targets to not always generate static files 2015-08-07 09:15:38 -04:00
Francis Lachapelle 7f2ef967b4 Merge pull request #97 from inverse-inc/feature/saveFilterEventsTasks
Reworked saving Events filter and added Tasks filter
2015-08-06 17:49:03 -04:00
Francis Lachapelle 063e973ef3 (css) Cleanup variables already in material 2015-08-06 17:39:01 -04:00
Francis Lachapelle eb543ce14f (js) Allow to change the labels of Dialog.confirm 2015-08-06 17:39:00 -04:00
Francis Lachapelle 9465fbad4b (obj-c) Indentation 2015-08-06 17:39:00 -04:00
Ludovic Marcotte 560feb45d9 (fix) massively pimped the email composer 2015-08-06 16:18:53 -04:00
Ludovic Marcotte b5ca697b43 (fix) imprived the gravatar directive to extract email address between < > 2015-08-06 16:18:10 -04:00
Ludovic Marcotte 33d0f30d97 (fix) avoid closing the email composition window by error 2015-08-06 16:17:31 -04:00
Francis Lachapelle 0d537ab27b Return recurrence rules of occurrence 2015-08-06 16:15:12 -04:00
Francis Lachapelle 2239286697 (js) Use CK Editor in mail account editor (Prefs) 2015-08-06 16:13:10 -04:00
Francis Lachapelle d0d79728d2 (js) Set locale to CKEditor in Mail editor 2015-08-06 16:09:49 -04:00
Francis Lachapelle e6c9289784 Add LocaleCode to JSON defaults 2015-08-06 16:07:46 -04:00
Francis Lachapelle ae017b50bc (js) Improve ckEditor directive
The directive will now consider the following attributes:

- ck-options: a JSON object of options
- ck-locale: the locale code to be used as the language and the speller
  language
2015-08-06 16:04:39 -04:00
Luc Charland 42eb9e51b4 Reworked saving Events filter and added Tasks filter 2015-08-06 14:28:54 -04:00
Francis Lachapelle 8690cee221 Merge pull request #96 from inverse-inc/feature/saveSortEventsTasks
Feature/save sort events tasks
2015-08-06 14:26:33 -04:00
Luc Charland 7bb551a4ad Added saving of sort order for Events and Tasks 2015-08-06 13:48:39 -04:00
Luc Charland 31b959a7dc Added saving of Calendar Sort to jsonSettings 2015-08-06 12:17:48 -04:00
Francis Lachapelle 2a132b4e8f (css) Cleanup directives already in material 2015-08-06 11:48:42 -04:00
Francis Lachapelle ff1a1e6f59 (html) Cleanup UIxContactFoldersView.wox 2015-08-06 11:26:26 -04:00
Francis Lachapelle a4a75607fa (js,html) Improve sgSubscribe directive 2015-08-06 11:23:16 -04:00
Francis Lachapelle 6641bbded2 (js) Improve User.$filter function 2015-08-06 11:23:16 -04:00
Ludovic Marcotte 78975b9e68 (fix) add proper class to avoid displaying the chips' line 2015-08-06 09:36:43 -04:00
Ludovic Marcotte 2f122f12b6 (fix) don't show a dialog on top of a dialog for acl confirmation 2015-08-05 20:23:11 -04:00
Francis Lachapelle 5e19a889c2 (feat) Handle invitations in appointment viewer 2015-08-05 17:31:22 -04:00
Ludovic Marcotte 87aec2fc01 (feat) added batch export option to cards 2015-08-05 16:02:57 -04:00
Ludovic Marcotte 5327df4c7a (feat) added select all feature to contacts module 2015-08-05 15:04:47 -04:00
Ludovic Marcotte a220ee67b7 (feat) reworked batch menu + added save messages option 2015-08-05 14:39:58 -04:00
Ludovic Marcotte 124ca5d8cf (fix) escape the HTML content from the raw source before returning it 2015-08-05 11:08:36 -04:00
Francis Lachapelle 9dac8e55ff (js) Avoid accidentally closing the composer 2015-08-05 10:14:32 -04:00
Francis Lachapelle 4539fd4c5e (html) Internationalized labels in message viewer 2015-08-05 10:12:51 -04:00
Luc Charland 923ab97309 Added tooltips for saving/view attachments 2015-08-05 10:05:21 -04:00
Luc Charland c56644f0e5 Added tooltips to Contacts 2015-08-05 09:40:12 -04:00
Ludovic Marcotte da119ef3ad (feat) raw source support in contact module 2015-08-04 20:32:43 -04:00
Ludovic Marcotte 6e114b84be (feat) reorganized menu + added view raw source feature 2015-08-04 16:51:33 -04:00
Ludovic Marcotte dff7b59036 (fix) wrong tagging for dialog content 2015-08-04 16:39:02 -04:00
Ludovic Marcotte 7f43f894b0 (fix) update the unseenCount when reading messages 2015-08-04 16:08:17 -04:00
Ludovic Marcotte a27f106a4a (fix) pimped ical viewer 2015-08-04 13:52:31 -04:00
Francis Lachapelle 95a360dd36 (fix) Variable test in Component service 2015-08-04 13:46:55 -04:00
Luc Charland 09224f587f Added a few tooltips for the mail view 2015-08-04 12:54:58 -04:00
Francis Lachapelle ff1b9e7ed1 (fix) Draft initialization 2015-08-04 10:56:55 -04:00
Francis Lachapelle 6d260c58c7 (js) Update Gruntfile.js for changes in vendor js 2015-08-04 10:37:07 -04:00
Francis Lachapelle ba69bd4c82 (css) Improve color picker inside md-avatar 2015-08-04 08:31:40 -04:00
Francis Lachapelle 2a45a2133b (fix) Padding of mail account delegation dialog 2015-08-04 08:31:40 -04:00
Francis Lachapelle 57fbc453a6 (html) Add avatars to ACL editor 2015-08-04 08:31:39 -04:00
Francis Lachapelle f17b3638d7 (js) Fix usage of Settings.activeUser 2015-08-04 08:31:39 -04:00
extrafu 67517e0b28 Update README.md 2015-08-03 20:40:59 -04:00
extrafu 0038ce03fa Merge pull request #12 from vDevices/master
Created README & 'tutorials' subdirectory
2015-08-03 20:39:03 -04:00
Francis Lachapelle d2b2cb186e (js) Fix usage of Settings.activeUser 2015-08-03 16:18:23 -04:00
Francis Lachapelle ca8b64bd88 (js) Fix error when deleting an ACL user 2015-08-03 16:17:02 -04:00
Francis Lachapelle 732b8c9d8a (css) Fullscreen dialogs on small screens 2015-08-03 16:15:59 -04:00
Francis Lachapelle ba6418fb93 (html) Review the toolbar of dialog boxes 2015-08-03 14:44:11 -04:00
Francis Lachapelle ab1cd36c77 Review delegation dialog in Mail app module 2015-08-03 14:40:18 -04:00
Ludovic Marcotte 9f2c5b5f50 (fix) added bg icon 2015-08-03 12:48:29 -04:00
Ludovic Marcotte b6ea1de4c0 (fix) improved message editor 2015-08-03 12:43:21 -04:00
Francis Lachapelle 21f214659e (fix) Some compilation warnings 2015-08-03 12:16:16 -04:00
Francis Lachapelle 82720d341c (fix) Some compilation warnings 2015-08-03 12:03:56 -04:00
Francis Lachapelle a330ff7320 (js) Move Settings to a value in Common ng module
Also removed explicit settings and defaults that were imported in
various app modules. We now always use the Preferences ng service.
2015-08-03 11:57:04 -04:00
extrafu 375eac2be0 Merge pull request #94 from inverse-inc/feature/trailing_spaces
Feature/trailing spaces
2015-08-03 11:00:58 -04:00
Luc Charland 4cf82bd41c removed trailing space to strings 2015-08-03 10:56:24 -04:00
Luc Charland 9f202cfcdc cleaned up a few comments 2015-08-03 10:24:15 -04:00
extrafu 393321b223 Merge pull request #92 from inverse-inc/feature/remove_colon
Feature/remove colon
2015-08-03 09:54:48 -04:00
Luc Charland 6835cd5319 removed double Name translation in 5 languages 2015-08-03 09:51:31 -04:00
Ludovic Marcotte 31bc88d9d3 Updated NEWS file regarding PR93
Conflicts:

	NEWS
2015-08-03 09:19:35 -04:00
Ludovic Marcotte f515106bcc (fix) added patch from PR93 2015-08-03 09:16:55 -04:00
Ludovic Marcotte ec1420c19b (feat) now use mdDialog for message composition 2015-08-02 13:25:38 -04:00
Ludovic Marcotte f44af10cdd (feat) integrated the color picker in the pref module 2015-07-31 15:40:00 -04:00
Ludovic Marcotte e25305980f (fix) improved the account delegation dialog 2015-07-31 14:54:55 -04:00
Ludovic Marcotte 0c7bdac091 (fix) refactored code and we now return the unseenCount when fetching uids 2015-07-31 14:31:38 -04:00
Luc Charland 2f8f8c78f7 Removing colons 2015-07-31 14:14:30 -04:00
Luc Charland 90b7ce7ec3 fixed Appointments path 2015-07-31 13:57:41 -04:00
Luc Charland 6ecea9d702 cleaned up a few comments 2015-07-31 13:57:41 -04:00
Luc Charland a54b8780a8 added first draft of verify_translation 2015-07-31 13:57:41 -04:00
Ludovic Marcotte 40d269c504 (feat) unseen count support folder all accounts/mailboxes 2015-07-31 13:32:14 -04:00
Francis Lachapelle 1d52be415f (html) Improve Calendar properties dialog 2015-07-31 11:18:29 -04:00
Francis Lachapelle 3b9a989abd (js) New color picker directive 2015-07-31 11:16:34 -04:00
Ludovic Marcotte a728616bca (fix) comment typo 2015-07-31 09:05:56 -04:00
Ludovic Marcotte 65b8382020 (fix) move refresh timeout to service classes and enabled repeating timers 2015-07-30 19:47:53 -04:00
Ludovic Marcotte 85f4efab46 (fix) refactored to code 2015-07-30 14:51:14 -04:00
Ludovic Marcotte af7fb1c6ee (fix) modified the template so it shares the same l&f as the contacts one 2015-07-30 13:25:50 -04:00
Ludovic Marcotte a52d42f6b2 (feat) manual+auto refresh support for addressbooks/mailboxes 2015-07-30 13:06:28 -04:00
Francis Lachapelle 1f8edbdd1f (js) Respect SOGoCalendarDefaultReminder in editor 2015-07-30 12:05:33 -04:00
Francis Lachapelle b61eb00b99 (js) Reload lists when (en|dis)abling a calendar
Only the displayed list was refresh. Now we invalidate the hidden list.
2015-07-30 11:55:02 -04:00
Francis Lachapelle 449093c3f0 (fix) Calendar destination of new task
Also removed the possibility to use the "moveToCalendar" parameter. We
should eventually create UIxTaskActions.m as we have
UIxAppointmentActions.m for this kind of actions.
2015-07-30 11:51:02 -04:00
Ludovic Marcotte 0fc7c96924 (fix) use proper values for short/long date formats 2015-07-29 19:10:03 -04:00
Francis Lachapelle b73450e992 (fix) Label color of pseudo-input
It now matches the one of ng-material.
2015-07-29 16:45:16 -04:00
Francis Lachapelle 8e00387152 (fix) CSS padding style of toolbar 2015-07-29 16:44:18 -04:00
Francis Lachapelle b6a5eb0b60 (fix) Disable frequency when editing an occurrence 2015-07-29 16:43:10 -04:00
Francis Lachapelle d7b7824aad Improve display of attendees in event viewer 2015-07-29 16:42:20 -04:00
Francis Lachapelle 3e6c50b7dc (cleanup) Remove ionic templates 2015-07-29 15:54:13 -04:00
Ludovic Marcotte 9291dc29b6 Removed old file 2015-07-29 15:51:52 -04:00
Francis Lachapelle f5927944fa (fix) Missing header file import 2015-07-29 15:48:29 -04:00
Ludovic Marcotte 16885f4ebf (fix) properly handle subparts compilation for message/rfc822 message parts 2015-07-29 15:37:55 -04:00
Francis Lachapelle d3a233b222 (js) Improve Angular modules initialization 2015-07-29 15:16:43 -04:00
Francis Lachapelle 7e10cff395 (js) Restore user's last Calendar view
Also reviewed the handling of Angular modules dependencies.
2015-07-29 11:47:01 -04:00
Francis Lachapelle 762f305914 (cleanup) No longer used JavasScript 2015-07-29 10:11:28 -04:00
Francis Lachapelle e208ee3fde (feat) Open events from day and week views 2015-07-28 20:45:46 -04:00
Francis Lachapelle 571be37c1d (scss) Indentation 2015-07-28 15:53:48 -04:00
Francis Lachapelle 433983e7c4 (fix) DI annotation of sgIMAP controller 2015-07-28 14:37:49 -04:00
Francis Lachapelle d7aae0e667 (fix) _.allKeys doesn't exist in lodash 2015-07-28 14:21:19 -04:00
Francis Lachapelle e87a6de46b (html) Remove previous "hack" for ng-material
The md-menu positioned as a secondary action in a list can now be
properly hidden. ng-material is just getting better :)
2015-07-28 14:16:56 -04:00
Francis Lachapelle 13a779019b (html) Add toolbar to dialog boxes 2015-07-28 14:13:48 -04:00
Ludovic Marcotte 17432deaa7 (fix) reset alarm after popping it 2015-07-28 13:05:05 -04:00
Ludovic Marcotte 7365f77dd5 (feat) new Alarm service + alarms support in all modules 2015-07-28 11:54:49 -04:00
Francis Lachapelle e8dcc6df37 (js) New common ACL Controller 2015-07-28 10:53:29 -04:00
Francis Lachapelle a8765eb41b (fix) Autocompletion in mail editor 2015-07-27 20:43:43 -04:00
Francis Lachapelle c700608f0f (fix) Sidenav list items display of Preferences 2015-07-27 20:11:57 -04:00
Francis Lachapelle 86a0032cc1 Handle the edition of recurring event occurrences 2015-07-27 16:02:05 -04:00
Francis Lachapelle 049c1385d6 (fix) Event propagation when saving component 2015-07-27 13:50:14 -04:00
Francis Lachapelle a168d0227d (js) Use lodash and remove old dependencies
Replaced underscore by lodash
2015-07-27 13:27:12 -04:00
Ludovic Marcotte 40dd3e5875 (fix) reworked c_ prefixes on givenname,cn,sn,o and component.
This makes it easier to map to the quick table and avoid
fields duplications.
2015-07-27 12:47:40 -04:00
Francis Lachapelle dc9a0896e5 (js) Fix possible errors (help from jsjint) 2015-07-24 16:14:53 -04:00
Francis Lachapelle e064dc4a46 (js) Add support for local URL in sgAvatarImage
Directive was previously named sgGravatarImage.

The local URL will be used before falling back to Gravatar.
2015-07-24 15:48:28 -04:00
Francis Lachapelle 843a689094 (js) Enable jshint and uglify 2015-07-24 15:47:29 -04:00
Ludovic Marcotte f09c06f8c4 (feat) show folders stats 2015-07-24 15:35:29 -04:00
Ludovic Marcotte c365d646a2 (feat) ability to set folders as drafts/trash/sent 2015-07-24 14:40:07 -04:00
Ludovic Marcotte cbbb3dd9d4 (feat) show error message (like submission max) when sending mails 2015-07-24 11:21:04 -04:00
Ludovic Marcotte c5a35a64a2 (fix) SOGoMaximumMessageSubmissionCount should be independant from SOGoMaximumRecipientCount 2015-07-24 11:20:51 -04:00
Ludovic Marcotte a03715f74a (fix) show proper icon for shared mailboxes 2015-07-24 10:21:33 -04:00
Francis Lachapelle 51b8ce7400 (doc) Improve documentation of angular filters 2015-07-23 15:33:34 -04:00
Francis Lachapelle 2981b0af00 (js) New 'range' filter for angular 2015-07-23 15:33:33 -04:00
Ludovic Marcotte 194c5635b5 Updates for the release 2015-07-23 13:13:02 -04:00
Francis Lachapelle 73d62800e8 Update Spanish (Argentina) translation 2015-07-23 12:08:25 -04:00
Francis Lachapelle c5834e2f89 Add missing templates for Basque language 2015-07-23 12:08:15 -04:00
Francis Lachapelle ab28476e7e Add missing template for Slovenian language 2015-07-23 12:08:11 -04:00
Francis Lachapelle 538e6fa4b1 Add Chinese (Taiwan) translation 2015-07-23 12:08:04 -04:00
Francis Lachapelle c3aa601f3c (fix) Return value of [iCalPerson+SOGo uidInDomain:] 2015-07-23 12:07:57 -04:00
Francis Lachapelle 613f05ac02 Calendar module optimizations in multidomain setup
Conflicts:
	NEWS
	UI/Common/UIxUserRightsEditor.m
2015-07-23 12:06:54 -04:00
Francis Lachapelle 8f49778501 Fix .wod files for English and Basque 2015-07-23 12:03:45 -04:00
Francis Lachapelle f0b88811d6 Add Slovenian translation 2015-07-23 12:02:42 -04:00
Francis Lachapelle c1d744e47a (js) Reset "selectedCard" when cancelling new card 2015-07-23 12:01:14 -04:00
Ludovic Marcotte 12875539bb (fix) fallback to utf-8/latin1 in rare decoding error cases - this is ugly 2015-07-23 11:21:25 -04:00
Ludovic Marcotte a8dd698425 (feat) added "select all" capability, just an idea 2015-07-23 10:54:46 -04:00
Francis Lachapelle f8b6864553 (js) Remove Mailbox dependency in Preferences 2015-07-22 17:27:46 -04:00
Francis Lachapelle 01f213e65e (fix) Main toolbar of contacts module 2015-07-22 12:11:19 -04:00
Ludovic Marcotte 22ead81c48 (doc) ModuleConstraints for EAS 2015-07-22 11:55:26 -04:00
Francis Lachapelle a7afcbf4a0 (js) Use user's settings when sorting messages 2015-07-22 11:28:08 -04:00
Ludovic Marcotte a8ab01a5eb (fix) fixed EAS conversation ID issues on BB10 (#3152) 2015-07-22 10:27:24 -04:00
Ludovic Marcotte 731264d9dc (fix) make sure ActiveSync is always usable with SQL-based auth sources 2015-07-22 10:14:03 -04:00
Ludovic Marcotte 046c4db2e8 (fix) fixed computation of GlobalObjectId (#3235) 2015-07-22 10:00:28 -04:00
Ludovic Marcotte ac21649633 (feat) added support for DeletesAsMoves over EAS
Conflicts:

	ActiveSync/SOGoActiveSyncDispatcher+Sync.m
2015-07-22 09:56:36 -04:00
Ludovic Marcotte efd182f145 (fix) improved EAS email flagging handling (#3140) 2015-07-22 09:46:44 -04:00
Ludovic Marcotte b6c6e09a5a (fix) compilation warning 2015-07-22 09:26:00 -04:00
Ludovic Marcotte 83a8f388ce Android EAS Lollipop fixes (#3268 and #3269)
Conflicts:

	NEWS
2015-07-22 09:16:49 -04:00
Ludovic Marcotte 8650492989 Applied PR90 as a patch due to too-many merge conflicts when cherry-picking 2015-07-22 09:05:17 -04:00
Francis Lachapelle cc03430ac6 (fix) Don't hide "new" button on small screens 2015-07-21 15:54:26 -04:00
Francis Lachapelle 9c464c15ad (fix) Show/hide completed tasks in list 2015-07-21 15:54:26 -04:00
Ludovic Marcotte 82ed44ee31 (fix) added more proper menu activation for the mailer 2015-07-21 15:48:31 -04:00
Ludovic Marcotte d7c008f2d9 (feat) timezones are now using md-autocomplete 2015-07-21 15:21:57 -04:00
Ludovic Marcotte ea68715f59 (feat) support for drafts autosaving 2015-07-21 11:19:47 -04:00
Francis Lachapelle 601ed94d77 Update product.plist for new component templates 2015-07-21 10:15:02 -04:00
Ludovic Marcotte bee36814e5 (feat) added many missing actions on mail folders 2015-07-21 09:28:54 -04:00
Francis Lachapelle a75524af9f Review task/event viewer/editor
Components will now appear in dialogs instead of a right sidenav.

This commit also introduces read-only viewers for tasks and events.
2015-07-21 08:29:28 -04:00
Ludovic Marcotte 5eeb473fe8 (feat) initial sort/search feature for mails 2015-07-20 16:44:26 -04:00
Francis Lachapelle dfb750caf4 (fix) Resolve addressbook before rendering view 2015-07-20 15:33:51 -04:00
Ludovic Marcotte cdd449fec9 (feat) search capabilities in the addressbook module 2015-07-20 15:03:29 -04:00
Ludovic Marcotte 7c2cb259a2 (feat) sorting capabilities in the addressbook module 2015-07-20 14:24:36 -04:00
Ludovic Marcotte e7a73413d5 (fix) SOGo adjustment regarding dbafaa1447 2015-07-19 08:39:56 -04:00
Francis Lachapelle 4c51d4702f (fix) List members auto-completion 2015-07-16 16:29:54 -04:00
Francis Lachapelle 191a1afe23 (fix) Filtering components lists 2015-07-16 16:29:00 -04:00
Francis Lachapelle 8c8070ff16 (fix) Respect order of cards list 2015-07-16 16:26:09 -04:00
Francis Lachapelle ee0e45cad6 (js) Respect user's default classification 2015-07-16 11:21:55 -04:00
Francis Lachapelle d58030a475 (css) Cleanup and fixes for latest md changes 2015-07-15 16:30:19 -04:00
Francis Lachapelle d1e1d11e4a (html) Move close button of card & msg viewer
The close button is only displayed on small devices (show-sm).
2015-07-15 15:27:51 -04:00
Francis Lachapelle f09f1a4282 (fix) Respect order in list of cards 2015-07-15 15:20:08 -04:00
Francis Lachapelle 25f364991e (fix) Creation of card/list in Contacts module 2015-07-15 15:18:23 -04:00
Francis Lachapelle 730b803ad6 (js) Replace vs-repeat by md-virtual-repeat
There're some issues with mdVirtualRepeat that required some changes to
our app:

1. Having multiple directives with md-virtual-repeat doesn't work well.
That why I added a dedicated div for the md-virtual-repeat directive.
2. ui-sref-active doesn't work well for child nodes of the
md-virtual-repeat element. The class was applied repetitively to a
visible child. I now save which message or card is selected and use the
ng-class directive to highlight the selected list item.
2015-07-15 13:44:17 -04:00
Francis Lachapelle dbb8acca9a (js) Expose 'activeUser' through navController 2015-07-14 16:12:07 -04:00
Francis Lachapelle aee229e700 (js) Make use of 'controllerAs' in Mailer module 2015-07-13 15:22:58 -04:00
Francis Lachapelle 7c6716784e (feat) Events/tasks sorting in Calendar module 2015-07-09 16:35:19 -04:00
Francis Lachapelle 9a3aeb0004 (fix) Tasks list sorting 2015-07-09 16:18:03 -04:00
Ludovic Marcotte 6f6ec58a09 (html) wrap checkbox inside md-button 2015-07-09 16:08:14 -04:00
Ludovic Marcotte 88860e2e38 (fix) don't show "end repeat" for non-repetitive events/tasks 2015-07-08 21:27:24 -04:00
Francis Lachapelle 5bbb768fe8 (html) Improve event editor 2015-07-08 21:16:33 -04:00
Francis Lachapelle 396bc3b0f6 (css) Lower icon button width to 36px 2015-07-08 21:14:25 -04:00
Francis Lachapelle 164654f784 (css) Icon modifiers (rotation) for animation 2015-07-08 21:08:51 -04:00
Francis Lachapelle 9514103031 (js) Improve search toolbar in Calendar module
- new distinct search toolbar
- restored filtering options
- honor user's settings
2015-07-08 14:49:42 -04:00
Francis Lachapelle 4d4458a183 (js) Set focus to title field in component editor 2015-07-08 14:49:42 -04:00
Francis Lachapelle 5a2eb67cb7 (fix) Alignment in bottomSheet 2015-07-08 14:49:41 -04:00
Francis Lachapelle 9bdc365bf0 (js) Allow cancelling of sgSearch 2015-07-08 14:49:41 -04:00
Francis Lachapelle 066bdc5f3f (js) New 'ready' method for Preferences service
This method returns a promise that succeeds when the user's defaults and
settings have been received from the server.
2015-07-08 14:49:40 -04:00
Francis Lachapelle 396892b0e1 (js) Simplify PreferencesController 2015-07-08 14:49:40 -04:00
Francis Lachapelle dd5b325864 (js) Simplify promises handling in User.$filter 2015-07-08 14:49:39 -04:00
Francis Lachapelle fe20cc220f (js) Improve sgSearch directive
The directive now relies on transclusion to compile its content. This
way, we don't limit the directives used inside the content.
2015-07-08 14:49:38 -04:00
Ludovic Marcotte 02112dea8a (feat) can now send out MDN responses 2015-07-08 13:19:16 -04:00
Ludovic Marcotte f369eabd06 (fix) arial labels + icon classes 2015-07-07 09:50:44 -04:00
Ludovic Marcotte 4ab2c57903 (feat) handle priority and return receipt in mail editor (needs layout work) 2015-07-07 08:35:53 -04:00
Francis Lachapelle 9015f82413 (html) Improve events/tasks lists 2015-07-06 15:16:49 -04:00
Francis Lachapelle 44b8dab9c4 (css) Left-align list items in sidenav 2015-07-06 11:14:46 -04:00
Francis Lachapelle 9814a8cd0e (css) No bg-color change in :hover of bottom sheet 2015-07-06 11:11:38 -04:00
Francis Lachapelle ecce179a2f (css) Allow .sg-child-level-[1-12] everywhere 2015-07-06 11:08:50 -04:00
Ludovic Marcotte cf0aded1a4 (feat) show the 'right' folder icons 2015-07-06 11:05:19 -04:00
Ludovic Marcotte a49687fe41 (fix) make use of floating labels 2015-07-04 20:14:32 -04:00
Ludovic Marcotte 3bfc47d105 (fix) fixed icons and controller regarding mailbox delegates 2015-07-04 07:51:20 -04:00
Ludovic Marcotte 01750fa98e (fix) small syntax error 2015-07-04 07:36:15 -04:00
Francis Lachapelle b948384ec9 (js) Preload ACL users in Calendar module 2015-07-03 21:45:59 -04:00
Francis Lachapelle 1c34e71cdc (js) Remove unused dependency on $q in controllers 2015-07-03 21:44:28 -04:00
Francis Lachapelle 2337d4057f Integrate md-icon using the Material Icons font 2015-07-03 21:42:21 -04:00
Francis Lachapelle b39dedd2d2 Add attachUrls to task editor 2015-07-03 21:42:20 -04:00
Ludovic Marcotte 05d59df68b (feat) added mailbox delegation support 2015-07-03 20:40:06 -04:00
Ludovic Marcotte 9225f2b908 (fix) layout improvements when text is folding 2015-07-03 20:07:17 -04:00
Francis Lachapelle e4e18dea5e (js) Rename variable in scope of recurrence editor 2015-07-03 16:02:47 -04:00
Francis Lachapelle b0d8148ca6 (font) Add official Material Design Icons font 2015-07-03 16:02:47 -04:00
Ludovic Marcotte 52253d8c10 (fix) fixed path handling 2015-07-03 15:17:02 -04:00
Ludovic Marcotte 94a34f41b8 (fix) some layout improvements 2015-07-03 14:46:25 -04:00
Ludovic Marcotte d1636314f1 (fix) first big pass at floating label support in all md-selects 2015-07-03 11:29:40 -04:00
Ludovic Marcotte 1ae7cddf09 Silenced NSLog calls 2015-07-03 10:22:48 -04:00
Ludovic Marcotte 5ef2db59f7 (fix) a bit more error handling 2015-07-02 16:11:11 -04:00
Ludovic Marcotte 1a78882c51 (fix) floating label for select on the login page 2015-07-02 13:20:13 -04:00
Ludovic Marcotte 6471524627 (fix) also use floating label for mail composer 2015-07-02 10:54:33 -04:00
Ludovic Marcotte bc9e1f9558 (fix) use md-select floating labels 2015-07-02 10:45:13 -04:00
Francis Lachapelle a408fdff52 (js) Minor JavaScript improvements 2015-07-01 15:21:22 -04:00
Francis Lachapelle cc7eeca2c4 (js) Improve calendar lists controller
- preload both lists (events & tasks)
- don't reload list when switching tab
2015-07-01 15:17:55 -04:00
Francis Lachapelle 35ff82710a Handle attach URLs in appointment editor 2015-07-01 15:00:12 -04:00
Francis Lachapelle ba5f6410ed Return recurrence rule only if frequency is known 2015-07-01 14:11:53 -04:00
Francis Lachapelle 763ce37f8c Allow multiple "attach" values in iCalEntityObject 2015-07-01 14:09:12 -04:00
Ludovic Marcotte f449f0456b (feat) can now copy mails 2015-06-30 17:13:55 -04:00
Francis Lachapelle 06cb06fce6 New UIxTaskEditorTemplate class 2015-06-29 21:04:41 -04:00
Ludovic Marcotte 647f052486 Fix for dfecce7381
Conflicts:

	ActiveSync/SOGoActiveSyncDispatcher+Sync.m
2015-06-29 13:55:12 -04:00
Ludovic Marcotte 013e316e7d re-enabled forwardConstraints code 2015-06-29 09:22:12 -04:00
Ludovic Marcotte 33345ed1f0 (feat) new mailbox sharing capabilities and mailbox menu 2015-06-26 13:13:25 -04:00
Ludovic Marcotte 0b5146655d (fix) do now show the subscribe options for non-GCS folders 2015-06-26 13:01:32 -04:00
Francis Lachapelle d674b33a20 (css) Review cards display in sharing dialog box 2015-06-25 11:31:53 -04:00
Francis Lachapelle c524782395 Initial task editor 2015-06-25 11:30:44 -04:00
Francis Lachapelle c144f736dc Improve JSON API documentation 2015-06-25 11:23:18 -04:00
Francis Lachapelle f4a8638fb4 (json) Add c_iscycle and c_nextalarm in tasks list 2015-06-25 11:21:24 -04:00
Francis Lachapelle 69424be245 Return attributes of iCalEntity if non-empty
Only include classification and status if theyr are not empty.
2015-06-25 11:17:53 -04:00
Francis Lachapelle c3d364558e (html) Remove line under categories in card view 2015-06-23 11:23:51 -04:00
Francis Lachapelle aa6741ee4b Move categories to top in contact editor 2015-06-23 11:22:35 -04:00
Francis Lachapelle 412dca053a (css) Fix for md-cards in ACL editor 2015-06-23 11:21:50 -04:00
Francis Lachapelle b41828a7f1 (html,js) Add reminder/alarm to event editor 2015-06-22 15:49:27 -04:00
Francis Lachapelle bb8c32a77e (html) Minor improvement to preferences module 2015-06-22 10:03:41 -04:00
Francis Lachapelle 1a5763d468 (css) Remove reference to unused font 2015-06-22 10:02:53 -04:00
Francis Lachapelle 8402152a59 Load alarm from UIxComponentEditor
The alarm attributes are now loaded from UIxComponentEditor and not
iCalEntityObject so we can determine if the component's owner is part of
the alarm's attendees.
2015-06-22 09:20:35 -04:00
Francis Lachapelle d89f02ff53 Change signature of [iCalAlarm alarmForEvent:..]
The first argument doesn't have to be a iCalRepeatableEntity; a simple
iCalEntity is enough.
2015-06-19 22:08:08 -04:00
Francis Lachapelle 94cded35d2 Revert "(fix) Adjust md-tabs for latest material"
This reverts commit 6041a9c009.
2015-06-19 14:52:00 -04:00
Francis Lachapelle ba4520da51 Use node-sass 3.x 2015-06-19 13:52:18 -04:00
Francis Lachapelle 92c4ee50fa (css) Remove reference to uninstalled font 2015-06-19 13:46:14 -04:00
Francis Lachapelle 4249d6cc5b Don't use md iconic font v2.0.0 (yet)
We need to evaluate the pros and cons of moving to font ligatures now
available with Angular Material
(https://material.angularjs.org/latest/#/api/material.components.icon/directive/mdIcon).
2015-06-19 13:43:18 -04:00
Ludovic Marcotte e65ff2105e Revert "(fix) ensure calendar objects have a (fake) filename"
This reverts commit a145fdbb53.
2015-06-17 15:57:53 -04:00
Ludovic Marcotte e5c4907aba (fix) improved memory usage 2015-06-17 08:47:15 -04:00
Ludovic Marcotte a49032a6bd (fix) show only the URL of web calendars, when asked 2015-06-15 12:03:38 -04:00
Francis Lachapelle f7f83ae1c7 (css) Review cards display in sharing dialog box 2015-06-15 11:35:20 -04:00
Francis Lachapelle 6b31e3d3b9 (fix) Remove useless ng-show directive (Contacts) 2015-06-15 11:34:48 -04:00
Francis Lachapelle 0ed67f1355 (doc) Improve Angular services documentation 2015-06-15 11:33:21 -04:00
Francis Lachapelle abe8f8f93c (doc) Improve JSON API documentation 2015-06-15 11:32:09 -04:00
Francis Lachapelle 6041a9c009 (fix) Adjust md-tabs for latest material directive 2015-06-15 11:25:32 -04:00
Francis Lachapelle da95a810d4 (fix) Avoid triggering checkbox with md-menu
When clicking on the "more" secondary button of a calendar, trick the
md-list directive to consider the 'md-secondary' class of the md-menu so
the click doesn't trigger the checkbox of the list item.
2015-06-15 11:02:59 -04:00
Ludovic Marcotte f1fc78c71b (fix) invalid scope for notification prefs 2015-06-15 10:10:58 -04:00
Ludovic Marcotte d41458dfdc (fix) hide the dialog after save 2015-06-15 10:07:56 -04:00
Ludovic Marcotte 406e9a3df2 (fix) dropped old calendar sync/tag properties 2015-06-15 10:05:39 -04:00
Ludovic Marcotte b4f9b9095d (feat) first pass at the calendar properties dialog 2015-06-15 09:53:10 -04:00
Francis Lachapelle e18b61f180 Improve API documentation /Calendar/calendarslist 2015-06-15 09:19:21 -04:00
Francis Lachapelle af6e20d627 (fix) Restore methods in UIxCalUserRightsEditor 2015-06-12 16:12:14 -04:00
Francis Lachapelle 8100dfa797 Update {variables,content}.scss for latest md 2015-06-12 15:59:26 -04:00
Ludovic Marcotte 4514d7ce32 (fix) md-content -> md-dialog-content in templates 2015-06-12 15:26:22 -04:00
Ludovic Marcotte 0612c3dff1 Fixed templates 2015-06-12 14:44:33 -04:00
Ludovic Marcotte ee9e559765 (feat) links to calendars 2015-06-12 14:24:33 -04:00
Ludovic Marcotte a89b116940 (feat) allow showing links to address books 2015-06-12 14:24:23 -04:00
Ludovic Marcotte 942c972942 (feat) re-enabled export cards feature 2015-06-12 14:23:51 -04:00
Francis Lachapelle 20914a8812 Improve and fix SASS preprocessing 2015-06-12 14:12:51 -04:00
Francis Lachapelle b85b2ed416 Update angular-material 2015-06-12 12:26:17 -04:00
Ludovic Marcotte 3a1c1226bc (feat) added menu in list of address books 2015-06-12 12:06:00 -04:00
Ludovic Marcotte 6d12c2a2c8 (feat) enabled menu and fabdial support 2015-06-12 12:06:00 -04:00
Ludovic Marcotte 23d7c06829 (feat) improved the attachments handling code for the message editor 2015-06-12 12:06:00 -04:00
Francis Lachapelle 290264262c (js) Improve autocomplete of attendees editor 2015-06-12 12:05:07 -04:00
Francis Lachapelle a95ed0f8e6 Initial ng/md version of the attendees editor 2015-06-12 12:05:06 -04:00
Francis Lachapelle a2383db454 (js) Improve recurrence editor 2015-06-12 12:05:06 -04:00
Francis Lachapelle 1d1f7445cb (html) Remove upper div from image part viewer 2015-06-12 12:05:06 -04:00
Francis Lachapelle b469045de8 (js) Simplify Dialog service 2015-06-12 12:05:05 -04:00
Francis Lachapelle a1c493358f Improve API documentation for appointment editor 2015-06-12 12:05:05 -04:00
Francis Lachapelle 4cece88a42 JSONinfy [SOGoUserHomePage readFreeBusyAction] 2015-06-12 12:05:05 -04:00
Ludovic Marcotte 8124faa6d4 (feat) "Materialization" of the IMIP handling template 2015-06-12 12:03:59 -04:00
Francis Lachapelle fb992db5ad Improve ACL editor (Scheduler & Contacts) 2015-06-12 12:03:58 -04:00
Luc Charland e385bf34d5 added simple event testing json->dav 2015-06-12 12:03:57 -04:00
Ludovic Marcotte 4f75499439 (fix) Materalized link and image templates 2015-06-12 12:03:57 -04:00
Francis Lachapelle 34140e77fc (html) Improve ACL editor 2015-06-12 12:03:56 -04:00
Francis Lachapelle 04b992e1f1 (js) Make use of 'controllerAs' in Contacts module 2015-06-12 12:03:56 -04:00
Francis Lachapelle 11cf483e2c (js) Set height/width of gravatar's image 2015-06-12 12:03:56 -04:00
Francis Lachapelle 6a835c745f (js) Fix resource URL of Acl service 2015-06-12 12:03:56 -04:00
Francis Lachapelle af353fb73f (js) Improve contact chips in card list editor
Exclude list members from auto-completion results.
2015-06-12 12:03:56 -04:00
Francis Lachapelle d159e12b3f (js) Improve contact chips in Preferences module
Exclude users already in the prevent invitations whitelist.
2015-06-12 12:03:55 -04:00
Francis Lachapelle 28477e9709 Add apidoc.json 2015-06-12 12:03:55 -04:00
Luc Charland 9a3f4080c0 test adding single and multiple phones with JSON and getting it with DAV 2015-06-12 12:03:54 -04:00
Francis Lachapelle cdd52a0b37 (css) Cleanup card.scss 2015-06-12 12:03:54 -04:00
Francis Lachapelle e226a32413 Improve login page
Used ngCloak directive to display the form only once AngularJS/Angular
Material is loaded and all components initialized.
2015-06-12 12:03:54 -04:00
Francis Lachapelle 1f83680e12 Add aria attributes in Preferences module 2015-06-12 12:03:54 -04:00
Francis Lachapelle d5f4da3934 (fix) Don't return duplicated timezones 2015-06-12 12:03:53 -04:00
Francis Lachapelle dc91be3c0d Initial recurrence editor for appointments 2015-06-12 12:03:53 -04:00
Francis Lachapelle 7e96f37809 (wox) Add classification to event editor 2015-06-12 12:03:53 -04:00
Francis Lachapelle 0ac27aab50 (js) Improve coding style of Card.service.js 2015-06-12 12:03:53 -04:00
Francis Lachapelle 3350e2fa12 (fix) Syntax of word "occurrence" 2015-06-12 12:03:52 -04:00
Francis Lachapelle e4e5106f97 Set editor mode of Sass files 2015-06-12 12:03:52 -04:00
Francis Lachapelle ed7f979635 (js) Fix dependency injection in Dialog service 2015-06-12 12:03:51 -04:00
Francis Lachapelle 46bfe6befb (fix) Resolve component data completely 2015-06-12 12:03:51 -04:00
Francis Lachapelle 22db835036 Compress production version of CSS 2015-06-12 12:03:51 -04:00
Francis Lachapelle f6f704ddd8 (js) New sgToggleGrid directive
This directive allows to transform the tiles of a md-grid-list to toggle
buttons.
2015-06-12 12:03:51 -04:00
Francis Lachapelle 9222bf80ef (js) Fix mdContactChips in preferencs module
By keeping the same array reference throughout the auto-completion, we
fix the ng-click on a list item. It also avoids constant redraws of the
list.
2015-06-12 12:03:50 -04:00
Francis Lachapelle b017cb1711 Update variables.scss for latest md version 2015-06-12 12:03:50 -04:00
Francis Lachapelle 9db7d3b85d (fix) Show/save whitelisted users for invitations 2015-06-12 12:03:50 -04:00
Francis Lachapelle 18cf3d5f9c (wox) Improve layout of Preferences module 2015-06-12 12:03:49 -04:00
Francis Lachapelle 8e286b5d15 (css) Drop unused "theme" Sass files
Only the original ng-material theme files are used in the build process
of ng-material (using gulp).
2015-06-12 12:03:07 -04:00
Francis Lachapelle ec2b52bf7b (fix) Save event to a different calendar 2015-06-12 12:03:07 -04:00
Francis Lachapelle ac705547e8 (js) Colorize the bg of calendars checkboxes
The background color was affecting only checked checkboxes. Now the
color is applied even for uncheck checkboxes.
2015-06-12 12:02:19 -04:00
Francis Lachapelle a9ad21b395 (js) Improve handling of message flags
We now call the model's methods from the template. Uncluttered the
message controller. Fixed the synchronization of the flags with the
messages list.
2015-06-12 12:02:19 -04:00
Francis Lachapelle ec123b4512 Improve tags chips of message viewer 2015-06-12 12:02:18 -04:00
Francis Lachapelle f27544c72c (js) New sgCompile directive to render mail parts 2015-06-12 12:02:18 -04:00
Francis Lachapelle 9ed65e34ad JSONify mail parts 2015-06-12 12:02:18 -04:00
Ludovic Marcotte 6cd02043af (feat) can now batch delete messages 2015-06-12 12:02:17 -04:00
Ludovic Marcotte 0edc2c1217 Added email button for selected contacts (to be implemented) 2015-06-12 12:02:17 -04:00
Francis Lachapelle 2fa0e91ca7 (js) AddressBook service: Improve documentation 2015-06-12 12:02:17 -04:00
Francis Lachapelle b37892e033 (js) Card service: Improve initialization 2015-06-12 12:02:17 -04:00
Francis Lachapelle 2b6d9db83a API documentation for batchDelete
Also return a proper JSON-payload in case of an error
2015-06-12 12:02:17 -04:00
Ludovic Marcotte 7d54bd5e86 Initial work for muliple selections + new toolbar with ops 2015-06-12 12:02:16 -04:00
Francis Lachapelle 499e66ffe9 (css) Improve contacts and messages lists 2015-06-12 12:02:16 -04:00
Francis Lachapelle 395f3585ca (js) Improve user search in AddressBook ACL editor 2015-06-12 12:02:15 -04:00
Francis Lachapelle 9f9cd68997 (fix) Partial fix for md-contact-chips
Those fixes resolve the JavaScript errors, but the behavior is wrong;
the displayed results are delayed with respect to the search string.
md-contact-chips is expected to change (for the best) soon.
2015-06-12 12:02:15 -04:00
Francis Lachapelle ab38134ba9 Improve user search auto-completion 2015-06-12 12:02:14 -04:00
Francis Lachapelle a52e6604c1 Improve contact list auto-completion 2015-06-12 12:02:14 -04:00
Francis Lachapelle b65573472e Don't use node-sass 3.0.0, yet 2015-06-12 12:02:14 -04:00
Francis Lachapelle 160055a874 Remove unused CSS files 2015-06-12 12:02:13 -04:00
Francis Lachapelle 2d46f4fd33 (js) Improve Contacts controllers 2015-06-12 12:02:13 -04:00
Francis Lachapelle 0eb2ecd2f2 (js) Improve Gravatar support 2015-06-12 12:02:13 -04:00
Francis Lachapelle 8568094266 (wox) Improve mobile display of Contacts 2015-06-12 12:02:12 -04:00
Ludovic Marcotte 5e2bdcd2ba (fix) pimped the login form and added SOGoLoginDomains support 2015-06-12 12:02:12 -04:00
Francis Lachapelle 2095df7865 Update .gitignore 2015-06-12 12:02:12 -04:00
Francis Lachapelle 618d3d9cc0 (js) Fix dependency injections 2015-06-12 12:02:12 -04:00
Francis Lachapelle 874e393948 (js) New file structure for login page (RootPage) 2015-06-12 12:02:11 -04:00
Ludovic Marcotte d056f5581a (fix) do not autocapitalize the username field 2015-06-12 12:02:11 -04:00
Ludovic Marcotte a8f52b30b8 (fix) adjusted the template after refactoring 2015-06-12 12:02:11 -04:00
Francis Lachapelle 1dc5f0d412 (js) New file structure for Angular modules
JavaScript files are now merged by the 'js' Grunt task.
2015-06-12 12:01:21 -04:00
Ludovic Marcotte b1ff1d4365 (fix) many UI improvements in the pref panel 2015-06-12 12:01:19 -04:00
Ludovic Marcotte 7e82ece74c (fix) hide the detail view when we have nothing to show 2015-06-12 11:59:05 -04:00
Francis Lachapelle a5cf7659eb (js) Fix Message service initialization 2015-06-12 11:59:04 -04:00
Luc Charland 43b6006a86 removed the unneeded sleep 2015-06-12 11:59:04 -04:00
Ludovic Marcotte 7eb58db949 (fix) also remove the Draft flag 2015-06-12 11:59:04 -04:00
Ludovic Marcotte 12c8207836 (feat) flag/unflag messages 2015-06-12 11:59:04 -04:00
Ludovic Marcotte b16c17457e (fix) disabled the toggles for priority/return receipt for now 2015-06-12 11:59:04 -04:00
Ludovic Marcotte 2d22c56efe (feat) added replied/forwarded message status support + pimped UI a bit 2015-06-12 11:59:04 -04:00
Ludovic Marcotte 8a74c9f9e0 (fix) recipients handling was broken since moving to chips 2015-06-12 11:59:03 -04:00
Ludovic Marcotte c09e76f2d1 (feat) handle show cc/bcc/attachments in mail composition 2015-06-12 11:59:03 -04:00
Luc Charland 4fa33c0bc2 All tests now pass in version 3 2015-06-12 11:59:03 -04:00
Ludovic Marcotte b0318ca7b6 (feat) chips for mail labels 2015-06-12 11:59:03 -04:00
Francis Lachapelle 8e0230488f (css) Remove Compass dependency 2015-06-12 11:59:02 -04:00
Francis Lachapelle b20707d0ed (css) Add rem function from ng's variables.scss 2015-06-12 11:59:02 -04:00
Ludovic Marcotte cc7c7f7dc7 Fixed wrong subheader name 2015-06-12 11:59:02 -04:00
Francis Lachapelle 8b483136d0 Fix compilation warning in UIxJSONPreferences.m 2015-06-12 11:59:02 -04:00
Francis Lachapelle 2888034ea6 (js) Create new appointment from Calendar module 2015-06-12 11:59:02 -04:00
Francis Lachapelle 520103cffe (js) Extend String with method 'capitalize' 2015-06-12 11:59:01 -04:00
Francis Lachapelle 12d5b57624 (js) Handle web calendars in Calendar model 2015-06-12 11:59:01 -04:00
Francis Lachapelle 523532b153 (js) Resource.post: argument 'id' is optional 2015-06-12 11:59:01 -04:00
Francis Lachapelle fc3c362515 (css) Grow width of message viewer 2015-06-12 11:59:00 -04:00
Francis Lachapelle 0c213c9e66 (js) Improve code of Calendar module
Integrated usage of 'controllerAs'.
2015-06-12 11:59:00 -04:00
Francis Lachapelle 494e2be680 (js) Save addressbook search string
This allow to show the email address that matches the search string (if
it does)
2015-06-12 11:59:00 -04:00
Francis Lachapelle d9184d2363 Format HTML + remove fab button from mail viewer 2015-06-12 11:59:00 -04:00
Francis Lachapelle d9b67a85f2 Return the proper HTTP code when saving an event 2015-06-12 11:59:00 -04:00
Francis Lachapelle e59a4b4246 Use of Dialog.prompt service in Contacts module 2015-06-12 11:58:59 -04:00
Francis Lachapelle 666d36736f Fix/improve search filter of Contacts module 2015-06-12 11:58:59 -04:00
Francis Lachapelle 33b035b360 LDIF to vCard: Handle multiple emails & phones 2015-06-12 11:58:59 -04:00
Ludovic Marcotte 41bc68946d Improved the UI of the bottom sheet content 2015-06-12 11:58:59 -04:00
Ludovic Marcotte f515543e33 (fix) many adjustments regarding auxiliary accounts 2015-06-12 11:58:58 -04:00
Francis Lachapelle 6d64242382 (fix) Restore radio-button.scss 2015-06-12 11:58:58 -04:00
Francis Lachapelle d3916e6e5e Improve API documentation 2015-06-12 11:58:57 -04:00
Francis Lachapelle f2833a2781 JSONify [UIxCalMainActions addWebCalendarAction] 2015-06-12 11:58:57 -04:00
Francis Lachapelle 9e8d991099 Display relative dates in Calendar module 2015-06-12 11:58:57 -04:00
Ludovic Marcotte 1e3cb57567 (fix) removal of mail account 2015-06-12 11:58:57 -04:00
Ludovic Marcotte bc67ffe20d (feat) Gravatar support for mail/contacts 2015-06-12 11:58:57 -04:00
Francis Lachapelle d0ee85e77a Add button to create new mailbox from account root 2015-06-12 11:58:57 -04:00
Francis Lachapelle b390a4b117 (css) Enlarge width of "detail" view 2015-06-12 11:58:56 -04:00
Francis Lachapelle bb05ce89c9 (js) Improve Dialog service 2015-06-12 11:58:56 -04:00
Francis Lachapelle 16b75b1deb Improve lists in sidenav
- the ripple effect is now visible when clicking on list items;
- the fab icon has been moved over the items list;
- colorized the checkboxes of the calendars list.
2015-06-12 11:58:56 -04:00
Ludovic Marcotte 4dbd796fd5 Added color "avatar" for mail labels 2015-06-12 11:58:55 -04:00
Ludovic Marcotte affa6ba656 (fix) new calendar category now showing color too 2015-06-12 11:58:54 -04:00
Ludovic Marcotte 8074e67b84 (fix) default calendar category colors 2015-06-12 11:58:54 -04:00
Ludovic Marcotte d43d31d144 (fix) correctly initialize arrays 2015-06-12 11:58:54 -04:00
Ludovic Marcotte 966a088a0f (fix) correctly initialize the PreventInvitationsWhitelist array 2015-06-12 11:58:53 -04:00
Ludovic Marcotte ebf4c1a9c7 (fix) also handle forwardAddress 2015-06-12 11:58:53 -04:00
Ludovic Marcotte dd13abd701 Fixed pref module 2015-06-12 11:58:53 -04:00
Ludovic Marcotte aa4dc45aa7 fix over previous commit 2015-06-12 11:50:50 -04:00
Ludovic Marcotte e1d8854d10 (fix) correctly generate the Sieve script 2015-06-12 11:50:50 -04:00
Luc Charland 243726f096 Changed preferences to use JSON for v3 2015-06-12 11:50:50 -04:00
Ludovic Marcotte f49610f058 (fix) renamed md-content -> md-dialog-content regarding changes in angular-material 2015-06-12 11:49:37 -04:00
Ludovic Marcotte a166d1b4cf Using chips for adding/viewing contact categories 2015-06-12 11:47:50 -04:00
Francis Lachapelle 8557b2a161 (fix) Reset button of contact and event editors 2015-06-12 11:47:50 -04:00
Francis Lachapelle d77f75da49 (fix) Save card in Contacts module 2015-06-12 11:47:50 -04:00
Ludovic Marcotte 0f1b0bfbbe Fixed ui routing for card editor 2015-06-12 11:47:50 -04:00
Ludovic Marcotte 91c92e3a11 added new calendar feature 2015-06-12 11:47:50 -04:00
Ludovic Marcotte 1f5248371c Disabled unuseful md-select for now 2015-06-12 11:47:49 -04:00
Ludovic Marcotte dbf614a2dc Re-enabled textures 2015-06-12 11:47:49 -04:00
Francis Lachapelle c957b4b45f Initial component editor in Scheduler module 2015-06-12 11:47:49 -04:00
Ludovic Marcotte feee156c0a Added calendar sharing capability 2015-06-12 11:47:48 -04:00
Francis Lachapelle 0d62ec0bea (js) Split Calendars list by type
The list of calendars is now splitted by type: personal calendars and
other's calendars (subscriptions).

The constructor of the Calendar model has been improved.
2015-06-12 11:47:48 -04:00
Francis Lachapelle 550fc09ee4 Add attribute isReadOnly to event/task JSON view 2015-06-12 11:47:47 -04:00
Ludovic Marcotte 5e3b3e6987 Added ACL sharing capabilities for address books 2015-06-12 11:47:47 -04:00
Ludovic Marcotte 77269e5cd6 Used the avatar for consistency with other dialogs 2015-06-12 11:47:46 -04:00
Francis Lachapelle 8c9a074688 (css) Add sticky component for subheaders 2015-06-12 11:47:46 -04:00
Francis Lachapelle 5247200bf0 (css) Improve lists and subheaders components 2015-06-12 11:47:46 -04:00
Francis Lachapelle 96ebc32d8a Split AddressBooks list by type
The list of addressbook books is now splitted by type: personal
addressbooks, other's addressbooks (subscriptions) and global
addressbooks (from sogo.conf, per domain).

The main ui-view has been splitted and therefore an additional
controller has been created.

The constructor of the AddressBook model has been improved.
2015-06-12 11:47:46 -04:00
Ludovic Marcotte 19c12add73 Added the capability to create address books 2015-06-12 11:47:46 -04:00
Ludovic Marcotte ecf30daaf3 Removed useless file 2015-06-12 11:47:45 -04:00
Ludovic Marcotte 47e7201eb6 added list avatar, make use of it 2015-06-12 11:47:45 -04:00
Ludovic Marcotte 174accdb23 Display category color 2015-06-12 11:47:45 -04:00
Francis Lachapelle 62468d21ef Improve template for sgSubscribe directive 2015-06-12 11:46:50 -04:00
Ludovic Marcotte 9571befbfd Added logoff feature 2015-06-12 11:46:50 -04:00
Ludovic Marcotte 36189e4203 Added calendar subscription 2015-06-12 11:46:50 -04:00
Ludovic Marcotte 428f2586c7 Added addressbook subscription support 2015-06-12 11:46:49 -04:00
Ludovic Marcotte 5ea57f195b Allow creation or list/contact 2015-06-12 11:46:49 -04:00
Ludovic Marcotte 11179cf27d Use a label instead of subheader, it's more sexy 2015-06-12 11:46:49 -04:00
Ludovic Marcotte 2ff6131483 Added list editor/viewer, fixed contact editor 2015-06-12 11:46:49 -04:00
Francis Lachapelle 7b874d08d4 Improve sidenav lists 2015-06-12 11:46:48 -04:00
Luc Charland 3858911007 Changed login from urlencoded to json 2015-06-12 11:46:48 -04:00
Ludovic Marcotte a25a01495f Added chips for prevent invitations 2015-06-12 11:46:48 -04:00
Francis Lachapelle 781d55cc37 Force colors of sgFolderStylesheet 2015-06-12 11:46:06 -04:00
Francis Lachapelle 5d5d8bc201 (html) Fix list of messages of selected mailbox 2015-06-12 11:46:06 -04:00
Luc Charland 0cdd19e3aa fixed a missing semi-colon 2015-06-12 11:46:05 -04:00
Francis Lachapelle 0f21c02a5f (html) Fix template of sgFolderTree directive 2015-06-12 11:46:05 -04:00
Francis Lachapelle ecad0c367f (html) Fix list of messages of selected mailbox 2015-06-12 11:46:05 -04:00
Francis Lachapelle eeca191103 (css) Cleanup sidenav component
Remove duplicated definitions from angular material source and prepare
for right sidenav.
2015-06-12 11:46:05 -04:00
Francis Lachapelle 3f27e5b775 (css) Dirty fix for vs-repeat damages 2015-06-12 11:46:04 -04:00
Ludovic Marcotte 991351999e Removed unused statement 2015-06-12 11:46:04 -04:00
Ludovic Marcotte c76bca3f68 arial label 2015-06-12 11:46:04 -04:00
Ludovic Marcotte 0529de2c1c Removed useless stuff 2015-06-12 11:46:03 -04:00
Francis Lachapelle b141031ccd Initialize arrays of new message instance 2015-06-12 11:46:03 -04:00
Francis Lachapelle 6971632165 (scss) Remove deprecated textfield component 2015-06-12 11:46:02 -04:00
Francis Lachapelle b9eb0f9a69 (scss) Integrate md-chips 2015-06-12 11:46:02 -04:00
Francis Lachapelle 0924b5154e Replace ngTagsInput by md-chips + md-autocomplete 2015-06-12 11:46:02 -04:00
Benoit Favreault 14597f8f16 Update angular-material to commit 96559458633f90dafd543d3a88f9a2165fd76ac3 2015-06-12 11:46:01 -04:00
Benoit Favreault fc69d6b1d4 Change paper palette defaults hues
Fix mobile show-hide
2015-06-12 11:46:01 -04:00
Benoit Favreault 321cfb8467 Update angular-material to commit 77504e9ff178abf02c0886d7f6cfad7d68239fca 2015-06-12 11:46:01 -04:00
Francis Lachapelle da9dbd8ad5 (fix) Restore checkbox.scss 2015-06-12 11:46:01 -04:00
Francis Lachapelle 4626039e5c (fix) JavaScript errors on Mail preferences tab 2015-06-12 11:46:01 -04:00
Benoit Favreault 41f598c9ed Reset SchdulerUI.scss to [6ee715d] 2015-06-12 11:45:38 -04:00
Benoit Favreault f080536b3f Resolve conflict 2015-06-12 11:45:38 -04:00
Benoit Favreault af57fa84e4 Update angular-material [commit 42db19dd5571eb88ba8d2a9667d183d9f3d61da7] 2015-06-12 11:45:38 -04:00
Benoit Favreault 46a262acfa Cleaning unused scss files 2015-06-12 11:45:38 -04:00
Francis Lachapelle a276ac366e Set width/position of events blocks and add colors 2015-06-12 11:45:10 -04:00
Francis Lachapelle 82d1d5e701 Review calendar views templates
Changed month view to a md-grid-list.
Added some colors.
2015-06-12 11:45:10 -04:00
Francis Lachapelle 305c13d720 Add common template UIxTopnavToolbarTemplate.wox 2015-06-12 11:45:09 -04:00
Ludovic Marcotte 0de02262d0 (fix) make sure we can always add filters 2015-06-12 11:45:09 -04:00
Ludovic Marcotte d581054214 (fix) fixed default values for many prefs 2015-06-12 11:45:09 -04:00
Francis Lachapelle e8acb225e4 Add md-grid-list and md-autocomplete components 2015-06-12 11:45:08 -04:00
Ludovic Marcotte 6e36154b1b (fix) retagged properly for latest angular-material changes 2015-06-12 11:45:08 -04:00
Francis Lachapelle 8f47e62dd2 Calendar module: add month view 2015-06-12 11:44:35 -04:00
Ludovic Marcotte a2c469d46a (fix) correctly handle PreventInvitationsWhitelist 2015-06-12 11:44:35 -04:00
Ludovic Marcotte 6f59955340 (fix) sanitize autoReplyEmailAddresses 2015-06-12 11:44:35 -04:00
Ludovic Marcotte 70e5b1d4aa (fix) pref template now looks like others 2015-06-12 11:44:34 -04:00
Ludovic Marcotte f262347149 (fix) more defaults values in the prefs 2015-06-12 11:44:34 -04:00
Ludovic Marcotte 7168779684 (feat) added password change support 2015-06-12 11:44:34 -04:00
Ludovic Marcotte d21715d8f1 (fix) right localized string + one for account locked 2015-06-12 11:43:53 -04:00
Ludovic Marcotte 1fe5e39254 Default value for short date format 2015-06-12 11:43:52 -04:00
Ludovic Marcotte 023362797b Icons and flexbox additions to the guide 2015-06-12 11:43:52 -04:00
Ludovic Marcotte 772a682655 (fix) correctly localize mail labels from common bundle 2015-06-12 11:43:52 -04:00
Francis Lachapelle 4252b66b6e Initial SOGo developer's guide 2015-06-12 11:43:52 -04:00
Francis Lachapelle 91acb9d0c5 Integrate UIxSidenavToolbarTemplate in all modules 2015-06-12 11:43:51 -04:00
Francis Lachapelle 171b5085ab Fix GNUmakefile for latest underscore package 2015-06-12 11:42:40 -04:00
Benoit Favreault c38a23d9b1 Hot-fix for build problem 2015-06-12 11:42:39 -04:00
Benoit Favreault 92ecdd52ad Hot-fix for build problem (commit/74dda0206595acb1c48f7d328fd96b64025542bb) 2015-06-12 11:42:39 -04:00
Ludovic Marcotte 8b093f9001 (fix) broken template, additional </div> closing tag 2015-06-12 11:42:39 -04:00
Benoit Favreault 5797e70358 Made bottom sheet opaque 2015-06-12 11:42:39 -04:00
Benoit Favreault a75719e151 Fix fab-button positionning 2015-06-12 11:42:38 -04:00
Benoit Favreault a5c9f41375 Fixed "fantom account" 2015-06-12 11:42:38 -04:00
Benoit Favreault 00d2154c0e fix card background color (angular-material regression)
Change views container justification
hide sg-menu components
2015-06-12 11:42:38 -04:00
Francis Lachapelle 0fc027e5e9 Set the doctype to HTML5 2015-06-12 11:42:37 -04:00
Francis Lachapelle 5f7abec980 Gruntfile.js: add postcss:dist to build task 2015-06-12 11:42:37 -04:00
Francis Lachapelle 6c4a82571c Calendar module: add day view 2015-06-12 11:42:37 -04:00
Francis Lachapelle 7ef01304ee Add debounce to sgSearch Angular directive 2015-06-12 11:42:37 -04:00
Francis Lachapelle 8d66f62cad [fix] JS syntax error on login page 2015-06-12 11:42:37 -04:00
Benoit Favreault eaeae77be4 Fix (tried to) regressions introduced by angular-material update 2015-06-12 11:42:08 -04:00
Benoit Favreault 1477bd6eae Regression fixes 2015-06-12 11:42:08 -04:00
Benoit Favreault fe8c1b927c Fix mobile transitions (sort of) 2015-06-12 11:42:07 -04:00
Benoit Favreault a554158686 Fix mobile transitions (sort of) 2015-06-12 11:42:07 -04:00
Benoit Favreault f6cb8f226a Edit scss-lint to prevent false positive warnings 2015-06-12 11:42:07 -04:00
Benoit Favreault 5224a7b304 Fix fab-button positioning (still some strange corner-cases from md sources) 2015-06-12 11:42:07 -04:00
Benoit Favreault b5bea16abb Add sassyJSON library 2015-06-12 11:42:07 -04:00
Benoit Favreault 3441a66040 Add paper texture to toolbar and sidenav 2015-06-12 11:42:06 -04:00
Benoit Favreault e69c47854a Fine-tune layout 2015-06-12 11:41:28 -04:00
Benoit Favreault 2c8d1b5db7 Alternate mobile transitions 2015-06-12 11:41:27 -04:00
Francis Lachapelle 2446677172 [fix] Add definition of UIxSidenavToolbarTemplate 2015-06-12 11:41:27 -04:00
Francis Lachapelle abe9a85c4f SOGo.SchedulerUI AngularJS module 2015-06-12 11:41:26 -04:00
Francis Lachapelle a57bf56165 [fix] Possible exception in UIxCalendarSelector.m 2015-06-12 11:41:26 -04:00
Francis Lachapelle 9a1c2b6a11 New ng directives for Calendar module
- sgCalendarDayTable
- sgCalendarDayBlock
2015-06-12 11:41:26 -04:00
Francis Lachapelle 4b47e5de83 Calendar module: initial AngularJS-based templates 2015-06-12 11:41:25 -04:00
Francis Lachapelle 22c9b61246 Extend String and Date native JS objects 2015-06-12 11:41:25 -04:00
Francis Lachapelle e9db6cda61 UIxCalListingActions: improve style and syntax 2015-06-12 11:41:25 -04:00
Francis Lachapelle 44c49abbec Calendar list: use 'name' instead of 'displayName' 2015-06-12 11:41:25 -04:00
Francis Lachapelle 8b6a3d0e3f Initial JavaScript models for calendar module 2015-06-12 11:41:25 -04:00
Francis Lachapelle d72f83ee95 Save calendar: use 'name' instead of 'displayName' 2015-06-12 11:41:24 -04:00
Benoit Favreault ba35bc801f Add a grunt task target postcss:dev (no minification) 2015-06-12 11:41:24 -04:00
Ludovic Marcotte 10a017503e Now enforce SOGoMailCustomFromEnabled 2015-06-12 11:41:24 -04:00
Ludovic Marcotte bb1977fa93 Wiped unused scss file 2015-06-12 11:40:07 -04:00
Ludovic Marcotte cf4593917f More form validation 2015-06-12 11:40:07 -04:00
Francis Lachapelle ae2990d8d6 Review core scss following ng-material changes 2015-06-12 11:40:06 -04:00
Benoit Favreault 05e58b30cc Replace mobile detail-view transitions
Minor adjustments to layout
2015-06-12 11:39:49 -04:00
Ludovic Marcotte 2bc44dec9b Improved preferences module (save/load, checks on enabled modules, etc.) 2015-06-12 11:38:08 -04:00
Benoit Favreault 48b74b0f6b Add responsiveness (First draft) 2015-06-12 11:35:54 -04:00
Francis Lachapelle 516e5fd303 Add current date in top bar 2015-06-12 11:35:54 -04:00
Ludovic Marcotte 0241cacbf9 Added some data validation 2015-06-12 11:35:53 -04:00
Benoit Favreault 78da72f3cb Replace specific list-view by generic (class-based) view 2015-06-12 11:35:52 -04:00
Benoit Favreault 660af9abfd Amend previous:
Add a view-detail class (for more generic use)
Fix the regression (scroll) problem on contact editor
2015-06-12 11:35:52 -04:00
Benoit Favreault b4f2b470dc Add a scss-lint config file 2015-06-12 11:35:52 -04:00
Benoit Favreault f99dae331d Add a view-detail class (for more generic use)
Fix the regression (scroll) problem on contact editor
2015-06-12 11:35:52 -04:00
Benoit Favreault 655fe5f731 Fix regression on Contact editor 2015-06-12 11:35:52 -04:00
Francis Lachapelle 72968f2e6e Indentation of Gruntfile.js 2015-06-12 11:35:51 -04:00
Ludovic Marcotte 0f2e3df164 More cleanups, defaults values for mail/contact/calendar labels and data validation 2015-06-12 11:35:51 -04:00
Benoit Favreault 818af41ea6 Add breakpoints management librairies
Add grunt-contrib-compass (required)
Edit gruntfile.js (add compass tasks)

--don't forget to update bower components
2015-06-12 11:34:29 -04:00
Benoit Favreault 6153e88f62 Add animation params 2015-06-12 11:34:29 -04:00
Ludovic Marcotte 6636fe3625 Disabled lots of unused code (to be removed) in v3/prefs 2015-06-12 11:34:28 -04:00
Ludovic Marcotte 96d2a4cea8 Preferences saving support 2015-06-12 11:27:17 -04:00
Francis Lachapelle 2edfd1863b Addressbook module: improve routing views handling 2015-06-12 11:26:07 -04:00
Benoit Favreault 766c421b53 Remove margin from date in msg list 2015-06-12 11:26:07 -04:00
Francis Lachapelle f909fe657f Webmail: fix cancel button of message editor 2015-06-12 11:26:07 -04:00
Francis Lachapelle 885140c92a Addressbook module: fix edit button 2015-06-12 11:26:07 -04:00
Francis Lachapelle 6bf22795f3 Improve bower.json 2015-06-12 11:26:07 -04:00
Francis Lachapelle 3864264787 JS Card model: initialize birthday as Date object 2015-06-12 11:26:06 -04:00
Francis Lachapelle a3aaf36477 Contact editor: remove extra bottom padding 2015-06-12 11:26:06 -04:00
Francis Lachapelle 4f6babcdcc Add cancel button to Webmail editor 2015-06-12 11:26:06 -04:00
Ludovic Marcotte 56763e1aca Removed dead code, support for adding calendar categories, disabled unused tab 2015-06-12 11:26:05 -04:00
Francis Lachapelle a787521977 Restore md-button in sgSearch directive 2015-06-12 11:22:46 -04:00
Benoit Favreault ca1831271b Make iconButton round to display a more elegant ripple-effect 2015-06-12 11:22:45 -04:00
Benoit Favreault d6a294b89f Fix breakpoints in scss and js (in await for a more elegant solution) 2015-06-12 11:22:45 -04:00
Francis Lachapelle 6b1fe301a6 Fix mail search criteria 2015-06-12 11:22:45 -04:00
Francis Lachapelle 8d003a7c35 Return used space of quota as a number in JSON 2015-06-12 11:22:45 -04:00
Francis Lachapelle db9e3a5401 Use sgSearch directive in Webmail module 2015-06-12 11:22:45 -04:00
Francis Lachapelle 01d4134a23 Use sgSearch directive in addressbook module 2015-06-12 11:22:44 -04:00
Francis Lachapelle 44164c0f43 Improve and document Webmail search options 2015-06-12 11:22:44 -04:00
Francis Lachapelle 68eec08de6 New sgSearch Angular directive 2015-06-12 11:22:44 -04:00
Francis Lachapelle 0e3cbe8c98 Improve "load images" button from Webmail 2015-06-12 11:22:44 -04:00
Benoit Favreault 4ab4ac0f11 Fix card.view template to prevent useless element (<ui-view="undefined">) injection 2015-06-12 11:22:43 -04:00
Benoit Favreault 8cebc00f7a Polish UI (Contact and Mail)
- Unifiy & simplify markup
- Add visual consistency
2015-06-12 11:22:43 -04:00
Benoit Favreault 01f1cbbd75 Fix minor deprecations in Preferences template 2015-06-12 11:22:43 -04:00
Benoit Favreault 6a304b3e07 Fix sidenav icon-button 2015-06-12 11:22:43 -04:00
Ludovic Marcotte 5b674abcf1 Fixed preferences module wrt recent changes 2015-06-12 11:22:43 -04:00
Benoit Favreault e756053f8b Replace bottom-bar by bottom-sheet
Adjust sidenav layout
Unify background colors
2015-06-12 11:18:00 -04:00
Benoit Favreault 69d0a3ad57 Minor adjustment to toolbar date 2015-06-12 11:17:59 -04:00
Benoit Favreault a57713523b Finish the toolbars
Add an app button on sidenav
Add a logout select on sidenav
2015-06-12 11:17:59 -04:00
Benoit Favreault 9fc713dc5f Create a 'css' grunt task (sass + postcss) 2015-06-12 11:17:59 -04:00
Benoit Favreault 31bb97aaec Update angular-material [dc2d204] master 2015-06-12 11:17:58 -04:00
Francis Lachapelle 1d8dbbfe2c Restore compose mail button 2015-06-12 11:17:58 -04:00
Francis Lachapelle fc72d3b12a Cleanup references to ZURB Foundation 2015-06-12 11:17:58 -04:00
iRouge bdbbc5be47 Fix login window according to specs 2015-06-12 11:17:57 -04:00
Francis Lachapelle f1cdb3a472 Cleanup dead code from js/Common/ui.js 2015-06-12 11:17:57 -04:00
iRouge fdb4cd71eb Fix sidenav toolbar (logo and buttons) 2015-06-12 11:17:56 -04:00
iRouge 90cd79a21b Adjust Contact view (center card in right container) 2015-06-12 11:17:55 -04:00
iRouge 90c359779e Fix Contact editor layout 2015-06-12 11:17:55 -04:00
iRouge 0cd4688e64 Update material-angular (release 0.8.3) 2015-06-12 11:17:55 -04:00
iRouge 9c42350caa Add aria-label to iconButtons 2015-06-12 11:17:55 -04:00
iRouge 1ac49415d1 Remove (useless) "close" button on sidenav 2015-06-12 11:17:54 -04:00
iRouge bed46ba2eb Correct sources to prevent angular.js deprecation Warning
Correct scss to prevent 404 server response
2015-06-12 11:17:54 -04:00
iRouge 02cdc869be Apply iconButton to Contact and Mail 2015-06-12 11:17:54 -04:00
iRouge 4264d054ca Create Sass component: iconButton 2015-06-12 11:17:53 -04:00
iRouge b6f83f3275 Update angular-material 2015-06-12 11:17:53 -04:00
iRouge 1fc846bf5c Update angular-material 2015-06-12 11:17:53 -04:00
iRouge 2d2edabb18 Add action "create new contact" to button 2015-06-12 11:17:53 -04:00
iRouge dcfa43ab28 Update angular-material 2015-06-12 11:17:53 -04:00
iRouge b0d7fff56a Add Selected-state to lists elements (Contacts and Messages) -- Amend previous 2015-06-12 11:17:52 -04:00
iRouge be4d56b7e1 Add Selected-state to lists elements (Contacts and Messages) 2015-06-12 11:17:52 -04:00
Francis Lachapelle fefd4fc7c7 Fix md-select 2015-06-12 11:17:52 -04:00
iRouge 855acccd6d Update angular-material 2015-06-12 11:17:52 -04:00
iRouge 80d6c0226a Adjust UI for Contact, Contact editor, Messages and Message editor 2015-06-12 11:17:51 -04:00
Francis Lachapelle 15dab4dfe5 Add placeholder to type selects of contact editor 2015-06-12 11:17:51 -04:00
Francis Lachapelle dbb08a762a Fix "add" buttons of contact editor 2015-06-12 11:17:51 -04:00
Francis Lachapelle af144585a5 Cleanup formatting of attributes in HTML templates 2015-06-12 11:17:50 -04:00
Francis Lachapelle 6a25ccfe96 Remove data- prefix in attributes of HTML tags 2015-06-12 11:17:50 -04:00
Francis Lachapelle dd84782427 Cleanup .gitignore 2015-06-12 11:17:49 -04:00
iRouge 012d953d65 Add an input-container to search field in Contact toolbar 2015-06-12 11:17:49 -04:00
iRouge 5819cc75d3 Style Contact Editor UI: Ready to test
Some functional bugs remaining
2015-06-12 11:17:49 -04:00
Ludovic Marcotte 5c3f0138f5 First pass at the v3 pref module
The UI needs to be styled. We also need to properly load "default"
values from the system/domain/user defaults and save them correctly
too.
2015-06-12 11:17:49 -04:00
Francis Lachapelle 575676deb8 Add search field in AddressBook module 2015-06-12 10:50:10 -04:00
Francis Lachapelle 4b9eb44790 Initial integration of md-select in contact editor 2015-06-12 10:50:10 -04:00
Francis Lachapelle dc538f969e Cleanup dependencies in bower.json 2015-06-12 10:50:10 -04:00
iRouge e32f6d3086 Update angular-material 2015-06-12 10:50:09 -04:00
Francis Lachapelle 4bce4ff988 Update angular-material 2015-06-12 10:50:09 -04:00
iRouge fe071a5435 Style contact editor (email addresses with select) 2015-06-12 10:50:09 -04:00
iRouge 6b58f3a080 Style contact editor (model for add and remove) 2015-06-12 10:50:08 -04:00
iRouge 1d61e33a51 Update angular-material (select are fixed !) 2015-06-12 10:50:08 -04:00
iRouge 79dc49b905 Style contact editor layout (needs more work) 2015-06-12 10:50:08 -04:00
iRouge b81f98236c Style contact-view layout 2015-06-12 10:50:08 -04:00
iRouge b7adf2814d Refactor:
- use lowercase and hyphen name for new component according to Sass Guidelines
- change every uses by hand (thanks to my stupid IDE WebStorm)
2015-06-12 10:50:07 -04:00
iRouge 5980f8e90e Create new Sass component: pseudo-input 2015-06-12 10:50:07 -04:00
iRouge cfed9c2058 Update angular-material 2015-06-12 10:50:07 -04:00
iRouge 16440998de Fix Messages editor:
- textarea field
- labels and placeholders color
2015-06-12 10:50:07 -04:00
iRouge 1264dbad73 Skin Contact editor according to Material Design specs (still buggy) 2015-06-12 10:50:06 -04:00
iRouge 3fb8a42856 Fix login layout ;-) (md-select are still buggy) 2015-06-12 10:50:06 -04:00
Francis Lachapelle 4a4658e29d Add missing npm modules for grunt postcss 2015-06-12 10:50:06 -04:00
Francis Lachapelle 7ff934a5cb Remove dependency of hammer.js 2015-06-12 10:50:06 -04:00
Ludovic Marcotte 6d4147fa34 fixed templates 2015-06-12 10:50:05 -04:00
iRouge b2c71ceae9 Add box-shadow to Mail editor 2015-06-12 10:50:05 -04:00
iRouge 4185cc37fe Style the plain-text Mail editor
Style Contacts
Style Contact editor (buggy)
Change postcss config
2015-06-12 10:50:05 -04:00
Ludovic Marcotte 79a0a3684c Use md-select on the root page 2015-06-12 10:50:04 -04:00
Benoit Favreault dcd6c5fd5a Add autoprefixer and its dependancies (fix the buggy flex boxes in Safari and some older browsers) 2015-06-12 10:50:04 -04:00
Francis Lachapelle cc24b9b599 Add md-select SASS component 2015-06-12 10:50:04 -04:00
Francis Lachapelle 1569306ea0 Update angular-material subrepo 2015-06-12 10:50:04 -04:00
iRouge a1f0c9fd6e Update angular-material 2015-06-12 10:50:03 -04:00
Francis Lachapelle da22cd854b Fix compilation of UIxTaskEditor.m 2015-06-12 10:50:03 -04:00
Francis Lachapelle 94105e937a Improve JSON getter/setter for todos 2015-06-12 10:50:03 -04:00
Francis Lachapelle f47a22068f JSON: fix handling of dates of all-day events 2015-06-12 10:50:03 -04:00
Francis Lachapelle 177c933af4 Lowercase the status property of vEvent & vToDo 2015-06-12 10:50:02 -04:00
Francis Lachapelle bbc5a2a048 Fix compilation warning of SOGoAppointmentObject.m 2015-06-12 10:50:02 -04:00
Ludovic Marcotte 48ffe8fb7e Minor improvement to the template 2015-06-12 10:50:01 -04:00
Ludovic Marcotte e3d4a7a373 Deleted old CSS 2015-06-12 10:50:01 -04:00
Francis Lachapelle 4ddf92aadb JSON: Return ISO8601 dates in calendar components 2015-06-12 10:50:01 -04:00
Francis Lachapelle e226825bde Add [NSCalendarDate+SOGo iso8601DateString] 2015-06-12 10:50:01 -04:00
iRouge d8a816a335 Add toolbars Icons (several bugs, some remaining) 2015-06-12 10:50:00 -04:00
Ludovic Marcotte b9e7e24344 Fixed remember login option 2015-06-12 10:50:00 -04:00
Francis Lachapelle 23ce8904a9 Restore color transistion in sidenav.scss 2015-06-12 10:49:59 -04:00
Francis Lachapelle d1271799f4 Update angular-material version in bower.json 2015-06-12 10:49:59 -04:00
Ludovic Marcotte e5726d2840 WiP - some improvements to the login form 2015-06-12 10:49:58 -04:00
iRouge fcd5abfafc Update angular-material version 0.8.0-rc1 2015-06-12 10:49:57 -04:00
Francis Lachapelle 67c62fe85c Fix compilation of UIxComponentEditor.m 2015-06-12 10:49:57 -04:00
Francis Lachapelle f9271b747c Initial JSON actions to get/set an event 2015-06-12 10:48:00 -04:00
iRouge f694f57638 Minor tweaks to Mailer UI 2015-06-11 15:57:27 -04:00
iRouge 522108bdd3 [Amend previous commit]Styled ngTags for Mail editor and propose a chip-like version of tags 2015-06-11 15:57:27 -04:00
iRouge 780d757d6b Styled ngTags for Mail editor and propose a chip-like version of tags 2015-06-11 15:57:27 -04:00
iRouge df8b4e302f Styled ngTags but no hasFocus state 2015-06-11 15:57:27 -04:00
iRouge 1bb66bbf7d Skin the Mail editor except ng-tags 2015-06-11 15:57:26 -04:00
iRouge a1299fea97 Skin the Mail editor 2015-06-11 15:57:26 -04:00
Francis Lachapelle 221e49a5d1 Improve [iCalTrigger asDictionary] 2015-06-11 15:57:26 -04:00
iRouge d123b2d5d4 Change PseudoField-label font-weight 2015-06-11 15:57:26 -04:00
iRouge 4f2fc5c99e Fixed the message headers design (markup and scss)
Create a "PseudoField" component that mimics Material Design input fields
2015-06-11 15:57:25 -04:00
Francis Lachapelle e429dc3ff1 Add [iCalByDayMask initWithDaysAndOccurences:] 2015-06-11 15:57:25 -04:00
iRouge 9e7a051d25 Update angular-material 2015-06-11 15:57:25 -04:00
iRouge 75f38173c5 Adjust Messages header view
Add ngMaterial directives tomessage composer
2015-06-11 15:57:24 -04:00
Francis Lachapelle 4cd6ffcaec Messages list: add ng directives to icons 2015-06-11 15:57:24 -04:00
iRouge 12807457d4 Update angular-material 2015-06-11 15:57:24 -04:00
Ludovic Marcotte aefb27fc5c Initial (and fugly) materialization of the login page 2015-06-11 15:57:23 -04:00
iRouge cd32bcf961 Fine-tune presentation of Mailer UI
- Colors
- Icons
- Dimmensions
- Typography
2015-06-11 15:57:22 -04:00
iRouge 16f275af52 Add SOGo logo 2015-06-11 15:57:22 -04:00
iRouge 419f1bd698 Adjust containers width according to Google's specs 2015-06-11 15:57:21 -04:00
iRouge e00416e1b8 Apply colours to components 2015-06-11 15:57:21 -04:00
iRouge daaa4284cb Add Sass version of SOGo's palettes, mixin to generate theme-class and a getter function for convenient access to colours trough any scss 2015-06-11 15:57:20 -04:00
Francis Lachapelle 33e70cd3f3 Remove dependancy to angular-material.css 2015-06-11 15:57:20 -04:00
iRouge 44e56c92d0 Update Angular-Material to 0.7.1 : HEAD origin/master origin/HEAD master 2015-06-11 15:57:19 -04:00
iRouge 6404536d19 Add md-colors module 2015-06-11 15:57:19 -04:00
iRouge e7b7e9cefe Adjust z-indexes and box-shadows 2015-06-11 15:57:19 -04:00
iRouge 174b6f365b Typograpy : Messages list subheader 2015-06-11 15:57:18 -04:00
iRouge 08a76aef97 Adapt markup to typographic styles
- Mail Messages List
2015-06-11 15:57:18 -04:00
Francis Lachapelle bd61c354f0 Fix references to font files in typography.scss 2015-06-11 15:57:17 -04:00
Francis Lachapelle 13144aad3b Preparation for build of a unique CSS 2015-06-11 15:57:17 -04:00
iRouge b163e59563 Adjust typography for autoSrollList 2015-06-11 15:57:17 -04:00
iRouge 09fa2be5bd Typography auto-scroll List 2015-06-11 15:57:17 -04:00
Francis Lachapelle 36c931b596 Preparation for build of a unique CSS 2015-06-11 15:57:16 -04:00
Francis Lachapelle 6040838396 Don't use bower package of the font Fira 2015-06-11 15:57:16 -04:00
Francis Lachapelle 1a81abebaa Remove unused files from scss directory 2015-06-11 15:57:16 -04:00
iRouge a191c7a382 Typography : Google Material Design standard styles
- Layout is broken
2015-06-11 15:57:15 -04:00
iRouge 907df81436 Typography-2 2015-06-11 15:57:14 -04:00
iRouge 8f01b0c739 Add Fira Sans to font folder 2015-06-11 15:57:14 -04:00
Francis Lachapelle 8c974e6c1a Add Fira font 2015-06-11 15:57:10 -04:00
iRouge e73ed8ae44 Add bower sass-cache to gitignore 2015-06-11 15:57:10 -04:00
iRouge f59b078faa Typography 2 2015-06-11 15:57:09 -04:00
iRouge 6319b6f531 Typography 2015-06-11 15:57:09 -04:00
Francis Lachapelle 9671fbf506 Remove .sass-cache directory 2015-06-11 15:57:09 -04:00
iRouge 670d2bc382 Generate basic font-size according to Google Material design specs 2015-06-11 15:57:08 -04:00
Francis Lachapelle 6f6338bb64 Fix font file name in SASS 2015-06-11 15:57:06 -04:00
iRouge 1528b32cc7 Update fontes icônes 2015-06-11 15:57:06 -04:00
Francis Lachapelle e1b155b455 Remove fonts managed by bower & grunt 2015-06-11 15:57:06 -04:00
iRouge 72ae466541 Embedded Icon font source has base64 data URI in CSS 2015-06-11 15:57:06 -04:00
Francis Lachapelle 5cc14bb729 Remove reference to bower_components in CSS 2015-06-11 15:57:02 -04:00
Francis Lachapelle 79a5d61efb Improve sgFolderTree
Replaced the A link by a button and renamed the childLevel# CSS class by
a more appropriate sg-child-level-# class.
2015-06-11 15:57:02 -04:00
Francis Lachapelle c664648eb6 Fix processing of SCSS with Grunt
We now use the Ruby implementation of SASS (grunt-contrib-sass) since
libsass is not compatible with Compass.
2015-06-11 15:57:01 -04:00
Francis Lachapelle df6d957721 Fix mailbox rename operation 2015-06-11 15:57:01 -04:00
Francis Lachapelle ee9ef2f0e4 Remove unused SASS files 2015-06-11 15:57:01 -04:00
Francis Lachapelle 383ccdbc82 Add CSS animation to mailboxes tree 2015-06-11 15:57:00 -04:00
Francis Lachapelle 225d039f89 Improve sgFolderTree directive (mailboxes tree) 2015-06-11 15:57:00 -04:00
Francis Lachapelle 7f74d5a3d9 New sgEnter Angular directive 2015-06-11 15:57:00 -04:00
Francis Lachapelle 862068eeb5 Improve JSON getters for events 2015-06-11 15:56:59 -04:00
iRouge 56607a1baf Refactor contact editor form element templates markup and style 2015-06-11 15:56:34 -04:00
iRouge 750a41f19a CSS files for convenience 2015-06-11 15:56:34 -04:00
iRouge 6651b02ba2 Replace valueless attributes by classes 2015-06-11 15:56:33 -04:00
iRouge 3054c04261 Add a utility to replace attributes without values by classes 2015-06-11 15:56:33 -04:00
iRouge 04132023e6 Clean-up markup in templates 2015-06-11 15:56:33 -04:00
iRouge 60bd406eac Add import to bower_components ngMaterial 2015-06-11 15:56:33 -04:00
iRouge 7dc7662adf Fix a broken tag in UIxPageEditorTemplate 2015-06-11 15:56:33 -04:00
iRouge 047138984a Fix an update version issue 2015-06-11 15:56:32 -04:00
iRouge 1a7bfee6b6 define base theme : add palette definitions to module initialization 2015-06-11 15:56:32 -04:00
iRouge ee4c1c0706 define theme 2015-06-11 15:56:32 -04:00
iRouge eea5cf8d0b Edit gitignore to ignore built API doc 2015-06-11 15:56:32 -04:00
iRouge 67076cdffb Update angular-material 2015-06-11 15:56:31 -04:00
Francis Lachapelle 80785304f1 JSONify [UIxCalendarProperties saveAction] 2015-06-11 15:56:31 -04:00
Francis Lachapelle c934b3d9c0 Improve API doc of UIxContactEditor 2015-06-11 15:54:15 -04:00
Francis Lachapelle 794c1999bc Add bower package "material-design-iconic-font"
We actually don't use "material-design-fonticons"
2015-06-11 15:54:14 -04:00
Francis Lachapelle aaed279c50 Extend JSON response of calendar properties 2015-06-11 15:54:14 -04:00
Francis Lachapelle bd6a430d3a Add bower package "material-design-fonticons" 2015-06-11 15:54:14 -04:00
iRouge 746afe0f60 Add scss devtools 2015-06-11 15:54:13 -04:00
iRouge 1b807bd6f3 Icons to the message-template toolbar 2015-06-11 15:54:13 -04:00
iRouge 6e26040e19 Icon component (zavoloklom.github.io/material-design-iconic-font/index.html) 2015-06-11 15:54:13 -04:00
iRouge 6fde77ac3f Bottombar visibility 2015-06-11 15:54:13 -04:00
iRouge 296e8f09e5 Reformat code (indent) 2015-06-11 15:54:12 -04:00
iRouge 3b43cabc68 Revert [a5ba017bc3] (Regression fix) 2015-06-11 15:54:12 -04:00
Francis Lachapelle cc34d56a0e FIx compilation of UIxMailUserRightsEditor.m 2015-06-11 15:54:11 -04:00
Francis Lachapelle 6080e800d7 Improve API documentation 2015-06-11 15:54:11 -04:00
Francis Lachapelle f2587aa385 JSON-based getter operations for Calendar module 2015-06-11 15:54:11 -04:00
Francis Lachapelle cf8c4c482d Add static method in iCalPerson for partstate 2015-06-11 15:54:11 -04:00
Francis Lachapelle 8986a18dac Review mail user rights editor 2015-06-11 15:54:10 -04:00
Francis Lachapelle 9829cd4027 Minor improvements to Contacts user rights editor 2015-06-11 15:54:10 -04:00
Francis Lachapelle 2e2da46d84 JSON-based Contacts list: don't escape HTML
HTML is now sanitized on the client-side by AngularJS.
2015-06-11 15:54:10 -04:00
Francis Lachapelle 37e91733ca Improve API documentation 2015-06-11 15:54:09 -04:00
Francis Lachapelle c29719f49d Remove newAction from UIx{Appointment,Task}Editor
We now rely on [UIxFolderActions newguidAction]
2015-06-11 15:54:09 -04:00
iRouge a5a2028da7 Contact Form 2015-06-11 15:54:08 -04:00
Francis Lachapelle b8ad85b2e2 Rename ng-templates to match names of .wox files 2015-06-11 15:54:08 -04:00
iRouge 50b45678e3 Regression fix 2015-06-11 15:54:08 -04:00
iRouge bcce9ac76a Report body inline style in Sass
Create bottombar component
2015-06-11 15:54:08 -04:00
Francis Lachapelle 137e8e7290 Add [iCal(Repeatable)EntityObject attribtues]
Those methods are used to get the common attributes of a iCalendar
component (vEvent or vTodo).
2015-06-11 15:54:07 -04:00
Francis Lachapelle a22195beec Add method [iCalTrigger asDictionary]
This method is used to get a JSON representation of an alarm trigger.
2015-06-11 15:54:07 -04:00
Francis Lachapelle 99af190e29 Remove used .ttf font files 2015-06-11 15:54:07 -04:00
Francis Lachapelle 01736318d8 Expose [iCalRecurrenceRule frequencyForValue:]
This method was missing from its header file.
2015-06-11 15:49:38 -04:00
Francis Lachapelle f0108a5069 Add method [iCalByDayMask asRuleArray]
This method is used to get a JSON representation of a BYDAY attribute of
a recurrence rule.
2015-06-11 15:49:37 -04:00
iRouge f4f53ec21e Report body inline style in Sass
Create bottombar component
2015-06-11 15:49:37 -04:00
iRouge 8e76c699dd Restructure Sass files and folders for proper application Sass development 2015-06-11 15:49:37 -04:00
iRouge 256d5e1bac Restructure Sass files and folders for proper application Sass development 2015-06-11 15:49:37 -04:00
iRouge 5217c0ac64 Restructure Sass files and folders for proper application Sass development 2015-06-11 15:49:36 -04:00
Francis Lachapelle a87bbc2de5 Enable toggleCtrl in Webmail 2015-06-11 15:49:33 -04:00
Francis Lachapelle d3f0abf3ef Simplify links to modules in UIxPageFrame.wox 2015-06-11 15:49:32 -04:00
Francis Lachapelle 9b73d4e9a5 Add user identification in sgSettings constant 2015-06-11 15:49:32 -04:00
Francis Lachapelle 4f632174ce Initial integration of ngMaterial in Contacts 2015-06-11 15:49:32 -04:00
Francis Lachapelle 263ff962a1 Update .gitignore 2015-06-11 15:49:32 -04:00
Francis Lachapelle b9414a77ab Move md theming config to ui.js (SOGo.UI) 2015-06-11 15:49:31 -04:00
iRouge f180617a3f Update Angular-material 2015-06-11 15:49:31 -04:00
iRouge 5919580b5d MODULE-TYPO
- Ajustements, message-view
2015-06-11 15:49:31 -04:00
iRouge 25213605bb MODULE-TYPO
- Sass set-up
- md-list
- md-theming (install)
2015-06-11 15:49:31 -04:00
iRouge c7309d7dc8 Views tweaking and todos 2015-06-11 15:49:28 -04:00
iRouge 7e2c60e495 Should had been include with preceeding 2015-06-11 15:49:28 -04:00
iRouge a98320783f Fought with ms-layouts (and they won) 2015-06-11 15:49:27 -04:00
iRouge c196e11fde Correct Bottom-Bar Buttons url 2015-06-11 15:49:27 -04:00
iRouge 414f0fbb26 Rows adjustments 2015-06-11 15:49:27 -04:00
Francis Lachapelle 8286fb68a4 Improve JSON API documentation 2015-06-11 15:49:27 -04:00
Francis Lachapelle 64615ea6fa Update .gitignore 2015-06-11 15:49:26 -04:00
iRouge aa64e86a43 Theme css & fonts 2015-06-11 15:49:26 -04:00
Francis Lachapelle 2cd3920532 Add angular-material as a git module 2015-06-11 15:49:22 -04:00
Benoit Favreault 23bd56a854 Edit gitignore (add .idea) 2015-06-11 15:49:21 -04:00
Francis Lachapelle 307d38c13d Populate bottom navigation bar 2015-06-11 15:49:21 -04:00
Francis Lachapelle f1490e7b92 Initial integration of ngMaterial in Webmail 2015-06-11 15:49:21 -04:00
Francis Lachapelle 8148209fc8 Improve instanciation of Resource in Card model 2015-06-11 15:49:21 -04:00
Francis Lachapelle f3597616ea Minor improvements to SOGo.ContactsUI ng module 2015-06-11 15:49:20 -04:00
Francis Lachapelle 34d7a3bf52 Improve error handling in JavaScript promises 2015-06-11 15:49:20 -04:00
Francis Lachapelle 1a1d51f427 Contacts module: optimize ng-repeat directives 2015-06-11 15:49:20 -04:00
Francis Lachapelle 0d9c78c60b Contacts module: add tooltips to icon buttons 2015-06-11 15:49:20 -04:00
Francis Lachapelle 2644dc9305 Webmail: add possibility to rename a mailbox 2015-06-11 15:49:20 -04:00
Francis Lachapelle c00e09f40b JSONify [UIxMailFolderActions renameFolderAction]
This commit also introduces an initial effort to have a documentation
for the JSON-based Web API following the apiDoc format
(http://apidocjs.com/).
2015-06-11 15:49:19 -04:00
Francis Lachapelle 3526cadc96 Webmail: add "load images" button to mail viewer 2015-06-11 15:49:19 -04:00
Francis Lachapelle c514cb64bc Webmail: Add forward button to messages 2015-06-11 15:49:19 -04:00
Francis Lachapelle 225c998a97 Add CC field to mail editor 2015-06-11 15:49:18 -04:00
Francis Lachapelle 90f07c28f9 JSONify [UIxMailActions forwardAction] 2015-06-11 15:49:18 -04:00
Francis Lachapelle ad012cfd60 Save message to IMAP server before saving plist
By first appending the message to the mailbox, we obtain the IMAP ID and
save it to the local plist. Having the message ID, we can delete it when
saving/appending a new version of the draft to the mailbox.
2015-06-11 15:49:18 -04:00
Francis Lachapelle 5bbdecbec2 Webmail: add reply button 2015-06-11 15:48:15 -04:00
Francis Lachapelle 9065a8038a JSONify [UIxMailActions replyToAll:] 2015-06-11 15:48:14 -04:00
Francis Lachapelle 8c2bcc92b5 Update JavaScript dependencies
Upgrading to AngularJS 1.3.
2015-06-11 15:48:14 -04:00
Francis Lachapelle bc86ff1e04 Fix position of new or renamed addressbook 2015-06-11 15:48:14 -04:00
Francis Lachapelle 4248cbcb16 Webmail: new option to create subfolder 2015-06-11 15:48:14 -04:00
Francis Lachapelle 2d076358d3 Improve Mail module
- JSONinfied mail folder create and delete actions
- restored sgFolderTree directive
- extended folder types with "shared" and "otherUsers"
- added mailbox creation at the account level
2015-06-11 15:48:14 -04:00
Francis Lachapelle 2d026b5ca5 JSONify [UIxMailFolderActions createFolderAction] 2015-06-11 15:48:13 -04:00
Francis Lachapelle b552882011 Fix template reference when creating new card 2015-06-11 15:42:35 -04:00
Francis Lachapelle de273973b4 Add wox templates to Mail and Contacts modules 2015-06-11 15:42:35 -04:00
Francis Lachapelle 3aec2828b4 Improve JavaScript of Mail module
- activated file uploader of mail editor
- renamed method $update to $reload
- automatically mark messages as read
- use ui-sref-active from ui-router instead of ng-class
2015-06-11 15:42:34 -04:00
Francis Lachapelle 533d7110c7 Improve webmail editor
- Fixed handling of saving drafts
- Fixed handling of message type (HTML/plain)
- Added primitive handling of attachments
2015-06-11 15:42:34 -04:00
Francis Lachapelle 32196b56db Fix short formatting of cards for mail editor 2015-06-11 15:42:34 -04:00
Francis Lachapelle 5db79ce218 Mail draft: use JSON in edit action 2015-06-11 15:42:33 -04:00
Francis Lachapelle 9e97c11401 Don't store draft on disk when not required 2015-06-11 15:42:33 -04:00
Francis Lachapelle af09691964 Auto-completion of mail addresses in mail editor 2015-06-11 15:42:33 -04:00
Francis Lachapelle fe41798b19 Fix handling of recipient addresses in mail editor 2015-06-11 15:42:33 -04:00
Francis Lachapelle 09d469927f Add tags input to edit mail recipients 2015-06-11 15:42:32 -04:00
Francis Lachapelle e01e0adac8 Fix mailto links in mail viewer 2015-06-11 15:42:32 -04:00
Francis Lachapelle fb63689573 Initial mail editor 2015-06-11 15:42:32 -04:00
Francis Lachapelle 74177e4d04 Change key for envelope addresses metadata 2015-06-11 15:40:27 -04:00
Francis Lachapelle ac06a4d4ce Fix detection of mailbox type 2015-06-11 15:40:26 -04:00
Francis Lachapelle fd40cb71ac Fix premature nil in JSON dict of UIxMailView.m 2015-06-11 15:40:26 -04:00
Francis Lachapelle df019f515f Webmail: normalize format of addresses in JSON 2015-06-11 15:40:26 -04:00
Francis Lachapelle 5a106e1613 Address formatter returns metadata as a dictionary 2015-06-11 15:40:26 -04:00
Francis Lachapelle 6d899008ca Improve SOGoDraftObject to avoid crash when saving 2015-06-11 15:40:25 -04:00
Francis Lachapelle ee1f56ad27 Improve sgFolderTree directive for mobile 2015-06-11 15:40:25 -04:00
Ludovic Marcotte 61e25184fc Added Delete and Export features for mailboxes. Initial work for the mobile version. 2015-06-11 15:40:24 -04:00
Francis Lachapelle 4e9a187c85 Fix resolution of mailboxes with a special purpose 2015-06-11 15:40:24 -04:00
Francis Lachapelle 60ae5f0eb2 Improve CSS of AddressBook module 2015-06-11 15:40:24 -04:00
Francis Lachapelle 28f7811e86 Improve CSS of AddressBook module 2015-06-11 15:40:24 -04:00
Francis Lachapelle 876b21437f Fix JavaScript of login page of mobile version 2015-06-11 15:40:23 -04:00
Francis Lachapelle 1ca1a8c249 Add mobile version to webmail and improvements 2015-06-11 15:40:23 -04:00
Francis Lachapelle cdd1131699 Add sgFocus directive + factory 2015-06-11 15:40:23 -04:00
Francis Lachapelle 6ce64828e8 AngularJS module SOGo.MailerUI 2015-06-11 15:40:23 -04:00
Francis Lachapelle 1fc15061ed Webmail: Use a relative date in messages list 2015-06-11 15:40:23 -04:00
Francis Lachapelle 0ee725b945 Contacts JS models: improve documentation 2015-06-11 15:40:22 -04:00
Francis Lachapelle 2f17e94fef Initial AngularJS version of Webmail (desktop) 2015-06-11 15:40:22 -04:00
Francis Lachapelle 1c9da902d3 Add JSON payload to webmail "headers" action 2015-06-11 15:40:22 -04:00
Ludovic Marcotte 7e11806bf9 We can now show links to the address book 2015-06-11 15:40:21 -04:00
Francis Lachapelle f2efd3fb49 Add new AngularJS modules
- external module for recursion
- external module for virtual scrolling
- internal module for common UI services
2015-06-11 15:40:21 -04:00
Francis Lachapelle 54444ddf3b AngularJS SOGo.UICommon module 2015-06-11 15:40:21 -04:00
Francis Lachapelle a64a8172be Webmail: include all accounts metadata 2015-06-11 15:40:20 -04:00
Francis Lachapelle 3b4731d6b7 Add virtual scrolling AngularJS module
Integrated virtual scrolling in contacts.
2015-06-11 15:40:20 -04:00
Francis Lachapelle 2cb5aecdcb Add sgFolderTree directive 2015-06-11 15:40:20 -04:00
Francis Lachapelle 277bdd2b1c Mailer: replace HTML view by JSON object 2015-06-11 15:40:20 -04:00
Francis Lachapelle bd9da51e83 Mailer: remove HTML from list of messages in JSON 2015-06-11 15:40:20 -04:00
Francis Lachapelle e5ce053a62 Convert allFoldersMetadata to a tree structure
When parsing the mailboxes list, we now generated a hierarchical
structure of the metadata. Each mailbox (a dictionary) can now have a
'children' key that is an array of mailboxes.
2015-06-11 15:40:20 -04:00
Francis Lachapelle ec56079635 Address Book module: Fix selection of card 2015-06-11 15:38:16 -04:00
Francis Lachapelle 78a349fecd Improve CSS of addressbooks list 2015-06-11 15:38:16 -04:00
Francis Lachapelle 8c7846a1fa Propagate theme in modules relative URLs 2015-06-11 15:38:16 -04:00
Francis Lachapelle 2af7e85f81 Move SOGoContactGCSFolder->save to SOGoGCSFolder 2015-06-11 15:38:16 -04:00
Francis Lachapelle 441834edbf Mobile version: move ng template 'menu'
The 'menu.html' AngularJS template is moved to UIxPageFrame.wox to be
used by all modules.
2015-06-11 15:38:15 -04:00
Ludovic Marcotte 28f9963f87 Adjusted the minimum version of Foundation 2015-06-11 15:38:15 -04:00
Ludovic Marcotte e964496759 Revert "Added required patch for previous commit"
This reverts commit 18a363a07b.
2015-06-11 15:38:15 -04:00
Francis Lachapelle ca14a0d4b3 Improve folder subscription widget 2015-06-11 15:38:14 -04:00
Francis Lachapelle 989cb0bca2 Fix overflow of subscriptions dropdown 2015-06-11 15:38:14 -04:00
Francis Lachapelle 25b0d872c0 Add addressbook subscriptions widget 2015-06-11 15:38:14 -04:00
Francis Lachapelle 4016fdd430 New AngularJS directives
sgDropdownContentToggle, sgUserTypeahead, sgSubscribe
2015-06-11 15:38:13 -04:00
Francis Lachapelle 55f0d5a959 Add verification of parameter for "foldersSearch" 2015-06-11 15:38:13 -04:00
Francis Lachapelle 6395d7cd6a New Resource.prototype.userResource function 2015-06-11 15:38:13 -04:00
Francis Lachapelle 7812e3757d Return properties of folder upon subscribe (JSON) 2015-06-11 15:38:12 -04:00
Francis Lachapelle 93540b4fc6 Improve ACL editor template 2015-06-11 15:38:12 -04:00
Francis Lachapelle c063832d0d Move ACL editor into a separate template
The user rights remain dynamic, based on the object type (addressbook vs
mailbox vs calendar).
2015-06-11 15:38:12 -04:00
Francis Lachapelle 97ce3e6b72 Multiple improvements regarding ACLs 2015-06-11 15:38:12 -04:00
Francis Lachapelle bd39312b19 Fix compilation warnings regarding ACLs
Also change the data structure of the JSON returned by [UIxAclEditor
aclsAction]. The user's displayName has been removed and replace by the
"cn" and "c_email" attributes. This will probably affect the Thunderbird
extensions.
2015-06-11 15:38:12 -04:00
Alexandre Cloutier 22faf5c285 refactor codes and applied comments 2015-06-11 15:38:11 -04:00
Alexandre Cloutier c82143fd2e Refactor acl object and applied comments 2015-06-11 15:38:11 -04:00
Alexandre Cloutier 9b026ebbcd Contacts - export addressBook 2015-06-11 15:38:10 -04:00
Alexandre Cloutier 4e8d3ce900 add dialog window for public and allusers access 2015-06-11 15:38:10 -04:00
Alexandre Cloutier df3ad5445c Modification for ContactsUserRightsEditor 2015-06-11 15:38:10 -04:00
Alexandre Cloutier 9113ca54f7 Created user-modal.js, code refactoring
Conflicts:

	UI/Common/UIxAclEditor.m
	UI/Common/UIxUserRightsEditor.m
	UI/Common/product.plist
	UI/Contacts/UIxContactsUserRightsEditor.m
	UI/Templates/ContactsUI/UIxContactFoldersView.wox
	UI/WebServerResources/js/Common/resource.js
	UI/WebServerResources/js/ContactsUI.js
2015-06-11 15:38:10 -04:00
Alexandre Cloutier f3c26671af GUI for mobile version of AclUsers
Conflicts:

	UI/Common/UIxAclEditor.m
	UI/Common/UIxUserRightsEditor.m
	UI/WebServerResources/js/Common/acl-model.js
2015-06-11 15:38:09 -04:00
Francis Lachapelle e4b1c0d5b9 Fix buttons in card editor 2015-06-11 15:27:09 -04:00
Francis Lachapelle 3364263247 Improve handling of contact lists 2015-06-11 15:27:09 -04:00
Francis Lachapelle 61c48d37e4 Fix creation of new contacts when editing a list 2015-06-11 15:27:09 -04:00
Alexandre Cloutier 5b83b0c7b6 Enable search by fullname and email 2015-06-11 15:27:09 -04:00
Alexandre Cloutier 7e43b13f21 GUI contact list creation 2015-06-11 15:27:08 -04:00
Francis Lachapelle 57791e384b Revert "Creation of aclUsers window"
This reverts commit ee5ef02f50.
2015-06-11 15:27:08 -04:00
Francis Lachapelle 63b20c4ba2 Revert "rebase modification"
This reverts commit 45c5bbd36a.
2015-06-11 15:27:08 -04:00
Francis Lachapelle e11eea7548 Revert "file lost through rebasing"
This reverts commit a952402c39.
2015-06-11 15:27:08 -04:00
Francis Lachapelle f7df4c1fa0 Allow reverting edition of addressbook name w/ESC 2015-06-11 15:27:07 -04:00
Francis Lachapelle 4457997276 AngularJS sgEscape directive for SOGo.UIDesktop 2015-06-11 15:27:07 -04:00
Francis Lachapelle 16628ab104 Fix installation of ionic JS in Gruntfile.js 2015-06-11 15:27:07 -04:00
Alexandre Cloutier 56b765c6a5 delete unused .png 2015-06-11 15:27:06 -04:00
Alexandre Cloutier 3bf1224c9b file lost through rebasing 2015-06-11 15:27:06 -04:00
Alexandre Cloutier edbd661104 rebase modification 2015-06-11 15:27:05 -04:00
Alexandre Cloutier 8ef222ab44 Creation of aclUsers window 2015-06-11 15:27:05 -04:00
Francis Lachapelle 654c8d26b7 Contact editor: fix cancel and reset buttons 2015-06-11 15:27:05 -04:00
Francis Lachapelle 31ea7a5ab5 Improve contact module models
- Fixed reset behavior
- Created an abstract state for the card viewer and editor
- Moved the card instance from the $rootScope.addressbook to the $scope
2015-06-11 15:27:05 -04:00
Francis Lachapelle 342441ecf8 Improve JavaScript coding style
To comitted code now passes the Airbnb pattern using jscs
2015-06-11 15:27:03 -04:00
Francis Lachapelle df37fd8b92 AddressBook JS model: rename $all to $findAll 2015-06-11 15:27:03 -04:00
Francis Lachapelle 32d732caf0 Update GNUmakefile for WebServerResources 2015-06-11 15:27:02 -04:00
Francis Lachapelle 3e2173db7a Improve JavaScript coding style
To comitted code now passes the Airbnb pattern using jscs
2015-06-11 15:27:02 -04:00
Francis Lachapelle 17ee62f4de Improve usage of ui.router with "resolve" 2015-06-11 15:27:02 -04:00
Francis Lachapelle f363257e51 Use angularModule variable in mobile templates 2015-06-11 15:27:02 -04:00
Francis Lachapelle 865bf096f5 Don't add an empty category to a contact 2015-06-11 15:27:01 -04:00
Francis Lachapelle c4802df024 Remove debugging output 2015-06-11 15:27:01 -04:00
Francis Lachapelle 130194a740 Update GNUmakefile for WebServerResources 2015-06-11 15:27:01 -04:00
Francis Lachapelle 21f63c15fc Cleanup of Web server resources 2015-06-11 15:27:00 -04:00
Francis Lachapelle bb9e8c0348 Remove trailing slash from template theme name 2015-06-11 15:26:38 -04:00
Francis Lachapelle 16cd231ce3 New .button.outline CSS style 2015-06-11 15:26:37 -04:00
Francis Lachapelle 20497e49e3 Add creation & deletion of addressbooks 2015-06-11 15:26:37 -04:00
Francis Lachapelle b97bf2b25f JSON'ed [UIxParentFolderActions createFolder] 2015-06-11 15:26:37 -04:00
Francis Lachapelle 4f7a5d6ef5 Rename ng module SOGo.RootPage to SOGo.MainUI 2015-06-11 15:26:37 -04:00
Francis Lachapelle f321abc63a Desktop list editor, mobile contact editor 2015-06-11 15:26:36 -04:00
Francis Lachapelle 4b0ef6086a Cleanup contact and list viewers 2015-06-11 15:26:36 -04:00
Francis Lachapelle b57a8163fe Add link to switch to mobile version 2015-06-11 15:26:36 -04:00
Francis Lachapelle 86a6f5c67b Add Angular module assignation in page frame 2015-06-11 15:26:35 -04:00
Francis Lachapelle e40b42c213 Move setAttributes from NGVCard to UIx*Editors 2015-06-11 15:26:35 -04:00
Francis Lachapelle 2f6bc1c4ff Update .gitignore 2015-06-11 15:25:31 -04:00
Francis Lachapelle 958f0b4958 Contacts: Add possibility to add/delete objects 2015-06-11 15:25:31 -04:00
Francis Lachapelle 0c720bb902 New ng-module for common desktop widgets 2015-06-11 15:25:30 -04:00
Francis Lachapelle 34b3f2ac0c Improve build scripts of Web frontend 2015-06-11 15:25:30 -04:00
Francis Lachapelle ef4de28ed4 ContactView: lowercase the card tag 2015-06-11 15:25:30 -04:00
Francis Lachapelle c98d580b29 Return contact UID when saving contact 2015-06-11 15:25:30 -04:00
Francis Lachapelle a2460f9368 Add "newguid" action accessible from any folder 2015-06-11 15:25:29 -04:00
Francis Lachapelle c0eac04437 Adapt SOGoContactGCSFolder contact representation
To match [UIxContactViewer dataAction].
2015-06-11 15:25:29 -04:00
Francis Lachapelle 7f9be26541 Improve localization func to support placeholders 2015-06-11 15:25:28 -04:00
Francis Lachapelle c8ea3da5bc Improve detection of theme-specific JavaScript 2015-06-11 15:25:28 -04:00
Francis Lachapelle a70287870b Improve build scripts of Web frontend 2015-06-11 15:25:28 -04:00
Francis Lachapelle e4ec5313db Improve grunt tasks to copy fonts files 2015-06-11 15:25:27 -04:00
Francis Lachapelle a07d918fbf Add category to CardElement
New method to return a JSON representation of the element.
2015-06-11 15:25:27 -04:00
Francis Lachapelle 8da98367db Fix path to ionic scss files 2015-06-11 15:25:26 -04:00
Francis Lachapelle af5489bf57 Fix redirection URLs in JavaScript 2015-06-11 15:25:26 -04:00
Francis Lachapelle 54103124e8 Restore/move missing images 2015-06-11 15:25:25 -04:00
Francis Lachapelle 459c040d8a Initial mobile theme using ionic 2015-06-11 15:25:25 -04:00
Francis Lachapelle f248f81583 Improve template of Contacts module 2015-06-11 15:25:25 -04:00
Francis Lachapelle a6d8dcc5b6 Common JavaScript utlity functions 2015-06-11 15:25:25 -04:00
Francis Lachapelle b4d6667f88 Remove duplicated method 2015-06-11 15:25:24 -04:00
Francis Lachapelle 77b80e27c6 Add support for themes 2015-06-11 15:25:24 -04:00
Francis Lachapelle 16d04e998f Improve Sass of SOGoRootPage & Contacts modules 2015-06-11 15:25:24 -04:00
Francis Lachapelle d52d7582ca Improve build scripts of Web frontend 2015-06-11 15:25:23 -04:00
Francis Lachapelle e817a3b3d0 Improve JavaScript of SOGoRootPage module 2015-06-11 15:25:23 -04:00
Francis Lachapelle 2d6f8e4ea6 Improve JavaScript for Contacts module 2015-06-11 15:25:23 -04:00
Francis Lachapelle fbe412db08 Allow js/img/css subfolders in WebServerResources 2015-06-11 15:25:22 -04:00
Francis Lachapelle 24f01e72c2 JSON-based operations for root page 2015-06-11 15:25:22 -04:00
Francis Lachapelle 6970acfaa4 AngularJS-based templates 2015-06-11 15:25:22 -04:00
Francis Lachapelle 0a49031b01 JSON-based operations on contacts 2015-06-11 15:23:27 -04:00
Francis Lachapelle 29e147ee86 Initial Sass and JavaScript files 2015-06-11 15:19:22 -04:00
Francis Lachapelle c21ec86365 Icons font 2015-06-11 15:19:21 -04:00
Francis Lachapelle 825c45f872 Initial JavaScript models for addressbooks module 2015-06-11 15:19:21 -04:00
Francis Lachapelle 3ad4352ffe Initial cleanup of Web server resources 2015-06-11 15:19:21 -04:00
Alexandre Cloutier a45dc96885 applied comments 2015-06-11 15:17:26 -04:00
Alexandre Cloutier b041ec6e65 activeTasks updates dynamically 2015-06-11 15:15:39 -04:00
Alexandre Cloutier 257d731e04 multiColumns print view + bugFixes 2015-06-11 15:15:39 -04:00
Alexandre Cloutier 720a946d39 The multiColumns view 2015-06-11 15:15:39 -04:00
Ludovic Marcotte 5ad3662640 (fix) fixed multi-domain support for sogo-tool backup/restore (#2600) 2015-06-11 13:32:57 -04:00
Francis Lachapelle 667e38ff0c (fix) Escaping of unexpected characters in emails
Properly encode characters in DOM attributes.

Fixes #3241
2015-06-11 13:14:19 -04:00
Francis Lachapelle 76196bf6f4 (fix) Handling of cards with unexpected UID
Fixes #3239
Fixes #3245
2015-06-11 12:09:21 -04:00
Francis Lachapelle 5435c2dd04 (js) New method String.prototype.fromCSSIdentifier 2015-06-11 11:45:24 -04:00
Francis Lachapelle a70ea38572 New method [NSString+Utilities asSafeJSString] 2015-06-11 11:44:17 -04:00
Ludovic Marcotte 5e66e8e299 (fix) improvement over previous commit to avoid double-bind 2015-06-11 11:36:03 -04:00
Ludovic Marcotte 44af47f69e (fix) avoid method clash from categories that would lead to unexpected behaviors 2015-06-10 20:09:40 -04:00
Ludovic Marcotte 54224637b6 Revert "Revert "(fix) JavaScript syntax error in 'asCSSIdentifier'""
This reverts commit 662d06d24a.
2015-06-10 20:06:00 -04:00
Ludovic Marcotte d9896192f3 Revert "Revert "Improve creation of CSS identifier""
This reverts commit 7d018221ef.
2015-06-10 20:05:40 -04:00
Ludovic Marcotte 85ad849189 Revert "Revert "Improved rationale""
This reverts commit 6994c029b8.
2015-06-10 20:05:13 -04:00
Ludovic Marcotte 2c5f598a23 Revert "Revert "(fix) fixed multidomain issue where UID isn't part of the email address""
This reverts commit ac30c82165.
2015-06-10 20:04:51 -04:00
Ludovic Marcotte ac30c82165 Revert "(fix) fixed multidomain issue where UID isn't part of the email address"
This reverts commit 1f83ba9d50.
2015-06-10 19:11:26 -04:00
Ludovic Marcotte 6994c029b8 Revert "Improved rationale"
This reverts commit 977406de76.
2015-06-10 19:11:04 -04:00
Ludovic Marcotte 977406de76 Improved rationale 2015-06-10 16:31:30 -04:00
Ludovic Marcotte 7d018221ef Revert "Improve creation of CSS identifier"
This reverts commit e40a19cf89.
2015-06-10 16:31:15 -04:00
Ludovic Marcotte 662d06d24a Revert "(fix) JavaScript syntax error in 'asCSSIdentifier'"
This reverts commit 9897cee779.
2015-06-10 16:30:56 -04:00
Francis Lachapelle 9897cee779 (fix) JavaScript syntax error in 'asCSSIdentifier' 2015-06-10 15:43:00 -04:00
Ludovic Marcotte 1f83ba9d50 (fix) fixed multidomain issue where UID isn't part of the email address 2015-06-10 14:33:22 -04:00
Francis Lachapelle e40a19cf89 Improve creation of CSS identifier
Now escaping (), [], {}, ", and ;
2015-06-10 14:02:44 -04:00
Ludovic Marcotte 6bc471ad9a (fix) properly support big characters in EAS and fix encoding QP EAS error for Outlook (#3082) 2015-06-10 10:58:59 -04:00
Ludovic Marcotte b1453e1d7e (fix) fixed potential organizer highjacking when using EAS (#3131) 2015-06-10 10:47:30 -04:00
Ludovic Marcotte 88cab67f6d (fix) properly escape folder after creation using EAS (#3237) 2015-06-10 10:21:15 -04:00
Francis Lachapelle e1ecf797f5 Use double-quotes for setTimeout of UIxJSClose.wox 2015-06-10 09:09:01 -04:00
Ludovic Marcotte a56dbeb6a9 (fix) improved the handling of default calendar categories/colors (#3200) 2015-06-09 20:30:22 -04:00
Ludovic Marcotte 76360958a2 (fix) make sure PRODID is set to Inverse/SOGo when importing events 2015-06-09 13:38:10 -04:00
Ludovic Marcotte aa623c5171 (fix) don't add the domain if already in the uid 2015-06-09 09:46:38 -04:00
Ludovic Marcotte b93cbeee26 (fix) fixed some rare cornercases in multidomain configurations 2015-06-05 12:18:27 -04:00
Ludovic Marcotte f3c2d3ca09 Slightly improvement to the text displayed to users 2015-06-04 14:02:50 -04:00
Ludovic Marcotte 24edb2bce8 (fix) code improvemnent to previous commits 2015-06-04 13:46:50 -04:00
Ludovic Marcotte 05232526a7 (fix) small improvement over previous commit 2015-06-04 11:46:59 -04:00
Ludovic Marcotte 8c4cb64246 (fix) now always enforce the organizer's default identity in appointments 2015-06-04 11:39:54 -04:00
Ludovic Marcotte ccbaea6999 (fix) EAS's GetItemEstimate/ItemOperations now support fetching mails and empty folders 2015-06-02 13:05:37 -04:00
Ludovic Marcotte 75206f1f2c (fix) improved EAS speed, especially when fetching big attachments 2015-06-02 12:57:37 -04:00
Ludovic Marcotte 18a0422367 (fix) wrong filename for chmod 2015-06-02 09:03:34 -04:00
Ludovic Marcotte 2f533f6dae (fix) create ${RPM_BUILD_ROOT}/etc/tmpfiles.d/ if not present (test) 2015-06-02 09:00:21 -04:00
Ludovic Marcotte 4df323eddb (fix) fixed the target path and name 2015-06-02 08:46:17 -04:00
Ludovic Marcotte 9435a22905 (fix) added tmpfs systemd script 2015-06-02 08:41:53 -04:00
Ludovic Marcotte 15bbfeda3a (fix) renamed scripts 2.1.17 -> 2.2.17 2015-06-02 08:25:54 -04:00
Francis Lachapelle 617e6f6454 Update NEWS file 2015-06-01 11:56:52 -04:00
Francis Lachapelle f65076defd Update NEWS file 2015-06-01 11:20:32 -04:00
Ludovic Marcotte 289100beff Updated files for the 2.3 release 2015-06-01 08:36:02 -04:00
Ludovic Marcotte 7da6b0b822 (fix) only dump broken eas data to file if SOGoEASDebugEnabled is enabled 2015-05-29 14:23:01 -04:00
Ludovic Marcotte 6cf2fd1e52 Adjusted the doc for the procedure on Wheezy/Precise 2015-05-28 13:41:19 -04:00
Ludovic Marcotte c95568373f Added control file for i386/i686 distro to not build OC 2015-05-28 11:29:44 -04:00
Francis Lachapelle bd12a817a6 Update languages in Installation Guide 2015-05-28 08:30:30 -04:00
Ludovic Marcotte 2fd0beeaca Added precision on supported architectures 2015-05-27 15:53:23 -04:00
Ludovic Marcotte db4cd9da6e (fix) doc update regarding samba 4.1.18 2015-05-27 15:53:23 -04:00
extrafu d1551bc7bb Merge pull request #86 from gillesgagniard/rhel7-improvements
various fixes for systemd service on RHEL7
2015-05-26 16:59:36 -04:00
Gilles Gagniard bea9b26907 systemd needs to reload the newly installed sogod.service, otherwise enable/start will fail on first sogo installation 2015-05-26 22:55:14 +02:00
Gilles Gagniard 84dfba7978 honor PREFORK setting in /etc/sysconfig/sogo when starting sogod with systemd 2015-05-26 22:50:28 +02:00
Ludovic Marcotte ce3d55d2cc (fix) do not rewrite the username when using the session from the db 2015-05-26 11:08:30 -04:00
Francis Lachapelle b43c3f6d98 Fix asciidoc of Installation guide 2015-05-25 13:52:25 -04:00
Ludovic Marcotte abcd48a0cd Added missing image used in the documentation 2015-05-25 13:37:04 -04:00
Ludovic Marcotte d07df554f3 (fix) more fixes and clarifications on the mutli-domain settings 2015-05-25 13:00:08 -04:00
Ludovic Marcotte 772c3b3115 (fix) formatting fixes 2015-05-25 10:43:42 -04:00
Ludovic Marcotte ed42d1e26b (fix) more multi-domain fixes and cleanups 2015-05-25 09:19:04 -04:00
Ludovic Marcotte e0c1d5e47b Improved the doc for the 2.3 release 2015-05-25 08:27:46 -04:00
Ludovic Marcotte 55d91973bd Improved the doc for the release 2015-05-22 15:23:48 -04:00
Ludovic Marcotte 4f303f8aa2 Fixed mess regarding uid/realUID 2015-05-22 14:03:49 -04:00
Ludovic Marcotte c8995087d8 Small improvements to the docs 2015-05-22 13:50:06 -04:00
Ludovic Marcotte 2ae5f342da Fix a crasher 2015-05-22 13:47:48 -04:00
extrafu d6ab7582e5 Merge pull request #85 from Zentyal/inverse_fix-multidomain-web
Avoid reading emails from other domains
2015-05-22 09:19:54 -04:00
Francis Lachapelle 1e0473f1e5 Localization 2015-05-22 07:58:26 -04:00
Jesús García Sáez 7990e23aaa Fix warning distinct Objective-C type
failedCount is a NSDictionary *, not NSMutableDictionary *
2015-05-22 10:19:09 +02:00
Jesús García Sáez 04ce8d1066 Avoid cache entries with uid@domain@domain prefix
Depend of the current workflow this paths are reached with
username as uid and sometimes as uid@domain. So in multidomain
environments only append @domain when needed.

Conflicts:
	SoObjects/SOGo/SOGoUserManager.m
2015-05-22 10:18:55 +02:00
Jesús García Sáez 37461e650d Fix conflicts with externalLoginWithEmail + DomainBasedUid
On multidomain environment (SOGoEnableDomainBasedUID) with email for imap
authentication (SOGoForceExternalLoginWithEmail) we need to use uid@domain
instead of just uid in method getEmailForUID
2015-05-22 10:14:49 +02:00
Jesús García Sáez 9922ec56d9 Avoid uid+attributes entries on shared cache
In multidomain environments this will produce that info@domain1.com
can read info@domain2.com emails when info@domain2.com log in after
info@domain1.com is already logged in.

If multidomain is not enabled, this action is not needed because
uid+attributes has been already saved on shared cache
2015-05-22 10:14:43 +02:00
Francis Lachapelle 7893349244 TimePicker: allow entries from numpad
Fixes #1516
2015-05-21 21:35:13 -04:00
Ludovic Marcotte e40be92204 Updated NEWS file regarding PR#84 2015-05-21 08:48:45 -04:00
extrafu 30103532ae Merge pull request #84 from Zentyal/master
sogo-openchange fixes
2015-05-21 08:46:21 -04:00
extrafu b433bac432 Merge pull request #83 from Zentyal/jag/change-passsword-exceptions
Return appropiate error code when changing AD password with incorrect…
2015-05-21 08:42:17 -04:00
Ludovic Marcotte 79bfc7aedf (fix) more rhel7 fix 2015-05-20 14:27:57 -04:00
Ludovic Marcotte 54ab0bf822 (fix) rhel7 packaging fix 2015-05-20 14:24:02 -04:00
Ludovic Marcotte 7e8c79c646 (fix) use the contact-info, not the user/group bit identifier 2015-05-20 13:51:16 -04:00
Ludovic Marcotte 416711ea43 (fix) avoid appending the domain unconditionally when SOGoEnableDomainBasedUID is set to YES 2015-05-19 13:48:59 -04:00
Javier Amor García 5a8f310bc8 Show 'complexity password' error instead of a generic error.
There is not discrimination between complexity and length errors because backend does not
return different error codes for each case.
2015-05-19 15:00:18 +02:00
Ludovic Marcotte ae72c2f1d5 Renamed scripts 2015-05-19 06:35:19 -04:00
Jesús García Sáez ca500df0af Merge pull request #136 from Zentyal/ejhernandez/fix-regression-all-day-recurrent
oc-calendar: Fix regression on PidLidAppointmentTimeZoneDefinitionStartDisplay
2015-05-19 10:38:35 +02:00
Enrique J. Hernández Blasco e2ef0103c4 oc-calendar: Fix regression on AppointmentTimeZoneDefinitionStartDisplay
Introduced by ebe2a466e7 in PR #132 when the event is not
all day neither recurrent one.

The fix is just to initialise to nil when it is a normal event
and it returns NOT_FOUND for this property.
2015-05-19 00:26:42 +02:00
Julio J. García Martín e6d1a00928 Merge pull request #135 from Zentyal/jvalles/reply-requested-return-values
oc-calendar: Fix property values of invitation responses
2015-05-18 12:48:37 +02:00
Ludovic Marcotte 143ee59f5b Improved debian packaging regarding apache 2.2 -> 2.4 2015-05-15 09:38:58 -04:00
Ludovic Marcotte 037a3a136a (fix) message bodies not shown on some EAS devices (#3173) 2015-05-14 15:58:53 -04:00
Ludovic Marcotte c98a000515 (feat) many improvements to EAS SmartReply/SmartForward commands 2015-05-14 15:49:53 -04:00
Ludovic Marcotte cc1e9f2fff (fix) additional fix for #3152 2015-05-14 15:40:03 -04:00
Ludovic Marcotte 9dc0a08bba (fix) removed unused import 2015-05-14 15:28:23 -04:00
Ludovic Marcotte 5412599832 (feat) now possible to log EAS commands using the SOGoEASDebugEnabled system defaults 2015-05-14 15:26:18 -04:00
Ludovic Marcotte fbf5c4f6c2 (fix) always include SrcMsgId in the MoveItems's response 2015-05-13 19:09:58 -04:00
Ludovic Marcotte d97813451e (fix) moved stuff to multiarch 2015-05-13 16:09:41 -04:00
Ludovic Marcotte 4de814c3b2 (fix) first pass (and hopefully only) at Apache 2.2->2.4 mess 2015-05-13 15:48:47 -04:00
Ludovic Marcotte fb121974ec refactored previous commit 2015-05-13 14:52:10 -04:00
Ludovic Marcotte 39aa9a97db (fix) make sure we return event blocks sorted by start date (#2939) 2015-05-13 14:36:35 -04:00
Ludovic Marcotte dc48e05dd3 (feat) print event/task description in list view (#2881) 2015-05-13 13:12:15 -04:00
Ludovic Marcotte 0ea0a77666 fixed typo in previous commit 2015-05-13 10:55:17 -04:00
Ludovic Marcotte f8b7ebdaf8 Adjust OCS files regarding previous commit 2015-05-13 10:51:12 -04:00
Ludovic Marcotte 5cf500d560 (feat) added c_description to calendar quick tables 2015-05-13 10:45:19 -04:00
Ludovic Marcotte c1ce32ac94 (fix) now handle very large amount of participants correctly (#3175) 2015-05-12 15:48:42 -04:00
Ludovic Marcotte e71a1c9974 (fix) addition fix for #3152 2015-05-12 10:44:51 -04:00
Ludovic Marcotte 96b2e0e1f5 (fix) use dateTime instead of compact format for meeting requests 2015-05-12 10:37:26 -04:00
Ludovic Marcotte a145fdbb53 (fix) ensure calendar objects have a (fake) filename 2015-05-12 10:33:05 -04:00
Ludovic Marcotte 619e9fe7dd (fix) now correctly handle multiple email addresses in the GAL over EAS 2015-05-12 10:28:47 -04:00
Ludovic Marcotte 64da65d827 (fix) fallback to Latin1 when trying to parse versit data 2015-05-12 10:19:20 -04:00
Ludovic Marcotte 364a07bd05 set the preferred body type for meeting response 2015-05-12 10:15:07 -04:00
Ludovic Marcotte 2c78d60e4a (fix) now correct handle external invitations using EAS 2015-05-12 10:12:57 -04:00
Ludovic Marcotte ee8caa5a99 (fix) now set MeetingMessageType only for EAS 14.1 2015-05-12 10:05:45 -04:00
Ludovic Marcotte f666b436dd (fix) make sure sure email invitations can always be read by EAS clients 2015-05-12 09:59:01 -04:00
Ludovic Marcotte 4826f01555 (fix) fixed EAS replies decoding from Outlook (#3123) 2015-05-12 09:52:13 -04:00
Juan Vallés 0a285eedec oc-calendar: Fix property values of invitation responses
The value of `PidTagResponseRequested` property in the invitation mail
wasn't being set properly, while the `PidTagReplyRequested` property
wasn't being set at all. This caused invitation response mails not to be
sent. Both properties are expected to be `true`.
2015-05-11 12:58:06 +02:00
Julio J. García Martín 582c24afc5 Merge pull request #133 from Zentyal/ejhernandez/flush-cache
oc-mail: Flush IMAP hierarchy cache to update Outlook folders
2015-05-07 09:53:49 +02:00
Enrique J. Hernández 92ab267db5 Merge pull request #131 from Zentyal/ejhernandez/set-restriction-on-name-for-mail-folders
oc-mail: Support restricitions on name for MAPIStoreMailFolderTable
2015-05-07 02:03:39 +02:00
Ludovic Marcotte fbb779a71d (fix) During login, we now extract the domain from the user to accelerate authentication requests on sources 2015-05-06 16:03:33 -04:00
Julio J. García Martín 54b405a83d Merge pull request #132 from Zentyal/jvalles/floating-time-in-all-day-events
oc-calendar: Interpret dates of all-day events in floating time
2015-05-06 12:22:51 +02:00
Enrique J. Hernández Blasco 15f95c4956 oc-mail: Support restricitions on name for MAPIStoreMailFolderTable
This allows us to search for a subfolder in a mail
folder successfully. This is happening, for instance, on folder creation.
2015-05-05 23:34:09 +02:00
Enrique J. Hernández Blasco 2d65b75b56 oc-mail: Flush IMAP hierarchy cache to update Outlook folders
This fixes two scenarios:

* An IMAP subfolder has updated its hierarchy when it is asked
  to be synchronised
* An IMAP root folder is created on Outlook when you logon. OpenChange
  changes are required to be refreshed on synchronisation.
2015-05-05 23:30:12 +02:00
Juan Vallés ebe2a466e7 oc-calendar: Compute PidLidAppointmentDefinitionStartWhole for all-day events 2015-05-05 10:29:24 +02:00
Juan Vallés 7e89c43919 oc-calendar: Compute time offset in floating time in all-day recurring events 2015-05-05 10:29:24 +02:00
Ludovic Marcotte a37f438663 (fix) the EAS maximum response size being per-folder, and not global 2015-05-04 09:11:52 -04:00
Julio J. García Martín dc5237e92e Merge pull request #123 from Zentyal/ejhernandez/no-mapping-creation-root-folder
oc: Do not create indexing entry for a root folder
2015-05-04 11:10:47 +02:00
Francis Lachapelle 50896eb526 (i18n) Improve Basque Locale file 2015-04-28 14:44:29 -04:00
Ludovic Marcotte 7ff12c7a64 Updated NEWS file regarding Zentyal's PRs 2015-04-27 15:07:44 -04:00
Ludovic Marcotte f2b5f5917b Fixed dot notation 2015-04-27 15:02:00 -04:00
Ludovic Marcotte ee74b78bf2 Merge branch 'master' of https://github.com/inverse-inc/sogo 2015-04-27 14:58:20 -04:00
Ludovic Marcotte dfb960eac4 Disabled -Werr for now 2015-04-27 14:57:44 -04:00
Francis Lachapelle a1406d01e1 Initial Basque translation 2015-04-27 13:59:05 -04:00
Francis Lachapelle 07ac3f43fb Simplify some calls in SOGoAppointmentFolder.m 2015-04-27 10:39:09 -04:00
extrafu 1db2b9793a Merge pull request #79 from Zentyal/contribute-back
Latest changes for sogo-openchange
2015-04-27 10:14:29 -04:00
extrafu 393d8e5a73 Merge pull request #80 from dekkers/md4-compile-fix
Do not include nonexistent config.h in md4.c
2015-04-26 20:00:29 -04:00
extrafu 6f741168a9 Merge pull request #81 from dekkers/spelling-fix
Spelling fix: dictionnary -> dictionary
2015-04-26 20:00:08 -04:00
Jeroen Dekkers 84c199b95a Spelling fix: dictionnary -> dictionary 2015-04-26 13:33:03 +02:00
Jeroen Dekkers 769045bbf6 Do not include nonexistent config.h 2015-04-25 14:40:42 +02:00
Julio García 08501dacaa Merge branch 'master' into contribute-back
Conflicts:
	NEWS
2015-04-24 16:53:05 +02:00
Jesús García Sáez b7907d654d Merge pull request #127 from Zentyal/jkerihuel/asynchronous-notifications
[oxcnotif] Delete deprecated notification code
2015-04-22 12:45:20 +02:00
extrafu a94591a365 Merge pull request #78 from Zentyal/contribute-back
Fixes for OpenChange integration from Zentyal
2015-04-20 11:43:04 -04:00
Julio García 78f5f60b16 Revert "oc: monkeypatched NGImap4Connection class from sope"
This reverts commit 24e35103ff.
2015-04-20 13:15:22 +02:00
Julio García 255b3d2d00 Revert "oc: NGImap4Connection:fetchUids don't delete RawResponse"
This reverts commit c410a9fc3f.
2015-04-20 13:15:13 +02:00
Julio García 1d9e085658 Revert "oc: NGImap4Connection:fetchUids changed error messages"
This reverts commit 41320a4813.
2015-04-20 13:15:04 +02:00
Julio García 9901788db6 Revert "Update news for next release"
This reverts commit cd47c926c9.

Conflicts:
	NEWS
2015-04-20 09:51:02 +02:00
Julio García 8e39f03f83 Revert "Prepare for 2.2.17a-zentyal1"
This reverts commit 8706443685.

Conflicts:
	NEWS
2015-04-20 09:48:52 +02:00
Julio García f6370d10cb Revert "Prepare for new 2.2.15-zentyal3 version"
This reverts commit 914e7b7418.

Conflicts:
	NEWS
2015-04-20 09:47:40 +02:00
Ludovic Marcotte d0c1737b1b Removed TODO refs 2015-04-17 14:09:51 -04:00
Ludovic Marcotte 836095e984 Removed old TODO file 2015-04-17 14:09:13 -04:00
Luc Charland a86b164228 uses a dict instead of a string of a dict for preventInvitationsTest 2015-04-17 10:38:40 -04:00
Francis Lachapelle 5847e086ec (fix) Edition and access of attach URL in editor 2015-04-17 10:00:29 -04:00
Ludovic Marcotte 3872af35d1 (fix) Improve prevent invitations error handling 2015-04-17 09:41:39 -04:00
Ludovic Marcotte beb666bc5f (fix) fixed md4 support (for NTLM password changes) with GNU TLS 2015-04-17 09:29:49 -04:00
Enrique J. Hernández Blasco 8fce211172 Merge pull request #125 from Zentyal/jgarcia/multidomain-outlook-entryId
All this basically is to make it work on multidomain environment
the Reply all functionality of emails but I'm sure there are more use cases
as an Outlook client that don't work nowadays without this patch.

More info on commit message but basically it was that we were using user
instead of user@domain.com in several places.
2015-04-17 11:33:21 +02:00
Enrique J. Hernández Blasco 030d343432 oc: Do not create indexing entry for a root folder
This is done by OpenChange after this patchset is merged:

https://github.com/openchange/openchange/pull/273
2015-04-16 23:23:32 +02:00
Francis Lachapelle a7306a77cb (fix) JavaScript error when saving preferences
The error was occuring when the user enabled forwarding but no domains
constraints were defined in the SOGo's configuration.
2015-04-16 15:27:55 -04:00
Jesús García Sáez 58449076a3 Merge branch 'jacalvo/fix-optional-rec-type' 2015-04-16 19:55:19 +02:00
José Antonio Calvo 539060d252 oc-calendar: Fix recipient type for invitations
Take into account optional attendees setting the recipient
type to MAPI_CC when they have the iCal role set to OPT-PARTICIPANT
instead of harding always MAPI_TO (required) as was done before.

This is a complementary fix for: https://github.com/Zentyal/sogo/pull/108
2015-04-16 19:47:47 +02:00
Jesús García Sáez 336c4fb9d3 Merge pull request #121 from Zentyal/ejhernandez/search-mapidb-message-props
oc: Search for properties in a SOGoMAPIDB object now works
2015-04-16 18:51:18 +02:00
Jesús García Sáez d3bf3dcd8f Merge pull request #122 from Zentyal/ejhernandez/enforce-mapping-subfolder
oc: Enforce the folder creation mapping when the FID exists
2015-04-16 18:05:29 +02:00
Julien Kerihuel d4930a7960 oc: Remove deprecated notification code. 2015-04-16 16:04:47 +02:00
Jesús García Sáez 49ee0850e1 Merge pull request #118 from Zentyal/ejhernandez/return-sorted-events
oc: return last modified messages when sorted by PidMessageTagDeliveryTime

This change is required as oxcfxics is asking for sorting
using this property.

We fake this property on GCS folders (Tasks, Calendar, Contacts)
using c_lastmodified column.
2015-04-16 12:50:20 +02:00
Jesús García Sáez 0f432b654f oc: Fix internal EntryIds properties on multidomain
PidTag*EntryId properties were not being generated (which contain
the email address and so on). Functionality on Outlook clients like
"Reply All" were not working because of this (probably a lot more
stuff related with email addresses).

With multidomain support enabled outlook clients will use full email
address (e.g. user@domain.com) as login.

This change is needed because we were performing ldap queries on samdb
using (sAMAccountName=UIDFieldName), being UIDFieldName the parameter
configured in sogo.conf for that source. In multidomain environment
this field could be `sAMAccountName` but it could not. Actually the
more logical scenario will be to use `uid` field here (which will be
just `user`, without the `@domain.com` part).

SOGoUserManager will return `sAMAccountName` if the contact has it
(in Outlook environment that means always) so it can (and must) be
used to query samdb in MAPIStoreSamDBUtils properly.

TL;DR: use sAMAccoutName instead of uid to query samdb
2015-04-16 11:32:24 +02:00
Julio García cdb6085510 Revert "Adding missing build dependency gnulib"
This reverts commit 210053ea20.
2015-04-16 09:55:32 +02:00
Julio García 6b3454376e Revert "configure: Fix gnulib/crypto/md4 dependency"
This reverts commit f0a3fdae5b.
2015-04-16 09:55:22 +02:00
Julio García a8e8ec535a Prepare for 2.2.17a-zentyal1 2015-04-15 19:57:56 +02:00
Julio García 3f3ae3acd7 Merge remote-tracking branch 'upstream/master' into contribute-back
Conflicts:
	NEWS
2015-04-15 17:08:30 +02:00
Julio García 8706443685 Prepare for 2.2.17a-zentyal1 2015-04-15 16:10:03 +02:00
Julio García ca7c4c026e Merge pull request #119 from Zentyal/jjgarcia/merge-from-upstream
Merge from upstream version 2.2.17a
2015-04-15 16:05:37 +02:00
Jesús García Sáez f0a3fdae5b configure: Fix gnulib/crypto/md4 dependency
Gnulib project needs Autoconf to be able to import their modules with gnulib-tool
http://www.gnu.org/software/gnulib/manual/html_node/Initial-import.html#Initial-import

We only need md4.c file so this is a workaround to compile it without using
gnulib-tool --import
2015-04-15 15:28:32 +02:00
Julio García 210053ea20 Adding missing build dependency gnulib 2015-04-15 15:28:23 +02:00
Julio J. García Martín 35f81318d6 Merge pull request #124 from Zentyal/jgarcia/multidomain_cache_tables
Multidomain cache tables
2015-04-15 10:41:17 +02:00
Jesús García Sáez 1d6f1a83af use full login for sogo_cache_folder tables
So when multidomain is enabled we will have tables like
sogo_cache_folder_user_A_domain_D_com instead of just
sogo_cache_folder_user

If multidomain is disabled the folders will still be like
sogo_cache_folder_user
2015-04-14 13:18:23 +02:00
Julio García 914e7b7418 Prepare for new 2.2.15-zentyal3 version 2015-04-14 11:44:32 +02:00
Enrique J. Hernández Blasco bddd67fb93 oc: Enforce the folder creation mapping when the FID exists
We believe the folder ID OpenChange is sending us is new
and we keep the indexing database properly updated.

Although the solution is not elegant, this could avoid
inconsistencies between what the client stores and the
relation in the MAPIStore backend.
2015-04-13 11:48:42 +02:00
Enrique J. Hernández Blasco fa23b574eb oc: Search for properties in a SOGoMAPIDB object now works
sogo-openchange library stores the properties as NSString keys
and the search function casts the values to NSNumber, which it may
be valid for other parts but not for this library.

The real fix would be to store the property keys as NSNumbers as
they are uint32_t at the end. However, this may lead to a great
refactor in the library.

With this fix, we can match the search for a property in a
MAPIStoreFallback folder, such as Notes or Deleted Items, or
MAPIStoreFolder properties (ie: search for a subfolder) or
for MAPIStoreFAIMessages in a folder.
2015-04-13 11:37:48 +02:00
Julio García 321e16c382 Merge tag 'SOGo-2.2.17a' into jjgarcia/merge-from-upstream
SOGo 2.2.17a

Conflicts:
	NEWS
2015-04-10 13:12:46 +02:00
Julio García 479bbce7d0 Merge pull request #116 from Zentyal/ejhernandez/soft-deleted-sync
Soft deleted mail messages sync
2015-04-10 10:27:48 +02:00
Julio J. García Martín 69b06d3c7a Merge pull request #113 from Zentyal/jag/show-internet-headers
Support for PidTagTransportMessageHeaders property
2015-04-10 10:02:00 +02:00
Julio J. García Martín 65d1fc2134 Merge pull request #117 from Zentyal/ejhernandez/oc-debug
oc: Use new OC_DEBUG macro
2015-04-10 10:01:18 +02:00
Francis Lachapelle cdc74e4984 Update translations 2015-04-09 09:06:19 -04:00
Ludovic Marcotte 1e4596ca3a (fix) fixed serialization of PreventInvitationsWhitelist 2015-04-08 14:20:33 -04:00
Francis Lachapelle 755efa789b [fix] initial loading of inbox uids and headers 2015-04-08 12:07:28 -04:00
Francis Lachapelle eae327ca19 [fix] Paragraph margins in HTML message
Fixes #3163
2015-04-07 08:27:30 -04:00
Francis Lachapelle 01857a9a47 [fix] Timezone of MS Exchange freebusy information 2015-04-02 11:53:03 -04:00
Francis Lachapelle e2c3259b16 [fix] Issues with freebusy in attendees editor 2015-04-01 20:10:52 -04:00
Ludovic Marcotte 77917780c8 (fix) packaging issue on RHEL 2015-04-01 08:46:46 -04:00
Ludovic Marcotte 9b320ec2a1 Improvements over 491d7aaffc 2015-03-31 16:17:21 -04:00
Ludovic Marcotte b2d7eb40c2 (fix) fixed a potential EAS error with multiple email priority flags 2015-03-31 16:13:52 -04:00
Francis Lachapelle ab121e6c15 [fix] Issues with freebusy in attendees editor 2015-03-31 15:19:53 -04:00
Ludovic Marcotte 94d546dc7a (feat) added systemd startup script (PR#76) 2015-03-31 13:42:59 -04:00
extrafu 2082acc1aa Merge pull request #76 from peruchi/master
Change script start sogod for systemd
2015-03-31 13:40:42 -04:00
peruchi 06ef3fe856 Delete sogo-systemd-redhat.spec 2015-03-31 14:37:35 -03:00
peruchi c9ec636a53 Update sogo.spec 2015-03-31 14:36:04 -03:00
peruchi 36a70b161c Create sogo-systemd-redhat 2015-03-31 14:19:16 -03:00
peruchi 784f0100e9 Create sogo-systemd-redhat.spec 2015-03-31 14:18:23 -03:00
Ludovic Marcotte db9536adcc (fix) fix yet an other potential crash during freebusy lookups during timezone changes 2015-03-31 09:25:57 -04:00
Ludovic Marcotte c428ac2553 EAS reply fix when message/rfc822 parts are included in the original mail (#3153) 2015-03-30 09:57:27 -04:00
Ludovic Marcotte f5607b3e85 now keep the BodyPreference for future EAS use and default to MIME if none set (#3146) 2015-03-30 09:49:44 -04:00
Ludovic Marcotte 491d7aaffc improved multipart handling using EAS 2015-03-30 09:42:32 -04:00
Enrique J. Hernández Blasco 95a8a9316a oc: Use new OC_DEBUG macro
Avoiding the usage of __FUNCTION__ and __LINE__
and more related with the logging system is being in place
for OpenChange.

As well as set the proper level to some debug messages.
2015-03-27 11:12:40 +01:00
Enrique J. Hernández Blasco 1ee47b1ee2 oc: return last modified messages when sorted by PidMessageTagDeliveryTime
This change is required as oxcfxics is asking for sorting
using this property.

We fake this property on GCS folders (Tasks, Calendar, Contacts)
using c_lastmodified column.
2015-03-27 10:27:16 +01:00
Enrique J. Hernández Blasco dfde498b7c oc-mail: Include Deleted flagged messages on syncing cache
This gives an accurate value for SyncLastDeletedMessage
2015-03-26 22:45:13 +01:00
Enrique J. Hernández Blasco 06476abdf7 oc-mail: return soft-deleted mails while syncing
As well as hard deleted

As explained in [MS-OXCFXICS] Section 2.2.1.3.1, the
property MetaTagIdsetDeleted must include both types
of messages and this idset is filled with the return
value of this message.
2015-03-26 22:05:43 +01:00
Jesús García Sáez bb0221c763 Merge pull request #115 from Zentyal/ejhernandez/sharing-flavour-val-idl
oc-mail: Update place for Sharing Flavour prop values
2015-03-26 19:45:24 +01:00
Jesús García Sáez dc869ce106 oc-mail: Support for PidTagTransportMessageHeaders property
This property is needed to show the 'Internet Headers' in Outlook.
Outlook 2010 shows them in the properties dialog of a message.
Outlook 2007 show them in message options section from context menu
of a mail message.

The property is defined in [MS-OXOMSG] section 2.2.1.61.

The property is formed concatenating the mail message headers
properly mime encoded.

The headers are appended in no defined order.
2015-03-26 19:26:48 +01:00
Ludovic Marcotte ddcae9f132 Updates for the release 2015-03-26 13:57:58 -04:00
Ludovic Marcotte f11bcd3373 Avoid using stringByReplacing... since old runtimes don't support it 2015-03-26 13:54:17 -04:00
Enrique J. Hernández Blasco a47f1de607 oc-mail: Update place for Sharing Flavour prop values
It has been moved in OpenChange
2015-03-26 14:18:34 +01:00
Jesús García Sáez 09aed26f10 Merge pull request #114 from Zentyal/ejhernandez/fix-interleaving-creating-folder
As it happened with dba17fb if we interleave requests
from different users while creating a folder we can
create the folder in other user's mailbox as latest
activeUser is the one from latest sogo_context_get_root_folder
call.

This is for me a lack of right design and a workaround
only fixing this issue but not the root cause.
2015-03-25 17:15:05 +01:00
Jesús García Sáez 0e5de2df42 Merge pull request #110 from Zentyal/ejhernandez/sharing-calendar-request
This requires https://github.com/openchange/openchange/pull/244 to work
but basically we have modified this backend to store request-related
properties in a `MAPIStoreMailMessage` using the versions message
from the `MAPIStoreMailFolder` container and fix the setter/getter
for the following properties:

  * PidNameXSharingFlavor
  * PidLidSharingFlavor
  * PidNameXSharingCapabilities
  * PidLidSharingResponseType
  * PidLidSharingResponseTime
2015-03-25 17:09:14 +01:00
Enrique J. Hernández Blasco 82fb03b67b oc-mail: Ensure we are creating folder to the right user
As it happened with dba17fb if we interleave requests
from different users while creating a folder we can
create the folder in other user's mailbox as latest
activeUser is the one from latest sogo_context_get_root_folder
call.

This is for me a lack of right design and a workaround
only fixing this issue but not the root cause.
2015-03-25 16:53:42 +01:00
Enrique J. Hernández Blasco f9c8661fe6 oc-mail: Use constant names in props value
This gives to the developer more information about
the property values for PidLidSharingFlavor and
PidLidSharingCapabilities.
2015-03-25 10:12:15 +01:00
Enrique J. Hernández Blasco 661b6694af oc-mail: Fix several sharing properties managing
* PidNameXSharingFlavor is used by Outlook 2010 so we have
  to store it
* 0x5100 is used although it is not in spec as Sharing Flavour
  value when the request is denied from a message where
  Request + Invitation was sent.
* Return properly PidNameXSharingCapabilities and PidNameXSharingFlavor
  as it is an string representation of a hex number
* Try to guess proper sharing flavour value when it is missing
2015-03-25 10:12:15 +01:00
Enrique J. Hernández Blasco 514b1c03be oc-mail: Store request properties
Save them in extra properties from folder container.

This is required because the client once a request is accepted
or denied sets these two properties and save the message again.
As we cannot modify an IMAP message, we use this utility.

See [MS-OXSHARE] Section 3.1.4.3 for details.
2015-03-25 10:12:15 +01:00
Enrique J. Hernández Blasco a663fdd260 oc-mail: Give support to store extra properties in versions message
This is handy when you want to store properties once a mail
has hit the server and thus cannot be changed.
2015-03-25 10:12:15 +01:00
Jesús García Sáez 0db16aedb1 Merge pull request #112 from Zentyal/ejhernandez/fix-crash-invalid-ics
A failure in parsing an ICS makes return a nil calendar
object. Instead of creating an appointment with nil
information which can lead to crashes like the one
generated creating PidLidCleanGlobalObjectId property.

We return an empty message with no information which is
taken into account in Outlook but not displayed like
in SOGo webmail does.
2015-03-24 19:15:05 +01:00
Jesús García Sáez 6f70066986 Merge pull request #109 from Zentyal/ejhernandez/empty-acl-perms
The `[SOGoFolder:aclUsers]` returns a reference to a `NSArray`
which is being modified in the `for` loop making fail when
more than one user is in the ACL with `NSRangeException`.
2015-03-24 17:40:37 +01:00
Ludovic Marcotte b933f53fc2 Changes for the 2.2.17 release 2015-03-24 10:56:26 -04:00
Ludovic Marcotte 097d5c2333 now possible to configure objectClass names for LDAP groups using GroupObjectClasses (#1499) 2015-03-24 08:40:13 -04:00
Ludovic Marcotte d75fb0722a Code cleanups 2015-03-24 08:34:29 -04:00
Enrique J. Hernández Blasco 6204aebf2c oc-calendar: do not crash with invalid events
A failure in parsing an ICS makes return a nil calendar
object. Instead of creating an appointment with nil
information which can lead to crashes like the one
generated creating PidLidCleanGlobalObjectId property.

We return an empty message with no information which is
taken into account in Outlook but not displayed like
in SOGo webmail does.
2015-03-23 23:57:33 +01:00
Francis Lachapelle 26d876e67a Improve event attendees editor
- Avoid repetitive AJAX queries;
- Improve handling of daylight changes.
2015-03-23 17:54:05 -04:00
Ludovic Marcotte cc3652b59b improvements to EAS SyncKey handling to avoid missing mails (#3048, #3058) 2015-03-23 17:23:29 -04:00
Ludovic Marcotte 9d7bbbc312 enable by default HTML mails support using EAS on Windows and BB phones 2015-03-23 14:55:14 -04:00
Ludovic Marcotte d2915add6d now favor login@domain as the default email address if multiple mail: fields are specified 2015-03-23 14:08:31 -04:00
Ludovic Marcotte 67139ce3e3 improved GetItemEstimate to count all vasnished/deleted mails too 2015-03-23 11:35:45 -04:00
Ludovic Marcotte 9eb138b867 prevent potential freebusy lookup crashes during timezone changes with repetitive events 2015-03-23 10:54:36 -04:00
Ludovic Marcotte baf3d1f986 immediately delete mails from EAS clients when they are marked as deleted on the IMAP server 2015-03-20 09:10:49 -04:00
Ludovic Marcotte ecd336fa5c Fix compilation warning and error 2015-03-20 08:51:35 -04:00
Ludovic Marcotte afd73289d1 properly fallback over EAS to UTF-8 and then Latin1 for messages w/o charset (#3103) 2015-03-20 08:45:42 -04:00
Ludovic Marcotte bff21ab1ff support for mail prority using EAS 2015-03-19 16:08:33 -04:00
Ludovic Marcotte 6d99226b13 Always add DisplayName no matter EAS client version 2015-03-19 14:53:01 -04:00
Francis Lachapelle 69974807b5 Fix Language-Region tags in Web interface
Fixes #3121
2015-03-19 08:35:10 -04:00
Enrique J. Hernández Blasco 8ee2303e78 oc: Empty ACL from a folder works with several users
The `[SOGoFolder:aclUsers]` returns a reference to a `NSArray`
which is being modified in the `for` loop making fail when
more than one user is in the ACL with `NSRangeException`.
2015-03-19 00:06:14 +01:00
Enrique J. Hernández 7bc8cd58dd Merge pull request #108 from Zentyal/jacalvo/fix-optional-attendees
oc-calendar: Fix event invitations for optional attendees
2015-03-18 21:34:51 +01:00
José Antonio Calvo 2668bc313c oc-calendar: Fix event invitations for optional attendees
Outlook sets recipient type of Required attendees as MAPI_TO and
optional ones as MAPI_CC, so the fix is just to not only iterate
over the "to" list of recipients but also the "cc" one. We're
also setting the proper iCal value for this case (OPT-PARTICIPANT
instead of REQ-PARTICIPANT)

In [MS-OXOCAL] Section 2.2.4.10.7 says the recipient type is 0x01
as Required and 0x02 as Optional and other documents such as
[MS-OXCMSG] 2.2.3.1.2 indicates that MAPI_TO is 0x01 and MAPI_CC
is 0x02, that's why is stored in 'to' and 'cc' respectively.
2015-03-18 18:18:46 +01:00
Jesús García Sáez 418ac15de6 Merge pull request #107 from Zentyal/jgarcia/rtf-no-color-table
oc-rtf: no color table definition
2015-03-18 18:08:05 +01:00
Jesús García Sáez 637ac1e98a oc-rtf: no color table definition
Be able to parse rtf files without color table defined
\colortbl
2015-03-18 18:06:49 +01:00
Jesús García Sáez b0ba6f4a22 Merge pull request #101 from Zentyal/ejhernandez/recurrence-exceptions-fixes
Two fixes on recurring events
2015-03-18 18:05:06 +01:00
Ludovic Marcotte cdb766e2ef Documented NGMimeBuildMimeTempDirectory 2015-03-18 10:15:33 -04:00
Enrique J. Hernández Blasco fb4c3a4730 oc-calendar: Fix weekly recurring events exported to Outlook from SOGo
SOGo does not create BYDAY mask in weekly recurrence, so
we have to guess it from the start date's day of week.

In other case, the event is not exported to Outlook and it
says that is corrupted.
2015-03-18 15:08:24 +01:00
Enrique J. Hernández Blasco 6f44ec42c1 oc-calendar: Fix import in SOGo exceptions from recurring series
According to [MS-OXICAL] Section 2.1.3.1.1.20.13, the EXDATE property
must be written only if there are ocurrences from the series that have
been deleted and before this commit ModifiedInstanceDates were also
included.

We check against every ExceptionInfo from exception ocurrences of the series
to know if the ocurrence was deleted or only modified.
2015-03-18 15:08:24 +01:00
Ludovic Marcotte e25a7e3d8d Fix for bug #3138 2015-03-18 09:36:35 -04:00
Julio García 3b0b43f28f Merge branch 'ejhernandez/peek-preload-bodies-for-real' 2015-03-18 09:28:57 +01:00
Julio García afa9061f2f Merge branch 'ejhernandez/client-drafts-no-updated' 2015-03-18 09:22:41 +01:00
Enrique J. Hernández Blasco 9f3f2aebe4 oc-mail: Register source message as soft deleted on movement
This makes sent mails are not longer automatically copied
to Drafts folder.

Reasoning:

When Outlook sends a mail, OpenChange submits the message and
copy the message to Drafts folder. Afterwards, the client asks
to move this message using SyncImportMessageMove ROP from
Drafts to Sent. During this movement, the message is unregistered
from the indexing database. If the client has updated Drafts
folder before that movement, then the client will keep this
message as the MID is not returned in oxcfxics download sync
as deleted. Setting the message as soft deleted, make it work.
2015-03-18 00:42:01 +01:00
Francis Lachapelle 1d5ae27c99 Fix issues with freebusy (Web, busyOffHours) 2015-03-17 15:34:00 -04:00
Julio García 0be36df211 Preparing release for 2.2.15-zentyal2 2015-03-17 12:30:09 +01:00
Francis Lachapelle beb57707e8 Merge pull request #72 from JensErat/export-not-archive
Rename "Archive" to "Export" in Webmail, ctd.
2015-03-13 10:15:30 -04:00
Jens Erat 1bdd5dfc90 Remove obsolete archive string from translations 2015-03-13 14:06:58 +01:00
Enrique J. Hernández 43debc1d70 Merge pull request #102 from Zentyal/jgarcia/rtf-safe-parsing
oc-rtf: safe parse ignoring content
2015-03-13 12:46:38 +01:00
Jens Erat 37fbd75d55 Rename "Archive" to "Export" in Webmail, ctd.
Fixes #2758 also for non-Inbox folders
2015-03-13 11:41:07 +01:00
Enrique J. Hernández Blasco 1c1a75d2c1 oc-mail: Use body.peek to preload message bodies
In this way, we do not modify the flags (\Seen) on preloading.
The IMAP server returns the content without .peek section so
it is removed.

This also performs the modification intended by the following
Pull Request:

https://github.com/Zentyal/sogo/pull/50

That tried to avoid set \Seen flag when preloading message bodies
on synchronisation. But in this case we are not incrementing the
modseq as we are not modifying any messages flags.
2015-03-13 10:54:57 +01:00
Enrique J. Hernández Blasco f048860729 Revert "oc-mailfolder: Avoid setting seen flag on preloading message bodies"
This reverts commit 7e0cddc06b.
2015-03-13 00:00:40 +01:00
Enrique J. Hernández Blasco 6d6053865f Revert "oc-mailfolder: Get seen flag directly from message in preloading"
This reverts commit d076e04ad4.
2015-03-13 00:00:29 +01:00
Jesús García Sáez 6e00274988 oc-rtf: safe parse ignoring content
Be able to parse safely \*\xxxxx control words with \binXXXX
elements inside it (before final })
2015-03-12 17:13:17 +01:00
Jesús García Sáez 307fe90854 Merge pull request #99 from Zentyal/ejhernandez/corner-cases-import-PST
oc-mail: Set sender on email messages without an orig recipient
2015-03-11 13:08:33 +01:00
Jesús García Sáez 8031f066dc Merge pull request #98 from Zentyal/ejhernandez/calendar-sharing-invitation
Give support to calendar sharing invitation
2015-03-11 13:07:36 +01:00
Francis Lachapelle f1fda8bd06 Return a single phone number in JSON contacts list 2015-03-10 13:27:17 -04:00
Francis Lachapelle 517f4b0f49 Fix possible JS exception in Contacts module 2015-03-09 14:04:21 -04:00
Enrique J. Hernández Blasco 2b54897d29 oc-sharing: Guess PidLidSharingFlavor from other props
When it is not set by the client on the first place.

See [MS-OXSHARE] Section 2.2.2.5 for details on returned values.
2015-03-05 00:05:02 +01:00
Enrique J. Hernández Blasco ae7ac1be29 oc-mail: Return sharing properties on sharing object mail message
When it is asked for available properties for an specific message.
2015-03-05 00:02:19 +01:00
Enrique J. Hernández Blasco 6af8b486df oc-mail: Return special properties on sharing_metadata.xml attachment
As required by [MS-OXWSMSHR] Section 3.1.1 to display the share
object message correctly and be able to open the shared calendar
directly from the message.
2015-03-04 18:49:31 +01:00
Enrique J. Hernández Blasco 316ade13f8 oc: Implement Sharing Message Object
It acts as a proxy of MAPIStoreMailMessage and it manages the properties
defined in [MS-OXSHARE] Section 2.2 by storing them in the mail message
as eXtensible MIME headers which starts with X-MS-Sharing.
2015-03-04 18:49:17 +01:00
Francis Lachapelle cbba0719bb Fix exception in SOGoUserManager 2015-03-04 10:05:12 -05:00
Jesús García Sáez c4566c4773 Merge pull request #95 from Zentyal/free-header-encoding
Free headerEncoding variable when destroying parent
2015-03-04 10:51:14 +01:00
Carlos Pérez-Aradros Herce 3b2cbb945c oc: Free headerEncoding variable 2015-03-04 10:10:32 +01:00
Francis Lachapelle 8e0849029e Fix contacts lookup by UID
When looking for a specific contact UID, we no longer match a pattern
that could return multiple results. We search for the exact UID only.
2015-03-03 21:26:09 -05:00
Francis Lachapelle 6192322513 Fix some gcc warnings 2015-03-03 21:23:19 -05:00
Enrique J. Hernández Blasco 44dfd35521 oc-mail: Set sender on email messages without an orig recipient
But it has recipients. This is for sure happening with event
invitations messages.
2015-03-03 22:52:42 +01:00
Enrique J. Hernández Blasco 575600cabc oc-calendar: Return PidTagContainerClass for Calendar folders
And it must "IPF.Appointment" as described in [MS-OXOCAL] Section 2.2.11.1
2015-03-03 17:47:37 +01:00
Enrique J. Hernández acc2bd0369 Merge pull request #97 from Zentyal/jjgarcia/update-news
Update news for next release
2015-03-03 16:08:31 +01:00
Julio García cd47c926c9 Update news for next release 2015-03-03 11:16:01 +01:00
Julio J. García Martín 9b038db0b6 Merge pull request #93 from Zentyal/jvalles/missing-contact-props
Save missing contact properties in database
2015-03-02 09:17:15 +01:00
Julio J. García Martín bcc1aa8049 Merge pull request #89 from Zentyal/jag/set-null-recurrence-pattern
In setupRecurrenceWithMasterEntit a null recurrence pattern is now inter...
2015-03-02 09:16:38 +01:00
Javier Amor García ef6aab63c9 oc-calendar: Don't change event recurrence if parse failed.
get_AppointmentRecurrencePattern() can fail to parse the input data, added a check to avoid setup the recurrence pattern in that case. This should only happen when input data is incorrect.
2015-02-27 17:32:22 +01:00
Ludovic Marcotte df59b73a22 use correct mail attachment elements for EAS 2.5 clients - patch from tfu 2015-02-26 17:56:42 -05:00
Ludovic Marcotte a5672fda52 do not use syncKey from cache when davCollectionTag = -1 - patch from tfu 2015-02-26 17:55:36 -05:00
Ludovic Marcotte b593ddc643 SmartReply improvements for missing body attributes - patch from tfu 2015-02-26 17:53:58 -05:00
Ludovic Marcotte 38d61f720f use the correct body element for events for EAS 2.5 clients - patch from tfu 2015-02-26 17:52:37 -05:00
Ludovic Marcotte 733e334726 fixed tasks disappearing issue with RoadSync - patch from tfu 2015-02-26 17:51:02 -05:00
Ludovic Marcotte 22888ba5ac use the correct mail body element for EAS 2.5 clients - patch from tfu 2015-02-26 17:49:26 -05:00
Ludovic Marcotte 33c485d2f6 fixed empty sync responses for EAS 2.5 and 12.0 clients - patch from tfu 2015-02-26 17:48:06 -05:00
Ludovic Marcotte 9160e34134 multiple collections support for GetItemEstimate - patch from tfu 2015-02-26 17:46:34 -05:00
Ludovic Marcotte 5ceddc213e Fix for bug #3116 2015-02-26 16:00:03 -05:00
Jesús García Sáez 85d9440ccd Merge pull request #94 from Zentyal/jgarcia/reset-password
Fix change password with multidomains
2015-02-26 10:48:58 +01:00
Ludovic Marcotte b97002565e Updated NEWS file regarding previous commit 2015-02-25 08:42:18 -05:00
extrafu 03b6a8a028 Merge pull request #70 from Zentyal/jgarcia/reset-password-sogo
Fix change password with DomainBasedUID
2015-02-25 08:41:05 -05:00
Jesús García Sáez 22196e0054 Fix change password with DomainBasedUID
When users use full domain to login (SOGoEnableDomainBasedUID) the
user attributes in the cache were not being properly updated because
in this case the key is `uid@domain` instead of just `uid`.
2015-02-25 12:42:03 +01:00
Jesús García Sáez 8d21bc3e36 Fix change password with DomainBasedUID
When users use full domain to login (SOGoEnableDomainBasedUID) the
user attributes in the cache were not being properly updated because
in this case the key is `uid@domain` instead of just `uid`.
2015-02-25 12:39:01 +01:00
Juan Vallés 4c3c741d9f oc-contacts: Save missing contact properties in database 2015-02-25 11:59:24 +01:00
Jesús García Sáez 731934f061 oc: Add fai properties for custom views
Without this outlook clients with custom views set on folders will
crash because this are needed properties and were not being saved
2015-02-24 17:44:56 +01:00
Jesús García Sáez b645b4187d Merge pull request #88 from Zentyal/ejhernandez/add-categories-calendar-events
oc-calendar: Implement categories to share the colour
2015-02-24 14:23:36 +01:00
Enrique J. Hernández Blasco 9b847a276c oc-calendar: Implement categories to share the colour
See [MS-OXCICAL] Section 2.1.3.1.1.20.3 for details.

It requires https://github.com/openchange/openchange/pull/216 to retrieve
the value from MAPI client
2015-02-17 10:20:16 +01:00
Jesús García Sáez 68216a7456 Merge pull request #87 from Zentyal/ejhernandez/fixes-on-calendar-props
Calendar: PidTagSensitivity and PidTagImportance now works in Outlook
2015-02-16 11:00:45 +01:00
Enrique J. Hernández Blasco 624967c60b oc-calendar: Implement PidTagSensitivity
As described in [MS-OXCICAL] Section 2.1.3.11.20.4 by using
access CLASS iCal field.

Although Outlook does not support confidential level, it is properly
exported and imported.
2015-02-15 18:44:47 +01:00
Enrique J. Hernández Blasco e6ba15bbae oc-calendar: PidTagImportance and PidTagNormalizedSubject working
It wasn't being called because the proxy (AppointmentWrapper) is not
being called as there is a base implementation for these properties
in MAPIStoreMessage making them impossible to be shared between
Outlook profiles.
2015-02-15 18:41:03 +01:00
Enrique J. Hernández Blasco 2a1b363fee oc-calendar: Proper getter for AppointmentWrapper proxy object
Do not assume it is in 0 position any longer
2015-02-15 18:39:43 +01:00
Enrique J. Hernández Blasco eaec3c0610 oc-calendar: Remove useless method
Better off implemented by AppointmentWrapper proxy
2015-02-15 18:38:59 +01:00
Enrique J. Hernández Blasco d3a4b497c6 oc-calendar: Remove commented code
Available at MAPIStoreAppointmentWrapper class
2015-02-15 18:34:28 +01:00
Ludovic Marcotte b26ea30b1b Update ChangeLog 2015-02-12 11:06:57 -05:00
Ludovic Marcotte 72b210cd2e Fixed typo 2015-02-12 10:29:46 -05:00
Ludovic Marcotte a80d75d09c Preparation for the release 2015-02-12 10:27:10 -05:00
Ludovic Marcotte aae76dc4e6 Limit curl request for webcalendars to 60 seconds 2015-02-12 09:57:10 -05:00
Francis Lachapelle c20ca0e33d Fix exception in set operation of sogo-tool 2015-02-12 09:29:40 -05:00
Francis Lachapelle 601a9ca559 Update translations 2015-02-12 09:09:18 -05:00
Ludovic Marcotte d7c283f751 improved fetching of text parts over EAS 2015-02-12 08:49:17 -05:00
Ludovic Marcotte f3325b8b0d Updated NEWS file wrt fixes 2015-02-11 18:13:36 -05:00
Ludovic Marcotte b4ea4d7e9f Improvement over previous commit 2015-02-11 14:39:57 -05:00
Ludovic Marcotte 9447437d6f Added missing strings from previous commit 2015-02-11 14:33:32 -05:00
Ludovic Marcotte 322f72626a now possible to limit automatic forwards to internal/external domains 2015-02-11 14:30:40 -05:00
Ludovic Marcotte 55ae4cb8c0 First pass at EAS' best practices for SOGo 2015-02-11 12:59:04 -05:00
Ludovic Marcotte e5d01428ad now possible for SOGo to change the sambaNTPassword/sambaLMPassword 2015-02-11 11:31:35 -05:00
Jesús García Sáez 7406fc3772 Merge pull request #83 from Zentyal/ejhernandez/move-subfolder-to-root
Move subfolder (Mail, Journal, Notes) to root
2015-02-11 15:29:26 +01:00
Ludovic Marcotte 82178fd6ce Initial patch from tfu for bug #3055 2015-02-11 08:31:32 -05:00
Jesús García Sáez efe2070227 Merge pull request #85 from Zentyal/ejhernandez/dlinklist-samba
oc: Use dlinklist from samba for now
2015-02-11 10:05:51 +01:00
Enrique J. Hernández Blasco 68ebc9e0ff oc: Use dlinklist from samba for now
Due to https://github.com/openchange/openchange/pull/204.

Until it is published by OC or dismissed.
2015-02-10 23:37:40 +01:00
Ludovic Marcotte 6cf1ec998e Updated NEWS file for the #3095 bug fix in SOPE 2015-02-10 07:09:31 -05:00
Ludovic Marcotte 6c9b1a494f Fix for bug #2332 2015-02-09 16:12:59 -05:00
Ludovic Marcotte 98e4c8ca55 Fixed doc regarder domain vs. system settings 2015-02-09 09:10:55 -05:00
Julio J. García Martín 1178bf2d60 Merge pull request #84 from Zentyal/ejhernandez/fix-send-mail-sope-2.2.15
Fix send mail with sope 2.2.15
2015-02-09 13:41:29 +01:00
Enrique J. Hernández Blasco 96986812f4 oc-mail: Set content type for a message after upgrading sope 2.2.15
Now that message headers can be set dynamically, we can
set the body-related headers using `setHeader` selector.

This fixes emails sent using this sope version are all in plain text.
2015-02-07 00:22:45 +01:00
Enrique J. Hernández Blasco 142deeb5f0 oc: Implement move a DB subfolder to root
DB folders are Notes and Fallback (Journal, InfoPath Form and Deleted Items).

By moving the DB path and update the indexing DB.
2015-02-05 23:49:59 +01:00
Enrique J. Hernández Blasco dc8012e3d3 oc-mail: Implement move a mail subfolder to root
By moving at IMAP level the mailbox and update the indexing DB
and local db path.
2015-02-05 23:48:46 +01:00
Ludovic Marcotte 3731819e15 Added patch from tfu for #2995 2015-02-05 16:21:27 -05:00
Ludovic Marcotte eca22caefc Fix for bug #3078 2015-02-05 11:14:53 -05:00
Ludovic Marcotte 923bcf8ae2 Applied patch for #3092 2015-02-05 09:29:29 -05:00
Francis Lachapelle 0b44fa81f4 Update NEWS file 2015-02-03 13:20:57 -05:00
Francis Lachapelle 776b17ff20 Fix mail editor when not called from mail module
Fixes #3088
2015-02-03 12:06:28 -05:00
Julio García 12b159a6c0 Merge branch 'master-upstream' into jjgarcia/merge-from-upstream 2015-02-02 12:53:49 +01:00
Ludovic Marcotte 2aa528dacc Preparation for the release 2015-01-30 11:08:43 -05:00
Francis Lachapelle d1d3980919 Update translations 2015-01-30 11:03:38 -05:00
Ludovic Marcotte cf35eec1f5 Improved the NEWS file for the release 2015-01-30 10:28:45 -05:00
Ludovic Marcotte 58a0b0c173 Updated for the release 2015-01-30 10:23:04 -05:00
Ludovic Marcotte 723a9d4e08 Reverted bug fix from #3054 and added comment 2015-01-29 16:21:06 -05:00
Francis Lachapelle 4cc158043e Improve CSS server-side cleaner
Fixes #3040
2015-01-28 16:38:27 -05:00
Ludovic Marcotte 7fd1564a86 fix for #3076 2015-01-28 15:16:21 -05:00
Ludovic Marcotte 981c718d22 improved handling of EAS Push when no heartbeat is provided 2015-01-28 15:03:49 -05:00
Jesús García Sáez 6cfa6b9952 Merge pull request #82 from Zentyal/jgarcia/appointments-alarms
oc-appointments: ignore alarms already triggered
2015-01-28 18:57:36 +01:00
Jesús García Sáez 0a198ccb05 Merge pull request #81 from Zentyal/ejhernandez/fix-move-db-folder
oc: Set right container in dbFolder when moving a folder
2015-01-28 16:34:27 +01:00
Jesús García Sáez 5258ee2e76 oc-appointments: ignore alarms already triggered 2015-01-28 12:56:27 +01:00
Jesús García Sáez d5ec25ee62 Merge pull request #79 from Zentyal/ejhernandez/fix-sync-move-between-different-folder-types
oc: Move back and forth folders now are in sync
2015-01-28 12:05:53 +01:00
Enrique J. Hernández Blasco 57d591c427 oc: Set right container in dbFolder when moving a folder
The path attribute from SOGoCacheGCSFolder is properly updated
in the database but not when returning from path message as
the container is the old one.
2015-01-28 11:26:56 +01:00
Enrique J. Hernández Blasco b01de763da oc: Move back and forth folders now are in sync
Two different indexing entries were created on move operation making
impossible to restore old folder position in the original parent folder.
This was due to cleanupCaches message calls to objectId which requires
to have the indexing entry available.

Use case:

  * Restore a folder from "Deleted items" folders
2015-01-27 18:27:11 +01:00
Enrique J. Hernández 2dcb8fa732 Merge pull request #75 from Zentyal/ejhernandez/move-mail-folder-with-reserved-chars
oc-mail: Move mail folders with reserved chars
2015-01-26 23:39:15 +01:00
Jesús García Sáez 6ce4cc1919 Merge pull request #78 from Zentyal/jgarcia/sync-deleted-messages
Sync deleted messages
2015-01-26 18:03:54 +01:00
Enrique J. Hernández Blasco 0e8bf0d239 oc-mail: Move mail folders with reserved chars
The URL was incorrectly set when any of ;/?:@&=+$,# was used
in the folder name.

We have to mimetise what it is done in createFolder message selector.
That is, perform the IMAP4 encoding + URL encoding without CSS
encoding. The IMAP4 + CSS encoding (without URL encoding) is used to store the folder
in SOGo and OpenChange Indexing database as we do right now.
2015-01-26 15:55:22 +01:00
Ludovic Marcotte 086361b79a Avoid GNUstep warnings 2015-01-23 16:16:36 -05:00
Ludovic Marcotte ab12c84887 More NSLog usage cleanups 2015-01-23 15:32:22 -05:00
Jesús García Sáez 312084243b oc: improve modseqFromMessageChangeNumber to return an approximation.
Only for scenarios where we hadn't store the cn <-> modseq relationship
2015-01-23 18:19:24 +01:00
Jesús García Sáez 47be392d4f oc: avoid request change number until necessary
Minor changenumber leak, but avoid it anyway
2015-01-23 18:18:25 +01:00
Jesús García Sáez 34efcfee4e oc: synchroniseCache store modseq for last delete change number.
This will be the more frequent change number used to obtain updates
on the folder related with deleted messages
2015-01-23 18:17:45 +01:00
Jesús García Sáez 8e7f6d1aec oc: avoid change number leaking when refreshing folder.
Everytime a folder where its last operation was delete some email was
requesting change numbers that were not used.
2015-01-23 18:15:44 +01:00
Ludovic Marcotte e2bee23021 Avoid unnecessary calls to NSLog 2015-01-22 16:25:16 -05:00
Ludovic Marcotte 1a10599369 Removed unnecessary NSLog calls 2015-01-22 15:39:57 -05:00
Ludovic Marcotte d907d5d268 Avoid using NSLog() where we can 2015-01-22 13:31:31 -05:00
Jesús García Sáez 7014d94937 Merge pull request #74 from Zentyal/ejhernandez/delete-folder-on-moving
oc: Remove a source folder on move folder operation
2015-01-22 17:06:13 +01:00
Enrique J. Hernández Blasco 99a36be034 oc: Remove a source folder on move folder operation
Calling deleteFolder message to actually remove it from DB/IMAP
depending on the class.
2015-01-21 12:44:31 +01:00
Jesús García Sáez 8e41e5d665 Merge pull request #71 from Zentyal/ejhernandez/filetime-utc
Use PT_SYSTIME as absolute timestamp
2015-01-20 16:54:56 +01:00
Jesús García Sáez b1dfe47f01 Merge pull request #70 from Zentyal/jgarcia/working-encoding-parse
Outlook can view mails with non-ascii characters in their body (II)
2015-01-20 14:36:50 +01:00
Jesús García Sáez 014632fddb Merge pull request #72 from Zentyal/ejhernandez/wedding-anniversary
oc-contacts: Implement Wedding Anniversary
2015-01-20 14:36:14 +01:00
Enrique J. Hernández Blasco 8b44c08a32 oc-calendar: Remove unnecessary shifts on start,end and replace time props
As the data is sent in UTC, no shifts are longer required.
2015-01-20 14:35:32 +01:00
Enrique J. Hernández Blasco c893963da5 oc-tasks: Set right start, due and complete dates
As explained in [MS-OXOTASK], we have to shift the given date
to store the right point in time with the correct timezone.
2015-01-20 14:35:32 +01:00
Enrique J. Hernández Blasco c6b976a830 oc-mail: Remove unnecessary time shift in date for new mails
The MIME type can store the date in UTC and the clients are
responsible on showing correctly to the client as it does.
2015-01-20 14:35:32 +01:00
Enrique J. Hernández Blasco d5d97db8e8 oc: PT_SYSTIME is an absolute timestamp
As the epoch is in UTC timezone, we set this timezone for NSCalendarDate.
2015-01-20 14:35:32 +01:00
Ludovic Marcotte d98ff69fbe Version bumps for the release 2015-01-20 08:35:10 -05:00
Jesús García Sáez 87a91fbdf2 Merge pull request #73 from Zentyal/cperez/sogo-multitenancy
Restore multitenancy changes for OpenChange
2015-01-20 11:09:48 +01:00
Ludovic Marcotte daa7ab87d7 Fix cosmetic change when fetching fb info 2015-01-19 13:54:04 -05:00
Carlos Pérez-Aradros Herce 00cef845b7 Restore multitenancy changes for OpenChange 2015-01-19 19:04:06 +01:00
Jesús García Sáez f9550b9181 oc: several uninitialized variables 2015-01-19 15:35:44 +01:00
Ludovic Marcotte 3e59b1ad6e Improved documentation regarding password policies over LDAP 2015-01-16 12:55:38 -05:00
Ludovic Marcotte e45451a9f9 Improved comments over previous commit 2015-01-16 09:18:37 -05:00
Enrique J. Hernández Blasco b35fee8efc oc-contacts: Implement Wedding Anniversary
As specified by Microsoft using x-ms-anniversary custom vcard element
[MS-OXVCARD] Section 2.1.3.9.6
2015-01-16 01:34:16 +01:00
Ludovic Marcotte e9e3dd5646 fixed timezone calculation on recurring event 2015-01-15 15:29:02 -05:00
Ludovic Marcotte 16c863d89d Fixed potential issue when handling multiple Add/Change/Delete/Fetch EAS commands (#3057) 2015-01-15 11:55:04 -05:00
Jesús García Sáez 7e7d302165 oc: warning if codepage not found from headerCharset 2015-01-15 13:50:26 +01:00
Jesús García Sáez d052356724 oc: encoding names must be case insensitive 2015-01-15 13:27:37 +01:00
Ludovic Marcotte d87056ebfa handle multipart for EAS/ItemOperations 2015-01-12 14:38:55 -05:00
Ludovic Marcotte 135b463e8f Updated the EAS doc 2015-01-12 13:39:06 -05:00
Ludovic Marcotte f4c4f5af62 fixed From's full name over EAS 2015-01-12 09:09:06 -05:00
Ludovic Marcotte 70e45f7843 fixed birthday offset in EAS 2015-01-12 08:40:06 -05:00
Ludovic Marcotte 28e449b050 Updated NEWS file for bugs fixed 2015-01-10 07:55:55 -05:00
Ludovic Marcotte 6b52e9c945 Fix for bug #2960 2015-01-09 09:04:15 -05:00
Ludovic Marcotte 1cfbea69c1 Make sure we always release local pool 2015-01-08 15:56:16 -05:00
Ludovic Marcotte cb9118d869 Moved the pool destruction at the correct location 2015-01-07 09:29:31 -05:00
Francis Lachapelle dd6dd7251c Fix selection of calendar in event/task editors
Fixes #3049
Fixes #3050
2015-01-06 13:59:20 -05:00
Ludovic Marcotte 24c6c8c91d Fix for bug #3054 2015-01-06 10:59:56 -05:00
Ludovic Marcotte b1ac7a0cca MultipleBookingsFieldName can be set to -1 2015-01-05 13:49:28 -05:00
Francis Lachapelle 59e6d6df4a Fix selection of calendar in event/task editors
Fixes #3049
Fixes #3050
2015-01-05 10:21:37 -05:00
Ludovic Marcotte 71ad5de910 Bumped everything for the release 2014-12-30 08:00:41 -05:00
Enrique J. Hernández b5369530f0 Merge pull request #69 from Zentyal/jgarcia/ignore-unhandled-properties
Ignore unhandled properties instead of abort
2014-12-30 12:31:16 +01:00
Ludovic Marcotte ead665de85 fix tz issue when the user one was different from the system one with EAS 2014-12-29 16:19:10 -05:00
Jesús García Sáez 838ae8995f oc: ignore unhandled properties instead of abort
When setting a row with properties not handled right now, ignore them
like they were never there instead of abort()
2014-12-29 19:20:27 +01:00
Ludovic Marcotte a0c1ce8f3b Improved handling of non-existant vs. subscribed folders over EAS 2014-12-29 12:43:20 -05:00
Jesús García Sáez 3ef28b390d Merge pull request #66 from Zentyal/ejhernandez/guessing-recipients-from-import-PST
oc: Guess recipients from some properties while importing PST
2014-12-24 13:16:46 +01:00
Jesús García Sáez 0cd6fe6135 Merge pull request #67 from Zentyal/jgarcia/rtf-with-pict-data
Parse \pict control word with binary data
2014-12-24 13:16:03 +01:00
Ludovic Marcotte 204a62aa6a Improved comments in the code 2014-12-23 10:25:53 -05:00
Ludovic Marcotte 31cffdffd3 Fix freebusy info not always returned 2014-12-23 10:24:16 -05:00
Jesús García Sáez 501ee79766 oc-rtf: fix parse \pict tag with \bin data 2014-12-23 11:14:54 +01:00
Ludovic Marcotte 255bcbe92f Fixed memory leaks in SOGoSyncCacheObject and correctly kill the cache upon each EAS iteration 2014-12-22 19:59:33 -05:00
Ludovic Marcotte 72732879fa Added memory statistics - set SOGoDebugLeaks = YES and call [[self class] memoryStatistics] 2014-12-22 19:32:17 -05:00
Enrique J. Hernández Blasco a56fc93a9a oc: Guess recipients from some properties while importing PST
This is happening when importing a PST file.

From -> PidTagSenderEntryId
To   -> PidTagOriginalDisplayTo
CC   -> PidTagOriginalDisplayCc

The tested EntryID are the local users and OneOffEntries
when the users are not from the directory.

It requires https://github.com/openchange/openchange/pull/175 to work.
2014-12-23 00:59:29 +01:00
Ludovic Marcotte 24a934275f Fix small memory leak incase of errors 2014-12-22 16:12:26 -05:00
Ludovic Marcotte 58f634bffe Cosmetic improvements to the code 2014-12-22 15:26:22 -05:00
Ludovic Marcotte ca4a754f2c Use the right cutoff date 2014-12-22 12:39:58 -05:00
Ludovic Marcotte 8015688df3 Added SOGoMaximumSyncResponseSize to support memory-limited EAS syncs 2014-12-22 11:50:51 -05:00
Ludovic Marcotte b07913d66d See NEWS file 2014-12-22 08:36:55 -05:00
extrafu 6b49a8a341 Merge pull request #68 from Crosenhain/master
Change ACL modification text to non-gender specific terms
2014-12-20 08:29:01 -05:00
Ludovic Marcotte df8a0d8715 Update ChangeLog 2014-12-19 09:03:37 -05:00
Ludovic Marcotte e6cc56dca1 Bumped version to 2.2.12a 2014-12-19 09:03:19 -05:00
Ludovic Marcotte de3d38262b Fix for bug #3034 2014-12-19 09:01:39 -05:00
Chris Rosenhain 0e56527e05 Change ACL modification text to non-gender specific terms 2014-12-19 11:04:05 +10:30
Ludovic Marcotte db911f323d Updated ChangeLog and version numbers for the release 2014-12-18 08:56:23 -05:00
Ludovic Marcotte fcddb37a0d Fixed typo and bumped for release 2014-12-18 08:53:31 -05:00
Francis Lachapelle 8e79d4f88b Update translations 2014-12-18 08:51:50 -05:00
Francis Lachapelle f8ab3d5a42 Update NEWS file 2014-12-18 08:45:27 -05:00
Ludovic Marcotte 8aea5f232e Fix for bug #3028 2014-12-17 16:18:39 -05:00
Ludovic Marcotte 493c366ac4 Fix for bug #3003 2014-12-17 15:26:02 -05:00
Ludovic Marcotte cd70bec9fa Fix for bug #3008 2014-12-17 13:57:49 -05:00
Jesús García Sáez 12cdc60af7 Merge pull request #65 from Zentyal/ejhernandez/fix-folder-other-users
Create child folder objects using parent context for real
2014-12-17 11:53:36 +01:00
Enrique J. Hernández Blasco dba17fbcbc Create child folder objects using parent context for real
We activate the user for the context using the root folder
context as there are times where the active user is not
matching with the one stored in the application context
and SOGo object is storing cached data with the wrong user
leading to create folders in wrong mailboxes, etc.

As this application is single-threaded, no problems are expected.
Indeed, the same code is available at getting the root folder (ie INBOX).
2014-12-16 23:43:57 +01:00
Francis Lachapelle 6027cb50d4 Fix CSS and templates of component/apptmt editor 2014-12-16 16:13:59 -05:00
Ludovic Marcotte eb4d20e50f Privacy and categories support for tasks 2014-12-16 13:27:01 -05:00
Ludovic Marcotte 70dbcf0418 Fix for MeetingStatus applied yesterday 2014-12-16 13:24:10 -05:00
Ludovic Marcotte bfaaf6eb34 Revert back to using GNUSTEP_SYSTEM_LIBRARIES for teststrings 2014-12-16 13:17:59 -05:00
Ludovic Marcotte 68655deabd Improved rpath handling (#2996) 2014-12-16 12:36:08 -05:00
Ludovic Marcotte 7380b25b75 Be a bit more verbose regarding IMAP requirements for EAS 2014-12-16 10:55:12 -05:00
Ludovic Marcotte cbfb927ec9 Properly escape Attendee's email address in case it contains crap 2014-12-16 10:46:05 -05:00
Ludovic Marcotte 0f2798f017 Lucid fixes for EAS 2014-12-16 10:46:05 -05:00
Francis Lachapelle e040805e0d Fix display of dialog in RO appointment editor 2014-12-16 10:07:08 -05:00
Ludovic Marcotte fb6ef3aa8a Now possible to set alarms on event invitations 2014-12-16 09:20:27 -05:00
Ludovic Marcotte 3eac0f5261 Improved NEWS file 2014-12-15 19:37:04 -05:00
Ludovic Marcotte f29a74f82f avoid testing for IMAP ANNOTATION when X-GUID is available 2014-12-15 19:34:51 -05:00
Ludovic Marcotte 20b3d4882d MeetingStatus fix affecting iOS devices 2014-12-15 19:27:21 -05:00
Ludovic Marcotte 175b99b9ee Updated NEWS regarding previous commit 2014-12-15 19:25:38 -05:00
Ludovic Marcotte e79ea75834 Categories and privacy fixes for bug #3022 2014-12-15 19:24:10 -05:00
Ludovic Marcotte 9cb1f8097c Fix sogo-tool when cleaning up devices 2014-12-15 19:23:04 -05:00
Francis Lachapelle 54dabb6861 Update CKEditor to version 4.4.6 (+ sourcearea)
Added an enabled the 'Source Area' plugin to be able to edit the HTML
code directly.
2014-12-15 10:54:44 -05:00
Francis Lachapelle 6526d587f2 Localization 2014-12-11 14:13:56 -05:00
Ludovic Marcotte 9dd0d6c427 Draft autossave feature 2014-12-11 13:31:32 -05:00
Ludovic Marcotte 990f782b62 Allow including or not freebusy info from subscribed calendars 2014-12-11 10:01:21 -05:00
Ludovic Marcotte c8b74686cc Update ChangeLog 2014-12-10 15:22:32 -05:00
Ludovic Marcotte 16bf299b3b Version bump for the release 2014-12-10 15:22:01 -05:00
Ludovic Marcotte b8c79664e1 Update ChangeLog 2014-12-10 14:24:51 -05:00
Ludovic Marcotte 3c063e04fb v2.2.11a release + bug fix 2014-12-10 14:24:06 -05:00
Francis Lachapelle ce5e46f5fb Remove unused templates from SchedulerUI 2014-12-10 09:22:03 -05:00
Ludovic Marcotte 1c0e64f169 Update ChangeLog 2014-12-09 09:09:18 -05:00
Ludovic Marcotte aac6b22ab5 Preparation for the release 2014-12-09 09:08:54 -05:00
extrafu fd756b581d Merge pull request #67 from JensErat/documentation
ActiveSync URL fix and paragraph on common configuration issues
2014-12-09 07:30:53 -05:00
Jens Erat 39e8f055d7 Added information on common configuration issues
A very common issue (watching the mailing list) is not wrapping the
whole configuration in a dictionary. SOGo is not very helpful at
debugging broken configuration files, thus hinting `plparse` already
installed with the GNUstep runtime.
2014-12-09 13:23:21 +01:00
Ludovic Marcotte 64637d842b Prevent compilation failures with old gcc versions 2014-12-09 07:21:34 -05:00
Jens Erat 4e6214d6fc Fixed ActiveSync URL in documentation 2014-12-09 13:11:03 +01:00
Ludovic Marcotte 12788c847d New sogo-tool feature to manage EAS data 2014-12-08 10:45:34 -05:00
Ludovic Marcotte 2b95dd2c0a Avoid generating GUID for "Other user"/"Shared" folders 2014-12-08 10:29:23 -05:00
Ludovic Marcotte 9e14a37cb8 Improvements over fixes for #2982 2014-12-08 10:25:37 -05:00
Ludovic Marcotte ae0cbfe6a6 Fix for bug #2982 2014-12-05 13:52:10 -05:00
Ludovic Marcotte 3f3673cf5a Added SOGoSAML2LogoutURL 2014-12-04 17:59:17 -05:00
Ludovic Marcotte 9ef4d1f551 Fix for bug #3010 2014-12-04 12:21:23 -05:00
Ludovic Marcotte fe9ad9c6e9 Radically reduced EAS memory usage 2014-12-04 11:27:10 -05:00
Jesús García Sáez ba79234ceb Merge pull request #64 from Zentyal/ejhernandez/store-change-number-subfolders-cache
Store changeNumber maps with modseq in cache for subfolders
2014-12-03 16:05:51 +01:00
extrafu 47094b6d91 Update SOGoSAML2Metadata.xml
Fixed XML template generation.
2014-12-02 19:33:54 -05:00
Enrique J. Hernández Blasco 067809ef1c Store changeNumber maps with modseq in cache for subfolders
By getting the root folder/container whose properties
are stored in OpenChange DB.

This makes the synchronisation of sub-folders faster as
when we evaluate restrictions for this folder, we are able
to get the modseq from where to get the latest messages
unseen by the client.
2014-12-01 23:19:38 +01:00
Jesús García Sáez bdf12e5c01 Merge pull request #62 from Zentyal/ejhernandez/fix-space-temporal-crash-setChangeKey
Attempt to sync an UID in setChangeKey to avoid crashing
2014-12-01 19:45:51 +01:00
Jesús García Sáez 97201c56a4 abort if attemp to sync an UID in setChangekey fails 2014-12-01 10:47:16 +01:00
Ludovic Marcotte 9ffa32eebd Enable SAML support on all Debian-based distro 2014-11-30 17:35:39 -05:00
Kamen Mazdrashki 4a6daf45e0 Merge pull request #61 from Zentyal/ejhernandez/memory-leaks
Fix memory leak on getPidTagSubject
2014-11-30 00:58:01 +01:00
Enrique J. Hernández Blasco 7691d616a9 Attempt to sync an UID in setChangeKey to avoid crashing
This may happen if between sync cache and setChangeKey a modSeq
is making synchroniseCache not retrieve the newly stored message.

This should fix the following crash:

https://tracker.zentyal.org/issues/2673
2014-11-29 08:07:41 +01:00
Enrique J. Hernández Blasco 2c6d833c11 Remove an attempt to double free content
As content is freed by resetExceptResult message received by reset
which has been called by dealloc as well
2014-11-28 10:04:18 +01:00
Enrique J. Hernández Blasco f4e15e2db8 Fix memory leak on getPidTagSubject
Valgrind crafted report:

=40967== 128,927 (53,750 direct, 75,177 indirect) bytes in 383 blocks are definitely lost in loss record 10,104 of 10,179
==40967==    at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==40967==    by 0x86EDE3D: talloc_strndup (talloc.c:613)
==40967==    by 0x34D2BB9E: _i_NSString_MAPIStoreDataTypes_asUnicodeInMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34D2025B: _i_MAPIStoreMailMessage__getPidTagNormalizedSubject_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34CFCD40: _i_MAPIStoreObject__getProperty_withTag_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34CFBE21: _i_MAPIStoreMessage__getPidTagSubject_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34CFBEB6: _i_MAPIStoreMessage__getPidTagOriginalSubject_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34CFCD40: _i_MAPIStoreObject__getProperty_withTag_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
==40967==    by 0x34CFD07E: _i_MAPIStoreObject__getProperties_withTags_andCount_inMemCtx_ (in /usr/lib/GNUstep/SOGo/SOGoBackend.MAPIStore/SOGoBackend)
2014-11-28 10:04:10 +01:00
extrafu a942e96bee Merge pull request #11 from Xenopathic/master
Allow fallback if proxy did not authenticate user, and trusted proxy auth set
2014-11-27 14:14:07 -05:00
Ludovic Marcotte 1b715e0812 We now handle correctly the SOGo logout when using SAML (#2376 and #2379) 2014-11-27 11:37:08 -05:00
Ludovic Marcotte c3715c9485 Added additional bugfix for #2982 2014-11-26 15:27:36 -05:00
Ludovic Marcotte be608dc76c Bug fixes for #2378 and #2377 and documentation improvements 2014-11-26 15:09:30 -05:00
Ludovic Marcotte 5a5464dc61 An other fix for #2930 2014-11-26 13:24:04 -05:00
Ludovic Marcotte 89917c941c New entry for bug #2381 2014-11-26 13:01:50 -05:00
Ludovic Marcotte 913a75f410 Fix for bug # 2014-11-26 13:00:47 -05:00
Ludovic Marcotte 20e728afac Remove unnecessary comments 2014-11-25 17:28:12 -05:00
Ludovic Marcotte 5f14bc1101 Report the correct preference keys 2014-11-25 17:27:03 -05:00
Robin McCorkell b0633ba1f4 Add check for remote_user variable for trusted proxy auth
If trusted proxy authentication is on, yet the proxy did not authenticate the
user, then the default authentication method is used instead of returning 'Unauthorized'.
2014-11-24 09:43:28 +00:00
Ludovic Marcotte bb227443ed Check lenght of string before trying to use parameters 2014-11-22 08:14:31 -05:00
Ludovic Marcotte efff32e44d Update ChangeLog 2014-11-21 09:13:11 -05:00
Francis Lachapelle f7f78eaba6 Update CKEditor to version 4.4.5 2014-11-21 09:08:36 -05:00
Francis Lachapelle 78ea147383 Update translations 2014-11-21 08:53:12 -05:00
Ludovic Marcotte f7935c6084 Bumped version numbers for the releasex 2014-11-21 08:29:25 -05:00
Ludovic Marcotte 327147f716 Fixed typo 2014-11-19 12:07:50 -05:00
Ludovic Marcotte b4718f363b More documentation fixes for v2.2.10 2014-11-19 12:06:44 -05:00
Enrique J. Hernández Blasco a8b716fbaa oc: sync old messages as last resort if there are not in cache
This is happening when the lastModSeq is greater than the modseq
from an old message and that message is not in cache.

This is used as last resort before crashing and it is only used
in objectVersion as it is the first place to call on sync. Other
related properties would work.
2014-11-19 17:16:45 +01:00
Enrique J. Hernández Blasco ef7b919175 Return MAPISTORE_ERR_NOT_FOUND when a mail is indexed but not in IMAP server
And remove that entry from the indexing table.

This avoids to crash getting properties from a no longer available message
in the IMAP server, for instance, the `PidTagPredecessorChangeList` attribute.
2014-11-19 17:12:32 +01:00
Jesús García Sáez 973ab78761 oc: synchronize folders ChangeNumber <-> modseq 2014-11-19 17:12:32 +01:00
Jesús García Sáez c4b0ac209b NSString:objectFromJSONString now can parse single values
Like null => [NSNull null]
2014-11-19 17:12:32 +01:00
Jesús García Sáez 41320a4813 oc: NGImap4Connection:fetchUids changed error messages 2014-11-19 17:12:32 +01:00
Jesús García Sáez c410a9fc3f oc: NGImap4Connection:fetchUids don't delete RawResponse 2014-11-19 17:12:31 +01:00
Jesús García Sáez 24e35103ff oc: monkeypatched NGImap4Connection class from sope
To improve fetchUids method so we can retrieve uids in batches.
Otherwise we will face an error 'too long request' kind
2014-11-19 17:12:31 +01:00
Enrique J. Hernández Blasco 616f2abbb2 Fix compilation when samba file is not others readable
This happens when any smb.conf or included file is not others readable,
thus we are fallbacking to the default installation path.
2014-11-19 17:12:31 +01:00
Enrique J. Hernández Blasco 3910769ae8 oc-folder: Uniform call to deleteMessageWithMID
To make sure flags argument is used accordingly with the specs
and not working by chance.
2014-11-19 17:12:31 +01:00
Enrique J. Hernández Blasco b67e1deda5 oc-folder: Make deleted items synched when shared
By keeping mid on moving messages by soft deleting and
only if srcMid is different from targetMid.

This makes restore/shared deleted items work.

It also requires to do the following to work smoothly:

* Do not add soft-deleted messages in ensureIDsForChildKeys
* Return soft-deleted messages on getDeletedFMIDs
* Do not register a new mid if the URL is matched with soft deleted messages
2014-11-19 17:12:31 +01:00
Enrique J. Hernández Blasco 35ca313c37 oc-calendar: Fix PidLidClipStart on recurrent events
The midnight value must be in user's timezone and returned back in UTC.
2014-11-19 17:12:31 +01:00
Enrique J. Hernández Blasco c631689975 oc-calendar: getPidLidClipEnd now follows [MS-OXOCAL]
On recurrent events when there is no end, the time to set is
31 August 4500, 11:59 P.M ([MS-OXOCAL] Section 2.2.1.15)
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco cd64ca199a oc-calendar: wDay field cannot be negative
Furthermore, [MS-OXOCAL] Section 2.2.1.41.1 indicates:

   The wDay field is set to indicate
   the occurrence of the day of the week within the month
   (1 to 5, where 5 indicates the final occurrence during
   the month if that day of the week does not occur 5 times).

[rule firstOccurrence] may return negative values according to iCal spec for
recurrent rules iCal 4.8.5.4 Recurrence Rule. For instance, for defining
a timezone whose recurrent rule is done using this rule:

   RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU

This fixes the problem when editing a recurrent appointment in
Outlook were incorrectly shifted when SOGo provides back the event.
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco be60fdebcc oc-folder: Flags are now used in indexing db when deleting a msg
Unregistering the URL in indexing db accordingly to the flags (SOFT or HARD)
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco d076e04ad4 oc-mailfolder: Get seen flag directly from message in preloading
To avoid a loop and a server-call.

We are not using body.peek[text] directly because bodyContentPart message
is explicitly avoiding it.
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco 7e0cddc06b oc-mailfolder: Avoid setting seen flag on preloading message bodies
Fetching a body[text] property using IMAP makes IMAP server set seen flag.

This commit fetches the flag beforehand to restore the previous state
once the body has been fetched.
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco 258444bb93 oc-rtf: Be more resilient to spaces while parsing font tables
This avoids to crash on this example:

  \f0\fibi \fcharset0
   -------^

Or:

  \f0 \fibi\fcharset0
   --^

Take into account that I found lots of RTF documents with this format:

  \f0\fbidi \froman\fcharset0
  \f0\froman\fprq2 \fcharset0

Which are not unsupported by this handler.
2014-11-19 17:12:30 +01:00
Enrique J. Hernández Blasco 75ce59d010 oc-rtf: Fix current position to match where _bytes pointer is
This avoids to have extra unknown bytes at the end of the RTF document
as _len would have been reached but _current_pos had incorrect less value.
2014-11-19 17:12:29 +01:00
Enrique J. Hernández Blasco cbfcd54858 oc-rtf: Use what RTF Spec 1.9.1 for control words
This reverts 7581c0a.
2014-11-19 17:12:29 +01:00
Enrique J. Hernández Blasco 415fb6034e oc-calendar: Retrieve properly event description created on SOGo
As it is stored as plain text without triming string.

The correct comparison here is NSNotFound as stated in Apple documentation.
2014-11-19 17:12:29 +01:00
Jesús García Sáez 445a1fb2d6 oc: MailMessages return correct codepage 2014-11-19 17:12:29 +01:00
Enrique J. Hernández Blasco c866bce8e8 Store FreeBusySimple and FreeBusyDetailed rights as roles
Map: FreeBusySimple -> PublicDAndTViewer
     FreeBusyDetailed -> ConfidentialDAndTViewer

Although SOGo is not really used AFAIK, we can now keep it and
keep Calendar permission issues consistent.
2014-11-19 17:12:29 +01:00
Jesús García Sáez ed4ca3bd1b oc: add talloc reference to indexing context
We have a cache with user contexts (objc) which have mapping contexts (objc)
where we store the indexing context (c) which will be freed by openchange
code once the connection is closed.

Right now all indexing context created for an user are the same,
independently when in time was created or by which connection, etc...
So this is a valid workaround, but this has to be refactored to used the
indexing context of the current connection that is performing the
call to SOGo backend.
2014-11-19 17:12:29 +01:00
Jesús García Sáez bb9764bc6b Revert "oc: cached usercontext updates indexing_context"
This reverts commit 0750f64b787db088e944756b66fbd0883cf44cbf.
2014-11-19 17:12:28 +01:00
Jesús García Sáez 05578bfcb6 oc-rtf: control words can also have a space before next tag
This was causing to parse a single space as an empty control
word with length 0, which was the source of several crashes.

Example:

  \f0\fbidi \fcharset0
   --------^

font index is 0, font family is bidi but when parsing charset we were
assuming control word was '' instead of 'charset0'.

This only fixes the crashes, the parseFontTable function works quite
awful right now.
2014-11-19 17:12:28 +01:00
Jesús García Sáez a7c2054cce oc: cached usercontext updates indexing_context
Instead of use always the one given on initialization
2014-11-19 17:12:28 +01:00
Julien Kerihuel 52ad0e0e5b Prevent SOGo backend from crashing when mapistore_set_connection_info is
not called beforehand and connInfo is not initialized.
2014-11-19 17:12:28 +01:00
Kamen Mazdrashki dc8b73b12b oc/MailFolder: Add more logging so we can trace invalid message kyes 2014-11-19 17:12:28 +01:00
Kamen Mazdrashki 18acdf20a6 oc: Make sure we always use NSString keys in 'messages' dictionary
Different types for keys in Dictionaries leads to not finding
expected entry - we should make sure that everythime we set/get
entry from a dictionary, key object type is same
2014-11-19 17:12:27 +01:00
Kamen Mazdrashki 0a23f18fc9 oc: Set log level to 0 in samba-get-config script - it is very chatty during builds
This script is very "chatty" when "log level" is set to a high number
(usual scenario on developer machine)
2014-11-19 17:12:27 +01:00
Kamen Mazdrashki b8366d796d oc/util: Tune dbmsgreader for new caching classes names 2014-11-19 17:12:27 +01:00
Jesús García Sáez 5ee8cb3a3f oc-rtf: check valid font name when generating <font> tag 2014-11-19 17:12:27 +01:00
Jesús García Sáez 4e3a242f2f oc-rtf: Don't crash when we don't know the specified font 2014-11-19 17:12:27 +01:00
Jesús García Sáez 68c38e2b5c openchange: return proper url for folders with non-ascii chars
toManyRelationshipKeysWithNamespaces applies asCSSIdentifier function
to the names which are already "Imap4Encoded". So we need to remove the
CSSIdentifier function first and then "Imap4Decode" to get the real name.

Once we have the real name, to create the url we have to use the same
logic as the function that creates the folder and creates this url for
the first time (this function is createRootSecondaryFolderWithFID)
which is to apply, in this order:

- asCSSIdentifier
- stringByEncodingImap4FolderName
- stringByAddingPercentEscapesUsingEncoding
2014-11-19 17:12:27 +01:00
Jesús García Sáez f1d14fdeca multitenancy: adapt openchangedb_* calls 2014-11-19 17:12:26 +01:00
Jesús García Sáez a5550cff18 avoid decode @ from url with username on it 2014-11-19 17:12:26 +01:00
Ludovic Marcotte 95e3c7ca88 More doc fixes for v2.2.10 2014-11-18 18:36:59 -05:00
Ludovic Marcotte 6bbaf58d43 Initial pass of the doc for v2.2.10 on Debian/Ubuntu 2014-11-18 16:56:45 -05:00
Ludovic Marcotte ac55509aea Updated NEWS file regarding the SOPE commit for bug #2957 2014-11-18 12:45:15 -05:00
Francis Lachapelle 2781fbe0b3 Merge pull request #64 from JensErat/SOGo-asciidoc
Removed erroneous backslash in documentation
2014-11-18 06:17:32 -05:00
Jens Erat 19221beb1f Removed erroneous backslash in documentation 2014-11-18 11:32:12 +01:00
Francis Lachapelle 3d18c94789 Fix extraction of email addresses in some cases
Fixes #2945
2014-11-17 14:33:28 -05:00
Ludovic Marcotte 1f167d9e82 Fixed IMAP searches with non-ASCII folder names 2014-11-17 11:49:56 -05:00
Ludovic Marcotte 3872341a85 Added required patch for previous commit 2014-11-14 10:34:36 -05:00
Ludovic Marcotte b3cd609ae7 Added WindowSize support for GCS collections 2014-11-14 09:13:14 -05:00
Ludovic Marcotte c0f0f2023c added NEWS entry for BSON goodie 2014-11-12 15:09:26 -05:00
Ludovic Marcotte ea43f4a635 Comment improvement 2014-11-12 15:05:05 -05:00
Ludovic Marcotte d25fe1a58b Dramatically improved BSON deserialization speed by avoiding tz name lookups 2014-11-12 14:57:54 -05:00
Ludovic Marcotte 8e1dc0ecb0 Typo in previous commit 2014-11-12 12:56:34 -05:00
Ludovic Marcotte 715999edc8 Avoid compilation failures on non-RHEL 7 distros 2014-11-12 12:54:07 -05:00
Ludovic Marcotte c159d5461b disable rpm-check-build for now 2014-11-12 10:02:04 -05:00
Ludovic Marcotte 5284b57340 More EL7 fixes 2014-11-10 16:19:10 -05:00
Ludovic Marcotte d8e6447fcc More disable lasso 2014-11-10 16:17:06 -05:00
Ludovic Marcotte cb8b0b028e Disable lasso for RHEL7 for now 2014-11-10 16:15:05 -05:00
Francis Lachapelle df648c9204 Add 'zip' to packages dependencies
Fixes #2963
2014-11-10 13:51:38 -05:00
Ludovic Marcotte 624af1c0fb Fixed test 2014-11-10 08:58:30 -05:00
Ludovic Marcotte 395a8ddcfe Updated once more the tz and added missing zones 2014-11-07 10:36:11 -05:00
Ludovic Marcotte 8cd72a8fda Fix borken ORGANIZER fields during the PUT action 2014-11-07 10:06:53 -05:00
Ludovic Marcotte 11a4c1358d Fixed corrupted PNG files (#2975) 2014-11-06 11:23:34 -05:00
Ludovic Marcotte 54d8aa8887 Added new zone files 2014-11-06 11:10:31 -05:00
Ludovic Marcotte 49da494260 Fix for bug #2968 2014-11-06 11:09:16 -05:00
Ludovic Marcotte e08dd3f9eb Fix for bug #2978 2014-11-06 10:16:47 -05:00
Ludovic Marcotte 6de70e4043 sanitize strings before encoding them when using EAS 2014-11-06 09:35:58 -05:00
Francis Lachapelle 7052daa1c8 Fix rename of subscribed addressbooks 2014-11-05 10:05:25 -05:00
Francis Lachapelle 15be4861b6 Fix support for SieveFolderEncoding default
Fixes #2622
2014-11-05 08:44:52 -05:00
Ludovic Marcotte 4b9958336c Handle base64-encoded command parameters in EAS 2014-11-04 13:50:10 -05:00
Ludovic Marcotte 52fdcc34de Fixed typo 2014-10-31 06:46:03 -04:00
Ludovic Marcotte 08427e0bfb set userTimeZone if event has no tz 2014-10-30 18:58:52 -04:00
Ludovic Marcotte d76a4361a0 Added one more sanitization pass on decoded content 2014-10-30 09:20:21 -04:00
Ludovic Marcotte 70cd24e111 Fix for bug #2965 2014-10-29 16:42:52 -04:00
Ludovic Marcotte b5023eeb24 Fix for bug #2940 2014-10-29 14:56:03 -04:00
Ludovic Marcotte da962aed01 Added support for multiple calendars/addressbooks over ActiveSync 2014-10-29 14:20:03 -04:00
Ludovic Marcotte 395545ca51 WP fails to sync if an event is changed on the sever and the client sends a modification of another event 2014-10-29 11:13:18 -04:00
Ludovic Marcotte b53c726766 TZ fixes on WP devices all day events 2014-10-29 10:46:45 -04:00
Francis Lachapelle 6695aa083f Fix crash when opening a mailbox with empty filter
Fixes #2959
2014-10-17 15:22:38 -04:00
Ludovic Marcotte 42ef0bfc3f Added doc around IMAP word size vs. ActiveSync on large mail folders 2014-10-16 11:49:07 -04:00
Ludovic Marcotte fb95d84a3a Handle base64 encoded query strings, popular on Windows devices 2014-10-16 09:35:15 -04:00
Ludovic Marcotte 231987242b Handle empty Attendees tag 2014-10-16 09:10:54 -04:00
Ludovic Marcotte b4f7ec3708 Don't send empty <Responses> tag 2014-10-16 09:08:50 -04:00
Ludovic Marcotte b2cab02d70 Handle empty categories 2014-10-16 09:03:34 -04:00
Ludovic Marcotte d6ff9038ce Disable timezone in AS for now 2014-10-16 09:02:18 -04:00
Ludovic Marcotte c43ad37850 Disable OpenChange for now on RHEL 7 2014-10-15 15:21:20 -04:00
Ludovic Marcotte 096a0ef8e4 Disabled openchange builds on all i386 arch 2014-10-15 11:35:59 -04:00
Francis Lachapelle e2136e0413 Don't leak database passwords in the logs
Fixes #2953
2014-10-14 12:54:04 -04:00
Ludovic Marcotte 3264458f4b Added back -L directives to properly compile teststrings 2014-10-14 11:27:08 -04:00
Alexandre Cloutier 0327a42c9c Update NEWS file 2014-10-14 10:45:30 -04:00
Ludovic Marcotte 5f811e1a4e Added rpath for integration tests 2014-10-14 10:43:52 -04:00
Alexandre Cloutier 923aa5d9b6 bugfix #2952, default sorting for new user 2014-10-14 10:31:11 -04:00
Ludovic Marcotte 3416bfea94 Adjusted rpath and removed unusued -L directives 2014-10-14 10:00:05 -04:00
Ludovic Marcotte f663950808 Adjusted the rpath, removed unnecessary variables/values 2014-10-14 09:51:04 -04:00
Ludovic Marcotte ccabd93ff2 moved system lib dirs to additional lib dirs 2014-10-14 09:21:12 -04:00
Ludovic Marcotte c5a7bcf2aa Fixed the system lib dir to point to the sogo lib dir 2014-10-14 09:17:00 -04:00
Ludovic Marcotte 81ff6bebfe Removed dependancies when openchange is disabled 2014-10-14 09:02:15 -04:00
Ludovic Marcotte 1a8aa5a587 Fixed spec file to not build sogo-openchange if disabled 2014-10-14 09:00:14 -04:00
Ludovic Marcotte 4b76e2b933 Added lib64 in the search path 2014-10-14 08:43:28 -04:00
Francis Lachapelle 27ac9e3904 Cleanup of unused parameters 2014-10-09 15:51:30 -04:00
Francis Lachapelle f8a371e351 Fix folder's name when subscribing to a folder 2014-10-09 15:12:24 -04:00
Francis Lachapelle 460ed2e7bc Fix JavaScript warning on undefined variable 2014-10-09 15:11:06 -04:00
Francis Lachapelle 6cc8f17c86 Fix display name of subscribed folders 2014-10-09 15:10:20 -04:00
Ludovic Marcotte ff9d49be71 Dropped rpath since it seems to be ignored on el5 2014-10-08 10:25:46 -04:00
Ludovic Marcotte f1919d10ed Flag for conditional openchange build 2014-10-08 09:35:50 -04:00
Ludovic Marcotte 3e2de9701c Fixes 2014-10-08 09:29:08 -04:00
Ludovic Marcotte 435ebb9eb4 Fixes 2014-10-08 09:25:40 -04:00
Ludovic Marcotte ab9ba66b36 More fixes 2014-10-08 09:22:14 -04:00
Ludovic Marcotte 29295f93c5 Fixed again the spec file 2014-10-08 09:17:26 -04:00
Ludovic Marcotte 20e0cd6234 Fixed RHEL packaging with lib move to "sogo" app directory 2014-10-08 09:10:02 -04:00
extrafu 2208d5d4a7 Merge pull request #58 from JensErat/SOGo-asciidoc
Minor documentation issues and missing IMAP pooling option description
2014-10-08 07:37:44 -04:00
Jens Erat 25f68c7eb5 Added missing NGImap4DisableIMAP4Pooling option to documentation 2014-10-08 10:07:48 +02:00
Jens Erat 22844a5742 Minor fixes in documentation 2014-10-08 10:01:17 +02:00
Ludovic Marcotte e3837188fd Updated spec file for SOGo's private libraries move 2014-10-06 14:45:30 -04:00
Francis Lachapelle a0317046ba Card view: don't escape <br>'s in note field 2014-10-06 08:42:59 -04:00
extrafu f353b6d1c0 Merge pull request #57 from dekkers/make-png-non-executable
Make png files non-executable
2014-10-05 09:58:29 -04:00
Jeroen Dekkers 4cc6b72cfb Make png files non-executable 2014-10-05 15:47:00 +02:00
Francis Lachapelle d7f8427623 Improve XSL for documentation 2014-10-03 13:13:42 -04:00
Ludovic Marcotte 7f49dcb2fa Avoid using SOGO_SYSLIBDIR when testing since it's undefined 2014-10-02 13:10:54 -04:00
Ludovic Marcotte f29a47d443 Added rpath 2014-10-02 12:42:06 -04:00
Ludovic Marcotte f88cfae611 Improved and simplified rpath 2014-10-02 12:36:22 -04:00
Ludovic Marcotte fb3ddca9e8 Improved makefiles 2014-10-02 11:17:45 -04:00
Ludovic Marcotte ba4a50e778 Added rpath kungfu 2014-10-02 11:05:19 -04:00
Ludovic Marcotte 8875c42d25 Fixed makefile 2014-10-02 11:00:43 -04:00
Ludovic Marcotte 18431922ab Fixed makefile 2014-10-02 10:55:05 -04:00
Ludovic Marcotte f93c06e6a9 Fixed include 2014-10-02 10:50:34 -04:00
Ludovic Marcotte 68d79472a5 Fixed makefile for teststrings due to sogo lib change 2014-10-02 10:46:47 -04:00
Ludovic Marcotte 51ed371796 Adjusted debian install files regarding sogo lib move 2014-10-02 10:21:36 -04:00
extrafu 641b6a3174 Merge pull request #3 from dekkers/put-private-library-in-usr-lib-sogo
Put private SOGo libraries in /usr/lib/sogo
2014-10-01 14:39:18 -04:00
Jeroen Dekkers 6ded9e95b3 Put private libraries in /usr/lib/sogo 2014-10-01 20:36:42 +02:00
Ludovic Marcotte 25b7fffb00 Fix for bug #2930 2014-10-01 14:08:29 -04:00
Francis Lachapelle 89284d558c Add missing translation 2014-10-01 09:02:03 -04:00
Ludovic Marcotte 9610fcc5ca Bumped version 2014-09-29 15:30:02 -04:00
Ludovic Marcotte 9cdcfd1d4a Updated for the 2.2.9a release 2014-09-29 15:29:49 -04:00
Ludovic Marcotte 95b122c912 Simplified even more -safeString 2014-09-29 15:04:40 -04:00
Ludovic Marcotte aa0499dbac Fixed sanitization char skipping and #2936 2014-09-29 14:28:13 -04:00
extrafu a263939d8a Merge pull request #49 from Zentyal/Contrib
Several patches for the OpenChange integration
2014-09-29 09:07:36 -04:00
Francis Lachapelle 80acafadd3 Fix URL in documentation 2014-09-26 14:49:36 -04:00
Ludovic Marcotte 4c5be2fd97 Update ChangeLog 2014-09-26 14:31:57 -04:00
Ludovic Marcotte a5af5da259 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-09-26 14:30:30 -04:00
Ludovic Marcotte c0e8eb6ce3 Adjusted the doc for TB31 2014-09-26 14:29:20 -04:00
Francis Lachapelle 4be2ddb793 Update translations 2014-09-26 14:23:58 -04:00
Ludovic Marcotte 5744d18474 Updated scripts for TB31 2014-09-26 14:15:32 -04:00
Francis Lachapelle 9e1423cd4a New font for asciidoc documentation
We now use Lato.
2014-09-26 14:14:54 -04:00
Ludovic Marcotte 275eebde0f Updated NEWS file for the release 2014-09-26 10:53:01 -04:00
Ludovic Marcotte 0b6e3dc22d Fix for bug #589 2014-09-25 09:25:13 -04:00
Ludovic Marcotte 3675220756 Refactored code to be more rigorous Unicode-wise. 2014-09-24 14:14:25 -04:00
Ludovic Marcotte 1c60ab2337 Fix for bug #2889 2014-09-24 12:02:12 -04:00
Ludovic Marcotte f4372af16d Add over DAV a PARTSTAT if none is defined 2014-09-23 13:46:44 -04:00
Ludovic Marcotte 6ba85ee43a Added some comments in the code 2014-09-22 11:38:07 -04:00
Ludovic Marcotte ae6afedc92 Fixed potential exception when Calendar module is disabled 2014-09-22 08:38:01 -04:00
Ludovic Marcotte d572f2af02 get rid of control chars before returning the response 2014-09-19 14:34:20 -04:00
Ludovic Marcotte a338b193ba Fix for bug #2838 2014-09-17 19:45:44 -04:00
Ludovic Marcotte 11adf388cf Cleaned the code and fixed #2894 while at it ... 2014-09-17 11:51:46 -04:00
Ludovic Marcotte a4ab2942e8 Fix for bugs #2878, #2879 2014-09-17 11:35:09 -04:00
Francis Lachapelle 7e281dca99 Fix encoding of calendar names in Web interface 2014-09-17 09:45:44 -04:00
Ludovic Marcotte ce1896b627 Fixed typo 2014-09-17 09:36:35 -04:00
Ludovic Marcotte f52a083326 fixed sending mails to multiple recipients over AS 2014-09-17 09:34:36 -04:00
Ludovic Marcotte 8ba031d6ec Consider 0x0C as "unsafe" 2014-09-15 19:54:07 -04:00
Ludovic Marcotte c5c2bfb7a6 Fixed iCal detection for 10.9 (and perhaps even 10.8) 2014-09-15 14:10:05 -04:00
Alexandre Cloutier 6ec79f7792 bugfix with threads collapsing for a nested folder 2014-09-15 10:38:02 -04:00
Francis Lachapelle 4b9db66f8b Fix warning when generating docbook 2014-09-15 10:33:44 -04:00
Ludovic Marcotte 02b3de6465 Fix for bug #2326 2014-09-15 09:32:36 -04:00
extrafu e0fee3b0e0 Merge pull request #56 from JensErat/SOGo-asciidoc
Converted documentation to ASCIIdoc
2014-09-15 09:08:25 -04:00
Jens Erat 4b49fc33b2 Updated for 2.2.8 2014-09-15 02:48:44 +02:00
Jens Erat 19b313e6c4 Updated some copyright lines from PacketFence to SOGo 2014-09-15 02:48:44 +02:00
Jens Erat 397d8d7574 Remove old documentation files 2014-09-15 02:48:44 +02:00
Jens Erat 8a564975c8 Added makefile for asciidoc-conversion, included docbook-templates 2014-09-15 02:47:36 +02:00
Jens Erat 95191cb29b Added other documentation files as asciidoc 2014-09-15 02:47:36 +02:00
Jens Erat 8d4c0ff694 Converted Installation Guide to asciidoc 2014-09-15 02:47:36 +02:00
Ludovic Marcotte 8b4a16df4e NEWS entry for previous commit 2014-09-12 14:10:22 -04:00
Ludovic Marcotte b8b3519a40 Initial support for multiple alarms and better iCal compatibility 2014-09-12 14:09:28 -04:00
Ludovic Marcotte 12a4fd05a2 Support for repetitive alarms and tasks 2014-09-12 08:34:15 -04:00
extrafu 8cdaac6300 Merge pull request #35 from dekkers/link-libraries-correctly
Link correctly against libraries used
2014-09-11 21:02:08 -04:00
extrafu 0e21904c03 Merge pull request #10 from dekkers/link-libsogo-with-libdl
Link libSOGo with libdl on systems with glibc
2014-09-11 21:01:30 -04:00
extrafu 496fa73d36 Merge pull request #26 from Skrupellos/master
ModulesConstraints tests all values of a multi-valued attributes
2014-09-11 16:09:06 -04:00
Francis Lachapelle 0825a810e3 Add missing localization string 2014-09-11 11:58:39 -04:00
Francis Lachapelle ed85a09ff0 Allow alarms to be snoozed for 1 day 2014-09-11 11:55:20 -04:00
Ludovic Marcotte 38cb86bdb1 Update ChangeLog 2014-09-10 14:15:34 -04:00
Alexandre Cloutier 69c8aa0743 quickfix for IE for searchInbox 2014-09-10 13:22:36 -04:00
Alexandre Cloutier 60e3c1c822 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-09-10 13:02:45 -04:00
Alexandre Cloutier 36b833ccb5 bugFix InboxSearch IMAP query keywords 2014-09-10 13:02:13 -04:00
Francis Lachapelle 9d6bcb00bc Fix compilation warning 2014-09-10 11:58:47 -04:00
Francis Lachapelle 1dd3dbacb5 Various fixes and improvements to the Mail module 2014-09-10 11:37:52 -04:00
Francis Lachapelle c441fa5b80 Various fix and improvements to Scheduler module 2014-09-10 10:58:58 -04:00
Francis Lachapelle 7e297ad56c Remove spaces 2014-09-10 10:58:46 -04:00
Francis Lachapelle 8eb4212f5d Various fix and improvements to Mail module 2014-09-10 10:49:54 -04:00
Luc Charland 3ad9327d17 putting test-prevent-invitations back in 2014-09-10 10:25:42 -04:00
Ludovic Marcotte 0483794f45 Updated the documentation for the release 2014-09-10 09:20:47 -04:00
Alexandre Cloutier 3c1d6d7d89 bugfix; UserSettings was not refresh properly after toggling threads 2014-09-09 16:05:12 -04:00
Francis Lachapelle 1dcf631ad6 Update translations 2014-09-09 15:50:39 -04:00
Ludovic Marcotte cbc53b3a52 Updated NEWS file 2014-09-09 15:38:15 -04:00
Alexandre Cloutier 574c245758 bugfix PreventInvitation; fix object parsing on a blank user 2014-09-09 15:36:14 -04:00
Alexandre Cloutier f3ca4ea7fc bugfix foldingThread; Renaming a foldername with a space was not correctly handled 2014-09-09 15:36:14 -04:00
Ludovic Marcotte e542ff5646 Fix for bug #1240 2014-09-09 15:15:56 -04:00
Francis Lachapelle bbe1e09ab9 Merge pull request #52 from alexcloutier/feature/RefreshViewCheck
All modules can now be automatically refreshed
2014-09-09 15:12:21 -04:00
Alexandre Cloutier 9daab5a9a1 update NEWS file 2014-09-09 14:28:05 -04:00
Alexandre Cloutier 1fb3198dbc applied comments 2014-09-09 14:27:05 -04:00
Alexandre Cloutier d62c504763 Changed the configurable variable SOGoMailMessageCheck to a general refresh associated to the current view 2014-09-09 14:27:05 -04:00
extrafu 126a05d391 Merge pull request #54 from alexcloutier/feature/FoldingThreads
Feature/folding threads
2014-09-09 14:06:30 -04:00
extrafu 42ffe14052 Merge pull request #55 from alexcloutier/bugfix/LabelsTagging
Bugfix/labels tagging
2014-09-09 14:06:19 -04:00
Alexandre Cloutier 7db526a5d9 bugfix for new user without userSettings.mail 2014-09-09 13:51:02 -04:00
Alexandre Cloutier 06f81a032c applied comments 2014-09-09 13:51:02 -04:00
Alexandre Cloutier df42c31618 Update NEWS file 2014-09-09 13:51:02 -04:00
Alexandre Cloutier e6002c9b2a applied comments 2014-09-09 13:51:02 -04:00
Alexandre Cloutier 0c88edc61b bugfix where an exception was raised if threadsCollapsed is undefined 2014-09-09 13:51:02 -04:00
Alexandre Cloutier 267a689683 Applied comments 2014-09-09 13:51:02 -04:00
Alexandre Cloutier c9d1294a8a Manage the collapse UIDs save in the user settings 2014-09-09 13:51:02 -04:00
Alexandre Cloutier 59023da7f0 applied comments and fix bug where the folded threads were saved only after refreshing the entire page 2014-09-09 13:51:02 -04:00
Alexandre Cloutier c5f9dd086b Possibility to collapsed threads with persistance 2014-09-09 13:51:02 -04:00
Alexandre Cloutier 0bfaceb398 applied comments 2014-09-09 12:51:59 -04:00
Alexandre Cloutier 9a380f711c bugfix PreventInvitation 2014-09-09 11:30:00 -04:00
Ludovic Marcotte 8c8e7d24a7 Modified Apache's config file to handle Apache > 2.3 2014-09-08 15:25:21 -04:00
Alexandre Cloutier 77c50e5232 applied comments; fix errors from merge and update NEWS file 2014-09-08 14:11:42 -04:00
Francis Lachapelle 56ef00661c Merge pull request #50 from alexcloutier/feature/SearchInbox
New feature to search multiple mailboxes
2014-09-05 16:09:59 -04:00
Francis Lachapelle b639c2d251 Fixes for IE 2014-09-05 16:04:29 -04:00
Alexandre Cloutier 984e208dd9 IE bugfixes 2014-09-05 11:01:57 -04:00
Luc Charland 606ee9780e dont test prevent invitations 2014-09-04 22:36:02 -04:00
Luc Charland c6f82dac01 catch specific exception 2014-09-04 22:24:32 -04:00
Luc Charland e37a603632 should help some builds that might timeout 2014-09-04 21:59:36 -04:00
Alexandre Cloutier ca8351d1f9 fix IE7, IE8, IE9, IE10, IE11 GUI 2014-09-04 10:50:03 -04:00
Luc Charland 031e4c9409 more of the same 2014-09-03 22:43:49 -04:00
Luc Charland c621bbcd56 Those need the same adjustments 2014-09-03 22:32:46 -04:00
Luc Charland 4b94a183be urllib.quote needs a string 2014-09-03 13:50:13 -04:00
Alexandre Cloutier 32476b16cc applied comments and fix bug when tagging msgs already tagged 2014-09-02 14:31:46 -04:00
Alexandre Cloutier 3b65eaea0b Tagging labels with 1 AJAX request 2014-09-02 13:42:04 -04:00
Alexandre Cloutier 7e26d80c77 merge conflicts 2014-09-02 10:11:27 -04:00
Francis Lachapelle 1af52e6d6b Fix message labels handling
Selecting "none" from the label submenu on a multiple selection of
messages is now working. When changing the label of multiple messages,
the display is now properly updated.

Fixes #2902
2014-08-29 15:39:06 -04:00
Alexandre Cloutier eaf815eae6 update NEWS file 2014-08-29 14:55:21 -04:00
Alexandre Cloutier 9bd09cc55d add the location column 2014-08-28 13:20:43 -04:00
Luc Charland ced0962894 Added white_listed_attendee to the config file 2014-08-28 10:43:32 -04:00
Francis Lachapelle dadad3df2a Fix some compilation warnings 2014-08-28 09:38:09 -04:00
Alexandre Cloutier da184f8459 bugfix#2864 2014-08-27 16:50:45 -04:00
Alexandre Cloutier 03152ea3d4 bugfix with DND from calendar view to calendar list 2014-08-27 16:01:35 -04:00
Alexandre Cloutier 8fbd2384a4 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-08-27 13:55:02 -04:00
Alexandre Cloutier 84a08659ec bugfix where it is not possible to delete msg when mailbox is full 2014-08-27 13:50:56 -04:00
Luc Charland d749d5c2fb Added tests for prevent invitation and whitelist 2014-08-27 13:31:49 -04:00
Alexandre Cloutier 07a138e0d6 applied comments and add the possibility to resize the search inbox window 2014-08-27 12:30:33 -04:00
Alexandre Cloutier 76c9b45fd0 update Localizable.strings
Update the print window options strings
2014-08-26 14:25:27 -04:00
Alexandre Cloutier 1ab3a588f3 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-08-26 13:41:58 -04:00
Alexandre Cloutier 38a3b7bb4f print calendars events&Tasks with colors - either borders or backgrounds 2014-08-26 13:36:42 -04:00
Francis Lachapelle b2b77c65d3 Fix folders paths of "sogo-tool restore -l" 2014-08-26 09:00:13 -04:00
Alexandre Cloutier 6aecccf6ca indentations 2014-08-25 13:46:35 -04:00
Francis Lachapelle e4a84d4920 Fix usage of SOGoSubscriptionFolderFormat default 2014-08-25 12:15:05 -04:00
Francis Lachapelle 28f26ec08e Fix display of users with no possible subscription 2014-08-25 10:16:10 -04:00
Francis Lachapelle 74bd96e5a6 Fix encoding of new calendars + new subscriptions 2014-08-25 10:12:09 -04:00
Alexandre Cloutier e044476772 bugFix #2827 2014-08-15 13:41:30 -04:00
Alexandre Cloutier c76cb36461 Disable the search button on toolbar once it is opened 2014-08-15 13:06:46 -04:00
Alexandre Cloutier 73fcdc2306 adjust css for other browser, fix display bug 2014-08-15 11:41:37 -04:00
Ludovic Marcotte b9dd1ddc5a Fix for bug #2892 2014-08-15 09:57:19 -04:00
Alexandre Cloutier 8783f09a4a fix leak 2014-08-14 15:01:40 -04:00
Alexandre Cloutier 52476251b8 applied comments, fix bug and add sortable results 2014-08-14 14:49:44 -04:00
Alexandre Cloutier f6c7ca3379 applied comments 2014-08-13 17:41:58 -04:00
Alexandre Cloutier c3e46e4baf code refactoring and GUI improvement 2014-08-11 09:25:09 -04:00
Alexandre Cloutier 7794d716b9 version 1 of the inbox search 2014-08-06 14:49:36 -04:00
Francis Lachapelle 5b886e5c4d Fix issue with DnD of tasks with FireFox 2014-08-01 12:26:53 -04:00
Jesús García Sáez 1a2fe8908b Revert "Merge pull request #2 from Zentyal/jgarcia/fix-encoding-of-mapistoreuris" 2014-08-01 15:50:17 +02:00
Ludovic Marcotte cde1db9324 Refactored GCSFolder: -writeContent and fixed sogo-tool restore 2014-08-01 09:40:45 -04:00
Ludovic Marcotte f43341c100 Fixed JSON'ification of the admin module 2014-07-31 16:19:49 -04:00
Ludovic Marcotte b05fcc7d82 Fat commit to refactor the quick record generation 2014-07-30 14:51:00 -04:00
Francis Lachapelle 07324e56a0 Update ChangeLog 2014-07-30 11:16:35 -04:00
Francis Lachapelle 397a36cc89 Preparation for release 2.2.7 2014-07-30 11:16:10 -04:00
Francis Lachapelle c240931c54 Update CKEditor to version 4.4.3 2014-07-30 11:15:05 -04:00
Francis Lachapelle ef2432e10f Update NEWS file 2014-07-30 10:36:31 -04:00
Francis Lachapelle 571322958a Update fi, fr, de, and es_ES translations 2014-07-30 10:33:15 -04:00
Francis Lachapelle bd5c05cca2 Indentation in JavaScript files 2014-07-30 10:31:25 -04:00
Francis Lachapelle ea44308aa3 Fix all-day events display in IE
It also fixes the display of the event categories for all-day events in
IE.
2014-07-29 16:05:46 -04:00
Carlos Pérez-Aradros Herce f76a6cfc96 Fix mysql cleanup log message 2014-07-29 18:27:20 +02:00
Kamen Mazdrashki 2b3bc10f78 Scripts/openchange_user_cleanup: Don't hardcode samba private dir, use samba LoadParm()
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-29 18:26:30 +02:00
Jesús García Sáez 3eba5f940e increase log level of debug message 2014-07-29 18:25:46 +02:00
Jesús García Sáez 7f2ee7be89 Error message only when initialization hadn't been done
In a multithread environment, sogo_backend_init is registering the thread
only for the first one that calls this function, then the others threads
(even if they call sogo_backend_init) won't be registered because
moduleInitialized was YES.

We just want to ensure sogo_backend_init is called at least once (per process,
not per thread).
2014-07-29 18:25:28 +02:00
Miguel Julián 41f2e917e7 Removed development tip comment 2014-07-29 18:22:34 +02:00
Miguel Julián 65ece61273 Removing some trail characters at event description
* They are sometimes present after a \r\n\n
2014-07-29 18:22:32 +02:00
Ludovic Marcotte 94f3246658 Improved error message when you cannot invite users 2014-07-29 10:36:20 -04:00
Ludovic Marcotte 1df7e989e0 Removed worthless declaration 2014-07-25 14:48:25 -04:00
Francis Lachapelle d9ca1051b3 Improve headers of multicolumns view 2014-07-25 11:34:33 -04:00
Ludovic Marcotte 4eefa4c269 Fixed test since we now return a 200 instead of a 204 2014-07-25 08:12:12 -04:00
Ludovic Marcotte 4c21a050d9 JSON interface to folder subscriptions 2014-07-24 14:00:57 -04:00
Alexandre Cloutier b52289904f task.png for DnD taskList 2014-07-24 13:48:41 -04:00
Alexandre Cloutier d5b71526ed Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-07-24 13:44:02 -04:00
Alexandre Cloutier c389630d76 DnD tasksList 2014-07-24 13:35:14 -04:00
Ludovic Marcotte f6ef94a631 improved handling of SOGoSubscriptionFolderFormat 2014-07-24 12:48:03 -04:00
Francis Lachapelle 5de51e8aa1 Fix missing argument with new DnD controller 2014-07-24 09:30:19 -04:00
Ludovic Marcotte 006727a74b Properly destroy cache objects of vanished folders 2014-07-24 08:39:41 -04:00
extrafu 037dd67635 Merge pull request #47 from dekkers/mailpartviewers-requires
Add Mailer and Appointments to product.list requires of MailPartViewers
2014-07-22 14:00:35 -04:00
Jeroen Dekkers 6619840f80 Add Mailer and Appointments to product.list requires of MailPartViewers 2014-07-22 19:54:18 +02:00
Francis Lachapelle 08fd2fcfaa Fix JavaScript after bad merge 2014-07-22 13:26:28 -04:00
Alexandre Cloutier a43dd97fc9 Fix bug with DnD; leftPanelController.stopEvent() 2014-07-22 11:37:45 -04:00
Francis Lachapelle 192659fdd9 Add missing localizable string 2014-07-21 16:12:27 -04:00
Francis Lachapelle 06fe36fd75 Add missing localizable strings 2014-07-21 16:07:13 -04:00
Francis Lachapelle 24f9d83ff7 Fix JavaScript from merge leftover 2014-07-21 16:06:24 -04:00
Ludovic Marcotte 8dd967d0a8 Updated NEWS file for two merged pull requests 2014-07-21 15:38:23 -04:00
Ludovic Marcotte 08cd080d47 Fixed charset substitution in meta tags 2014-07-21 15:34:56 -04:00
Francis Lachapelle 11920f592c Merge pull request #46 from alexcloutier/feature/DragNDropCalendars
Improve drag'n'drop of events in multi-column view
2014-07-21 11:00:27 -04:00
Alexandre Cloutier 28e6bb8b9d Applied comments 2014-07-21 09:52:09 -04:00
Alexandre Cloutier b892b3f794 Add RegEx 2014-07-21 09:52:09 -04:00
Alexandre Cloutier cdf4cc1acb fix DnD from eventList to calendarList for repeated event 2014-07-21 09:52:08 -04:00
Alexandre Cloutier 3cac794de5 move line 2014-07-21 09:52:08 -04:00
Alexandre Cloutier 8f9b24a23f visual helper while dragging from calendar view to calendarList 2014-07-21 09:52:08 -04:00
Alexandre Cloutier a2a7014140 fix dnd repeated event bug + applied comments 2014-07-21 09:52:08 -04:00
Alexandre Cloutier a5ecb2063f added event7.png and adjust javascript indentation 2014-07-21 09:52:08 -04:00
Alexandre Cloutier 9bd7aeebfb DnD from calendarView to CalendarList 2014-07-21 09:40:04 -04:00
Alexandre Cloutier 01af72cfe9 DnD from eventList to the calendarList 2014-07-21 09:40:04 -04:00
Alexandre Cloutier 6dddb5c98c dragNdrop from the events table to the calendars list 2014-07-21 09:40:04 -04:00
Alexandre Cloutier ccf181bcf9 applied comments and fix repeated events dragNdrop between calendars 2014-07-21 09:40:04 -04:00
Alexandre Cloutier e478b29c2e creating and dragNDrop between calendars in multicolumndayview 2014-07-21 09:40:04 -04:00
Francis Lachapelle f3ded6ce2a Merge pull request #45 from alexcloutier/feature/PreventInvitations
New user preference to prevent invitations
2014-07-21 09:38:42 -04:00
Alexandre Cloutier c2027f072d indentation 2014-07-21 09:29:00 -04:00
Alexandre Cloutier ce6a31dd38 Adjust line of code to make it easier to read 2014-07-21 09:27:02 -04:00
Alexandre Cloutier a71013eebf javascript indentation 2014-07-21 09:27:02 -04:00
Alexandre Cloutier eaec5a614d Change exception 403 to 409 and fix indentation in the javascript 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 5217bed5ae Organized the categories and appointments invitations inside a tabContainer 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 17319cc8dd reverted UIxListEditor.wox 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 89d116363c replace ampersands with commas 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 7c3e85f517 applied comments 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 05fb7ae0c8 applied comments 2014-07-21 09:27:02 -04:00
Alexandre Cloutier ef20108e32 fix bug where the user could enter any names in the whitelist 2014-07-21 09:27:02 -04:00
Alexandre Cloutier b5c0363400 applied comment and refactor code 2014-07-21 09:27:02 -04:00
Alexandre Cloutier f0b8eb8dfb server side code to integrate the whitelist 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 16d02455bd Serialization of the whiteList 2014-07-21 09:27:02 -04:00
Alexandre Cloutier 8ded5a8aaf Prevent Invitations and whitelist GUI 2014-07-21 09:27:02 -04:00
Ludovic Marcotte 1cc93c700a Updated NEWS file for changes occurred right after v2.2.6 was released 2014-07-09 14:08:31 -04:00
Francis Lachapelle 44d0cb5c0d Fix refresh of list when forwarding a message
Fixes #2818
2014-07-09 11:19:35 -04:00
Ludovic Marcotte dbdb7d9051 Fix sending of METHOD:REPLY for DAV clients 2014-07-09 10:04:44 -04:00
Francis Lachapelle e343ed240b Fix regression of word breaking
Fixes #2845
2014-07-08 22:01:41 -04:00
Francis Lachapelle 45553be122 Fix rename of calendars, improve tasks count badge 2014-07-08 17:19:55 -04:00
Alexandre Cloutier 1cf4841477 fix display glitch 2014-07-04 11:23:59 -04:00
Alexandre Cloutier 017a85b7f2 fix month events categories display 2014-07-04 10:46:49 -04:00
Alexandre Cloutier 103bb6803a Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-07-04 10:38:24 -04:00
Alexandre Cloutier 8c8e47daf6 fix spacing between events and categorie display 2014-07-04 10:37:35 -04:00
Ludovic Marcotte 8a17246725 Cleaned up code and fixed the translation of the weekdays in the datepicker 2014-07-04 10:18:56 -04:00
Ludovic Marcotte 4843c6b6d7 Renamed Multi-Column to Multicolumn and refactored some code 2014-07-04 08:55:35 -04:00
Ludovic Marcotte 6e13f15477 Update ChangeLog 2014-07-02 11:32:18 -04:00
Ludovic Marcotte 5dd2088d42 Updated for the release 2014-07-02 11:32:06 -04:00
Ludovic Marcotte 9c3c2cb926 Updated the doc for the release 2014-07-02 11:23:57 -04:00
Ludovic Marcotte 55422b5f03 Fixed typo 2014-07-02 10:11:13 -04:00
Kamen Mazdrashki 1846e1ee5d oc/TallocWrapper: don't handle Threading initialization here
It is SOGo backend module responsibility to setup/teardonw all
ObjC specific initialization

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:20:51 +02:00
Kamen Mazdrashki 1fc3a57210 oc: Protect backend initialization to happen only once 2014-07-02 15:20:31 +02:00
Kamen Mazdrashki 5b75c817e2 oc: Log when mapistore backend is successfully initialized 2014-07-02 15:20:19 +02:00
Kamen Mazdrashki c91741ad1f oc/dbmsgreader: Fix to work again this time basen on BSON format for msg data
Also, implement reading for message data in case only 1 param is passed.
This could be usefull when have msg data by other means than by
reading it directly from DB

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:19:59 +02:00
Kamen Mazdrashki 86e54989fb oc/utils: Make "plext" category publicly visible
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:19:47 +02:00
Kamen Mazdrashki 116e738e63 oc/utils: Move OCDumpPListData() function into plreader - this is the only user for this function
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:19:31 +02:00
Kamen Mazdrashki bf0f2a76d5 oc/MAPIStoreSOGo: Do not destroy current thread context after any API call
We have thread context already in place during *_init() function.
Thus guarding every API call with TreadInit/Destroy is:
- a bit redundand
- makes SOGo backend not reentrant even on single thread and leads
  to hard to find use-after-free crashes

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:19:19 +02:00
Kamen Mazdrashki 6de298d202 oc/MAPIStoreMapping: Split the check for existing entry so we have better error message
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 15:18:49 +02:00
Kamen Mazdrashki 98505c1b6b oc/MAPIStoreContext: Fix log messages to actually print 64bit FMIDs
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>

Conflicts:
	OpenChange/MAPIStoreContext.m
2014-07-02 15:18:33 +02:00
Miguel Julián 51df0adb79 Removed development tip comment 2014-07-02 15:00:24 +02:00
Miguel Julián 5d43513dd9 Removing some trail characters at event description
* They are sometimes present after a \r\n\n
2014-07-02 14:59:16 +02:00
Miguel Julián 2458af1a43 All day events deladyed one day if user timezone is +XX:XX
* Those events were not shown properly in SOGo web UI
2014-07-02 14:59:06 +02:00
Kamen Mazdrashki 2792baac02 openchange: don't overflow possible recipient type while creating message headers
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:58:57 +02:00
Kamen Mazdrashki 4b383705ff openchange: Fix submitWithFlags to submit to BCC-ed recipients also
this reintroduces commit 7efb263c659451d2c781547a5b38cb5d01ed837f

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:58:47 +02:00
Kamen Mazdrashki dd7200e00f openchange/MAPIStoreFolder: Add private selector for actual folder delete action
Usually, it is a bad idea for an object to call its own public methods
(just like in this case). Thus separating impelementation for deleteFolder:
would allow MAPIStoreFolder to call only private implementation when needed

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:58:33 +02:00
Kamen Mazdrashki 27851ef428 openchange: FillMessageHeadersFromProperties fix skipping of last value in
possible range of recepients

IMHO, this fixes a bug, that when saving a meessage, it  is saved
without BCC fields.

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:58:16 +02:00
Kamen Mazdrashki 7da8885190 openchange: getMessageData - replace int literals with ulRecipClass values
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:58:06 +02:00
Kamen Mazdrashki fc9dc08045 oc-sogo: pretty print Exceptions in sogo_backend_handle_objc_exception()
Now we have a nice stack trace printed out from [NSException callStackSymbols]

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:53:34 +02:00
Kamen Mazdrashki bcfb674cd1 oc-sogo: Print both [NSException callStackSymbols] and execinfo.h stack trace
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:53:24 +02:00
Kamen Mazdrashki 6be768af42 oc-sogo: Move memory clean up *after* handling the exception
Otherwise the mess is full :)

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:53:10 +02:00
Kamen Mazdrashki 2c94d21f3e oc-sogo: Use [e name] and [e reason] selectors
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:52:59 +02:00
Kamen Mazdrashki cbe616358d oc-sogo: Clean up AutoRelease pool and unregister threads in Catch handler
Most of the time we have "not yet implemented" kind of exceptions,
so it is better to clean up allocated resources

Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:52:34 +02:00
Kamen Mazdrashki 09e6fcc3ff oc-sogo: try/catch to guard only the actual impelementation rather than *everything*
Signed-off-by: Kamen Mazdrashki <kmazdrashki@zentyal.com>
2014-07-02 14:52:20 +02:00
Jesús García Sáez 3b2174eeec if there is no password file for specific user, try to read global password file
This way we can have a master password for imap access
2014-07-02 14:51:08 +02:00
Jesús García Sáez c6b8be742d use execinfo.h to get backtrace
Really poor backtrace because it will only have the frames from oc side,
I don't know why callStackSymbols is returning null, compilation flags?
2014-07-02 14:50:54 +02:00
Jesús García Sáez a77863947f add try catch to all functions on struct mapistore_backend 2014-07-02 14:50:41 +02:00
Jesús García Sáez d1f54298d2 stringByDecodingImap4FolderName is not neccesary
For russian locale and characters nonexistent in latin1 sogo crashes
2014-07-02 14:48:45 +02:00
Kamen Mazdrashki f8028b5a94 OpenChange: Avoid crashing when creating embedded message in attachment
Signed-off-by: Kamen Mazdrashki <kamenim@samba.org>
(cherry picked from commit 15a55f9f707247c9164e8fa7a102639744f686e5)
2014-07-02 14:48:27 +02:00
Jesús García Sáez 6bef678114 fix format logging uint64_t 2014-07-02 14:47:57 +02:00
Jesús García Sáez c81476bd04 no need to modify url 2014-07-02 14:47:45 +02:00
Jesús García Sáez a24f009cfe mapistoreURI encoding should be done the same way as listContextForUser
stringByEncodingImap4FolderName is used inside [newFolder create] where is needed
2014-07-02 14:47:31 +02:00
Jesús García Sáez 95298de9f1 avoid infinite loop when trying to update a folder id 2014-07-02 14:45:52 +02:00
Jesús García Sáez f6d1a37127 use properly get_uri function and check ret value 2014-07-02 14:44:23 +02:00
Jesús García Sáez 2aa71cc8a3 check ret value properly 2014-07-02 14:43:42 +02:00
Jesús García Sáez 34b98a563d get_new_folderID functions are now on mapistore_indexing 2014-07-02 14:42:17 +02:00
Carlos Pérez-Aradros Herce fd308b592f Converted all the indexing code to indexing backends 2014-07-02 14:41:51 +02:00
Carlos Pérez-Aradros Herce a6bfb9d5c5 Use indexing generic code instead of tdb private funtions 2014-07-02 14:41:40 +02:00
Carlos Pérez-Aradros Herce 33b353b974 Moved to abstract index_context instead of tdb_wrap 2014-07-02 14:41:25 +02:00
Ludovic Marcotte 899a1eb026 Updated NEWS file 2014-07-02 08:39:01 -04:00
Alexandre Cloutier 660f39a980 delete notice and put grey background for multi-columns view 2014-06-30 14:13:52 -04:00
Alexandre Cloutier 8335c38830 fix infinite loop bug 2014-06-30 13:57:10 -04:00
Alexandre Cloutier 0fb7135335 bugfixes 2014-06-30 13:36:12 -04:00
extrafu 70b0cb78cd Merge pull request #44 from alexcloutier/fix/DailyViewByCalendars
Fix/daily view by calendars
2014-06-30 11:01:06 -04:00
Alexandre Cloutier d197ab71b7 merging conflicts 2014-06-30 10:55:55 -04:00
Alexandre Cloutier 6b58e034f3 printView display the parentView by default 2014-06-30 10:42:07 -04:00
Ludovic Marcotte ff015afde8 Fixed indent 2014-06-30 10:35:55 -04:00
Ludovic Marcotte 6da03bc75c Cleaned up code for older gcc 2014-06-28 08:31:07 -04:00
Alexandre Cloutier 2b119c63e0 Applied comments 2014-06-27 17:21:18 -04:00
Alexandre Cloutier 5b61df8ca4 activeTasks updates dynamically 2014-06-27 17:00:32 -04:00
Alexandre Cloutier 659e2f3aa8 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-06-27 10:30:10 -04:00
extrafu 8191576361 Merge pull request #41 from alexcloutier/fix/displayTaskNumber
Display the number of active tasks in calendar view
2014-06-27 09:07:07 -04:00
Alexandre Cloutier 5b9c7e07d1 text wraping and text alignment in list view 2014-06-26 21:22:12 -04:00
Alexandre Cloutier cafb896e8c Merge branch 'fix/displayTaskNumber' of https://github.com/alexcloutier/SOGo into fix/displayTaskNumber 2014-06-26 16:43:10 -04:00
Alexandre Cloutier 7a69bc46eb applied comments 2014-06-26 16:42:05 -04:00
Alexandre Cloutier 302e40a1c3 bugFix#2823 2014-06-26 16:08:47 -04:00
Ludovic Marcotte b6be4e6e2f Applied patch from bug #2810 2014-06-26 11:01:16 -04:00
Alexandre Cloutier dabd8d3282 Fix list view printing with multiColumns view 2014-06-26 10:05:48 -04:00
Alexandre Cloutier d7d458a934 multiColumns print view + bugFixes 2014-06-25 17:39:48 -04:00
Ludovic Marcotte 5419f411e5 Fix for bug #2734 2014-06-25 15:05:25 -04:00
Ludovic Marcotte 22f5ed62fe Fixed tests regarding default permissions on CalDAV collections 2014-06-25 10:14:28 -04:00
Ludovic Marcotte 3523dc489f Fix for bug #2825 2014-06-23 12:19:02 -04:00
Alexandre Cloutier 5b3de04fc1 Fix error from the last commit 2014-06-20 13:27:04 -04:00
Alexandre Cloutier eb3cc8916d The multiColumns view 2014-06-20 13:16:55 -04:00
Ludovic Marcotte 9fa0b42e19 Ignore SCHEDULE-AGENT for Thunderbird/Lightning 2014-06-20 11:25:02 -04:00
Ludovic Marcotte e048346cb7 Include, in our private NS, all ACLs defined on a calendar collectiob 2014-06-19 16:08:15 -04:00
Ludovic Marcotte 333b561a59 Applied patch from bug #2736 2014-06-16 15:30:26 -04:00
Ludovic Marcotte 50c0b49a6f Fix for bug #2813 2014-06-16 11:00:39 -04:00
Francis Lachapelle 8202d0588f Add documentation for SOGoSubscriptionFolderFormat
Fixes #2799
2014-06-16 10:20:34 -04:00
Francis Lachapelle d9b578b869 Wait 20 seconds before deleting temporary forms
Those temporary forms are created to download attachments.
Fixes #2811
2014-06-16 09:52:29 -04:00
Francis Lachapelle 5bb64916c6 Fix regression when attaching files to a reply 2014-06-12 09:09:08 -04:00
Ludovic Marcotte e7ddfb0546 Fix for bug #2805 2014-06-11 12:55:51 -04:00
Alexandre Cloutier 0e182f8436 Update SOGoAppointmentFolder.m
Fix the status filtering from 2 to 1
2014-06-11 11:25:17 -04:00
Alexandre Cloutier de2ee2322a Change the NSString with NSNumber and add some JavaScript 2014-06-11 10:24:04 -04:00
Ludovic Marcotte ce07695a55 Make sure to keep the / path prefix 2014-06-10 16:35:36 -04:00
Alexandre Cloutier 43ac57b671 display the number of active tasks in calendar view 2014-06-10 16:18:12 -04:00
Francis Lachapelle 7f7e3cb06a Fix folder name of new subscriptions
Fixes #2801
2014-06-10 14:48:25 -04:00
Francis Lachapelle 6b3a3f858b Update prototype.js to version 1.7.2 2014-06-10 14:32:35 -04:00
Ludovic Marcotte 0133bb3b6b Correctly update the cache on folder update/delete ops. 2014-06-10 13:07:14 -04:00
Ludovic Marcotte 91e3e19e40 Added the Ping ActiveSync command 2014-06-10 11:04:27 -04:00
Ludovic Marcotte 19a95a1818 Applied fix from #2809 2014-06-10 08:58:44 -04:00
Ludovic Marcotte 1292c191ec Make sure we don't have '-' in table names. 2014-06-10 08:46:35 -04:00
Ludovic Marcotte 77dad178d1 Make sure we don't have '-' in table names. 2014-06-10 08:45:35 -04:00
Ludovic Marcotte f48839bf55 Added (slightly modified) patch from #2806 2014-06-09 09:34:00 -04:00
Ludovic Marcotte 0f04be2bcb Added patch from #2808 2014-06-09 09:25:06 -04:00
Ludovic Marcotte 3f8bbe8c60 Applied patch from #2807 2014-06-09 09:14:30 -04:00
Francis Lachapelle 6b6ec8a2ae Update ChangeLog 2014-06-05 13:35:17 -04:00
Francis Lachapelle ad30df26af Preparation for release 2.2.5 2014-06-05 13:34:40 -04:00
Francis Lachapelle 6e56f46f86 Update Dutch, Finnish, German, Polish translations 2014-06-05 13:29:10 -04:00
Francis Lachapelle fe38518a36 Minor syntax and comments improvements 2014-06-05 12:14:34 -04:00
Francis Lachapelle e118a72eab Add meta tag to tell IE to use the highest mode 2014-06-05 10:32:13 -04:00
Ludovic Marcotte 72bec939d6 Fixed text/plain reencoding issues for Outlook 2014-06-04 15:56:22 -04:00
Ludovic Marcotte ba258ca806 Fixed repetitive events issues 2014-06-04 15:23:41 -04:00
Ludovic Marcotte 0c2e2f28f7 Don't try to add attachments during reply operations 2014-05-30 13:53:20 -04:00
Ludovic Marcotte f0dfe37a55 Avoid crashing when forwarding mails with no Subject header 2014-05-30 08:41:42 -04:00
Francis Lachapelle dace1439df Update ChangeLog 2014-05-29 11:16:59 -04:00
Francis Lachapelle d91b37413f Preparation for release 2.2.4 2014-05-29 11:16:40 -04:00
Francis Lachapelle bd916f06eb Update ChangeLog 2014-05-29 11:15:13 -04:00
Francis Lachapelle ecbe0858f7 Update translations 2014-05-29 11:14:23 -04:00
Francis Lachapelle 24095a464c Update CKEditor to version 4.4.1 2014-05-29 10:50:48 -04:00
Francis Lachapelle 9ce3b8ff8f Merge pull request #40 from dekkers/fix-unit-test
Fix unit test with gnustep 1.24
2014-05-29 10:32:30 -04:00
Jeroen Dekkers efc33d8174 Fix unit test by also checking for the different gnustep 1.24 ordering of elements 2014-05-29 15:53:13 +02:00
Jeroen Dekkers 93971dc434 Add $(TEST_TOOL) as dependency of make check 2014-05-29 15:35:46 +02:00
Francis Lachapelle fac9520f64 Fix update of participation status via CalDAV
Fixes #2786
2014-05-28 11:39:25 -04:00
Francis Lachapelle 9eb075cc3f Rename "Archive" to "Export" in Webmail
Fixes #2758
2014-05-28 11:24:10 -04:00
Francis Lachapelle c5922b07aa Restore options when editing a draft
Fixes #193
2014-05-28 11:21:11 -04:00
Ludovic Marcotte 51e07fc306 Fix over previous commit 2014-05-27 15:33:39 -04:00
Ludovic Marcotte d35c52bb38 Fix for bug #2688 2014-05-27 14:44:57 -04:00
Ludovic Marcotte 6bab4c94f2 Added an empty stub for the Provision command 2014-05-27 09:42:02 -04:00
Ludovic Marcotte c31429a5d5 Also include the BS character in non-safe ones. 2014-05-27 08:45:00 -04:00
Ludovic Marcotte 04bb88a470 Updated NEWS file regarding pull request #39 2014-05-26 13:25:39 -04:00
extrafu c79cd750d8 Merge pull request #39 from alexcloutier/fix/publicFolder_ConfigNaming
Added new SOGo configurable variable
2014-05-26 13:24:50 -04:00
Ludovic Marcotte 6fc81e61ec Fixed documentation: NGImap4ConnectionGroupPrefix -> NGImap4ConnectionGroupIdPrefix 2014-05-23 11:30:28 -04:00
Francis Lachapelle d9ad286650 Fix newline in signature of attachment
Fixes #2787
2014-05-23 11:23:02 -04:00
Alexandre Cloutier dd57d56cf9 remove crufts and applies comments 2014-05-23 10:15:21 -04:00
Ludovic Marcotte ab7780d617 Prevent a crash when someone tries to access /SOGo/Microsoft-Server-ActiveSync directly 2014-05-22 14:39:58 -04:00
Ludovic Marcotte cb9332f240 Updated NEWS file regarding #2775 2014-05-22 10:26:58 -04:00
Ludovic Marcotte 7b60ad4797 Added patch from #2775 2014-05-22 09:20:05 -04:00
Alexandre Cloutier 3261c21549 fix case where the displayed name for the subscribed folders is duplicated 2014-05-21 14:26:08 -04:00
Francis Lachapelle 364b409501 FIx mail templates for Brazilian Portuguese
Fixes #2738
2014-05-21 08:44:35 -04:00
Alexandre Cloutier 064565e1a9 Added new SOGo configurable variable for which you can change the default display when adding a shared calendar or a shared addressBook 2014-05-20 17:05:13 -04:00
Alexandre Cloutier f92d280fbb remove unneeded condition to fix navigation in print preview 2014-05-20 11:24:27 -04:00
Francis Lachapelle ea2bce706c Update NEWS file 2014-05-16 21:15:38 -04:00
Francis Lachapelle d74afaf295 Update French translation 2014-05-16 21:15:28 -04:00
Francis Lachapelle 5e7beb3345 Remove unused localizable strings 2014-05-16 21:14:59 -04:00
Francis Lachapelle 2df5887eec Merge pull request #36 from alexcloutier/feat/calendarPrint
New print option in Calendar module
2014-05-16 16:56:51 -04:00
Francis Lachapelle 3d1bdf1a09 Update French translation 2014-05-16 16:52:44 -04:00
Francis Lachapelle 5de1343506 Remove unused localizable string 2014-05-16 16:44:25 -04:00
Francis Lachapelle 1eaa3f3891 Update NEWS file 2014-05-16 16:34:17 -04:00
Francis Lachapelle c2d3a827bd Merge branch 'alexcloutier-feat/searchCapabilities' 2014-05-16 16:30:24 -04:00
Francis Lachapelle 6b72a8d126 Merge branch 'feat/searchCapabilities' 2014-05-16 16:28:43 -04:00
Francis Lachapelle 819d0641b7 Remove common localizable strings from UI/Contacts 2014-05-16 16:19:40 -04:00
Francis Lachapelle 5d7f4ba6c6 Restore localizable string
To avoid new translation ..
2014-05-16 15:59:52 -04:00
Francis Lachapelle 34a7e28858 Rename 'Properties' button of contacts to 'Edit' 2014-05-16 15:58:34 -04:00
Francis Lachapelle 87b010c700 Indentation 2014-05-16 15:57:33 -04:00
Francis Lachapelle a44b183b7e Merge pull request #38 from alexcloutier/fix/link_address
New AddressBook properties popup window
2014-05-16 15:33:23 -04:00
Alexandre Cloutier b488721f83 Reverse loop to make sure no objects is skipped 2014-05-16 15:00:47 -04:00
Alexandre Cloutier 8a03f3bd63 remove start date in tasks 2014-05-16 14:36:51 -04:00
Alexandre Cloutier f8c8abc989 Function isPublicAccessEnabled was missing 2014-05-16 13:50:52 -04:00
Alexandre Cloutier db8d9bb16c Repair broken logic 2014-05-16 11:29:37 -04:00
Alexandre Cloutier 2794425a3f added last changes from cgx 2014-05-16 10:04:37 -04:00
Ludovic Marcotte 2f7979c796 Fix for bug #2709 2014-05-16 08:33:06 -04:00
Ludovic Marcotte c426afd7f2 New cache subsystem for ActiveSync. 2014-05-15 15:03:24 -04:00
Alexandre Cloutier 07445eb069 Created a window for address book properties and add the cardDav URL 2014-05-15 14:45:53 -04:00
Ludovic Marcotte 93bf98c326 Fixed copyright 2014-05-15 14:45:32 -04:00
Ludovic Marcotte c08c3e27d5 Improved modseq code 2014-05-15 14:44:53 -04:00
Ludovic Marcotte c8860dc92b Dropped old user-settings for ActiveSync 2014-05-15 14:32:46 -04:00
Ludovic Marcotte 1a1543a380 Updated script to reflect new table names 2014-05-15 14:29:39 -04:00
Ludovic Marcotte d2d5467317 Removed unused fluff in the file. 2014-05-14 10:51:16 -04:00
Ludovic Marcotte 18443de9bf Updated copyright info 2014-05-14 09:58:05 -04:00
Ludovic Marcotte be72456a9a Renamed folder cache creation method 2014-05-14 09:56:10 -04:00
Ludovic Marcotte a54b3e4289 Renamed the default table name from socfs_ to sogo_cache_folder_ 2014-05-14 08:56:35 -04:00
Ludovic Marcotte 7a4feae8b8 Updated code to reflect cache regorg. 2014-05-14 06:56:05 -04:00
Ludovic Marcotte 99d49b9bd9 Updated code to use the category 2014-05-13 21:14:57 -04:00
Ludovic Marcotte 5f9fb4e1c4 Big refactor for new caching mechanism. 2014-05-13 21:06:59 -04:00
Ludovic Marcotte ef2188962a Renamed cache files for generalization.
The upcoming commit will rename the content.
2014-05-13 19:58:19 -04:00
Ludovic Marcotte 2922f15ca7 More rename 2014-05-13 18:03:37 -04:00
Ludovic Marcotte 41e6fb89d3 Renamed constants in preparation for the big cache cleanup 2014-05-13 17:54:02 -04:00
Ludovic Marcotte c4a3843695 Removed unused configuration parameters 2014-05-13 13:52:20 -04:00
Alexandre Cloutier bf67b6435f applies comments 2014-05-13 13:21:18 -04:00
Alexandre Cloutier b5319446db display and printing modification 2014-05-13 10:36:26 -04:00
Francis Lachapelle d58184af15 Fix synchronization of seen/unseen status of msgs 2014-05-13 10:15:02 -04:00
Francis Lachapelle fbc6856fd5 Improve contextual menu in events list 2014-05-12 16:06:49 -04:00
Francis Lachapelle 5c41915080 Fix focus of popup windows with FF on Windows 2014-05-12 15:25:50 -04:00
Francis Lachapelle 698524b39f Fix synchronization of seen/unseen status of msgs
Fixes #2715
2014-05-09 17:28:02 -04:00
Ludovic Marcotte 1f5a2a4c62 Fixed IMAP copy/move op between subfolder in different accounts 2014-05-09 15:40:57 -04:00
Alexandre Cloutier fc3cfa5484 applied comments 2014-05-08 19:14:39 -04:00
Alexandre Cloutier 593b44ed01 forgotten code 2014-05-08 17:53:20 -04:00
Alexandre Cloutier b2ed7e3f6b search capabilites 2014-05-08 17:17:05 -04:00
Ludovic Marcotte bc2b41f383 Fixed unit test. 2014-05-08 09:13:37 -04:00
Ludovic Marcotte 7d7961ffcf Fix for bug #2492 2014-05-02 13:35:21 -04:00
Francis Lachapelle 0b9afec635 Fix saving preferences with no Sieve requirements
Fixes #2746
2014-05-01 14:07:25 -04:00
Francis Lachapelle 4e42a6a689 Don't limit Sieve script to 8KB
Fixes #2745
2014-04-30 12:36:51 -04:00
Alexandre Cloutier da8febf138 Printing display appear on one page only, fix issues with browsers 2014-04-29 15:42:50 -04:00
Francis Lachapelle 8c563c2922 Fix possible exception when retrieving reminder
Fixes #2744
2014-04-29 14:26:18 -04:00
Alexandre Cloutier fa5cf55367 Update GNUmakefile 2014-04-28 15:42:17 -04:00
Alexandre Cloutier e43b704858 Update UIxCalViewPrint.js 2014-04-28 15:32:47 -04:00
Alexandre Cloutier 44a4baca7f fix the comments in the headers 2014-04-28 15:30:32 -04:00
Alexandre Cloutier 78447d81ae Code refactoring and retouch 2014-04-28 13:54:29 -04:00
Alexandre Cloutier 9dc07fccc0 It is now possible to print the calendar as a list, dayView or weekView 2014-04-25 18:04:24 -04:00
Ludovic Marcotte ba7b65cf7b Fix for bug #2733 2014-04-24 07:59:07 -04:00
Francis Lachapelle 66bfbeaac1 MailEditor: fix text conversion with HTML entities 2014-04-23 10:55:04 -04:00
Ludovic Marcotte 619cb2c0ec Fix for bug #2721 2014-04-23 09:22:20 -04:00
Alexandre Cloutier f9869d19b4 Finished the view, need to display the eventsblock 2014-04-22 17:47:29 -04:00
Alexandre Cloutier 57b747c24a Events list is done. 2014-04-17 17:33:30 -04:00
Alexandre Cloutier 8f6b0f80a7 Creation of the first version of the printing interface 2014-04-14 10:32:08 -04:00
Alexandre Cloutier cb5e6e7ef2 adding button print calendar toolbar, adding template for the print window, ajusting indentation 2014-04-14 10:32:08 -04:00
Jeroen Dekkers b5dc2e264d Link correctly against libraries used
Link the mapistore backend against libgnustep-base, libobjc,
libNGObjWeb. Link the SAML code against gobject-2.0.
2014-04-12 20:32:20 +02:00
Francis Lachapelle 49363cfe36 Update datepicker to latest version
From https://github.com/eternicode/bootstrap-datepicker/
2014-04-11 21:37:55 -04:00
Francis Lachapelle c345fc2b8d Fix display of category of events
Fixes #2703
2014-04-10 12:25:42 -04:00
Francis Lachapelle d200629b01 Fix CSS in contact editor and preferences module 2014-04-10 10:05:28 -04:00
Francis Lachapelle cfc1ac6b3b Add missing localizable string 2014-04-10 10:02:51 -04:00
Ludovic Marcotte e66ceaad07 Fixed gcc warnings and added some rationale around yesterday's fix 2014-04-10 09:40:25 -04:00
Ludovic Marcotte f370ac114a Now include message/rfc822 parts as attachments when forwarding mails 2014-04-10 09:24:43 -04:00
Ludovic Marcotte 75ee6b4806 Fixed once more true/false errors 2014-04-10 08:44:44 -04:00
Ludovic Marcotte 0961fbbab3 Properly escape attendee names in case they contain HTML entities 2014-04-10 06:59:18 -04:00
Ludovic Marcotte 0d1c39ca71 Added new configuration parameter to limit the window size 2014-04-09 20:12:19 -04:00
Ludovic Marcotte 5739356f88 Fix tests to handle list-component 2014-04-09 19:27:38 -04:00
Ludovic Marcotte 33467093c1 Fix for #2695 2014-04-09 18:03:33 -04:00
Ludovic Marcotte 96ece873ca Fix for bug #2654 2014-04-09 14:49:31 -04:00
Ludovic Marcotte 8909775cf6 Fix for #2680 2014-04-09 12:19:23 -04:00
Ludovic Marcotte 0ba59de88e Fixed formatting/warnings in previous commit. 2014-04-09 11:09:13 -04:00
extrafu 4fbe937f6d Merge pull request #22 from alexcloutier/fix/1046
BugFix #1046; Whenever the sieve server is unavailable an error message will appear
2014-04-09 11:01:19 -04:00
Ludovic Marcotte ab80e87a3f Applied patches from #2700 2014-04-09 10:57:56 -04:00
Alexandre Cloutier 068eb921aa rebase and fix comments made by extrafu 2014-04-09 10:48:47 -04:00
Alexandre Cloutier 5c13fade22 Fix merge 2014-04-09 10:35:10 -04:00
Ludovic Marcotte 371e5ead08 Updated the doc in prepration for the release 2014-04-09 10:34:48 -04:00
Alexandre Cloutier c5e6ccf332 Fix function sieveClient and the way the iVar Client is handled. Change behaviour of saveMailAccounts()so sogo wont crash if the user tries to resave his preferences after a connection error. 2014-04-09 10:31:34 -04:00
Alexandre Cloutier ec9d48c3a9 Change the function name getClient to sieveClient 2014-04-09 10:29:23 -04:00
Alexandre Cloutier 877082f042 Added missing functions getClient and IsSieveServerConnected and the changes that comes with it 2014-04-09 10:24:35 -04:00
Alexandre Cloutier 342b68fd44 Erase the merging conflicts writings 2014-04-09 10:23:43 -04:00
Alexandre Cloutier e24c22e3dc BugFix #1046; Whenever the sieve server is unavailable an error message will appear. 2014-04-09 10:23:43 -04:00
Ludovic Marcotte 7997448d41 Fixed issus in previous commits 2014-04-09 06:33:02 -04:00
Ludovic Marcotte 3629670fca Fix for #2489 2014-04-08 15:35:36 -04:00
Alexandre Cloutier c250b9a6d4 Fix deleting calendar
Added a "/" inside the function: deletePersonalCalendarConfirm().
2014-04-08 15:32:13 -04:00
extrafu afa564a6a6 Merge pull request #23 from alexcloutier/fix/1636
BugFix#1636; fix the issue where the user could add any birthday for his contact.
2014-04-08 13:17:54 -04:00
Alexandre Cloutier d9b99f536c Erased strings no longer used 2014-04-08 12:48:59 -04:00
Alexandre Cloutier 5699e5e1b4 Add datepicker for contact birthday 2014-04-08 12:12:30 -04:00
Francis Lachapelle e869406081 Minor CSS improvement in mail headers 2014-04-08 11:51:47 -04:00
Ludovic Marcotte 3e221253ad Fix for feature #1496 2014-04-08 11:19:53 -04:00
Alexandre Cloutier 446ef3467a Fix typo 2014-04-08 09:14:00 -04:00
extrafu bf64076b87 Merge pull request #29 from alexcloutier/feat/1496
New feature : 1496

Don't forget to fix the typo.
2014-04-07 19:42:31 -04:00
Alexandre Cloutier c9cbcf2566 applied Morgan's law 2014-04-07 16:40:44 -04:00
extrafu 4fe0358581 Merge pull request #20 from alexcloutier/fix/2616
bugFix #0002616 : change the behavior of ApplicationBaseURL.
2014-04-07 15:44:07 -04:00
Francis Lachapelle 534e4e3d4d Fix text nodes of message with HTML entitites 2014-04-07 11:21:52 -04:00
Alexandre Cloutier 09bcd2aee2 fix code 2014-04-07 10:59:38 -04:00
extrafu 526e21e837 Merge pull request #32 from dekkers/cleanup-generated-files
Delete generated source files when running "make clean".
2014-04-06 17:34:22 -04:00
Jeroen Dekkers c80e222210 Delete generated source files when running "make clean". 2014-04-06 22:44:50 +02:00
Francis Lachapelle 6e60bbb553 Fix saved HTML content of draft uploading a file 2014-04-04 20:20:32 -04:00
Ludovic Marcotte 846212336a Make use of a local pool to avoid over-memory usage 2014-04-04 16:53:58 -04:00
Alexandre Cloutier 349f4d824a Fix function sieveClient and the way the iVar Client is handled. Change behaviour of saveMailAccounts()so sogo wont crash if the user tries to resave his preferences after a connection error. 2014-04-04 15:04:37 -04:00
Alexandre Cloutier 2f565d2ec9 fix variable name for UIxFilterEditor.js
FolderEncoding to sieveFolderEncoding
2014-04-04 14:56:14 -04:00
extrafu eb7cabac71 Merge pull request #19 from alexcloutier/fix/2622
BugFix #0002622: The server Dovecot use by default an UTF-8 and by doing...
2014-04-04 09:21:49 -04:00
Ludovic Marcotte 2ff4498983 Fixed previous commit 2014-04-04 08:44:50 -04:00
Ludovic Marcotte 3eec753b73 Slightly improved previous pull request merge. 2014-04-04 08:39:13 -04:00
extrafu 7b0ffacff0 Merge pull request #24 from alexcloutier/fix/2612
It is now possible to see the version on the general page of the preferences window
2014-04-04 08:33:39 -04:00
Alexandre Cloutier f999c87d4d added traduction in localstring french, added some specification in function sogoVersion 2014-04-03 17:09:00 -04:00
Francis Lachapelle 378f2b5876 Preparation for release 2.2.3 2014-04-03 10:05:43 -04:00
Francis Lachapelle d091b3d7cd Update ChangeLog 2014-04-03 10:01:40 -04:00
Francis Lachapelle 370e1e6d26 Update CKEditor to version 4.3.4 2014-04-03 10:01:01 -04:00
Francis Lachapelle e2b3d5a7ff Update translations 2014-04-03 09:54:27 -04:00
Ludovic Marcotte 078b88a396 Fix for #2686 2014-04-02 18:14:17 -04:00
Francis Lachapelle ee09b80fc3 Simplify [UIxContactEditor addressBookDisplayName]
We were trying to translate the default address book name to the user's
language, but the method [SOGoContactFolders defaultFolderName] is
already returning a translated string, making the whole logic useless.
2014-04-02 10:15:59 -04:00
Francis Lachapelle 99d9615c92 Update NEWS file 2014-04-02 10:09:09 -04:00
Francis Lachapelle 79c3fa8ad2 Merge pull request #30 from dekkers/remove-executable-permission-from-jquery
Remove executable permission from jQuery modules
2014-04-01 11:42:07 -04:00
Francis Lachapelle fd07112113 Merge pull request #31 from opensaucesystems/patch-1
Fix email validation regexp to allow gTLDs
2014-04-01 08:18:51 -04:00
opensaucesystems ce5d591d1d Fix email validation regexp to allow gTLDs
New generic TLDs can be as long as 13 characters.
2014-04-01 12:35:18 +01:00
Jeroen Dekkers e603742d71 Remove executable permission from jQuery 2014-03-29 17:11:05 +01:00
Ludovic Marcotte 585d224a15 Fixed the AS bundle common makefile 2014-03-28 16:44:33 -04:00
Ludovic Marcotte 6a39b48a37 Fix for bug #2691 2014-03-28 15:22:45 -04:00
Ludovic Marcotte 633723a470 Fix for bug #2681 2014-03-28 14:44:00 -04:00
Ludovic Marcotte ba32b95308 Fixed the ActiveSync issue marking mails as read when downloading them 2014-03-28 14:18:48 -04:00
Alexandre Cloutier 03d5975be3 Changed strings in french and change the instanciation of dictionary(addressBooksIDWithDisplayName) to release it manually 2014-03-28 10:28:33 -04:00
Alexandre Cloutier 1da1764aae The collected address book will be created only if the user select it in the preferences. Fix labels. 2014-03-27 15:27:48 -04:00
Francis Lachapelle 6e4f776d4b Fix detection of IMAP flags support in JavaScript
Fixes #2664
2014-03-27 12:06:24 -04:00
Alexandre Cloutier 365e271a84 Correct typo 2014-03-25 15:44:28 -04:00
Alexandre Cloutier bce701208a Added the modifications specified by extrafu 2014-03-25 14:53:42 -04:00
Alexandre Cloutier b16911edc1 Modified the displayed name of SOGo version and added the label in the .lproj 2014-03-24 13:55:52 -04:00
Alexandre Cloutier 76307cfaaf New feature : 1496; Unknown outgoing email addresses can now be automatically be added to your address books. 2014-03-24 13:41:57 -04:00
Francis Lachapelle e5fb7dc7b8 Fix JavaScript exception in Contacts module
Fixed calling unescapeHTML on null variables. Also fixed errors on IE7
(and possibly other versions).
2014-03-24 12:43:34 -04:00
Francis Lachapelle 50e7ea7188 Fix possible exception when retrieving reminder
Fixes #2678
2014-03-24 07:42:57 -04:00
Ludovic Marcotte 89e61f6d5d Fixed SOPE include path 2014-03-21 15:37:14 -04:00
Francis Lachapelle 85f4af56e9 Update ChangeLog 2014-03-21 15:22:28 -04:00
Francis Lachapelle 04bdb22b00 Preparation for release 2.2.2 2014-03-21 15:20:45 -04:00
Ludovic Marcotte 874b1d9eba Added NEWS entry for previous commit 2014-03-21 14:08:53 -04:00
Ludovic Marcotte b143688419 Fix for bug #2669 2014-03-21 13:55:59 -04:00
Francis Lachapelle 5f3d2d988e Update translations 2014-03-21 13:51:36 -04:00
Francis Lachapelle 93f1540c17 Update jQuery File Upload to version 9.5.7 2014-03-21 13:47:40 -04:00
Francis Lachapelle 877e44c6d2 Update CKEditor to version 4.3.3 2014-03-21 13:32:28 -04:00
Ludovic Marcotte 4ca3d351e0 Fixed previous commit 2014-03-21 09:05:52 -04:00
Ludovic Marcotte 19b6704955 Only touch text/plain and text/html parts during Outlook sanitization 2014-03-21 09:02:39 -04:00
Francis Lachapelle 64787555ff Fix classification icon of events
Fixes #2664
2014-03-20 22:14:45 -04:00
Francis Lachapelle 27ffcf240f Fix handling of accents when filtering contacts
Fixes #2656
2014-03-20 15:29:32 -04:00
Francis Lachapelle 893d75bd5f Update Transifex configuration
Added new SoObjects/Mailer resource.
2014-03-20 14:18:03 -04:00
Ludovic Marcotte b0f26f1dcc Updated the doc regarding the isAddressBook parameter in sources. 2014-03-20 09:57:19 -04:00
Ludovic Marcotte a196ed210e Removed old values. 2014-03-19 17:04:04 -04:00
Ludovic Marcotte 1c28a4b4d2 Fixed translations for "OtherUsersFolderName" and "SharedFoldersName" (#2657) 2014-03-19 17:02:10 -04:00
Ludovic Marcotte fc56493b78 Added sanitization support for Outlook/ActiveSync 2014-03-19 11:44:36 -04:00
Ludovic Marcotte 3a33010918 Updated NEWS file regarding previous commit 2014-03-19 11:33:00 -04:00
Ludovic Marcotte 83bccda551 Avoid creating duplicates in Outlook on MoveItems (#2650) 2014-03-19 11:31:54 -04:00
Ludovic Marcotte 35d71f6150 Added deviceType capabilities to the code 2014-03-19 11:30:18 -04:00
Ludovic Marcotte e92a145325 Updated NEWS file regarding previous commit 2014-03-19 08:27:36 -04:00
Ludovic Marcotte c3062284e3 Disabled provisionning for now, as we don't support it. 2014-03-18 19:06:41 -04:00
Skruppy 1c3f1af662 ModulesConstraints tests all values of a multi-valued attributes 2014-03-15 15:10:26 +01:00
Francis Lachapelle e2f192b793 Fix display of company/department of cards
Fixes #2662
2014-03-14 15:45:12 -04:00
Francis Lachapelle b8f239bf34 Fix construction of mail folders tree 2014-03-14 15:34:43 -04:00
Francis Lachapelle e968be8024 Bump version to 2.2.2 2014-03-14 13:02:27 -04:00
Francis Lachapelle 3c3bebeee3 Fix resource conflict check when creating event
Fixes #2541
2014-03-14 09:23:55 -04:00
Francis Lachapelle 26e9defdbd Update French translation 2014-03-14 09:17:52 -04:00
Francis Lachapelle 8742f28c29 Fix decoding of HTML entitities in reminder alert
Fixes #2659
2014-03-13 08:44:47 -04:00
Francis Lachapelle bd577fd513 Fix unseen count of folders beginning with a digit
Fixes #2652
2014-03-13 08:41:42 -04:00
Francis Lachapelle c8550c8a4a Fix copy/move to folder with numerical prefix
Fixes #2658
2014-03-12 16:35:22 -04:00
Ludovic Marcotte 1bdf88fb67 Don't try to delete an already non-existant object (#2653) 2014-03-11 13:21:05 -04:00
Alexandre Cloutier d108777e89 Display the version at the top of the general tap 2014-03-11 10:25:01 -04:00
Francis Lachapelle 167a06e3e9 Merge pull request #25 from dani/master
Disable file paste support in mail editor
Fixes #2641
2014-03-11 10:16:52 -04:00
Daniel B. af68f10115 Fix #2641
Disabling the pasteZone support (which only works in Chrome or Opera anyway) fixes the problem of unwanted PNG attachment when you paste the recipient list from Excel
2014-03-11 09:23:13 +01:00
Francis Lachapelle cbd22762c3 Fix possible exception when retrieving reminder
Fixes #2647
Fixes #2648
2014-03-10 14:47:01 -04:00
Alexandre Cloutier 8cc352fb28 It is now possible to see the version on the general page of the preferences window 2014-03-10 14:45:10 -04:00
Alexandre Cloutier 0d69a476bc add specific date for limiting the user to today's for his contact birthday 2014-03-10 12:16:12 -04:00
Alexandre Cloutier cee1e529f8 BugFix#1636; fix the issue where the user could add anything for the birthday of his contacts 2014-03-10 12:05:01 -04:00
Alexandre Cloutier 3a681bd5a5 Change the function name getClient to sieveClient 2014-03-10 10:53:44 -04:00
Alexandre Cloutier f5faa60814 Added missing functions getClient and IsSieveServerConnected and the changes that comes with it 2014-03-10 10:33:27 -04:00
Alexandre Cloutier f8939bfb3e Change the variable name for sieveFolderEncoding instead of folderEncoding 2014-03-10 10:07:47 -04:00
Ludovic Marcotte 78636f0396 Added default value for WOListenQueueSize 2014-03-09 15:58:11 -04:00
Ludovic Marcotte 037c2d3ddf Added documentation for WOListenQueueSize 2014-03-09 15:56:38 -04:00
Francis Lachapelle 41fe9195f2 Update ChangeLog 2014-03-07 14:00:51 -05:00
Francis Lachapelle 23789b48bc Update Dutch translation 2014-03-07 14:00:08 -05:00
Francis Lachapelle 142296f71e Preparation for release 2.2.1 2014-03-07 10:53:17 -05:00
Francis Lachapelle 3bae2387d4 Fix contact autocompletion when UID is a digit 2014-03-06 22:13:17 -05:00
Francis Lachapelle 6cecca6c4f Fix CSS id for string prefixed with a digit
When encoding a string as a CSS identifier, we must add an underscore if
the strings starts with a digit.
2014-03-06 21:32:36 -05:00
Francis Lachapelle 28b1938bd9 Show folder name in dialog when renaming folder 2014-03-06 21:25:48 -05:00
Alexandre Cloutier f4d189ffc8 Erase the merging conflicts writings 2014-03-06 15:20:41 -05:00
Alexandre Cloutier 1b9ac03e94 BugFix #1046; Whenever the sieve server is unavailable an error message will appear. 2014-03-06 14:57:53 -05:00
Alexandre Cloutier 6ad87052ba bugFix #0002616 : change the behavior of ApplicationBaseURL. Now the object return a standard path(without a slash at the end of the path) That means every string added the URL ApplicationBaseURL must start with a Slash. 2014-03-06 14:47:54 -05:00
Alexandre Cloutier e7a16cba0d BugFix #0002622: The server Dovecot use by default an UTF-8 and by doing so it cause a wrong re-encoding in UTF-7 when reaching the sieve server (knowing that the foldername in sieve are encoded in UTF-7). Since it is not the case with a Cyrus server, I created a new variable available in the sogo.conf that let you specified the type of encoding you need. By default the encoding is set to UTF-7. ex : SOGoFolderEncoding = 'UTF-7' 2014-03-06 14:33:31 -05:00
Ludovic Marcotte 31ace947cb Fixed race condition when syncing huge amount of deleted messages using AS 2014-03-06 14:16:08 -05:00
Ludovic Marcotte 0cea36df2e Updated NEWS regarding previous commit 2014-03-06 14:10:47 -05:00
Ludovic Marcotte afd7452323 Fixed returned date format and fixing missing 'name part' in address 2014-03-06 14:05:59 -05:00
Francis Lachapelle e4a21bcef5 Webmail: fix encoding of subfolder name
Fixes #2637
2014-03-06 09:50:53 -05:00
Francis Lachapelle 0c99323db3 Fix possible exception when retrieving reminder
Fixes #2624
2014-03-05 13:42:38 -05:00
Ludovic Marcotte da208d5b4a Updated NEWS regarding previous commit 2014-03-05 09:09:33 -05:00
Ludovic Marcotte 158af71152 Fix for bug #2609 2014-03-05 09:07:39 -05:00
Francis Lachapelle 163bce39b5 Fix list sorting of events by calendar name
Fixes #2629
2014-03-04 22:03:28 -05:00
Francis Lachapelle 02c72fee6a Fix unsubscription when renaming an IMAP folder
Fixes #2630
2014-03-04 21:32:57 -05:00
Francis Lachapelle 8bef84bded Update translations 2014-03-04 09:23:17 -05:00
Francis Lachapelle 8db3b22eb9 Bump version to 2.2.0a 2014-03-03 22:08:29 -05:00
Francis Lachapelle 1aabcf04b5 Fix sogo-tool operations on Sieve script
Fixes #2617
2014-03-03 22:07:24 -05:00
Francis Lachapelle c6b227160c Update ChangeLog 2014-02-24 16:53:46 -05:00
Francis Lachapelle 5f2920db9b Update translations 2014-02-24 16:49:16 -05:00
Francis Lachapelle 761a7e2be1 Update Microsoft Outlook Configuration guide 2014-02-24 16:42:59 -05:00
Francis Lachapelle 9ed1d57ec2 Fix auto-acceptation of resources as attendees
Fixes #2541
2014-02-24 16:07:55 -05:00
Francis Lachapelle 2b6428efd0 Always check resource conflict for new events
Fixes #2541
2014-02-24 07:57:11 -05:00
Francis Lachapelle be36e0ceea Fix view changes in calendar module
Fixes #2613
2014-02-21 20:37:44 -05:00
Francis Lachapelle 070d3dd825 Extract node value with 'textValue' 2014-02-21 15:48:41 -05:00
Francis Lachapelle 96f2552b45 Preparation for release 2.2.0 2014-02-19 21:57:01 -05:00
Francis Lachapelle 2948920e0b Improve display of contact
Fixes #2350
2014-02-18 16:15:06 -05:00
Francis Lachapelle 212d7149ed Fix display of a contact's birthday
Fixes #2503
2014-02-18 10:13:34 -05:00
Ludovic Marcotte 668c7e8b49 Correctly handle email invitations as attendee/organizer 2014-02-17 16:08:29 -05:00
Ludovic Marcotte 9851c32a1e Fixed the handling of organizers 2014-02-17 15:49:22 -05:00
Francis Lachapelle e7f27427c8 Add missing import in UIxPreferences.m 2014-02-17 15:42:55 -05:00
Francis Lachapelle f0a29d3ca2 Fix debian dependencies for sogo-activesync 2014-02-17 15:05:31 -05:00
Ludovic Marcotte ec0a5ac4bf Properly handle event updates/pull when we are or not an attendee/organizer 2014-02-17 11:30:41 -05:00
Ludovic Marcotte 4ca8b9d0aa Copyright updates 2014-02-17 11:30:00 -05:00
Ludovic Marcotte d560d0e470 Always return a response avoiding iOS crashes on no-changes 2014-02-17 11:28:06 -05:00
Francis Lachapelle 401320e08b Contact: fix display of urls 2014-02-17 11:12:09 -05:00
Ludovic Marcotte 8083b41092 Added the context everywhere 2014-02-17 10:01:44 -05:00
Ludovic Marcotte 9218c7f253 Added missing recurrences support, improved MeetingResponse, added WindowSize support.
Also more bug fixes regarding event invitations, and ServerId handling for
calendar objects.
2014-02-17 08:46:05 -05:00
Ludovic Marcotte 4d1fdb33f5 Deleted wrongly added file 2014-02-17 08:42:35 -05:00
Ludovic Marcotte 2356562778 Added method to get synctag starting from an other one.
We also no longer fetch vanished items of modseq == 0
2014-02-17 08:41:12 -05:00
Ludovic Marcotte c686e3294d Added method to sanitize calendar "ServerId" 2014-02-17 08:39:48 -05:00
Ludovic Marcotte 1ff91f7b59 Added -activeSyncRepresentation to NSData objects 2014-02-17 08:38:34 -05:00
Francis Lachapelle b34c6324cd Fix custom mail labels in Sieve filter editor 2014-02-14 21:32:33 -05:00
Ludovic Marcotte 75c8362df8 Avoid over-using LDAP connections when decomposing groups 2014-02-14 16:39:26 -05:00
Ludovic Marcotte ae07de5f6f Updated the Active Sync documentation 2014-02-14 13:46:21 -05:00
Francis Lachapelle 06d2364ea2 Improve display of toolboor menus with checkmarks 2014-02-13 12:56:24 -05:00
Francis Lachapelle 29e081ec56 Add more parameters examples to sogo.conf 2014-02-13 12:53:07 -05:00
Francis Lachapelle 113b02fd71 Fix encoding of contact ID in Ajax requests 2014-02-13 12:12:31 -05:00
Francis Lachapelle 35b108e645 Contact: fix display of links 2014-02-13 12:11:25 -05:00
Ludovic Marcotte 70266155d3 Fix double return 2014-02-12 21:55:09 -05:00
Francis Lachapelle fcfd8be771 Improve URL handling in popup of events 2014-02-10 22:05:35 -05:00
Francis Lachapelle b91032db8e Cleanup common English Localizable.strings 2014-02-10 22:05:35 -05:00
Ludovic Marcotte f4874600fe Bumped to v14.1 2014-02-10 20:17:54 -05:00
Ludovic Marcotte b14e99b32a New prefs for intervals, fixed missing events in meeting requests, bumped v14.1 2014-02-10 20:16:43 -05:00
Francis Lachapelle ea4b21e991 Decode HTML entities in JSON of calendar module 2014-02-10 13:49:02 -05:00
Francis Lachapelle 0307b8339a Detect URLs in popup of events 2014-02-10 13:45:51 -05:00
Francis Lachapelle b5f1d3a19a Guide: add SOGoCalendarDefaultReminder paramter 2014-02-10 11:25:38 -05:00
Ludovic Marcotte 8225f76279 Fixed globalobjid so it doesn't contain \n characters! 2014-02-07 16:17:11 -05:00
Francis Lachapelle c94595ea7f Escape HTML in CSS dialogs 2014-02-07 16:12:14 -05:00
Francis Lachapelle 3a5e44e7eb Decode HTML entities in JSON of calendar module 2014-02-07 15:53:39 -05:00
Francis Lachapelle 80a0940765 Escape HTML in JSON of contacts module 2014-02-07 15:52:43 -05:00
Francis Lachapelle 7118bbe0ab Replace '/' by '-' in filenames of attachments
Fixes #2537
2014-02-07 14:00:36 -05:00
Francis Lachapelle eee5beb698 Add message-id header to appointment notification
Fixes #2535
2014-02-07 10:52:06 -05:00
Ludovic Marcotte 3363b253ac Set additional properties on meeting requests 2014-02-07 10:45:09 -05:00
Francis Lachapelle 4070b9222d Rework HTML of appointment notifications
Needed to simplify the HTML so it displays properly in Outlook.

Fixes #2233
2014-02-07 09:59:45 -05:00
Francis Lachapelle 5ea56a6f8a Enlarge the note field of the contact editor 2014-02-06 21:55:28 -05:00
Ludovic Marcotte 379258de59 Pimped the doc for AS support and dropped all references to Funambol. 2014-02-06 21:25:08 -05:00
Ludovic Marcotte 93b3685aa4 Added birthday support 2014-02-06 19:35:23 -05:00
Ludovic Marcotte c4dc4d4eda Fixed compilation warning 2014-02-06 17:59:33 -05:00
Ludovic Marcotte c6d104fac5 Fixed contact sync'ing on Android 2014-02-06 17:57:01 -05:00
Francis Lachapelle ef79c09642 Don't use the HTML editor with Internet Explorer 7 2014-02-06 14:43:05 -05:00
Francis Lachapelle aeb712083a Fix static array retain 2014-02-06 14:37:43 -05:00
Francis Lachapelle 2c678101fc Fix handling of ACLs with multiple groups
Fixes #1854
2014-02-06 14:23:09 -05:00
Ludovic Marcotte b95362f963 Now make use of a NGMimeFileData object to avoid broken SOPE behaviour 2014-02-06 14:05:00 -05:00
Ludovic Marcotte 3175a9169f Mapped lots of contact properties 2014-02-05 20:56:01 -05:00
Ludovic Marcotte 9311f05cc0 Fixed the non-filtering of recurrence exceptions 2014-02-05 17:30:34 -05:00
Francis Lachapelle 78cbcfb560 Update translations 2014-02-05 16:15:30 -05:00
Ludovic Marcotte b8610b3eca Extended GetItemEstimate to GCS collections 2014-02-05 16:12:08 -05:00
Francis Lachapelle 1a7fc2a0e9 Escape HTML in JSON of calendar module
Fixes #2598
2014-02-05 16:06:20 -05:00
Ludovic Marcotte f7a20d0a83 Fixed broken encoding of single-value element 2014-02-05 15:23:09 -05:00
Francis Lachapelle a1cf066828 Update translations 2014-02-05 11:43:25 -05:00
Francis Lachapelle 359b6a99aa Encode HTML entities for inline forwards in text
Fixes #2411
2014-02-05 11:17:22 -05:00
Francis Lachapelle 826537ed01 Fix caching of DN in LDAP source 2014-02-05 09:04:00 -05:00
Ludovic Marcotte 3950e9d4c3 Moved DN cache to SOGoCache 2014-02-04 21:03:11 -05:00
Francis Lachapelle 9885211a5b Replace VARCHAR(1000000) by TEXT field type
Fixes #2516
2014-02-04 17:55:49 -05:00
Francis Lachapelle ef1be5dc5f Improve deleting occurences of recurrent events 2014-02-04 17:55:49 -05:00
Ludovic Marcotte 4e42d5d410 Disabled debugging... 2014-02-04 15:07:23 -05:00
Ludovic Marcotte 31969d162d Properly escape some control chars (and generalized it) 2014-02-04 15:03:02 -05:00
Ludovic Marcotte 2ff3b5ef5f First pass at 'push' support for Ping and Sync 2014-02-04 11:19:33 -05:00
Ludovic Marcotte 7fe48a1555 Fix for bug #2544 2014-02-04 09:02:40 -05:00
Francis Lachapelle fcddeb4224 Visually identify users with no freebusy
Fixes #2565
2014-02-03 15:15:14 -05:00
Francis Lachapelle f1cb87aa02 Convert JS alerts to CSS dialogs in aptmt editor 2014-02-03 12:03:51 -05:00
Francis Lachapelle a6424680cc Respect max bookings of resources in freebusy data
Fixes #2560
2014-02-03 11:56:00 -05:00
Francis Lachapelle b3dc645282 Warn user when dnd failed with resource conflict
Fixes #1613
2014-02-03 11:09:03 -05:00
Francis Lachapelle 2f0419c18a Warn user when overbooking a resource
Fixes #2541
2014-02-03 11:03:23 -05:00
Ludovic Marcotte 9e9407cf30 First pass at event invitations support + few bug fixes. 2014-02-03 10:24:33 -05:00
Ludovic Marcotte d709a1216b Updated NEWS file 2014-02-03 09:54:21 -05:00
Ludovic Marcotte 588352be7d Fix for bug #2587 2014-02-03 09:53:47 -05:00
Ludovic Marcotte a40d7ca342 Updated NEWS file 2014-01-31 15:11:13 -05:00
Ludovic Marcotte e4ce687e29 Update the content when the request is from Active Sync 2014-01-31 15:05:33 -05:00
Ludovic Marcotte bcb0764b19 Fix for bug #2505 2014-01-31 15:04:49 -05:00
Ludovic Marcotte ddd7be4333 Fix for bug #2187 2014-01-31 15:03:40 -05:00
Ludovic Marcotte d9f4a9935a Properly escape all foldernames 2014-01-31 10:33:36 -05:00
Francis Lachapelle ae75fee512 Update NEWS file 2014-01-30 10:37:36 -05:00
Ludovic Marcotte 8cdacd065f Properly escape the filename 2014-01-30 08:25:55 -05:00
Ludovic Marcotte af6a69c9fc Expunge immediately after MoveItems to force the Delete response 2014-01-29 11:21:36 -05:00
Ludovic Marcotte dc41e29f05 Fixed the MoveItems response 2014-01-29 11:16:58 -05:00
Ludovic Marcotte afc7519beb Properly escape values 2014-01-29 10:30:31 -05:00
Ludovic Marcotte f2d5a76911 Type fix for recurrence rules. 2014-01-29 09:48:18 -05:00
Francis Lachapelle 342ad84a24 Fix issues with contextual menu in calendars
Creating an event or a task using the contextual menu will now consider
the day and hour of the menu position (fixes #2557).
The next/previous day/month menu options have been fixed.
The menu will now disappear when clicking outside the contextual menu on
the calendar area.
2014-01-28 15:42:02 -05:00
Ludovic Marcotte 9580a8f8ee Added initial support for recurring events. 2014-01-28 14:26:35 -05:00
Ludovic Marcotte a96380a0dc Fixed SyncKey issue not being updated during the sync operation 2014-01-28 13:51:21 -05:00
Ludovic Marcotte 2fed02da59 When creating a new object, mark it as new. 2014-01-28 13:21:34 -05:00
Francis Lachapelle 84dc08adb6 Fix display of folder names in filter editor
Fixes #2569
2014-01-27 15:43:48 -05:00
Francis Lachapelle c160edf20a Add support for Sieve body extension 2014-01-27 15:09:22 -05:00
Ludovic Marcotte 3b7a3c94d4 Properly escape fields and improved data dumps. 2014-01-27 11:30:43 -05:00
Ludovic Marcotte 7b97e28cff Fixed compiler warning 2014-01-24 16:33:31 -05:00
Ludovic Marcotte 81bf1b41e9 Fixed the rename operation to force a FolderSync 2014-01-24 16:28:08 -05:00
Ludovic Marcotte ea86f136b7 Properly escape folder/file names and fixed date representation in emails 2014-01-24 14:10:19 -05:00
Francis Lachapelle fc0c580fe1 Fix validation of subscribed folders
Fixes #2583
2014-01-24 13:48:01 -05:00
Ludovic Marcotte 42a7bcb9ac Added verbosity in case wbxml <-> xml conversions fail 2014-01-24 11:44:12 -05:00
Ludovic Marcotte 9669f2bbba Added more props and fixed the NativeBodyType preventing OL2013 to work 2014-01-24 11:09:37 -05:00
Ludovic Marcotte 2563408872 Improved the README regarding MS licensing 2014-01-24 07:38:03 -05:00
Ludovic Marcotte dbea244f49 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-01-24 07:37:52 -05:00
Francis Lachapelle 0f9d8cdd2c Remove xml tag before doctype declaration 2014-01-23 14:48:36 -05:00
Francis Lachapelle 5105dbb342 Make all attachments available when re/fwd'ing
To do so, we save the draft to the mailstore.
2014-01-23 14:39:03 -05:00
Francis Lachapelle b26e767a10 Respect signature placement when forwarding a msg 2014-01-23 14:34:44 -05:00
Francis Lachapelle 940f85fde2 Add missing localizable string to webmail 2014-01-23 11:25:14 -05:00
Ludovic Marcotte adee80529e Added more event props and fixed date issues 2014-01-23 11:09:32 -05:00
Francis Lachapelle 295dfcfdd5 Webmail: allow the backspace on any platform 2014-01-23 10:21:22 -05:00
Ludovic Marcotte aa18abd842 Added more props and cleaned up the code 2014-01-23 09:41:41 -05:00
Francis Lachapelle feb398d59c Fix IE11 issue with mail editor 2014-01-23 09:15:34 -05:00
Francis Lachapelle 19b404de45 Update French translation 2014-01-23 08:17:16 -05:00
Jean Raby d1a384e539 Send IMIP responses if the event is in the future
Avoids sending responses for past events when importing events into
a new calendar from thunderbird or any DAV client.
2014-01-22 11:40:04 -05:00
Ludovic Marcotte e7f38f940e Moved the cards' logic into a category and added support for more AS ones 2014-01-22 11:27:27 -05:00
Ludovic Marcotte f7ba5d2346 Don't add DateCompleted if none exist 2014-01-22 11:25:18 -05:00
Ludovic Marcotte eeddf43a78 Add the milliseconds 2014-01-22 11:22:52 -05:00
Ludovic Marcotte eabe829236 Don't add empty <Commands> and specify the folder Class 2014-01-22 11:02:12 -05:00
Ludovic Marcotte 762b841249 Avoid crashes on broken configurations 2014-01-21 16:40:57 -05:00
Francis Lachapelle 3090448fcb Update prototype.js to fix IE 10 issues
Updated to commit @8c9ead49ec of
https://github.com/sstephenson/prototype/
2014-01-20 15:43:33 -05:00
Ludovic Marcotte a3e1d4813a Removed debug + refactored NSDate class 2014-01-20 10:21:33 -05:00
Ludovic Marcotte 046a645119 Refactored the code and added support for FilterType 2014-01-20 10:13:16 -05:00
Ludovic Marcotte 07d4b2bae2 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-01-16 15:13:29 -05:00
Ludovic Marcotte 343f2d8bfe Fixed the GetChanges detection and added FilterType decoding 2014-01-16 15:13:09 -05:00
Jean Raby 65276f7dc0 Add dependency on tmpwatch. The cronjob uses it.
Fixes #2577
2014-01-15 16:37:24 -05:00
Jean Raby 24663682d6 New package: sogo-activesync + sogo-tool fixes
Added dependency on sogo = %version for sogo-tool
2014-01-15 12:08:29 -05:00
Jean Raby 57cd315f2a explicitly list all *.SOGo folders
Otherwise, ActiveSync.SOGo would be listed twice, once in sogo-activesync and
once in sogo.
2014-01-15 11:07:14 -05:00
Ludovic Marcotte 29fcfda118 Implemented FolderDelete for mail folders 2014-01-15 09:36:25 -05:00
Ludovic Marcotte ada90677e1 Correctly update the SyncKey when creating or updating folders 2014-01-14 16:08:04 -05:00
Ludovic Marcotte 4c9c07e358 Merge branch 'master' of https://github.com/inverse-inc/sogo 2014-01-14 15:47:52 -05:00
Ludovic Marcotte b71180b006 Use the right DeviceId 2014-01-14 15:47:33 -05:00
Jean Raby 1ed41e2831 New deb package: sogo-activesync 2014-01-14 14:39:51 -05:00
Ludovic Marcotte 948553dce3 Properly extract the foldername 2014-01-14 13:50:17 -05:00
Jean Raby 74adf78446 Fix include directories for libwbxml 2014-01-14 13:37:51 -05:00
Ludovic Marcotte ee0ae8a1c0 Correctly add the folder type prefix when creating them 2014-01-14 11:44:33 -05:00
Ludovic Marcotte 38c649751c If GetChanges is omitted, consider it as YES 2014-01-14 11:41:26 -05:00
Ludovic Marcotte 645c718dfa Fixed broken comparison and added stub for processMeeting... 2014-01-14 10:49:55 -05:00
Ludovic Marcotte 02992a7018 Correctly decode base64 text parts before returning them 2014-01-14 10:42:15 -05:00
Ludovic Marcotte 0ffa0649c5 Wrap Fetch responses into <Responses> tags so iOS works correctly 2014-01-14 10:09:10 -05:00
Ludovic Marcotte 7c7cabe432 First pass at organizer/attendees support 2014-01-13 16:25:14 -05:00
Ludovic Marcotte bb9c4cf039 Handle not found objects and correctly get all "Collection" 2014-01-13 16:24:15 -05:00
Ludovic Marcotte c252f5b7a8 Fixed the license indent 2014-01-13 11:46:32 -05:00
Ludovic Marcotte 2e44ac0f9b Fixed MoveItems and also fixed Ping with no content 2014-01-13 10:19:00 -05:00
Ludovic Marcotte 2a9ccf8122 Now able to grab the command from the URI 2014-01-13 10:18:20 -05:00
Ludovic Marcotte f74066c9a6 Support for more props 2014-01-11 19:31:39 -05:00
Ludovic Marcotte ee49836f2e Disabled debugging... 2014-01-10 16:49:40 -05:00
Ludovic Marcotte bf798061d3 Fixed timezones support for events and added more supported props 2014-01-10 16:48:39 -05:00
Ludovic Marcotte 834e05bab1 Fixed typo messing up adds 2014-01-10 15:29:57 -05:00
Ludovic Marcotte e8438a6235 Don't write decoded stuff if not needed 2014-01-10 14:53:49 -05:00
Ludovic Marcotte 68dafdfdeb Removed old comments 2014-01-10 14:25:00 -05:00
Ludovic Marcotte e5bc46710c Initial Active Sync Support! 2014-01-10 14:12:53 -05:00
Ludovic Marcotte 7355eae1dc Now able to set Active Sync metadata in the user settings 2014-01-10 14:10:53 -05:00
Ludovic Marcotte 1d9febb511 Correctly handle the Active Sync requests 2014-01-10 14:10:16 -05:00
Ludovic Marcotte e21b30d768 Code cleanups 2014-01-10 14:09:32 -05:00
Ludovic Marcotte ae200360ba Code cleanups 2014-01-10 14:09:02 -05:00
Ludovic Marcotte e217ffb6c4 Code generalization to be usable from the ActiveSync bundle 2014-01-10 14:08:12 -05:00
Ludovic Marcotte a4a3a735b4 Moved the folder metadata generation to SoObject and added 'tag based' sync'ing support for IMAP 2014-01-10 14:06:53 -05:00
Ludovic Marcotte 13721b961b Add an easy way to get the personal contact folder, just like we have for calendars 2014-01-10 14:03:50 -05:00
Ludovic Marcotte 689a1e94e0 Sample Active Sync configuration 2014-01-10 14:02:32 -05:00
Ludovic Marcotte afcd92fb71 Load the ActiveSync bundle code and bind it 2014-01-10 14:01:39 -05:00
Ludovic Marcotte 7260c07628 More cleanups 2014-01-09 21:10:48 -05:00
Ludovic Marcotte a24d809e40 Minor code/copyright/authors cleanups 2014-01-09 21:06:31 -05:00
Ludovic Marcotte ed97407578 Dropped old data types 2014-01-09 20:42:16 -05:00
Ludovic Marcotte ca541d7299 Cleanups in conf file 2014-01-09 20:41:16 -05:00
Ludovic Marcotte 2d683ffc77 Always capitalize HTTP headers 2014-01-09 20:40:25 -05:00
Francis Lachapelle d603a8672e Consider 'background' attribute as unsafe
When loading a message, background attributes will be disabled if the
user as chosen to not automatically load external images.

Fixes #2437
2014-01-09 09:15:49 -05:00
Francis Lachapelle d51e1da57f Increase height of signature editor 2014-01-08 15:02:41 -05:00
Francis Lachapelle 80fd439dea Fix message forwarding as attachment
Restored the filename of the message source in the body part
content-disposition header.
Also forced the mail to be saved to the mailstore immediately in order
to have a clickable link to the attached message.
2014-01-08 14:40:39 -05:00
Francis Lachapelle a0d7f184fe Update French translation 2014-01-07 11:51:35 -05:00
Francis Lachapelle fe2826ca76 Draft: Improve error handling when attaching files 2014-01-07 11:11:39 -05:00
Francis Lachapelle ff9ea3b779 Don't alter the draft when saving it
We must not extract inline HTML images when simply saving a draft. The
images extraction process must only be performed when sending the
message.
2014-01-07 10:28:53 -05:00
Francis Lachapelle e70793e7ae Don't follow link of attachment not yet uploaded 2014-01-06 15:09:09 -05:00
Francis Lachapelle 0fdea48ce8 Restore CSS of disabled menu options 2014-01-06 15:08:45 -05:00
Francis Lachapelle 2b53705d44 Untabify 2014-01-06 14:32:58 -05:00
Francis Lachapelle b716331d8e Append tags when using a sanitizerContentHandler 2014-01-06 14:23:11 -05:00
Jean Raby 586d66b113 Updated description of SOGoUIAdditionalJSFiles
Document that the files must be placed under the  WebServerResources directory
2014-01-06 13:28:47 -05:00
Francis Lachapelle 5756defbf1 Mail editor: don't give focus to file input field. 2014-01-06 11:10:28 -05:00
Francis Lachapelle 7130cec4d1 Move & copy messages between different accounts 2014-01-03 16:57:37 -05:00
Francis Lachapelle 009cfccb2c Fix JS error when saving/sending plain text msg 2014-01-03 14:33:27 -05:00
Francis Lachapelle 09e14df79b Preferences: fix display of calendar categories 2014-01-03 14:32:48 -05:00
Francis Lachapelle ba29e7620d Update French translation 2014-01-03 14:32:01 -05:00
Francis Lachapelle 32516b162e Update textarea before saving/sending HTML message 2013-12-31 15:52:15 -05:00
Francis Lachapelle a8e780516b Fix display of "edit draft" and "load images"
The buttons were placed one over the other.
2013-12-23 15:54:22 -05:00
Francis Lachapelle bd7ad5be16 Fix initialization of arrays in NSString+Mail.m 2013-12-23 15:51:36 -05:00
Francis Lachapelle bed57af015 Improve display of linked attachments 2013-12-20 16:18:19 -05:00
Francis Lachapelle 5f369f201d Add links to download one or all attachments
Also removed the contextual menu over file attachments and changed the
label color when moving over the file attachments.
2013-12-20 15:41:18 -05:00
Francis Lachapelle dc21c723f6 Move method fetchFileAttachmentKeys from category
Moved fetchFileAttachmentKeys from SOGoDraftObjectExtensions to
SOGoDraftObject. Renamed fetchAttachmentIds to fetchFileAttachmentIds
for consistency.
2013-12-20 15:20:16 -05:00
Francis Lachapelle 1f7994d1bf Respect locale in time format of attendees window 2013-12-18 22:18:08 -05:00
Francis Lachapelle 7369a82bab Improve upload of attachments to messages 2013-12-18 22:18:08 -05:00
Francis Lachapelle 1a900b05d9 DraftObject: return more attachments attributes 2013-12-18 22:18:08 -05:00
Francis Lachapelle a8e3418a4c Use the UIxMailSizeFormatter in messages listing 2013-12-18 22:18:08 -05:00
Francis Lachapelle 59ce12a51b Load XMLHttpRequest conditionally (< IE9) 2013-12-18 22:18:08 -05:00
Ludovic Marcotte a1bec0e995 Merge branch 'master' of https://github.com/inverse-inc/sogo 2013-12-16 17:48:50 -05:00
Ludovic Marcotte 08ab36244c Improved the logic behind refusing too-many submitted mails. 2013-12-16 17:48:23 -05:00
Jean Raby 9ea880e80b fix backup path 2013-12-11 14:36:28 -05:00
Ludovic Marcotte 7d0a9aa1b7 Cleanups. 2013-12-10 20:09:32 -05:00
Jean Raby 2fa654fadb sogo.conf: fix typo and add AD/Samba4 example 2013-12-10 15:55:44 -05:00
Ludovic Marcotte 4a98e5b521 Don't append unknown objects to the REPORT result. 2013-12-09 10:31:34 -05:00
Francis Lachapelle e5103faed4 Update Finnish translation 2013-12-05 21:33:09 -05:00
Francis Lachapelle f9ad9ea815 Bump version to 2.1.2 2013-12-05 21:10:03 -05:00
Francis Lachapelle cfbd53e374 Fix initialization of preferences module
Don't try to initialize the tabs controller on the mail options tab if
the mail module is disabled.
2013-12-05 09:00:01 -05:00
Jean Raby f2beabec88 document organization and country ldap mapping 2013-12-04 19:50:22 -05:00
Jean Raby eaa0fb3cf1 Update NEWS CKEditor is in 2.1.1b 2013-12-04 11:11:10 -05:00
Jean Raby db56d1fa6c Bump version to 2.1.1b + adjust NEWS 2013-12-04 10:33:48 -05:00
Francis Lachapelle 37de8c6141 CKEditor: don't filter tags 2013-12-02 13:42:34 -05:00
Francis Lachapelle b0eb34f6b7 Add 'div' plugin to CKEditor 2013-12-02 11:58:28 -05:00
Francis Lachapelle 1cf696f57c Mail composition: add text part before html part
Fixes #2512
2013-11-25 09:52:18 -05:00
Francis Lachapelle 2114a48222 Update NEWS file 2013-11-22 15:03:57 -05:00
Francis Lachapelle 384d998c47 Cleanup wox templates 2013-11-22 14:42:16 -05:00
Francis Lachapelle 2211f6d168 Move mail tags strings to UI/Common 2013-11-22 14:39:24 -05:00
Ludovic Marcotte 32ba01315f Init local variable to avoid potential crasher. 2013-11-22 11:29:24 -05:00
Francis Lachapelle 682ed767d9 Fix the Sieve filters editor with new mail flags 2013-11-21 08:52:55 -05:00
Jean Raby 5536f8967e don't escape html in label names 2013-11-21 07:11:05 -05:00
Ludovic Marcotte df3e9033f3 Added calendar default reminder support. 2013-11-20 17:42:11 -05:00
Francis Lachapelle f167475c91 Update CKEditor to version 4.3.0 2013-11-20 11:17:42 -05:00
Ludovic Marcotte e4aedbac08 <img src=data...> conversion to file attachments + CIDs. 2013-11-20 08:56:29 -05:00
Pablo Carranza 2d5f2d88fa Revert "Started Ubuntu w/PostgreSQL tutorial"
This reverts commit 51d2372976.
2013-11-05 22:32:35 -06:00
Pablo Carranza eb5ca2cba6 Revert "Update ubuntu_postgresql.md"
This reverts commit 92d68de332.
2013-11-05 22:31:54 -06:00
Pablo Carranza 54cd55ebef Update README.md 2013-10-19 13:15:13 -05:00
Pablo Carranza 5f4ab6eaaf Update README.md 2013-10-19 13:11:36 -05:00
Pablo Carranza 1d8e6b6295 Update README.md 2013-10-19 13:03:40 -05:00
Pablo Carranza aa791b2571 Create README.md 2013-10-19 12:42:31 -05:00
Pablo Carranza 92d68de332 Update ubuntu_postgresql.md 2013-10-19 12:25:19 -05:00
Pablo Carranza 51d2372976 Started Ubuntu w/PostgreSQL tutorial 2013-10-19 12:17:39 -05:00
Jeroen Dekkers 4d8bff5130 Link libSOGo with libdl on systems with glibc 2013-04-14 11:50:28 +02:00
3461 changed files with 399834 additions and 146785 deletions

114
.github/CONTRIBUTING.md vendored 100644
View File

@ -0,0 +1,114 @@
# Contributing to SOGo
## Reporting Bugs and Suggesting Enhancements
If you encounter a possible bug with SOGo, you can access our
[bug tracking system](https://sogo.nu/bugs/).
Please make sure to respect the following guidelines when reporting a bug:
* verify that the bug you found is not already known or even fixed in the `master` version
* make the actual facts very clear; be precise, we need to be able to reproduce the problem
* explain your speculations, if any
* add a screenshot to the ticket if appropriate
## Submitting a Pull Request
Begin by reading [SOGo Developer's Guide](../Documentation/SOGoDevelopersGuide.asciidoc).
### Git Commit Guidelines
We have very precise rules over how our git commit messages can be formatted. This leads to **more
readable messages** that are easy to follow when looking through the **project history**.
It is important to note that we use the git commit messages to **generate** the
[CHANGELOG](../CHANGELOG.md) document. Improperly formatted commit messages may result in your
change not appearing in the CHANGELOG of the next release.
### Commit Message Format
Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
format that includes a **type**, a **scope** and a **subject**:
```html
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```
> Any line of the commit message cannot be longer than 100 characters.
> This allows the message to be easier to read on GitHub as well as in various Git tools.
#### Type
Must be one of the following:
* **feat**: A new feature
* **fix**: A bug fix
* **docs**: Documentation only changes
* **i18n**: Change in localizable strings
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests
* **chore**: Changes to the build and packaging process or auxiliary tools (sogo-tool,
sogo-ealarms-notify) and libraries such as documentation generation
#### Scope
The scope could be anything that helps specifying the scope (or feature) that is changing.
Examples
* mail
* mail(js)
* calendar(css)
* addressbook
* preferences(js)
* core
* eas
#### Subject
The subject contains a succinct description of the change:
* use the imperative, present tense: "change" not "changed" nor "changes"
* don't capitalize first letter
* no dot (.) at the end
#### Body
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
The body should include the motivation for the change and contrast this with previous behavior.
#### Footer
The footer should contain any information about **Breaking Changes** and is also the
place to reference [Mantis](https://sogo.nu/bus/) issues that this commit **Fixes** or **Resolves**.
> Breaking Changes are intended to be highlighted in the CHANGELOG as changes that will require
> community users to modify their code after updating to a version that contains this commit.
#### Sample Commit messages
```text
fix(calendar): don't raise exception when renaming with same name
this would break Apple Calendar.app when creating a new calendar
Fixes #4813
```
```text
feat(calendar(js)): optionally expand LDAP groups in attendees editor
* add `/members` action for LDIF groups
* add button to expand invited LDAP groups
Fixes #2506
```
```text
fix(core): set default Sieve port to 4190
BREAKING CHANGE: the default port for the SOGoSieveServer configuration default is now 4190 (was
2000).
You need to explicitly set the port if you use a different port.
Closes #4826
```

33
.gitignore vendored
View File

@ -1,13 +1,30 @@
config.make
tags
*/obj/
*/*/obj/
*/*/*/obj/
*/*/*.SOGo/
*._*
*.css
*.pyc
*.sax
*.wox/
*.swp
*.wox/
*/*/*.SOGo/
*/*/*/obj/
*/*/obj/
*/obj/
.scss-lint-config.yml_
ActiveSync/ActiveSync.SOGo
Documentation/*.docbook
Documentation/*.pdf
SoObjects/SOGo/SOGo.framework/
SoObjects/SOGo/derived_src/
Tests/*/config.py
*.pyc
UI/WebServerResources/.bowerrc
UI/WebServerResources/.sass-cache/
UI/WebServerResources/bower_components/
UI/WebServerResources/css/
UI/WebServerResources/js/*.js
UI/WebServerResources/js/*.js.map
UI/WebServerResources/js/vendor/*.js
UI/WebServerResources/js/vendor/*.js.map
UI/WebServerResources/node_modules/
UI/WebServerResources/scss/.sass-cache/
config.make
doc
tags

3
.gitmodules vendored 100644
View File

@ -0,0 +1,3 @@
[submodule "UI/WebServerResources/angular-material"]
path = UI/WebServerResources/angular-material
url = https://github.com/angular/material

View File

@ -5,6 +5,7 @@ host = https://www.transifex.com
source_file = UI/MailerUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MailerUI/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/MailerUI/Bulgarian.lproj/Localizable.strings
trans.ca = UI/MailerUI/Catalan.lproj/Localizable.strings
trans.cs = UI/MailerUI/Czech.lproj/Localizable.strings
trans.cy = UI/MailerUI/Welsh.lproj/Localizable.strings
@ -12,25 +13,43 @@ trans.da_DK = UI/MailerUI/Danish.lproj/Localizable.strings
trans.de = UI/MailerUI/German.lproj/Localizable.strings
trans.es_AR = UI/MailerUI/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/MailerUI/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/MailerUI/Basque.lproj/Localizable.strings
trans.fi = UI/MailerUI/Finnish.lproj/Localizable.strings
trans.fr = UI/MailerUI/French.lproj/Localizable.strings
trans.he = UI/MailerUI/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/MailerUI/Croatian.lproj/Localizable.strings
trans.hu = UI/MailerUI/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/MailerUI/Indonesian.lproj/Localizable.strings
trans.is = UI/MailerUI/Icelandic.lproj/Localizable.strings
trans.it = UI/MailerUI/Italian.lproj/Localizable.strings
trans.ja = UI/MailerUI/Japanese.lproj/Localizable.strings
trans.lt = UI/MailerUI/Lithuanian.lproj/Localizable.strings
trans.lv = UI/MailerUI/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/MailerUI/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/MailerUI/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/MailerUI/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/MailerUI/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/MailerUI/Polish.lproj/Localizable.strings
trans.pt = UI/MailerUI/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/MailerUI/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/MailerUI/Romanian.lproj/Localizable.strings
trans.ru = UI/MailerUI/Russian.lproj/Localizable.strings
trans.sk = UI/MailerUI/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/MailerUI/Slovenian.lproj/Localizable.strings
trans.sr = UI/MailerUI/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/MailerUI/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/MailerUI/Montenegrin.lproj/Localizable.strings
trans.sv = UI/MailerUI/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/MailerUI/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/MailerUI/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/MailerUI/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/MailerUI/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-preferencesui]
source_file = UI/PreferencesUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/PreferencesUI/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/PreferencesUI/Bulgarian.lproj/Localizable.strings
trans.ca = UI/PreferencesUI/Catalan.lproj/Localizable.strings
trans.cs = UI/PreferencesUI/Czech.lproj/Localizable.strings
trans.cy = UI/PreferencesUI/Welsh.lproj/Localizable.strings
@ -38,25 +57,43 @@ trans.da_DK = UI/PreferencesUI/Danish.lproj/Localizable.strings
trans.de = UI/PreferencesUI/German.lproj/Localizable.strings
trans.es_AR = UI/PreferencesUI/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/PreferencesUI/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/PreferencesUI/Basque.lproj/Localizable.strings
trans.fi = UI/PreferencesUI/Finnish.lproj/Localizable.strings
trans.fr = UI/PreferencesUI/French.lproj/Localizable.strings
trans.he = UI/PreferencesUI/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/PreferencesUI/Croatian.lproj/Localizable.strings
trans.hu = UI/PreferencesUI/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/PreferencesUI/Indonesian.lproj/Localizable.strings
trans.is = UI/PreferencesUI/Icelandic.lproj/Localizable.strings
trans.it = UI/PreferencesUI/Italian.lproj/Localizable.strings
trans.ja = UI/PreferencesUI/Japanese.lproj/Localizable.strings
trans.lt = UI/PreferencesUI/Lithuanian.lproj/Localizable.strings
trans.lv = UI/PreferencesUI/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/PreferencesUI/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/PreferencesUI/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/PreferencesUI/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/PreferencesUI/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/PreferencesUI/Polish.lproj/Localizable.strings
trans.pt = UI/PreferencesUI/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/PreferencesUI/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/PreferencesUI/Romanian.lproj/Localizable.strings
trans.ru = UI/PreferencesUI/Russian.lproj/Localizable.strings
trans.sk = UI/PreferencesUI/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/PreferencesUI/Slovenian.lproj/Localizable.strings
trans.sr = UI/PreferencesUI/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/PreferencesUI/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/PreferencesUI/Montenegrin.lproj/Localizable.strings
trans.sv = UI/PreferencesUI/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/PreferencesUI/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/PreferencesUI/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/PreferencesUI/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/PreferencesUI/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-scheduler]
source_file = UI/Scheduler/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Scheduler/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/Scheduler/Bulgarian.lproj/Localizable.strings
trans.ca = UI/Scheduler/Catalan.lproj/Localizable.strings
trans.cs = UI/Scheduler/Czech.lproj/Localizable.strings
trans.cy = UI/Scheduler/Welsh.lproj/Localizable.strings
@ -64,25 +101,43 @@ trans.da_DK = UI/Scheduler/Danish.lproj/Localizable.strings
trans.de = UI/Scheduler/German.lproj/Localizable.strings
trans.es_AR = UI/Scheduler/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/Scheduler/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/Scheduler/Basque.lproj/Localizable.strings
trans.fi = UI/Scheduler/Finnish.lproj/Localizable.strings
trans.fr = UI/Scheduler/French.lproj/Localizable.strings
trans.he = UI/Scheduler/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/Scheduler/Croatian.lproj/Localizable.strings
trans.hu = UI/Scheduler/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/Scheduler/Indonesian.lproj/Localizable.strings
trans.is = UI/Scheduler/Icelandic.lproj/Localizable.strings
trans.it = UI/Scheduler/Italian.lproj/Localizable.strings
trans.ja = UI/Scheduler/Japanese.lproj/Localizable.strings
trans.lt = UI/Scheduler/Lithuanian.lproj/Localizable.strings
trans.lv = UI/Scheduler/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/Scheduler/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/Scheduler/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/Scheduler/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/Scheduler/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/Scheduler/Polish.lproj/Localizable.strings
trans.pt = UI/Scheduler/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/Scheduler/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/Scheduler/Romanian.lproj/Localizable.strings
trans.ru = UI/Scheduler/Russian.lproj/Localizable.strings
trans.sk = UI/Scheduler/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/Scheduler/Slovenian.lproj/Localizable.strings
trans.sr = UI/Scheduler/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/Scheduler/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/Scheduler/Montenegrin.lproj/Localizable.strings
trans.sv = UI/Scheduler/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/Scheduler/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/Scheduler/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/Scheduler/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/Scheduler/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-contacts]
source_file = UI/Contacts/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Contacts/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/Contacts/Bulgarian.lproj/Localizable.strings
trans.ca = UI/Contacts/Catalan.lproj/Localizable.strings
trans.cs = UI/Contacts/Czech.lproj/Localizable.strings
trans.cy = UI/Contacts/Welsh.lproj/Localizable.strings
@ -90,25 +145,43 @@ trans.da_DK = UI/Contacts/Danish.lproj/Localizable.strings
trans.de = UI/Contacts/German.lproj/Localizable.strings
trans.es_AR = UI/Contacts/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/Contacts/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/Contacts/Basque.lproj/Localizable.strings
trans.fi = UI/Contacts/Finnish.lproj/Localizable.strings
trans.fr = UI/Contacts/French.lproj/Localizable.strings
trans.he = UI/Contacts/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/Contacts/Croatian.lproj/Localizable.strings
trans.hu = UI/Contacts/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/Contacts/Indonesian.lproj/Localizable.strings
trans.is = UI/Contacts/Icelandic.lproj/Localizable.strings
trans.it = UI/Contacts/Italian.lproj/Localizable.strings
trans.ja = UI/Contacts/Japanese.lproj/Localizable.strings
trans.lt = UI/Contacts/Lithuanian.lproj/Localizable.strings
trans.lv = UI/Contacts/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/Contacts/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/Contacts/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/Contacts/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/Contacts/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/Contacts/Polish.lproj/Localizable.strings
trans.pt = UI/Contacts/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/Contacts/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/Contacts/Romanian.lproj/Localizable.strings
trans.ru = UI/Contacts/Russian.lproj/Localizable.strings
trans.sk = UI/Contacts/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/Contacts/Slovenian.lproj/Localizable.strings
trans.sr = UI/Contacts/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/Contacts/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/Contacts/Montenegrin.lproj/Localizable.strings
trans.sv = UI/Contacts/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/Contacts/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/Contacts/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/Contacts/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/Contacts/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-mainui]
source_file = UI/MainUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MainUI/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/MainUI/Bulgarian.lproj/Localizable.strings
trans.ca = UI/MainUI/Catalan.lproj/Localizable.strings
trans.cs = UI/MainUI/Czech.lproj/Localizable.strings
trans.cy = UI/MainUI/Welsh.lproj/Localizable.strings
@ -116,25 +189,43 @@ trans.da_DK = UI/MainUI/Danish.lproj/Localizable.strings
trans.de = UI/MainUI/German.lproj/Localizable.strings
trans.es_AR = UI/MainUI/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/MainUI/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/MainUI/Basque.lproj/Localizable.strings
trans.fi = UI/MainUI/Finnish.lproj/Localizable.strings
trans.fr = UI/MainUI/French.lproj/Localizable.strings
trans.he = UI/MainUI/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/MainUI/Croatian.lproj/Localizable.strings
trans.hu = UI/MainUI/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/MainUI/Indonesian.lproj/Localizable.strings
trans.is = UI/MainUI/Icelandic.lproj/Localizable.strings
trans.it = UI/MainUI/Italian.lproj/Localizable.strings
trans.ja = UI/MainUI/Japanese.lproj/Localizable.strings
trans.lt = UI/MainUI/Lithuanian.lproj/Localizable.strings
trans.lv = UI/MainUI/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/MainUI/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/MainUI/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/MainUI/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/MainUI/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/MainUI/Polish.lproj/Localizable.strings
trans.pt = UI/MainUI/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/MainUI/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/MainUI/Romanian.lproj/Localizable.strings
trans.ru = UI/MainUI/Russian.lproj/Localizable.strings
trans.sk = UI/MainUI/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/MainUI/Slovenian.lproj/Localizable.strings
trans.sr = UI/MainUI/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/MainUI/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/MainUI/Montenegrin.lproj/Localizable.strings
trans.sv = UI/MainUI/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/MainUI/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/MainUI/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/MainUI/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/MainUI/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-common]
source_file = UI/Common/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Common/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/Common/Bulgarian.lproj/Localizable.strings
trans.ca = UI/Common/Catalan.lproj/Localizable.strings
trans.cs = UI/Common/Czech.lproj/Localizable.strings
trans.cy = UI/Common/Welsh.lproj/Localizable.strings
@ -142,25 +233,43 @@ trans.da_DK = UI/Common/Danish.lproj/Localizable.strings
trans.de = UI/Common/German.lproj/Localizable.strings
trans.es_AR = UI/Common/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/Common/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/Common/Basque.lproj/Localizable.strings
trans.fi = UI/Common/Finnish.lproj/Localizable.strings
trans.fr = UI/Common/French.lproj/Localizable.strings
trans.he = UI/Common/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/Common/Croatian.lproj/Localizable.strings
trans.hu = UI/Common/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/Common/Indonesian.lproj/Localizable.strings
trans.is = UI/Common/Icelandic.lproj/Localizable.strings
trans.it = UI/Common/Italian.lproj/Localizable.strings
trans.ja = UI/Common/Japanese.lproj/Localizable.strings
trans.lt = UI/Common/Lithuanian.lproj/Localizable.strings
trans.lv = UI/Common/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/Common/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/Common/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/Common/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/Common/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/Common/Polish.lproj/Localizable.strings
trans.pt = UI/Common/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/Common/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/Common/Romanian.lproj/Localizable.strings
trans.ru = UI/Common/Russian.lproj/Localizable.strings
trans.sk = UI/Common/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/Common/Slovenian.lproj/Localizable.strings
trans.sr = UI/Common/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/Common/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/Common/Montenegrin.lproj/Localizable.strings
trans.sv = UI/Common/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/Common/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/Common/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/Common/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/Common/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-administrationui]
source_file = UI/AdministrationUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/AdministrationUI/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/AdministrationUI/Bulgarian.lproj/Localizable.strings
trans.ca = UI/AdministrationUI/Catalan.lproj/Localizable.strings
trans.cs = UI/AdministrationUI/Czech.lproj/Localizable.strings
trans.cy = UI/AdministrationUI/Welsh.lproj/Localizable.strings
@ -168,25 +277,43 @@ trans.da_DK = UI/AdministrationUI/Danish.lproj/Localizable.strings
trans.de = UI/AdministrationUI/German.lproj/Localizable.strings
trans.es_AR = UI/AdministrationUI/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/AdministrationUI/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/AdministrationUI/Basque.lproj/Localizable.strings
trans.fi = UI/AdministrationUI/Finnish.lproj/Localizable.strings
trans.fr = UI/AdministrationUI/French.lproj/Localizable.strings
trans.he = UI/AdministrationUI/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/AdministrationUI/Croatian.lproj/Localizable.strings
trans.hu = UI/AdministrationUI/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/AdministrationUI/Indonesian.lproj/Localizable.strings
trans.is = UI/AdministrationUI/Icelandic.lproj/Localizable.strings
trans.it = UI/AdministrationUI/Italian.lproj/Localizable.strings
trans.ja = UI/AdministrationUI/Japanese.lproj/Localizable.strings
trans.lt = UI/AdministrationUI/Lithuanian.lproj/Localizable.strings
trans.lv = UI/AdministrationUI/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/AdministrationUI/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/AdministrationUI/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/AdministrationUI/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/AdministrationUI/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/AdministrationUI/Polish.lproj/Localizable.strings
trans.pt = UI/AdministrationUI/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/AdministrationUI/Romanian.lproj/Localizable.strings
trans.ru = UI/AdministrationUI/Russian.lproj/Localizable.strings
trans.sk = UI/AdministrationUI/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/AdministrationUI/Slovenian.lproj/Localizable.strings
trans.sr = UI/AdministrationUI/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/AdministrationUI/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/AdministrationUI/Montenegrin.lproj/Localizable.strings
trans.sv = UI/AdministrationUI/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/AdministrationUI/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/AdministrationUI/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/AdministrationUI/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/AdministrationUI/ChineseTaiwan.lproj/Localizable.strings
[sogo.soobjects-appointments]
source_file = SoObjects/Appointments/English.lproj/Localizable.strings
source_lang = en
trans.ar = SoObjects/Appointments/Arabic.lproj/Localizable.strings
trans.bg_BG = SoObjects/Appointments/Bulgarian.lproj/Localizable.strings
trans.ca = SoObjects/Appointments/Catalan.lproj/Localizable.strings
trans.cs = SoObjects/Appointments/Czech.lproj/Localizable.strings
trans.cy = SoObjects/Appointments/Welsh.lproj/Localizable.strings
@ -194,25 +321,43 @@ trans.da_DK = SoObjects/Appointments/Danish.lproj/Localizable.strings
trans.de = SoObjects/Appointments/German.lproj/Localizable.strings
trans.es_AR = SoObjects/Appointments/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = SoObjects/Appointments/SpanishSpain.lproj/Localizable.strings
trans.eu = SoObjects/Appointments/Basque.lproj/Localizable.strings
trans.fi = SoObjects/Appointments/Finnish.lproj/Localizable.strings
trans.fr = SoObjects/Appointments/French.lproj/Localizable.strings
trans.he = SoObjects/Appointments/Hebrew.lproj/Localizable.strings
trans.hr_HR = SoObjects/Appointments/Croatian.lproj/Localizable.strings
trans.hu = SoObjects/Appointments/Hungarian.lproj/Localizable.strings
trans.id_ID = SoObjects/Appointments/Indonesian.lproj/Localizable.strings
trans.is = SoObjects/Appointments/Icelandic.lproj/Localizable.strings
trans.it = SoObjects/Appointments/Italian.lproj/Localizable.strings
trans.ja = SoObjects/Appointments/Japanese.lproj/Localizable.strings
trans.lt = SoObjects/Appointments/Lithuanian.lproj/Localizable.strings
trans.lv = SoObjects/Appointments/Latvian.lproj/Localizable.strings
trans.mk_MK = SoObjects/Appointments/Macedonian.lproj/Localizable.strings
trans.nb_NO = SoObjects/Appointments/NorwegianBokmal.lproj/Localizable.strings
trans.nl = SoObjects/Appointments/Dutch.lproj/Localizable.strings
trans.nn_NO = SoObjects/Appointments/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = SoObjects/Appointments/Polish.lproj/Localizable.strings
trans.pt = SoObjects/Appointments/Portuguese.lproj/Localizable.strings
trans.pt_BR = SoObjects/Appointments/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = SoObjects/Appointments/Romanian.lproj/Localizable.strings
trans.ru = SoObjects/Appointments/Russian.lproj/Localizable.strings
trans.sk = SoObjects/Appointments/Slovak.lproj/Localizable.strings
trans.sl_SI = SoObjects/Appointments/Slovenian.lproj/Localizable.strings
trans.sr = SoObjects/Appointments/Serbian.lproj/Localizable.strings
trans.sr@latin = SoObjects/Appointments/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = SoObjects/Appointments/Montenegrin.lproj/Localizable.strings
trans.sv = SoObjects/Appointments/Swedish.lproj/Localizable.strings
trans.tr_TR = SoObjects/Appointments/TurkishTurkey.lproj/Localizable.strings
trans.uk = SoObjects/Appointments/Ukrainian.lproj/Localizable.strings
trans.zh_CN = SoObjects/Appointments/ChineseChina.lproj/Localizable.strings
trans.zh_TW = SoObjects/Appointments/ChineseTaiwan.lproj/Localizable.strings
[sogo.soobjects-contacts]
source_file = SoObjects/Contacts/English.lproj/Localizable.strings
source_lang = en
trans.ar = SoObjects/Contacts/Arabic.lproj/Localizable.strings
trans.bg_BG = SoObjects/Contacts/Bulgarian.lproj/Localizable.strings
trans.ca = SoObjects/Contacts/Catalan.lproj/Localizable.strings
trans.cs = SoObjects/Contacts/Czech.lproj/Localizable.strings
trans.cy = SoObjects/Contacts/Welsh.lproj/Localizable.strings
@ -220,25 +365,87 @@ trans.da_DK = SoObjects/Contacts/Danish.lproj/Localizable.strings
trans.de = SoObjects/Contacts/German.lproj/Localizable.strings
trans.es_AR = SoObjects/Contacts/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = SoObjects/Contacts/SpanishSpain.lproj/Localizable.strings
trans.eu = SoObjects/Contacts/Basque.lproj/Localizable.strings
trans.fi = SoObjects/Contacts/Finnish.lproj/Localizable.strings
trans.fr = SoObjects/Contacts/French.lproj/Localizable.strings
trans.he = SoObjects/Contacts/Hebrew.lproj/Localizable.strings
trans.hr_HR = SoObjects/Contacts/Croatian.lproj/Localizable.strings
trans.hu = SoObjects/Contacts/Hungarian.lproj/Localizable.strings
trans.id_ID = SoObjects/Contacts/Indonesian.lproj/Localizable.strings
trans.is = SoObjects/Contacts/Icelandic.lproj/Localizable.strings
trans.it = SoObjects/Contacts/Italian.lproj/Localizable.strings
trans.ja = SoObjects/Contacts/Japanese.lproj/Localizable.strings
trans.lt = SoObjects/Contacts/Lithuanian.lproj/Localizable.strings
trans.lv = SoObjects/Contacts/Latvian.lproj/Localizable.strings
trans.mk_MK = SoObjects/Contacts/Macedonian.lproj/Localizable.strings
trans.nb_NO = SoObjects/Contacts/NorwegianBokmal.lproj/Localizable.strings
trans.nl = SoObjects/Contacts/Dutch.lproj/Localizable.strings
trans.nn_NO = SoObjects/Contacts/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = SoObjects/Contacts/Polish.lproj/Localizable.strings
trans.pt = SoObjects/Contacts/Portuguese.lproj/Localizable.strings
trans.pt_BR = SoObjects/Contacts/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = SoObjects/Contacts/Romanian.lproj/Localizable.strings
trans.ru = SoObjects/Contacts/Russian.lproj/Localizable.strings
trans.sk = SoObjects/Contacts/Slovak.lproj/Localizable.strings
trans.sl_SI = SoObjects/Contacts/Slovenian.lproj/Localizable.strings
trans.sr = SoObjects/Contacts/Serbian.lproj/Localizable.strings
trans.sr@latin = SoObjects/Contacts/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = SoObjects/Contacts/Montenegrin.lproj/Localizable.strings
trans.sv = SoObjects/Contacts/Swedish.lproj/Localizable.strings
trans.tr_TR = SoObjects/Contacts/TurkishTurkey.lproj/Localizable.strings
trans.uk = SoObjects/Contacts/Ukrainian.lproj/Localizable.strings
trans.zh_CN = SoObjects/Contacts/ChineseChina.lproj/Localizable.strings
trans.zh_TW = SoObjects/Contacts/ChineseTaiwan.lproj/Localizable.strings
[sogo.soobjects-mailer]
source_file = SoObjects/Mailer/English.lproj/Localizable.strings
source_lang = en
trans.ar = SoObjects/Mailer/Arabic.lproj/Localizable.strings
trans.bg_BG = SoObjects/Mailer/Bulgarian.lproj/Localizable.strings
trans.ca = SoObjects/Mailer/Catalan.lproj/Localizable.strings
trans.cs = SoObjects/Mailer/Czech.lproj/Localizable.strings
trans.cy = SoObjects/Mailer/Welsh.lproj/Localizable.strings
trans.da_DK = SoObjects/Mailer/Danish.lproj/Localizable.strings
trans.de = SoObjects/Mailer/German.lproj/Localizable.strings
trans.es_AR = SoObjects/Mailer/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = SoObjects/Mailer/SpanishSpain.lproj/Localizable.strings
trans.eu = SoObjects/Mailer/Basque.lproj/Localizable.strings
trans.fi = SoObjects/Mailer/Finnish.lproj/Localizable.strings
trans.fr = SoObjects/Mailer/French.lproj/Localizable.strings
trans.he = SoObjects/Mailer/Hebrew.lproj/Localizable.strings
trans.hr_HR = SoObjects/Mailer/Croatian.lproj/Localizable.strings
trans.hu = SoObjects/Mailer/Hungarian.lproj/Localizable.strings
trans.id_ID = SoObjects/Mailer/Indonesian.lproj/Localizable.strings
trans.is = SoObjects/Mailer/Icelandic.lproj/Localizable.strings
trans.it = SoObjects/Mailer/Italian.lproj/Localizable.strings
trans.ja = SoObjects/Mailer/Japanese.lproj/Localizable.strings
trans.lt = SoObjects/Mailer/Lithuanian.lproj/Localizable.strings
trans.lv = SoObjects/Mailer/Latvian.lproj/Localizable.strings
trans.mk_MK = SoObjects/Mailer/Macedonian.lproj/Localizable.strings
trans.nb_NO = SoObjects/Mailer/NorwegianBokmal.lproj/Localizable.strings
trans.nl = SoObjects/Mailer/Dutch.lproj/Localizable.strings
trans.nn_NO = SoObjects/Mailer/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = SoObjects/Mailer/Polish.lproj/Localizable.strings
trans.pt = SoObjects/Mailer/Portuguese.lproj/Localizable.strings
trans.pt_BR = SoObjects/Mailer/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = SoObjects/Mailer/Romanian.lproj/Localizable.strings
trans.ru = SoObjects/Mailer/Russian.lproj/Localizable.strings
trans.sk = SoObjects/Mailer/Slovak.lproj/Localizable.strings
trans.sl_SI = SoObjects/Mailer/Slovenian.lproj/Localizable.strings
trans.sr = SoObjects/Mailer/Serbian.lproj/Localizable.strings
trans.sr@latin = SoObjects/Mailer/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = SoObjects/Mailer/Montenegrin.lproj/Localizable.strings
trans.sv = SoObjects/Mailer/Swedish.lproj/Localizable.strings
trans.tr_TR = SoObjects/Mailer/TurkishTurkey.lproj/Localizable.strings
trans.uk = SoObjects/Mailer/Ukrainian.lproj/Localizable.strings
trans.zh_CN = SoObjects/Mailer/ChineseChina.lproj/Localizable.strings
trans.zh_TW = SoObjects/Mailer/ChineseTaiwan.lproj/Localizable.strings
[sogo.ui-mailpartviewers]
source_file = UI/MailPartViewers/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MailPartViewers/Arabic.lproj/Localizable.strings
trans.bg_BG = UI/MailPartViewers/Bulgarian.lproj/Localizable.strings
trans.ca = UI/MailPartViewers/Catalan.lproj/Localizable.strings
trans.cs = UI/MailPartViewers/Czech.lproj/Localizable.strings
trans.cy = UI/MailPartViewers/Welsh.lproj/Localizable.strings
@ -246,17 +453,34 @@ trans.da_DK = UI/MailPartViewers/Danish.lproj/Localizable.strings
trans.de = UI/MailPartViewers/German.lproj/Localizable.strings
trans.es_AR = UI/MailPartViewers/SpanishArgentina.lproj/Localizable.strings
trans.es_ES = UI/MailPartViewers/SpanishSpain.lproj/Localizable.strings
trans.eu = UI/MailPartViewers/Basque.lproj/Localizable.strings
trans.fi = UI/MailPartViewers/Finnish.lproj/Localizable.strings
trans.fr = UI/MailPartViewers/French.lproj/Localizable.strings
trans.he = UI/MailPartViewers/Hebrew.lproj/Localizable.strings
trans.hr_HR = UI/MailPartViewers/Croatian.lproj/Localizable.strings
trans.hu = UI/MailPartViewers/Hungarian.lproj/Localizable.strings
trans.id_ID = UI/MailPartViewers/Indonesian.lproj/Localizable.strings
trans.is = UI/MailPartViewers/Icelandic.lproj/Localizable.strings
trans.it = UI/MailPartViewers/Italian.lproj/Localizable.strings
trans.ja = UI/MailPartViewers/Japanese.lproj/Localizable.strings
trans.lt = UI/MailPartViewers/Lithuanian.lproj/Localizable.strings
trans.lv = UI/MailPartViewers/Latvian.lproj/Localizable.strings
trans.mk_MK = UI/MailPartViewers/Macedonian.lproj/Localizable.strings
trans.nb_NO = UI/MailPartViewers/NorwegianBokmal.lproj/Localizable.strings
trans.nl = UI/MailPartViewers/Dutch.lproj/Localizable.strings
trans.nn_NO = UI/MailPartViewers/NorwegianNynorsk.lproj/Localizable.strings
trans.pl = UI/MailPartViewers/Polish.lproj/Localizable.strings
trans.pt = UI/MailPartViewers/Portuguese.lproj/Localizable.strings
trans.pt_BR = UI/MailPartViewers/BrazilianPortuguese.lproj/Localizable.strings
trans.ro_RO = UI/MailPartViewers/Romanian.lproj/Localizable.strings
trans.ru = UI/MailPartViewers/Russian.lproj/Localizable.strings
trans.sk = UI/MailPartViewers/Slovak.lproj/Localizable.strings
trans.sl_SI = UI/MailPartViewers/Slovenian.lproj/Localizable.strings
trans.sr = UI/MailPartViewers/Serbian.lproj/Localizable.strings
trans.sr@latin = UI/MailPartViewers/SerbianLatin.lproj/Localizable.strings
trans.sr_ME@latin = UI/MailPartViewers/Montenegrin.lproj/Localizable.strings
trans.sv = UI/MailPartViewers/Swedish.lproj/Localizable.strings
trans.tr_TR = UI/MailPartViewers/TurkishTurkey.lproj/Localizable.strings
trans.uk = UI/MailPartViewers/Ukrainian.lproj/Localizable.strings
trans.zh_CN = UI/MailPartViewers/ChineseChina.lproj/Localizable.strings
trans.zh_TW = UI/MailPartViewers/ChineseTaiwan.lproj/Localizable.strings

27
.versionrc.js 100644
View File

@ -0,0 +1,27 @@
const tracker = {
filename: "Version",
updater: require("./Scripts/standard-version-updater.js")
}
module.exports = {
tagPrefix: "SOGo-",
issueUrlFormat: "https://sogo.nu/bugs/view.php?id={{id}}",
compareUrlFormat: "{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}",
types: [
{type: "feat", section: "Features"},
{type: "refactor", section: "Enhancements"},
{type: "perf", section: "Enhancements"},
{type: "i18n", section: "Localization"},
{type: "fix", section: "Bug Fixes"},
{type: "chore", hidden: true},
{type: "docs", hidden: true},
{type: "style", hidden: true},
{type: "test", hidden: true}
],
skip: {
commit: true,
tag: true
},
packageFiles: [tracker],
bumpFiles: [tracker]
}

View File

@ -0,0 +1,40 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import <Foundation/NSObject.h>
@interface ActiveSyncProduct : NSObject
{
}
@end
@implementation ActiveSyncProduct
@end /* ActiveSyncProduct */

View File

@ -0,0 +1,42 @@
# GNUstep makefile
include common.make
BUNDLE_NAME = ActiveSync
ActiveSync_PRINCIPAL_CLASS = ActiveSyncProduct
ActiveSync_OBJC_FILES = \
ActiveSyncProduct.m \
iCalAlarm+ActiveSync.m \
iCalEvent+ActiveSync.m \
iCalRecurrenceRule+ActiveSync.m \
iCalTimeZone+ActiveSync.m \
iCalToDo+ActiveSync.m \
NSCalendarDate+ActiveSync.m \
NSData+ActiveSync.m \
NSDate+ActiveSync.m \
NGDOMElement+ActiveSync.m \
NGMimeMessage+ActiveSync.m \
NGVCard+ActiveSync.m \
NSArray+SyncCache.m \
NSString+ActiveSync.m \
SOGoActiveSyncDispatcher.m \
SOGoActiveSyncDispatcher+Sync.m \
SOGoMailObject+ActiveSync.m \
SOGoSyncCacheObject.m \
SoObjectWebDAVDispatcher+ActiveSync.m
ActiveSync_RESOURCE_FILES += \
product.plist
ADDITIONAL_OBJCFLAGS += -Wno-deprecated-declarations
ADDITIONAL_INCLUDE_DIRS += -I../SOPE/ -I../SoObjects/
ADDITIONAL_LIB_DIRS += -L../SOPE/GDLContentStore/obj/ -L../SOPE/NGCards/obj/
ADDITIONAL_INCLUDE_DIRS += -I/usr/include/libwbxml-1.0/
ADDITIONAL_LDFLAGS += -Wl,--no-as-needed -lwbxml2
-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/bundle.make
-include GNUmakefile.postamble

View File

@ -0,0 +1,4 @@
ifeq ($(HAS_LIBRARY_ssl),yes)
ADDITIONAL_CPPFLAGS += -DHAVE_OPENSSL=1
BUNDLE_LIBS += -lcrypto
endif

25
ActiveSync/LICENSE 100644
View File

@ -0,0 +1,25 @@
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,43 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NGDOMELEMENTACTIVESYNC_H__
#define __NGDOMELEMENTACTIVESYNC_H__
#import <DOM/DOMElement.h>
@class NSDictionary;
@interface NGDOMElement (ActiveSync)
- (NSDictionary *) applicationData;
@end
#endif // NGDOMELEMENTACTIVESYNC

View File

@ -0,0 +1,228 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "NGDOMElement+ActiveSync.h"
#import <Foundation/NSArray.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
static NSArray *asElementArray = nil;
static NSArray *considerAsSameArray = nil;
@implementation NGDOMElement (ActiveSync)
- (BOOL) isTextNode
{
id <DOMNodeList> children;
id <DOMElement> element;
int i;
if ([self nodeType] == DOM_TEXT_NODE)
return YES;
children = [self childNodes];
for (i = 0; i < [children length]; i++)
{
element = [children objectAtIndex: i];
if ([element nodeType] != DOM_TEXT_NODE)
return NO;
}
return YES;
}
//
// We must handle "inner data" like this:
//
// <ApplicationData>
// <Flag xmlns="Email:">
// <FlagStatus>2</FlagStatus>
// <FlagType>Flag for follow up</FlagType>
// </Flag>
// </ApplicationData>
//
// and stuff like that:
//
// <Attendees xmlns="Calendar:">
// <Attendee>
// <Attendee_Email>sogo1@example.com</Attendee_Email>
// <Attendee_Name>John Doe</Attendee_Name>
// <Attendee_Status>5</Attendee_Status>
// <Attendee_Type>1</Attendee_Type>
// </Attendee>
// <Attendee>
// <Attendee_Email>sogo2@example.com</Attendee_Email>
// <Attendee_Name>Balthazar César</Attendee_Name>
// <Attendee_Status>5</Attendee_Status>
// <Attendee_Type>1</Attendee_Type>
// </Attendee>
// <Attendee>
// <Attendee_Email>sogo3@example.com</Attendee_Email>
// <Attendee_Name>Wolfgang Fritz</Attendee_Name>
// <Attendee_Status>5</Attendee_Status>
// <Attendee_Type>1</Attendee_Type>
// </Attendee>
// </Attendees>
//
- (NSDictionary *) applicationData
{
NSMutableDictionary *data;
id <DOMNodeList> children;
id <DOMElement> element;
int i, count;
if (!asElementArray)
asElementArray = [[NSArray alloc] initWithObjects: @"Attendee", @"Category", @"Exception", @"Add", @"Delete", nil];
// FIXME
/* if the client sends
<attachments>
<add>
...
</add>
<add>
...
</add>
</attachments>
the result is a NSarray i.e. {add1; add2; ...}
if the client sends
<attachments>
<add>
...
</add>
<add>
...
</add>
<delete>
...
</delete>
<delete>
...
</delete>
</attachments>
the result is a NSDictionary ie. Add = { }; Delete = { }; the dictionary would contain only one entry for add
*/
if (!considerAsSameArray)
considerAsSameArray = [[NSArray alloc] initWithObjects: @"Add", @"Delete", nil];
data = [NSMutableDictionary dictionary];
children = [self childNodes];
for (i = 0; i < [children length]; i++)
{
element = [children objectAtIndex: i];
if ([element nodeType] == DOM_ELEMENT_NODE)
{
NSString *tag;
id value;
tag = [element tagName];
count = [(NSArray *)[element childNodes] count];
// We check if the node is a text one or if all its
// children are text nodes. This is important to avoid side-effects
// in SOPE where "foo & bar" would result into 3 childnodes instead
// of just one.
if ([(id)element isTextNode])
{
value = [(id)element textValue];
}
// Handle inner data - see above for samples
else
{
NSMutableArray *innerElements;
id <DOMElement> innerElement;
NSArray *childNodes;
NSString *innerTag;
BOOL same;
int j;
childNodes = (NSArray *)[element childNodes];
innerElements = [NSMutableArray array];
innerTag = nil;
same = YES;
for (j = 1; j < count; j++)
{
innerElement = [childNodes objectAtIndex: j];
if ([innerElement nodeType] == DOM_ELEMENT_NODE)
{
if (!innerTag)
innerTag = [innerElement tagName];
if ([innerTag isEqualToString: [innerElement tagName]] || [considerAsSameArray containsObject: innerTag])
{
if ([(id)innerElement isTextNode])
[innerElements addObject: [(NGDOMElement *)innerElement textValue]];
else
[innerElements addObject: [(NGDOMElement *)innerElement applicationData]];
}
else
{
same = NO;
break;
}
}
}
if (same && [asElementArray containsObject: innerTag])
value = innerElements;
else
{
value = [(NGDOMElement *)element applicationData];
// Don't set empty values like Foo = {}
if (![value count])
value = nil;
}
}
if (value && tag)
[data setObject: value forKey: tag];
} // if ([element nodeType] == DOM_ELEMENT_NODE)
}
return data;
}
@end

View File

@ -0,0 +1,43 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NGMIMEMESSAGEACTIVESYNC_H__
#define __NGMIMEMESSAGEACTIVESYNC_H__
#import <NGMail/NGMimeMessage.h>
@class NSArray;
@interface NGMimeMessage (ActiveSync)
- (NSArray *) allRecipients;
@end
#endif

View File

@ -0,0 +1,76 @@
/*
Copyright (c) 2015, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NGMimeMessage+ActiveSync.h"
#import <Foundation/NSArray.h>
#import <NGMail/NGMailAddress.h>
#import <NGMail/NGMailAddressParser.h>
#import <SOGo/NSString+Utilities.h>
@implementation NGMimeMessage (ActiveSync)
- (void) _addRecipients: (NSEnumerator *) enumerator
toArray: (NSMutableArray *) recipients
{
NGMailAddressParser *parser;
NSEnumerator *addressList;
NGMailAddress *address;
NSString *s;
while ((s = [enumerator nextObject]))
{
parser = [NGMailAddressParser mailAddressParserWithString: s];
addressList = [[parser parseAddressList] objectEnumerator];
while ((address = [addressList nextObject]))
[recipients addObject: [address address]];
}
}
- (NSArray *) allRecipients
{
NSMutableArray *recipients;
recipients = [NSMutableArray array];
[self _addRecipients: [[self headersForKey: @"to"] objectEnumerator]
toArray: recipients];
[self _addRecipients: [[self headersForKey: @"cc"] objectEnumerator]
toArray: recipients];
[self _addRecipients: [[self headersForKey: @"bcc"] objectEnumerator]
toArray: recipients];
return recipients;
}
@end

View File

@ -0,0 +1,47 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NGVCARDACTIVESYNC_H__
#define __NGVCARDACTIVESYNC_H__
#import <NGCards/NGVCard.h>
@class NSDictionary;
@class NSString;
@class WOContext;
@interface NGVCard (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,619 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NGVCard+ActiveSync.h"
#import <Foundation/NSCalendarDate.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSString+misc.h>
#import <Contacts/NGVCard+SOGo.h>
#import <SOGo/NSString+Utilities.h>
#include "NSDate+ActiveSync.h"
#include "NSString+ActiveSync.h"
#import <NGObjWeb/WOContext+SoObjects.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
@implementation NGVCard (ActiveSync)
//
// This function is called for each elements which can be ghosted according to specs.
// https://msdn.microsoft.com/en-us/library/gg650908%28v=exchg.80%29.aspx
//
- (BOOL) _isGhosted: (NSString *) element
inContext: (WOContext *) context
{
NSArray *supportedElements;
supportedElements = [context objectForKey: @"SupportedElements"];
// If the client does not include a Supported element in the initial Sync command request for
// a folder, then all of the elements that can be ghosted are considered not ghosted.
if (!supportedElements)
return NO;
// If the client includes an empty Supported element in the initial Sync command request for
// a folder, then all elements that can be ghosted are considered ghosted.
if (![supportedElements count])
return YES;
// If the client includes a Supported element that contains child elements in the initial
// Sync command request for a folder, then each child element of that Supported element is
// considered not ghosted. All elements that can be ghosted that are not included as child
// elements of the Supported element are considered ghosted.
if (!([supportedElements indexOfObject: element] == NSNotFound))
return YES;
return NO;
}
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSArray *emails, *addresses, *categories, *elements;
NSMutableArray *other_addresses;
CardElement *n, *homeAdr, *workAdr, *otherAdr;
NSMutableString *s, *a;
NSString *url;
id o;
int i;
s = [NSMutableString string];
n = [self n];
if ((o = [n flattenedValueAtIndex: 0 forKey: @""]))
[s appendFormat: @"<LastName xmlns=\"Contacts:\">%@</LastName>", [o activeSyncRepresentationInContext: context]];
if ((o = [n flattenedValueAtIndex: 1 forKey: @""]))
[s appendFormat: @"<FirstName xmlns=\"Contacts:\">%@</FirstName>", [o activeSyncRepresentationInContext: context]];
if ((o = [n flattenedValueAtIndex: 2 forKey: @""]))
[s appendFormat: @"<MiddleName xmlns=\"Contacts:\">%@</MiddleName>", [o activeSyncRepresentationInContext: context]];
if ((o = [n flattenedValueAtIndex: 3 forKey: @""]))
[s appendFormat: @"<Title xmlns=\"Contacts:\">%@</Title>", [o activeSyncRepresentationInContext: context]];
if ((o = [n flattenedValueAtIndex: 4 forKey: @""]))
[s appendFormat: @"<Suffix xmlns=\"Contacts:\">%@</Suffix>", [o activeSyncRepresentationInContext: context]];
if ((o = [self fn]))
[s appendFormat: @"<FileAs xmlns=\"Contacts:\">%@</FileAs>", [o activeSyncRepresentationInContext: context]];
if ((o = [self workCompany]))
[s appendFormat: @"<CompanyName xmlns=\"Contacts:\">%@</CompanyName>", [o activeSyncRepresentationInContext: context]];
if ((o = [[self org] flattenedValueAtIndex: 1 forKey: @""]))
[s appendFormat: @"<Department xmlns=\"Contacts:\">%@</Department>", [o activeSyncRepresentationInContext: context]];
categories = [self categories];
if ([categories count])
{
[s appendFormat: @"<Categories xmlns=\"Contacts:\">"];
for (i = 0; i < [categories count]; i++)
{
[s appendFormat: @"<Category xmlns=\"Contacts:\">%@</Category>", [[categories objectAtIndex: i] activeSyncRepresentationInContext: context]];
}
[s appendFormat: @"</Categories>"];
}
elements = [self childrenWithTag: @"url"
andAttribute: @"type"
havingValue: @"work"];
if ([elements count] > 0)
{
url = [[elements objectAtIndex: 0] flattenedValuesForKey: @""];
[s appendFormat: @"<WebPage xmlns=\"Contacts:\">%@</WebPage>", [url activeSyncRepresentationInContext: context]];
}
if ((o = [[self uniqueChildWithTag: @"x-aim"] flattenedValuesForKey: @""]))
[s appendFormat: @"<IMAddress xmlns=\"Contacts:\">%@</IMAddress>", [o activeSyncRepresentationInContext: context]];
if ((o = [self nickname]))
[s appendFormat: @"<NickName xmlns=\"Contacts:\">%@</NickName>", [o activeSyncRepresentationInContext: context]];
if ((o = [self title]))
[s appendFormat: @"<JobTitle xmlns=\"Contacts:\">%@</JobTitle>", [o activeSyncRepresentationInContext: context]];
if ((o = [self preferredEMail]))
[s appendFormat: @"<Email1Address xmlns=\"Contacts:\">%@</Email1Address>", [o activeSyncRepresentationInContext: context]];
// Secondary email addresses (2 and 3)
emails = [self secondaryEmails];
for (i = 0; i < [emails count]; i++)
{
o = [[emails objectAtIndex: i] flattenedValuesForKey: @""];
[s appendFormat: @"<Email%dAddress xmlns=\"Contacts:\">%@</Email%dAddress>", i+2, [o activeSyncRepresentationInContext: context], i+2];
if (i == 1)
break;
}
// Telephone numbers
if ((o = [self workPhone]) && [o length])
[s appendFormat: @"<BusinessPhoneNumber xmlns=\"Contacts:\">%@</BusinessPhoneNumber>", [o activeSyncRepresentationInContext: context]];
if ((o = [self homePhone]) && [o length])
[s appendFormat: @"<HomePhoneNumber xmlns=\"Contacts:\">%@</HomePhoneNumber>", [o activeSyncRepresentationInContext: context]];
if ((o = [self fax]) && [o length])
[s appendFormat: @"<BusinessFaxNumber xmlns=\"Contacts:\">%@</BusinessFaxNumber>", [o activeSyncRepresentationInContext: context]];
if ((o = [self mobile]) && [o length])
[s appendFormat: @"<MobilePhoneNumber xmlns=\"Contacts:\">%@</MobilePhoneNumber>", [o activeSyncRepresentationInContext: context]];
if ((o = [self pager]) && [o length])
[s appendFormat: @"<PagerNumber xmlns=\"Contacts:\">%@</PagerNumber>", [o activeSyncRepresentationInContext: context]];
// Home Address
addresses = [self childrenWithTag: @"adr"
andAttribute: @"type"
havingValue: @"home"];
if ([addresses count])
{
homeAdr = [addresses objectAtIndex: 0];
a = [NSMutableString string];
if ((o = [homeAdr flattenedValueAtIndex: 2 forKey: @""]))
[a appendString: [o activeSyncRepresentationInContext: context]];
if ((o = [homeAdr flattenedValueAtIndex: 1 forKey: @""]) && [o length])
[a appendFormat: @"\n%@", [o activeSyncRepresentationInContext: context]];
[s appendFormat: @"<HomeStreet xmlns=\"Contacts:\">%@</HomeStreet>", a];
if ((o = [homeAdr flattenedValueAtIndex: 3 forKey: @""]))
[s appendFormat: @"<HomeCity xmlns=\"Contacts:\">%@</HomeCity>", [o activeSyncRepresentationInContext: context]];
if ((o = [homeAdr flattenedValueAtIndex: 4 forKey: @""]))
[s appendFormat: @"<HomeState xmlns=\"Contacts:\">%@</HomeState>", [o activeSyncRepresentationInContext: context]];
if ((o = [homeAdr flattenedValueAtIndex: 5 forKey: @""]))
[s appendFormat: @"<HomePostalCode xmlns=\"Contacts:\">%@</HomePostalCode>", [o activeSyncRepresentationInContext: context]];
if ((o = [homeAdr flattenedValueAtIndex: 6 forKey: @""]))
[s appendFormat: @"<HomeCountry xmlns=\"Contacts:\">%@</HomeCountry>", [o activeSyncRepresentationInContext: context]];
}
// Work Address
addresses = [self childrenWithTag: @"adr"
andAttribute: @"type"
havingValue: @"work"];
if ([addresses count])
{
workAdr = [addresses objectAtIndex: 0];
a = [NSMutableString string];
if ((o = [workAdr flattenedValueAtIndex: 2 forKey: @""]))
[a appendString: [o activeSyncRepresentationInContext: context]];
if ((o = [workAdr flattenedValueAtIndex: 1 forKey: @""]) && [o length])
[a appendFormat: @"\n%@", [o activeSyncRepresentationInContext: context]];
[s appendFormat: @"<BusinessStreet xmlns=\"Contacts:\">%@</BusinessStreet>", a];
if ((o = [workAdr flattenedValueAtIndex: 3 forKey: @""]))
[s appendFormat: @"<BusinessCity xmlns=\"Contacts:\">%@</BusinessCity>", [o activeSyncRepresentationInContext: context]];
if ((o = [workAdr flattenedValueAtIndex: 4 forKey: @""]))
[s appendFormat: @"<BusinessState xmlns=\"Contacts:\">%@</BusinessState>", [o activeSyncRepresentationInContext: context]];
if ((o = [workAdr flattenedValueAtIndex: 5 forKey: @""]))
[s appendFormat: @"<BusinessPostalCode xmlns=\"Contacts:\">%@</BusinessPostalCode>", [o activeSyncRepresentationInContext: context]];
if ((o = [workAdr flattenedValueAtIndex: 6 forKey: @""]))
[s appendFormat: @"<BusinessCountry xmlns=\"Contacts:\">%@</BusinessCountry>", [o activeSyncRepresentationInContext: context]];
}
// Other Address
other_addresses = [[self childrenWithTag: @"adr"] mutableCopy];
[other_addresses removeObjectsInArray: [self childrenWithTag: @"adr" andAttribute: @"type" havingValue: @"work"]];
[other_addresses removeObjectsInArray: [self childrenWithTag: @"adr" andAttribute: @"type" havingValue: @"home"]];
if ([other_addresses count])
{
otherAdr = [other_addresses objectAtIndex: 0];
a = [NSMutableString string];
if ((o = [otherAdr flattenedValueAtIndex: 2 forKey: @""]))
[a appendString: [o activeSyncRepresentationInContext: context]];
if ((o = [otherAdr flattenedValueAtIndex: 1 forKey: @""]) && [o length])
[a appendFormat: @"\n%@", [o activeSyncRepresentationInContext: context]];
[s appendFormat: @"<OtherStreet xmlns=\"Contacts:\">%@</OtherStreet>", a];
if ((o = [otherAdr flattenedValueAtIndex: 3 forKey: @""]))
[s appendFormat: @"<OtherCity xmlns=\"Contacts:\">%@</OtherCity>", [o activeSyncRepresentationInContext: context]];
if ((o = [otherAdr flattenedValueAtIndex: 4 forKey: @""]))
[s appendFormat: @"<OtherState xmlns=\"Contacts:\">%@</OtherState>", [o activeSyncRepresentationInContext: context]];
if ((o = [otherAdr flattenedValueAtIndex: 5 forKey: @""]))
[s appendFormat: @"<OtherPostalCode xmlns=\"Contacts:\">%@</OtherPostalCode>", [o activeSyncRepresentationInContext: context]];
if ((o = [otherAdr flattenedValueAtIndex: 6 forKey: @""]))
[s appendFormat: @"<OtherCountry xmlns=\"Contacts:\">%@</OtherCountry>", [o activeSyncRepresentationInContext: context]];
}
// Other, less important fields
if ((o = [self birthday]))
{
[s appendFormat: @"<Birthday xmlns=\"Contacts:\">%@</Birthday>",
[[o dateByAddingYears: 0 months: 0 days: 0
hours: -12 minutes: 0
seconds: 0]
activeSyncRepresentationInContext: context]];
}
if ((o = [self note]))
{
// It is very important here to NOT set <Truncated>0</Truncated> in the response,
// otherwise it'll prevent WP8 phones from sync'ing. See #3028 for details.
o = [o activeSyncRepresentationInContext: context];
[s appendString: @"<Body xmlns=\"AirSyncBase:\">"];
[s appendFormat: @"<Type>%d</Type>", 1];
[s appendFormat: @"<EstimatedDataSize>%d</EstimatedDataSize>", [o length]];
[s appendFormat: @"<Data>%@</Data>", o];
[s appendString: @"</Body>"];
}
if ((o = [self photo]))
[s appendFormat: @"<Picture xmlns=\"Contacts:\">%@</Picture>", o];
return s;
}
//
//
//
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
CardElement *element;
NSMutableArray *addressLines, *other_addresses;
id o, l, m, f, p, s;
l = m = f = p = s = nil;
// Contact's note
if ((o = [[theValues objectForKey: @"Body"] objectForKey: @"Data"]))
[self setNote: o];
// Categories
if ((o = [theValues objectForKey: @"Categories"]) && [o length])
[self setCategories: o];
else
[[self children] removeObjectsInArray: [self childrenWithTag: @"Categories"]];
// Birthday
if ((o = [theValues objectForKey: @"Birthday"]))
{
o = [o calendarDate];
[self setBday: [o descriptionWithCalendarFormat: @"%Y-%m-%d" timeZone: nil locale: nil]];
}
else if (![self _isGhosted: @"Birthday" inContext: context])
{
[self setBday: @""];
}
//
// Business address information
//
// BusinessStreet
// BusinessCity
// BusinessPostalCode
// BusinessState
// BusinessCountry
//
element = [self elementWithTag: @"adr" ofType: @"work"];
if ((o = [theValues objectForKey: @"BusinessStreet"]) || ![self _isGhosted: @"BusinessStreet" inContext: context])
{
addressLines = [NSMutableArray arrayWithArray: [o componentsSeparatedByString: @"\n"]];
[element setSingleValue: @""
atIndex: 1 forKey: @""];
[element setSingleValue: [addressLines count] ? [addressLines objectAtIndex: 0] : @""
atIndex: 2 forKey: @""];
// Extended address line. If there are more than 2 address lines we add them to the extended address line.
if ([addressLines count] > 1)
{
[addressLines removeObjectAtIndex: 0];
[element setSingleValue: [addressLines componentsJoinedByString: @" "]
atIndex: 1 forKey: @""];
}
}
if ((o = [theValues objectForKey: @"BusinessCity"]) || ![self _isGhosted: @"BusinessCity" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"BusinessCity"]
atIndex: 3 forKey: @""];
}
if ((o = [theValues objectForKey: @"BusinessState"]) || ![self _isGhosted: @"BusinessState" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"BusinessState"]
atIndex: 4 forKey: @""];
}
if ((o = [theValues objectForKey: @"BusinessPostalCode"]) || ![self _isGhosted: @"BusinessPostalCode" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"BusinessPostalCode"]
atIndex: 5 forKey: @""];
}
if ((o = [theValues objectForKey: @"BusinessCountry"]) || ![self _isGhosted: @"BusinessCountry" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"BusinessCountry"]
atIndex: 6 forKey: @""];
}
//
// Home address information
//
// HomeStreet
// HomeCity
// HomePostalCode
// HomeState
// HomeCountry
//
element = [self elementWithTag: @"adr" ofType: @"home"];
if ((o = [theValues objectForKey: @"HomeStreet"]) || ![self _isGhosted: @"HomeStreet" inContext: context])
{
addressLines = [NSMutableArray arrayWithArray: [o componentsSeparatedByString: @"\n"]];
[element setSingleValue: @""
atIndex: 1 forKey: @""];
[element setSingleValue: [addressLines count] ? [addressLines objectAtIndex: 0] : @""
atIndex: 2 forKey: @""];
// Extended address line. If there are more then 2 address lines we add them to the extended address line.
if ([addressLines count] > 1)
{
[addressLines removeObjectAtIndex: 0];
[element setSingleValue: [addressLines componentsJoinedByString: @" "]
atIndex: 1 forKey: @""];
}
}
if ((o = [theValues objectForKey: @"HomeCity"]) || ![self _isGhosted: @"HomeCity" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"HomeCity"]
atIndex: 3 forKey: @""];
}
if ((o = [theValues objectForKey: @"HomeState"]) || ![self _isGhosted: @"HomeState" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"HomeState"]
atIndex: 4 forKey: @""];
}
if ((o = [theValues objectForKey: @"HomePostalCode"]) || ![self _isGhosted: @"HomePostalCode" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"HomePostalCode"]
atIndex: 5 forKey: @""];
}
if ((o = [theValues objectForKey: @"HomeCountry"]) || ![self _isGhosted: @"HomeCountry" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"HomeCountry"]
atIndex: 6 forKey: @""];
}
// OtherCountry
//
other_addresses = [[self childrenWithTag: @"adr"] mutableCopy];
[other_addresses removeObjectsInArray: [self childrenWithTag: @"adr" andAttribute: @"type" havingValue: @"work"]];
[other_addresses removeObjectsInArray: [self childrenWithTag: @"adr" andAttribute: @"type" havingValue: @"home"]];
if ([other_addresses count])
element = [other_addresses objectAtIndex: 0];
else
{
element = [CardElement elementWithTag: @"adr"];
[self addChild: element];
}
if ((o = [theValues objectForKey: @"OtherStreet"]) || ![self _isGhosted: @"OtherStreet" inContext: context])
{
addressLines = [NSMutableArray arrayWithArray: [o componentsSeparatedByString: @"\n"]];
[element setSingleValue: @""
atIndex: 1 forKey: @""];
[element setSingleValue: [addressLines count] ? [addressLines objectAtIndex: 0] : @""
atIndex: 2 forKey: @""];
// Extended address line. If there are more then 2 address lines we add them to the extended address line.
if ([addressLines count] > 1)
{
[addressLines removeObjectAtIndex: 0];
[element setSingleValue: [addressLines componentsJoinedByString: @" "]
atIndex: 1 forKey: @""];
}
}
if ((o = [theValues objectForKey: @"OtherCity"]) || ![self _isGhosted: @"OtherCity" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"OtherCity"]
atIndex: 3 forKey: @""];
}
if ((o = [theValues objectForKey: @"OtherState"]) || ![self _isGhosted: @"OtherState" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"OtherState"]
atIndex: 4 forKey: @""];
}
if ((o = [theValues objectForKey: @"OtherPostalCode"]) || ![self _isGhosted: @"OtherPostalCode" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"OtherPostalCode"]
atIndex: 5 forKey: @""];
}
if ((o = [theValues objectForKey: @"OtherCountry"]) || ![self _isGhosted: @"OtherCountry" inContext: context])
{
[element setSingleValue: [theValues objectForKey: @"OtherCountry"]
atIndex: 6 forKey: @""];
}
// Company's name
if ((o = [theValues objectForKey: @"CompanyName"]))
[self setOrg: o units: nil];
else if (![self _isGhosted: @"CompanyName" inContext: context])
[self setOrg: @"" units: nil];
// Department
if ((o = [theValues objectForKey: @"Department"]))
[self setOrg: nil units: [NSArray arrayWithObjects:o,nil]];
else if (![self _isGhosted: @"Department" inContext: context])
[self setOrg: nil units: [NSArray arrayWithObjects:@"",nil]];
// Email addresses
if ((o = [theValues objectForKey: @"Email1Address"]) || ![self _isGhosted: @"Email1Address" inContext: context])
{
element = [self elementWithTag: @"email" ofType: @"work"];
[element setSingleValue: [o pureEMailAddress] forKey: @""];
}
if ((o = [theValues objectForKey: @"Email2Address"]) || ![self _isGhosted: @"Email2Address" inContext: context])
{
element = [self elementWithTag: @"email" ofType: @"home"];
[element setSingleValue: [o pureEMailAddress] forKey: @""];
}
// SOGo currently only supports 2 email addresses ... but AS clients might send 3
// FIXME: revise this when the GUI revamp is done in SOGo
if ((o = [theValues objectForKey: @"Email3Address"]) || ![self _isGhosted: @"Email3Address" inContext: context])
{
element = [self elementWithTag: @"email" ofType: @"three"];
[element setSingleValue: [o pureEMailAddress] forKey: @""];
}
// Formatted name
// MiddleName
// Suffix (II)
// Title (Mr.)
if ((o = [theValues objectForKey: @"FileAs"]) || ![self _isGhosted: @"FileAs" inContext: context])
[self setFn: [theValues objectForKey: @"FileAs"]];
if ((o = [theValues objectForKey: @"LastName"]) || ![self _isGhosted: @"LastName" inContext: context])
l = o ? o : @"";
if ((o = [theValues objectForKey: @"FirstName"]) || ![self _isGhosted: @"FirstName" inContext: context])
f = o ? o : @"";
if ((o = [theValues objectForKey: @"MiddleName"]) || ![self _isGhosted: @"MiddleName" inContext: context])
m = o ? o : @"";
if ((o = [theValues objectForKey: @"Title"]) || ![self _isGhosted: @"Title" inContext: context])
p = o ? o : @"";
if ((o = [theValues objectForKey: @"Suffix"]) || ![self _isGhosted: @"Suffix" inContext: context])
s = o ? o : @"";
[self setNWithFamily: l given: f additional: m prefixes: p suffixes: s];
// IM information
if ((o = [theValues objectForKey: @"IMAddress"]) || ![self _isGhosted: @"IMAddress" inContext: context])
[[self uniqueChildWithTag: @"x-aim"]
setSingleValue: [theValues objectForKey: @"IMAddress"]
forKey: @""];
//
// Phone numbrrs
//
if ((o = [theValues objectForKey: @"BusinessPhoneNumber"]) || ![self _isGhosted: @"BusinessPhoneNumber" inContext: context])
{
element = [self elementWithTag: @"tel" ofType: @"work"];
[element setSingleValue: [theValues objectForKey: @"BusinessPhoneNumber"] forKey: @""];
}
if ((o = [theValues objectForKey: @"HomePhoneNumber"]) || ![self _isGhosted: @"HomePhoneNumber" inContext: context])
{
element = [self elementWithTag: @"tel" ofType: @"home"];
[element setSingleValue: [theValues objectForKey: @"HomePhoneNumber"] forKey: @""];
}
if ((o = [theValues objectForKey: @"MobilePhoneNumber"]) || ![self _isGhosted: @"MobilePhoneNumber" inContext: context])
{
element = [self elementWithTag: @"tel" ofType: @"cell"];
[element setSingleValue: [theValues objectForKey: @"MobilePhoneNumber"] forKey: @""];
}
if ((o = [theValues objectForKey: @"BusinessFaxNumber"]) || ![self _isGhosted: @"BusinessFaxNumber" inContext: context])
{
element = [self elementWithTag: @"tel" ofType: @"fax"];
[element setSingleValue: [theValues objectForKey: @"BusinessFaxNumber"] forKey: @""];
}
if ((o = [theValues objectForKey: @"PagerNumber"]) || ![self _isGhosted: @"PagerNumber" inContext: context])
{
element = [self elementWithTag: @"tel" ofType: @"pager"];
[element setSingleValue: [theValues objectForKey: @"PagerNumber"] forKey: @""];
}
// Job's title
if ((o = [theValues objectForKey: @"JobTitle"]) || ![self _isGhosted: @"JobTitle" inContext: context])
[self setTitle: o];
// WebPage (work)
if ((o = [theValues objectForKey: @"WebPage"]) || ![self _isGhosted: @"WebPage" inContext: context])
[[self elementWithTag: @"url" ofType: @"work"]
setSingleValue: o forKey: @""];
if ((o = [theValues objectForKey: @"NickName"]) || ![self _isGhosted: @"NickName" inContext: context])
[self setNickname: o];
if ((o = [theValues objectForKey: @"Picture"]))
[self setPhoto: o];
}
@end

View File

@ -0,0 +1,49 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NSARRAYSYNCCACHE_H__
#define __NSARRAYSYNCCACHE_H__
#import <Foundation/NSArray.h>
@class NSDictionary;
@interface NSMutableArray (SyncCache)
- (id) initWithDictionary: (NSDictionary *) theDictionary;
@end
@interface NSArray (SyncCache)
- (NSDictionary *) dictionaryValue;
@end
#endif

View File

@ -0,0 +1,84 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NSArray+SyncCache.h"
#import <Foundation/NSDictionary.h>
#include "SOGoSyncCacheObject.h"
@implementation NSMutableArray (SyncCache)
- (id) initWithDictionary: (NSDictionary *) theDictionary
{
SOGoSyncCacheObject *o;
NSArray *allKeys;
id key;
int i;
self = [self initWithCapacity: [theDictionary count]];
allKeys = [theDictionary allKeys];
for (i = 0; i < [allKeys count]; i++)
{
key = [allKeys objectAtIndex: i];
o = [SOGoSyncCacheObject syncCacheObjectWithUID: key
sequence: [theDictionary objectForKey: key]];
[self addObject: o];
}
return self;
}
@end
//
//
//
@implementation NSArray (SyncCache)
- (NSDictionary *) dictionaryValue
{
NSMutableDictionary *d;
SOGoSyncCacheObject *o;
int i;
d = [NSMutableDictionary dictionary];
for (i = 0; i < [self count]; i++)
{
o = [self objectAtIndex: i];
[d setObject: [o sequence] forKey: [o uid]];
}
return d;
}
@end

View File

@ -0,0 +1,43 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NSCALENDARDATEACTIVESYNC_H__
#define __NSCALENDARDATEACTIVESYNC_H__
#import <Foundation/NSCalendarDate.h>
@class NSString;
@interface NSCalendarDate (ActiveSync)
+ (NSCalendarDate *) dateFromFilterType: (NSString *) theFilterType;
@end
#endif

View File

@ -0,0 +1,86 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NSCalendarDate+ActiveSync.h"
#import <Foundation/NSString.h>
#define ONE_DAY 86400
@implementation NSCalendarDate (ActiveSync)
//
// See http://msdn.microsoft.com/en-us/library/gg709713(v=exchg.80).aspx for available types
//
+ (NSCalendarDate *) dateFromFilterType: (NSString *) theFilterType
{
NSCalendarDate *d;
d = [NSCalendarDate calendarDate];
if (d)
{
int value;
switch ([theFilterType intValue])
{
case 1:
value = ONE_DAY;
break;
case 2:
value = 3 * ONE_DAY;
break;
case 3:
value = 7 * ONE_DAY;
break;
case 4:
value = 14 * ONE_DAY;
break;
case 5:
value = 30 * ONE_DAY;
break;
case 6:
value = 90 * ONE_DAY;
break;
case 7:
value = 180 * ONE_DAY;
break;
case 0:
case 8:
default:
return nil;
}
return [d initWithTimeIntervalSinceNow: -value];
}
return d;
}
@end

View File

@ -0,0 +1,46 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NSDATAACTIVESYNC_H__
#define __NSDATAACTIVESYNC_H__
#import <Foundation/NSData.h>
@class NSString;
@class WOContext;
@interface NSData (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (NSData *) wbxml2xml;
- (NSData *) xml2wbxml;
@end
#endif

View File

@ -0,0 +1,182 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NSData+ActiveSync.h"
#import <Foundation/NSProcessInfo.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <NGExtensions/NGBase64Coding.h>
#import <NGExtensions/NSObject+Logs.h>
#include <wbxml/wbxml.h>
#define WBXMLDEBUG 0
@implementation NSData (ActiveSync)
- (void) _dumpToFile
{
BOOL debugOn;
debugOn = [[SOGoSystemDefaults sharedSystemDefaults] easDebugEnabled];
if (debugOn)
{
NSString *path;
path = [NSString stringWithFormat: @"/tmp/%@.data", [[NSProcessInfo processInfo] globallyUniqueString]];
[self writeToFile: path atomically: YES];
[self errorWithFormat: @"Original data written to: %@", path];
}
}
//
// Encodes the data in base64 and strip newline characters
//
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSString *tmp, *s;
unichar *buf, *start, c;
int len, i, j;
tmp = [self stringByEncodingBase64] ;
len = [tmp length];
start = buf = (unichar *)malloc(len*sizeof(unichar));
[tmp getCharacters: buf range: NSMakeRange(0, len)];
for (i = 0, j = 0; i < len; i++)
{
c = *buf;
if (!(c == 0xA))
{
*(start+j) = c;
j++;
}
buf++;
}
s = [[NSString alloc] initWithCharactersNoCopy: start length: j freeWhenDone: YES];
return AUTORELEASE(s);
}
- (NSData *) wbxml2xml
{
WBXMLGenXMLParams params;
NSData *data;
unsigned int wbxml_len, xml_len, ret;
unsigned char *wbxml, *xml;
wbxml = (unsigned char*)[self bytes];
wbxml_len = [self length];
xml = NULL;
xml_len = 0;
params.lang = WBXML_LANG_ACTIVESYNC;
params.gen_type = WBXML_GEN_XML_INDENT;
params.indent = 1;
params.keep_ignorable_ws = FALSE;
ret = wbxml_conv_wbxml2xml_withlen(wbxml, wbxml_len, &xml, &xml_len, &params);
if (ret != WBXML_OK)
{
[self errorWithFormat: @"wbxml2xmlFromContent: failed: %s\n", wbxml_errors_string(ret)];
[self _dumpToFile];
return nil;
}
data = [NSData dataWithBytesNoCopy: xml length: xml_len freeWhenDone: YES];
#if WBXMLDEBUG
[data writeToFile: @"/tmp/protocol.decoded" atomically: YES];
#endif
return data;
}
- (NSData *) xml2wbxml
{
WBXMLConvXML2WBXML *conv;
NSData *data;
unsigned int wbxml_len, xml_len, ret;
unsigned char *wbxml, *xml;
xml = (unsigned char*)[self bytes];
xml_len = [self length];
wbxml = NULL;
wbxml_len = 0;
conv = NULL;
ret = wbxml_conv_xml2wbxml_create(&conv);
if (ret != WBXML_OK)
{
[self logWithFormat: @"xml2wbxmlFromContent: failed: %s\n", wbxml_errors_string(ret)];
[self _dumpToFile];
return nil;
}
wbxml_conv_xml2wbxml_enable_preserve_whitespaces(conv);
// From libwbxml's changelog in v0.11.0: "The public ID is set to unknown and the DTD is not included. This is required for Microsoft ActiveSync."
wbxml_conv_xml2wbxml_disable_public_id(conv);
wbxml_conv_xml2wbxml_disable_string_table(conv);
ret = wbxml_conv_xml2wbxml_run(conv, xml, xml_len, &wbxml, &wbxml_len);
if (ret != WBXML_OK)
{
[self errorWithFormat: @"xml2wbxmlFromContent: failed: %s\n", wbxml_errors_string(ret)];
[self _dumpToFile];
free(wbxml);
wbxml_conv_xml2wbxml_destroy(conv);
return nil;
}
data = [NSData dataWithBytesNoCopy: wbxml length: wbxml_len freeWhenDone: YES];
#if WBXMLDEBUG
[data writeToFile: @"/tmp/protocol.encoded" atomically: YES];
#endif
wbxml_conv_xml2wbxml_destroy(conv);
return data;
}
@end

View File

@ -0,0 +1,45 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NSDATEACTIVESYNC_H__
#define __NSDATEACTIVESYNC_H__
#import <Foundation/NSDate.h>
@class NSString;
@class WOContext;
@interface NSDate (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (NSString *) activeSyncRepresentationWithoutSeparatorsInContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,52 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "NSDate+ActiveSync.h"
#import <Foundation/NSString.h>
#import <Foundation/NSTimeZone.h>
@implementation NSDate (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
return [self descriptionWithCalendarFormat: @"%Y-%m-%dT%H:%M:%S.%FZ" timeZone: [NSTimeZone timeZoneWithName: @"GMT"] locale: nil];
}
//
// From [MS-ASDTYPE].pdf - section 2.3 "Dates and times in calendar items MUST NOT include punctuation separators."
//
- (NSString *) activeSyncRepresentationWithoutSeparatorsInContext: (WOContext *) context
{
return [self descriptionWithCalendarFormat: @"%Y%m%dT%H%M%SZ" timeZone: [NSTimeZone timeZoneWithName: @"GMT"] locale: nil];
}
@end

View File

@ -0,0 +1,59 @@
/*
Copyright (c) 2014-2015, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __NSSTRINGACTIVESYNC_H__
#define __NSSTRINGACTIVESYNC_H__
#import <Foundation/NSString.h>
#include "SOGoActiveSyncConstants.h"
@class NSCalendarDate;
@class NSData;
@class WOContext;
@interface NSString (ActiveSync)
- (NSString *) sanitizedServerIdWithType: (SOGoMicrosoftActiveSyncFolderType) folderType;
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (int) activeSyncFolderType;
- (NSString *) realCollectionIdWithFolderType: (SOGoMicrosoftActiveSyncFolderType *) folderType;
- (NSCalendarDate *) calendarDate;
- (NSString *) deviceId;
- (NSString *) deviceType;
- (NSString *) attachmentName;
- (NSString *) command;
- (NSString *) collectionid;
- (NSString *) itemid;
- (BOOL) acceptsMultiPart;
- (NSData *) convertHexStringToBytes;
- (NSString *) protocolVersion;
@end
#endif

View File

@ -0,0 +1,457 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "NSString+ActiveSync.h"
#include <Foundation/NSArray.h>
#include <Foundation/NSCalendarDate.h>
#include <SOGo/NSString+Utilities.h>
#include <SOGo/NSData+Crypto.h>
#include <NGExtensions/NGBase64Coding.h>
#include <NGExtensions/NSString+misc.h>
static NSArray *easCommandCodes = nil;
static NSArray *easCommandParameters = nil;
@implementation NSString (ActiveSync)
- (NSString *) sanitizedServerIdWithType: (SOGoMicrosoftActiveSyncFolderType) folderType
{
if (folderType == ActiveSyncEventFolder)
{
int len;
len = [self length];
if (len > 4 && [self hasSuffix: @".ics"])
return [self substringToIndex: len-4];
else
return [NSString stringWithFormat: @"%@.ics", self];
}
return self;
}
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
return [self safeStringByEscapingXMLString: YES];
}
- (int) activeSyncFolderType
{
if ([self isEqualToString: @"inbox"])
return 2;
else if ([self isEqualToString: @"draft"])
return 3;
else if ([self isEqualToString: @"sent"])
return 5;
else if ([self isEqualToString: @"trash"])
return 4;
return 12;
}
- (NSString *) realCollectionIdWithFolderType: (SOGoMicrosoftActiveSyncFolderType *) folderType;
{
NSString *realCollectionId, *v;
*folderType = ActiveSyncGenericFolder;
v = [self stringByUnescapingURL];
if ([v hasPrefix: @"vevent/"])
{
realCollectionId = [v substringFromIndex: 7];
*folderType = ActiveSyncEventFolder;
}
else if ([v hasPrefix: @"vtodo/"])
{
realCollectionId = [v substringFromIndex: 6];
*folderType = ActiveSyncTaskFolder;
}
else if ([v hasPrefix: @"vcard/"])
{
realCollectionId = [v substringFromIndex: 6];
*folderType = ActiveSyncContactFolder;
}
else if ([v hasPrefix: @"mail/"])
{
realCollectionId = [[v stringByUnescapingURL] substringFromIndex: 5];
*folderType = ActiveSyncMailFolder;
}
else
{
realCollectionId = nil;
}
return realCollectionId;
}
//
// 2014-01-16T05:00:00.000Z
//
// See http://www.gnustep.org/resources/documentation/Developer/Base/Reference/NSCalendarDate.html#method$NSCalendarDate-initWithString$calendarFormat$ for the format details.
//
- (NSCalendarDate *) calendarDate
{
NSString *s;
id o;
// We force parsing in the GMT timezone. If we don't do that, the date will be parsed
// in the default timezone.
s = [NSString stringWithFormat: @"%@ GMT", self];
o = [NSCalendarDate dateWithString: s calendarFormat: @"%Y%m%dT%H%M%SZ %Z"];
if (!o)
o = [NSCalendarDate dateWithString: s calendarFormat: @"%Y-%m-%dT%H:%M:%S.%FZ %Z"];
return o;
}
- (NSString *) protocolVersion
{
NSMutableArray *components;
components = [NSMutableArray arrayWithArray: [[[self componentsSeparatedByString: @"?"] lastObject] componentsSeparatedByString: @"&"]];
// We handle BASE64 encoded queryStrings. See http://msdn.microsoft.com/en-us/library/ee160227%28v=exchg.80%29.aspx for details.
if ([components count] == 1)
{
NSData *queryString;
const char* qs_bytes;
queryString = [[components objectAtIndex: 0] dataByDecodingBase64];
if (![queryString length])
return nil;
qs_bytes = (const char*)[queryString bytes];
return [NSString stringWithFormat:@"%.1f", (float)((uint8_t)qs_bytes[0]/10)];
}
return nil;
}
- (NSString *) _valueForParameter: (NSString *) theParameter
{
NSMutableArray *components;
NSString *s;
int i;
components = [NSMutableArray arrayWithArray: [[[self componentsSeparatedByString: @"?"] lastObject] componentsSeparatedByString: @"&"]];
// We handle BASE64 encoded queryStrings. See http://msdn.microsoft.com/en-us/library/ee160227%28v=exchg.80%29.aspx for details.
if ([components count] == 1)
{
NSString *deviceType, *parameterValue;
NSData *queryString;
int cmd_code, deviceid_length, policy_length, devicetype_length, parameter_code, parameter_length, i;
const char* qs_bytes;
queryString = [[components objectAtIndex: 0] dataByDecodingBase64];
if (![queryString length])
return nil;
qs_bytes = (const char*)[queryString bytes];
if (!easCommandCodes)
{
easCommandCodes = [NSArray arrayWithObjects:@"Sync", @"SendMail", @"SmartForward", @"SmartReply", @"GetAttachment", @"na", @"na", @"na", @"na",
@"FolderSync", @"FolderCreate", @"FolderDelete", @"FolderUpdate", @"MoveItems", @"GetItemEstimate", @"MeetingResponse",
@"Search", @"Settings", @"Ping", @"ItemOperations", @"Provision", @"ResolveRecipients", @"ValidateCert", nil];
RETAIN(easCommandCodes);
}
if (!easCommandParameters)
{
easCommandParameters = [NSArray arrayWithObjects:@"AttachmentName", @"CollectionId", @"na", @"ItemId", @"LongId", @"na", @"Occurrence", @"Options", @"User", nil];
RETAIN(easCommandParameters);
}
// Command code, 1 byte, ie.: cmd=
cmd_code = qs_bytes[1];
// Check whether the command code is within the known range.
if (cmd_code < 0 || cmd_code > 22)
return nil;
[components addObject: [NSString stringWithFormat: @"cmd=%@", [easCommandCodes objectAtIndex: cmd_code]]];
// Device ID length and Device ID (variable)
deviceid_length = qs_bytes[4];
[components addObject: [NSString stringWithFormat: @"deviceId=%@", [[NSData encodeDataAsHexString: [queryString subdataWithRange: NSMakeRange(5, deviceid_length)]] uppercaseString]]];
// Device type length and type (variable)
policy_length = qs_bytes[5+deviceid_length];
devicetype_length = qs_bytes[5+deviceid_length+1+policy_length];
deviceType = [[NSString alloc] initWithData: [queryString subdataWithRange: NSMakeRange(5+deviceid_length+1+policy_length+1, devicetype_length)]
encoding: NSASCIIStringEncoding];
AUTORELEASE(deviceType);
[components addObject: [NSString stringWithFormat: @"deviceType=%@", deviceType]];
// Command Parameters
i = 5+deviceid_length+1+policy_length+1+devicetype_length;
while (i < [queryString length])
{
parameter_code = qs_bytes[i];
parameter_length = qs_bytes[i+1];
parameterValue = [[NSString alloc] initWithData: [queryString subdataWithRange: NSMakeRange(i+1+1, parameter_length)]
encoding: NSASCIIStringEncoding];
AUTORELEASE(parameterValue);
// parameter_code 7 == Options
// http://msdn.microsoft.com/en-us/library/ee237789(v=exchg.80).aspx
if (parameter_code == 7 && ! [parameterValue isEqualToString: @"\000"] )
[components addObject: [NSString stringWithFormat: @"%@=%@", [easCommandParameters objectAtIndex: parameter_code],
([parameterValue isEqualToString: @"\001"]) ? @"SaveInSent" : @"AcceptMultiPart"]];
else
[components addObject: [NSString stringWithFormat: @"%@=%@", [easCommandParameters objectAtIndex: parameter_code], parameterValue]];
i = i + 1 + 1 + parameter_length;
}
}
for (i = 0; i < [components count]; i++)
{
s = [components objectAtIndex: i];
if ([[s uppercaseString] hasPrefix: theParameter])
return [s substringFromIndex: [theParameter length]];
}
return nil;
}
//
// This method extracts the "DeviceId" from a URI:
//
// /SOGo/Microsoft-Server-ActiveSync?Cmd=FolderSync&User=sogo10&DeviceId=SEC17CD1A3E9E3F2&DeviceType=SAMSUNGSGHI317M
//
- (NSString *) deviceId
{
NSString *s;
s = [self _valueForParameter: @"DEVICEID="];
if (!s)
s = @"Unknown";
return s;
}
//
// This method extracts the "DeviceType" from a URI:
//
// /SOGo/Microsoft-Server-ActiveSync?Cmd=FolderSync&User=sogo10&DeviceId=SEC17CD1A3E9E3F2&DeviceType=SAMSUNGSGHI317M
//
- (NSString *) deviceType
{
NSString *s;
s = [self _valueForParameter: @"DEVICETYPE="];
if (!s)
s = @"Unknown";
return s;
}
// This method extracts the "AttachmentName" from a URI:
//
// /SOGo/Microsoft-Server-ActiveSync?Cmd=GetAttachment&User=sogo&DeviceId=HTCa04b4932597acd3f2dc1a918b9728&DeviceType=htcvision&AttachmentName=mail/TestFldr/8/2
//
- (NSString *) attachmentName
{
NSString *s;
s = [self _valueForParameter: @"ATTACHMENTNAME="];
if (!s)
s = @"Unknown";
return s;
}
//
//
//
- (NSString *) command
{
NSString *s;
s = [self _valueForParameter: @"CMD="];
if (!s)
s = @"Unknown";
return s;
}
- (NSString *) itemid
{
NSString *s;
s = [self _valueForParameter: @"ITEMID="];
if (!s)
s = @"Unknown";
return s;
}
- (NSString *) collectionid
{
NSString *s;
s = [self _valueForParameter: @"COLLECTIONID="];
if (!s)
s = @"Unknown";
return s;
}
- (BOOL) acceptsMultiPart
{
NSString *s;
s = [self _valueForParameter: @"OPTIONS="];
if (s && [s rangeOfString: @"AcceptMultiPart" options: NSCaseInsensitiveSearch].location != NSNotFound)
return YES;
return NO;
}
//
// FIXME: combine with our OpenChange code.
//
- (char) _decodeHexByte: (char) byteChar
{
char newByte;
if (byteChar >= 48 && byteChar <= 57)
newByte = (uint8_t) byteChar - 48;
else if (byteChar >= 65 && byteChar <= 70)
newByte = (uint8_t) byteChar - 55;
else if (byteChar >= 97 && byteChar <= 102)
newByte = (uint8_t) byteChar - 87;
else
newByte = -1;
return newByte;
}
//
// FIXME: combine with our OpenChange code.
//
- (BOOL) _decodeHexByte: (uint8_t *) byte
atPos: (NSUInteger) pos
{
BOOL error = NO;
char newByte;
unichar byteChar;
byteChar = [self characterAtIndex: pos];
if (byteChar < 256)
{
newByte = [self _decodeHexByte: (char) byteChar];
if (newByte == -1)
error = YES;
else
*byte = newByte;
}
else
error = YES;
return error;
}
//
// FIXME: combine with our OpenChange code.
//
- (BOOL) _decodeHexPair: (uint8_t *) byte
atPos: (NSUInteger) pos
{
BOOL error;
uint8_t lowValue, highValue;
error = [self _decodeHexByte: &highValue atPos: pos];
if (!error)
{
error = [self _decodeHexByte: &lowValue atPos: pos + 1];
if (!error)
*byte = highValue << 4 | lowValue;
}
return error;
}
//
// FIXME: combine with our OpenChange code.
//
- (NSData *) convertHexStringToBytes
{
NSUInteger count, strLen, bytesLen;
uint8_t *bytes, *currentByte;
NSData *decoded = nil;
BOOL error = NO;
strLen = [self length];
if ((strLen % 2) == 0)
{
bytesLen = strLen / 2;
bytes = NSZoneCalloc (NULL, bytesLen, sizeof (uint8_t));
currentByte = bytes;
for (count = 0; !error && count < strLen; count += 2)
{
error = [self _decodeHexPair: currentByte atPos: count];
currentByte++;
}
if (error)
NSZoneFree (NULL, bytes);
else
decoded = [NSData dataWithBytesNoCopy: bytes
length: bytesLen
freeWhenDone: YES];
}
return decoded;
}
@end

12
ActiveSync/README 100644
View File

@ -0,0 +1,12 @@
In order to use this software in production environments, you need to
get a proper usage license from Microsoft. Please contact them directly
to negotiate the fees associated to your user base.
To contact Microsoft, please visit:
http://www.microsoft.com/en-us/legal/intellectualproperty/
and send an email to iplicreq@microsoft.com
Inverse inc. provides this software for free, but is not responsible
for anything related to its usage.

View File

@ -0,0 +1,42 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __SOGOACTIVESYNCCONSTANTS_H__
#define __SOGOACTIVESYNCCONSTANTS_H__
typedef enum
{
ActiveSyncGenericFolder = 0,
ActiveSyncMailFolder = 1,
ActiveSyncContactFolder = 2,
ActiveSyncEventFolder = 3,
ActiveSyncTaskFolder = 4,
} SOGoMicrosoftActiveSyncFolderType;
#endif

View File

@ -0,0 +1,46 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __SOGOACTIVESYNCDISPATCHERSYNC_H__
#define __SOGOACTIVESYNCDISPATCHERSYNC_H__
#import "SOGoActiveSyncDispatcher.h"
#import <DOM/DOMElement.h>
@class WOResponse;
@interface SOGoActiveSyncDispatcher (Sync)
- (void) processSync: (id <DOMElement>) theDocumentElement
inResponse: (WOResponse *) theResponse;
@end
#endif // SOGOACTIVESYNCDISPATCHERSYNC

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
/*
Copyright (c) 2014-2015, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import <Foundation/NSObject.h>
#include "SOGoActiveSyncConstants.h"
@class NSCalendarDate;
@class NSException;
@class NSMutableDictionary;
@class NSURL;
@class NSNumber;
static volatile BOOL easShouldTerminate = NO;
@interface SOGoActiveSyncDispatcher : NSObject
{
NSURL *folderTableURL;
NSDictionary *imapFolderGUIDS;
id context;
NSNumber *syncRequest;
BOOL debugOn;
}
- (NSMutableDictionary *) globalMetadataForDevice;
- (id) collectionFromId: (NSString *) theCollectionId
type: (SOGoMicrosoftActiveSyncFolderType) theFolderType;
- (id) globallyUniqueIDToIMAPFolderName: (NSString *) theIdToTranslate
type: (SOGoMicrosoftActiveSyncFolderType) theFolderType;
- (NSException *) dispatchRequest: (id) theRequest
inResponse: (id) theResponse
context: (id) theContext;
- (NSURL *) folderTableURL;
- (void) ensureFolderTableExists;
- (BOOL) easShouldTerminate;
@end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __SOGOMAILOBJECTACTIVESYNC_H__
#define __SOGOMAILOBJECTACTIVESYNC_H__
#import <Mailer/SOGoMailObject.h>
@class iCalCalendar;
@class NSDictionary;
@class WOContext;
@interface SOGoMailObject (ActiveSync)
- (iCalCalendar *) calendarFromIMIPMessage;
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
- (NSString *) storeMail: (NSDictionary *) theValues
inBuffer: (NSMutableString *) theBuffer
inContext: (WOContext *) _context;
@end
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,56 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __SOGOSYNCCACHEOBJECT_H__
#define __SOGOSYNCCACHEOBJECT_H__
#import <Foundation/NSObject.h>
@class NSNull;
@interface SOGoSyncCacheObject : NSObject
{
@public
id _uid;
id _sequence;
}
+ (id) syncCacheObjectWithUID: (id) theUID sequence: (id) theSequence;
- (id) uid;
- (void) setUID: (id) theUID;
- (id) sequence;
- (void) setSequence: (id) theSequence;
- (NSComparisonResult) compareUID: (SOGoSyncCacheObject *) theSyncCacheObject;
- (NSComparisonResult) compareSequence: (SOGoSyncCacheObject *) theSyncCacheObject;
@end
#endif

View File

@ -0,0 +1,131 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "SOGoSyncCacheObject.h"
#import <Foundation/NSNull.h>
#import <Foundation/NSString.h>
#import <Foundation/NSValue.h>
static Class NSNullK;
@implementation SOGoSyncCacheObject
+ (void) initialize
{
NSNullK = [NSNull class];
}
- (id) init
{
if ((self = [super init]))
{
_uid = nil;
_sequence = nil;
}
return self;
}
+ (id) syncCacheObjectWithUID: (id) theUID sequence: (id) theSequence
{
id o;
o = [[self alloc] init];
[o setUID: [NSNumber numberWithInt: [theUID intValue]]];
[o setSequence: ([theSequence isKindOfClass: NSNullK] ? theSequence : [NSNumber numberWithInt: [theSequence intValue]])];
return [o autorelease];
}
- (void) dealloc
{
RELEASE(_uid);
RELEASE(_sequence);
[super dealloc];
}
- (id) uid
{
return [_uid description];
}
- (void) setUID: (id) theUID
{
ASSIGN(_uid, theUID);
}
- (id) sequence
{
return ([_sequence isKindOfClass: NSNullK] ? _sequence : [_sequence description]);
}
- (void) setSequence: (id) theSequence
{
ASSIGN(_sequence, theSequence);
}
- (NSComparisonResult) compareUID: (SOGoSyncCacheObject *) theSyncCacheObject
{
return [self->_uid compare: theSyncCacheObject->_uid];
}
//
// We might get NSNull values here, so if both are NSNull instances,
// we sort by UID. If both sequences are equal, we also sort by UID.
//
- (NSComparisonResult) compareSequence: (SOGoSyncCacheObject *) theSyncCacheObject
{
if ([self->_sequence isEqual: [NSNull null]] &&
[theSyncCacheObject->_sequence isEqual: [NSNull null]])
return [self compareUID: theSyncCacheObject];
if (![self->_sequence isEqual: [NSNull null]] && [theSyncCacheObject->_sequence isEqual: [NSNull null]])
return NSOrderedDescending;
if ([self->_sequence isEqual: [NSNull null]] && ![theSyncCacheObject->_sequence isEqual: [NSNull null]])
return NSOrderedAscending;
// Must check this here, to avoid comparing NSNull objects
if ([self->_sequence compare: theSyncCacheObject->_sequence] == NSOrderedSame)
return [self compareUID: theSyncCacheObject];
return [self->_sequence compare: theSyncCacheObject->_sequence];
}
- (NSString *) description
{
return [NSString stringWithFormat: @"%@-%@", _uid, _sequence];
}
@end

View File

@ -0,0 +1,104 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import <NGObjWeb/SoObjectWebDAVDispatcher.h>
#include <NGObjWeb/SoObject+SoDAV.h>
#include <NGObjWeb/WEClientCapabilities.h>
#include <NGObjWeb/WOContext.h>
#include <NGObjWeb/WORequest.h>
#include <NGObjWeb/WOResponse.h>
#import <Foundation/NSArray.h>
@interface SoObjectWebDAVDispatcher (ActiveSync)
- (id)_callObjectMethod:(NSString *)_method inContext:(WOContext *)_ctx;
- (id) doOPTIONS:(WOContext *)_ctx;
@end
@implementation SoObjectWebDAVDispatcher (ActiveSync)
- (id) doOPTIONS:(WOContext *)_ctx
{
WOResponse *response;
/*
See example: http://msdn.microsoft.com/en-us/library/ee204257(v=exchg.80).aspx
*/
if ([[[_ctx request] requestHandlerKey] isEqualToString: @"Microsoft-Server-ActiveSync"])
{
response = [_ctx response];
[response setStatus: 200];
[response setHeader: @"private" forKey: @"Cache-Control"];
[response setHeader: @"OPTIONS, POST" forKey: @"Allow"];
[response setHeader: @"14.1" forKey: @"MS-Server-ActiveSync"];
[response setHeader: @"2.5,12.0,12.1,14.0,14.1" forKey: @"MS-ASProtocolVersions"];
[response setHeader: @"Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,Search,Settings,Ping,ItemOperations,ResolveRecipients,ValidateCert" forKey: @"MS-ASProtocolCommands"];
[response setHeader: @"OPTIONS, POST" forKey: @"Public"];
}
else
{
NSArray *tmp;
id result;
/* this checks whether the object provides a specific OPTIONS method */
if ((result = [self _callObjectMethod:@"OPTIONS" inContext:_ctx]) != nil)
return result;
response = [_ctx response];
[response setStatus:200 /* OK */];
if ((tmp = [self->object davAllowedMethodsInContext:_ctx]) != nil)
[response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"allow"];
if ([[[_ctx request] clientCapabilities] isWebFolder]) {
/*
As described over here:
http://teyc.editthispage.com/2005/06/02
This page also says that: "MS-Auth-Via header is not required to work
with Web Folders".
*/
[response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"public"];
}
if ((tmp = [self->object davComplianceClassesInContext:_ctx]) != nil)
[response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"dav"];
}
return response;
}
@end

View File

@ -0,0 +1,34 @@
include ../config.make
include $(GNUSTEP_MAKEFILES)/common.make
include ../Version
NEEDS_GUI=no
BUNDLE_EXTENSION = .SOGo
BUNDLE_INSTALL_DIR = $(SOGO_LIBDIR)
WOBUNDLE_EXTENSION = $(BUNDLE_EXTENSION)
WOBUNDLE_INSTALL_DIR = $(BUNDLE_INSTALL_DIR)
# SYSTEM_LIB_DIR += -L/usr/local/lib -L/usr/lib
ADDITIONAL_INCLUDE_DIRS += \
-I.. \
-I../.. \
-I../../SOPE
ADDITIONAL_LIB_DIRS += \
-L../SoObjects/SOGo/SOGo.framework/Versions/Current/sogo \
-L../SoObjects/SOGo/$(GNUSTEP_OBJ_DIR)/ \
-L../SOPE/NGCards/$(GNUSTEP_OBJ_DIR)/ \
-L/usr/local/lib \
-Wl,-rpath,$(SOGO_SYSLIBDIR)/sogo
BUNDLE_LIBS += \
-lSOGo \
-lGDLContentStore \
-lGDLAccess \
-lNGObjWeb \
-lNGCards -lNGMime -lNGLdap \
-lNGStreams -lNGExtensions -lEOControl \
-lDOM -lSaxObjC -lSBJson
ADDITIONAL_BUNDLE_LIBS += $(BUNDLE_LIBS)

View File

@ -0,0 +1,46 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ICALALARMACTIVESYNC_H__
#define __ICALALARMACTIVESYNC_H__
#import <NGCards/iCalAlarm.h>
@class NSString;
@class WOContext;
@interface iCalAlarm (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,128 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "iCalAlarm+ActiveSync.h"
#import <Foundation/NSDictionary.h>
#import <NGExtensions/NSCalendarDate+misc.h>
#import <NGExtensions/NSString+misc.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGCards/iCalAlarm.h>
#import <NGCards/iCalEvent.h>
#import <NGCards/iCalTrigger.h>
#import <NGCards/NSCalendarDate+NGCards.h>
#include "NSDate+ActiveSync.h"
@implementation iCalAlarm (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSMutableString *s;
NSCalendarDate *nextAlarmDate;
NSInteger delta;
s = [NSMutableString string];
nextAlarmDate = [self nextAlarmDate];
delta = (int)(([[(iCalEvent *)parent startDate] timeIntervalSince1970] - [nextAlarmDate timeIntervalSince1970])/60);
if ([parent isKindOfClass: [iCalEvent class]])
{
// don't send negative reminder - not supported
if (delta > 0)
[s appendFormat: @"<Reminder xmlns=\"Calendar:\">%d</Reminder>", (int)delta];
}
else
{
[s appendFormat: @"<ReminderTime xmlns=\"Task:\">%@</ReminderTime>", [nextAlarmDate activeSyncRepresentationInContext: context]];
}
return s;
}
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
iCalTrigger *trigger;
id o;
if ((o = [theValues objectForKey: @"Reminder"]))
{
// Outlook: if reminder is set to 0 minutes before starttime, save it as 1 minute since -> 0 minutes in not accepted by SOGo
if ([o isEqualToString: @"0"])
o = @"1";
trigger = [iCalTrigger elementWithTag: @"TRIGGER"];
[trigger setValueType: @"DURATION"];
[self setTrigger: trigger];
if (![[self action] length])
[self setAction: @"DISPLAY"];
// SOGo web ui only supports 1w but not 2w (custom reminder only supports min/hours/days)
// 1week = -P1W
// 2weeks > -PxD
// xdays > -PxD
// xhours -> -PTxH
// xmin -> -PTxM
if ([o intValue] == 10080)
[trigger setSingleValue: [NSString stringWithFormat: @"-P1W" ] forKey: @""];
else
{
if (([o intValue] % 1440) == 0)
[trigger setSingleValue: [NSString stringWithFormat: @"-P%dD", ([o intValue] / 1440)] forKey: @""];
else
{
if (([o intValue] % 60) == 0)
[trigger setSingleValue: [NSString stringWithFormat: @"-PT%dH", ([o intValue] / 60)] forKey: @""];
else
[trigger setSingleValue: [NSString stringWithFormat: @"-PT%@M", o] forKey: @""];
}
}
}
else if ((o = [theValues objectForKey: @"ReminderTime"]))
{
o = [o calendarDate];
trigger = [iCalTrigger elementWithTag: @"TRIGGER"];
[trigger setValueType: @"DATE-TIME"];
[trigger setSingleValue: [NSString stringWithFormat: @"%@Z", [o iCalFormattedDateTimeString]] forKey: @""];
if ((o = [theValues objectForKey: @"ReminderSet"]))
{
if ([o intValue] == 0)
[trigger setValue: 0 ofAttribute: @"x-webstatus" to: @"triggered"];
}
[self setTrigger: trigger];
if (![[self action] length])
[self setAction: @"DISPLAY"];
}
}
@end

View File

@ -0,0 +1,49 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ICALEVENTACTIVESYNC_H__
#define __ICALEVENTACTIVESYNC_H__
#import <NGCards/iCalEvent.h>
@class NSString;
@class WOContext;
@interface iCalEvent (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
- (void) changeParticipationStatus: (NSDictionary *) theValues
inContext: (WOContext *) context
component: (id) component;
@end
#endif

View File

@ -0,0 +1,959 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "iCalEvent+ActiveSync.h"
#import <Foundation/NSDictionary.h>
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSString+misc.h>
#import <NGExtensions/NSCalendarDate+misc.h>
#import <NGExtensions/NSObject+Logs.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalDateTime.h>
#import <NGCards/iCalPerson.h>
#import <NGCards/NSCalendarDate+NGCards.h>
#import <NGCards/NSString+NGCards.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import <SOGo/WORequest+SOGo.h>
#import <Appointments/iCalEntityObject+SOGo.h>
#import <Appointments/iCalRepeatableEntityObject+SOGo.h>
#import <Appointments/SOGoAppointmentObject.h>
#include "iCalAlarm+ActiveSync.h"
#include "iCalRecurrenceRule+ActiveSync.h"
#include "iCalTimeZone+ActiveSync.h"
#include "NSDate+ActiveSync.h"
#include "NSString+ActiveSync.h"
@implementation iCalEvent (ActiveSync)
- (int) _attendeeStatus: (iCalPerson *) attendee
{
int attendee_status;
attendee_status = 5;
if ([[attendee partStat] caseInsensitiveCompare: @"ACCEPTED"] == NSOrderedSame)
attendee_status = 3;
else if ([[attendee partStat] caseInsensitiveCompare: @"DECLINED"] == NSOrderedSame)
attendee_status = 4;
else if ([[attendee partStat] caseInsensitiveCompare: @"TENTATIVE"] == NSOrderedSame)
attendee_status = 2;
return attendee_status;
}
//
// Possible values are:
// 0 Free
// 1 Tentative
// 2 Busy
// 3 Out of Office
// 4 Working elsewhere
//
- (int) _busyStatus: (iCalPerson *) attendee
{
int attendee_status;
attendee_status = 2;
if ([[attendee partStat] caseInsensitiveCompare: @"DECLINED"] == NSOrderedSame)
attendee_status = 0;
else if ([[attendee partStat] caseInsensitiveCompare: @"TENTATIVE"] == NSOrderedSame)
attendee_status = 1;
return attendee_status;
}
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSMutableString *s;
NSArray *attendees, *categories;
iCalPerson *organizer, *attendee;
iCalTimeZone *tz;
id o;
int v, i, meetingStatus;
NSTimeZone *userTimeZone;
userTimeZone = [[[context activeUser] userDefaults] timeZone];
s = [NSMutableString string];
[s appendFormat: @"<AllDayEvent xmlns=\"Calendar:\">%d</AllDayEvent>", ([self isAllDay] ? 1 : 0)];
// DTStamp -- http://msdn.microsoft.com/en-us/library/ee219470(v=exchg.80).aspx
if ([self timeStampAsDate])
[s appendFormat: @"<DTStamp xmlns=\"Calendar:\">%@</DTStamp>", [[self timeStampAsDate] activeSyncRepresentationWithoutSeparatorsInContext: context]];
else if ([self created])
[s appendFormat: @"<DTStamp xmlns=\"Calendar:\">%@</DTStamp>", [[self created] activeSyncRepresentationWithoutSeparatorsInContext: context]];
// Timezone
tz = [(iCalDateTime *)[self firstChildWithTag: @"dtstart"] timeZone];
// StartTime -- http://msdn.microsoft.com/en-us/library/ee157132(v=exchg.80).aspx
if ([self startDate])
{
if ([self isAllDay] && !tz && [[context objectForKey: @"ASProtocolVersion"] floatValue] < 16.0)
[s appendFormat: @"<StartTime xmlns=\"Calendar:\">%@</StartTime>",
[[[self startDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: ([userTimeZone secondsFromGMTForDate: [self startDate]])*-1]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
else
[s appendFormat: @"<StartTime xmlns=\"Calendar:\">%@</StartTime>", [[self startDate] activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
// EndTime -- http://msdn.microsoft.com/en-us/library/ee157945(v=exchg.80).aspx
if ([self endDate])
{
if ([self isAllDay] && !tz && [[context objectForKey: @"ASProtocolVersion"] floatValue] < 16.0)
[s appendFormat: @"<EndTime xmlns=\"Calendar:\">%@</EndTime>",
[[[self endDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: ([userTimeZone secondsFromGMTForDate: [self endDate]])*-1]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
else
[s appendFormat: @"<EndTime xmlns=\"Calendar:\">%@</EndTime>", [[self endDate] activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
if (!tz)
tz = [iCalTimeZone timeZoneForName: [userTimeZone name]];
if (![self recurrenceId])
[s appendFormat: @"<TimeZone xmlns=\"Calendar:\">%@</TimeZone>", [tz activeSyncRepresentationInContext: context]];
// Organizer and other invitations related properties
if ((organizer = [self organizer]))
{
meetingStatus = 1; // meeting and the user is the meeting organizer.
o = [organizer rfc822Email];
if (![self recurrenceId] && [o length])
{
[s appendFormat: @"<Organizer_Email xmlns=\"Calendar:\">%@</Organizer_Email>", o];
o = [organizer cn];
if ([o length])
[s appendFormat: @"<Organizer_Name xmlns=\"Calendar:\">%@</Organizer_Name>", [o activeSyncRepresentationInContext: context]];
}
}
// Attendees
attendees = [self attendees];
if ([attendees count])
{
int i, attendee_status, attendee_type;
[s appendString: @"<Attendees xmlns=\"Calendar:\">"];
for (i = 0; i < [attendees count]; i++)
{
[s appendString: @"<Attendee xmlns=\"Calendar:\">"];
attendee = [attendees objectAtIndex: i];
[s appendFormat: @"<Attendee_Email xmlns=\"Calendar:\">%@</Attendee_Email>", [[attendee rfc822Email] activeSyncRepresentationInContext: context]];
if ([[attendee cn] length])
[s appendFormat: @"<Attendee_Name xmlns=\"Calendar:\">%@</Attendee_Name>", [[attendee cn] activeSyncRepresentationInContext: context]];
else
[s appendFormat: @"<Attendee_Name xmlns=\"Calendar:\">%@</Attendee_Name>", [[attendee rfc822Email] activeSyncRepresentationInContext: context]];
attendee_status = [self _attendeeStatus: attendee];
[s appendFormat: @"<Attendee_Status xmlns=\"Calendar:\">%d</Attendee_Status>", attendee_status];
// FIXME: handle resource
if ([[attendee role] caseInsensitiveCompare: @"REQ-PARTICIPANT"] == NSOrderedSame)
attendee_type = 1;
else
attendee_type = 2;
[s appendFormat: @"<Attendee_Type xmlns=\"Calendar:\">%d</Attendee_Type>", attendee_type];
[s appendString: @"</Attendee>"];
}
[s appendString: @"</Attendees>"];
}
else
{
meetingStatus = 0; // The event is an appointment, which has no attendees.
}
// This depends on the 'NEEDS-ACTION' parameter.
// This will trigger the SendMail command
if ([self userIsAttendee: [context activeUser]])
{
iCalPerson *attendee;
int attendee_status;
meetingStatus = 3; // event is a meeting, and the user is not the meeting organizer
attendee = [self userAsAttendee: [context activeUser]];
attendee_status = [self _attendeeStatus: attendee];
[s appendFormat: @"<ResponseRequested xmlns=\"Calendar:\">%d</ResponseRequested>", 1];
[s appendFormat: @"<ResponseType xmlns=\"Calendar:\">%d</ResponseType>", attendee_status];
[s appendFormat: @"<DisallowNewTimeProposal xmlns=\"Calendar:\">%d</DisallowNewTimeProposal>", 1];
// BusyStatus -- http://msdn.microsoft.com/en-us/library/ee202290(v=exchg.80).aspx
[s appendFormat: @"<BusyStatus xmlns=\"Calendar:\">%d</BusyStatus>", [self _busyStatus: attendee]];
}
else
{
// If it's a normal event (i.e. with no organizer/attendee) or we are the organizer of an event
// invitation, we set the busy status depending on TRANSP.
[s appendFormat: @"<BusyStatus xmlns=\"Calendar:\">%d</BusyStatus>", (([self isOpaque]) ? 2 : 0)];
}
[s appendFormat: @"<MeetingStatus xmlns=\"Calendar:\">%d</MeetingStatus>", meetingStatus];
// Subject -- http://msdn.microsoft.com/en-us/library/ee157192(v=exchg.80).aspx
if ([[self summary] length])
[s appendFormat: @"<Subject xmlns=\"Calendar:\">%@</Subject>", [[self summary] activeSyncRepresentationInContext: context]];
// Location
if ([[self location] length])
{
if ([[context objectForKey: @"ASProtocolVersion"] floatValue] >= 16.0)
[s appendFormat: @"<Location xmlns=\"AirSyncBase:\"><DisplayName>%@</DisplayName></Location>", [[self location] activeSyncRepresentationInContext: context]];
else
[s appendFormat: @"<Location xmlns=\"Calendar:\">%@</Location>", [[self location] activeSyncRepresentationInContext: context]];
}
// Importance - NOT SUPPORTED - DO NOT ENABLE
//o = [self priority];
//if ([o isEqualToString: @"9"])
// v = 0;
//else if ([o isEqualToString: @"1"])
// v = 2;
//else
// v = 1;
//[s appendFormat: @"<Importance xmlns=\"Calendar:\">%d</Importance>", v];
// UID -- http://msdn.microsoft.com/en-us/library/ee159919(v=exchg.80).aspx
if (![self recurrenceId] && [[self uid] length])
[s appendFormat: @"<UID xmlns=\"Calendar:\">%@</UID>", [[self uid] activeSyncRepresentationInContext: context]];
// Recurrence rules
if ([self isRecurrent])
[s appendString: [[[self recurrenceRules] lastObject] activeSyncRepresentationInContext: context]];
// Comment
o = [self comment];
//if (![self recurrenceId] && [o length])
if ([o length])
{
// It is very important here to NOT set <Truncated>0</Truncated> in the response,
// otherwise it'll prevent WP8 phones from sync'ing. See #3028 for details.
o = [o activeSyncRepresentationInContext: context];
if ([[context objectForKey: @"ASProtocolVersion"] isEqualToString: @"2.5"])
{
[s appendFormat: @"<Body xmlns=\"Calendar:\">%@</Body>", o];
[s appendString: @"<BodyTruncated xmlns=\"Calendar:\">0</BodyTruncated>"];
}
else
{
[s appendString: @"<Body xmlns=\"AirSyncBase:\">"];
[s appendFormat: @"<Type>%d</Type>", 1];
[s appendFormat: @"<EstimatedDataSize>%d</EstimatedDataSize>", (int)[o length]];
[s appendFormat: @"<Data>%@</Data>", o];
[s appendString: @"</Body>"];
}
}
// Sensitivity
if ([[self accessClass] isEqualToString: @"PRIVATE"])
v = 2;
else if ([[self accessClass] isEqualToString: @"CONFIDENTIAL"])
v = 3;
else
v = 0;
[s appendFormat: @"<Sensitivity xmlns=\"Calendar:\">%d</Sensitivity>", v];
categories = [self categories];
if ([categories count])
{
[s appendFormat: @"<Categories xmlns=\"Calendar:\">"];
for (i = 0; i < [categories count]; i++)
{
[s appendFormat: @"<Category xmlns=\"Calendar:\">%@</Category>", [[categories objectAtIndex: i] activeSyncRepresentationInContext: context]];
}
[s appendFormat: @"</Categories>"];
}
// Reminder -- http://msdn.microsoft.com/en-us/library/ee219691(v=exchg.80).aspx
// TODO: improve this to handle more alarm types
if ([self hasAlarms])
{
iCalAlarm *alarm;
alarm = [self firstSupportedAlarm];
[s appendString: [alarm activeSyncRepresentationInContext: context]];
}
// Exceptions
if ([self isRecurrent])
{
NSMutableArray *components, *exdates;
iCalEvent *current_component;
NSString *recurrence_id;
unsigned int count, max, i;
components = [NSMutableArray arrayWithArray: [[self parent] events]];
max = [components count];
if (max > 1 || [self hasExceptionDates])
{
exdates = [NSMutableArray arrayWithArray: [self exceptionDates]];
[s appendString: @"<Exceptions xmlns=\"Calendar:\">"];
for (count = 1; count < max; count++)
{
current_component = [components objectAtIndex: count] ;
if ([self isAllDay])
{
recurrence_id = [NSString stringWithFormat: @"%@",
[[[current_component recurrenceId] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -[userTimeZone secondsFromGMTForDate:
[current_component recurrenceId]]]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
else
{
recurrence_id = [NSString stringWithFormat: @"%@", [[current_component recurrenceId]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
[s appendString: @"<Exception>"];
[s appendFormat: @"<Exception_StartTime xmlns=\"Calendar:\">%@</Exception_StartTime>", recurrence_id];
[s appendFormat: @"%@", [current_component activeSyncRepresentationInContext: context]];
[s appendString: @"</Exception>"];
}
for (i = 0; i < [exdates count]; i++)
{
[s appendString: @"<Exception>"];
[s appendString: @"<Exception_Deleted>1</Exception_Deleted>"];
if ([self isAllDay])
{
recurrence_id = [NSString stringWithFormat: @"%@",
[[[[exdates objectAtIndex: i] asCalendarDate] dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: -[userTimeZone secondsFromGMTForDate:
[[exdates objectAtIndex: i] asCalendarDate]]]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
else
{
recurrence_id = [NSString stringWithFormat: @"%@", [[[exdates objectAtIndex: i] asCalendarDate]
activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
[s appendFormat: @"<Exception_StartTime xmlns=\"Calendar:\">%@</Exception_StartTime>", recurrence_id];
[s appendString: @"</Exception>"];
}
[s appendString: @"</Exceptions>"];
}
}
if (![self recurrenceId])
[s appendFormat: @"<NativeBodyType xmlns=\"AirSyncBase:\">%d</NativeBodyType>", 1];
return s;
}
//
// To understand meeting requests/responses, see:
//
// http://blogs.msdn.com/b/exchangedev/archive/2011/07/22/working-with-meeting-requests-in-exchange-activesync.aspx
// http://blogs.msdn.com/b/exchangedev/archive/2011/07/29/working-with-meeting-responses-in-exchange-activesync.aspx
//
//
// Here is an example of a Sync call when sogo10 accepts an invitation from sogo3:
//
// <Change>
// <ServerId>2978-52EA9D00-1-A253E70.ics</ServerId>
// <ApplicationData>
// <TimeZone xmlns="Calendar:">LAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAIAAAAAAAAAxP///w==</TimeZone>
// <AllDayEvent xmlns="Calendar:">0</AllDayEvent>
// <StartTime xmlns="Calendar:">20140207T130000Z</StartTime>
// <EndTime xmlns="Calendar:">20140207T140000Z</EndTime>
// <DTStamp xmlns="Calendar:">20140130T185245Z</DTStamp>
// <Subject xmlns="Calendar:">test 8</Subject>
// <Sensitivity xmlns="Calendar:">0</Sensitivity>
// <Body xmlns="AirSyncBase:">
// <Type>1</Type>
// <Data/>
// </Body>
// <Organizer_Email xmlns="Calendar:">sogo3@example.com</Organizer_Email>
// <UID xmlns="Calendar:">2978-52EA9D00-1-A253E70</UID>
// <Attendees xmlns="Calendar:">
// <Attendee>
// <Attendee_Name>sogo10</Attendee_Name>
// <Attendee_Email>sogo10@example.com</Attendee_Email>
// <Attendee_Type>1</Attendee_Type>
// </Attendee>
// </Attendees>
// <BusyStatus xmlns="Calendar:">2</BusyStatus>
// <MeetingStatus xmlns="Calendar:">3</MeetingStatus>
// <Organizer_Name xmlns="Calendar:">Wolfgang Fritz</Organizer_Name>
// </ApplicationData>
// </Change>
//
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
iCalDateTime *start, *end; //, *oldstart;
NSCalendarDate *oldstart;
NSTimeZone *userTimeZone;
iCalTimeZone *tz;
iCalAlarm *alarm;
id o;
int deltasecs;
BOOL isAllDay;
NSMutableArray *occurences;
occurences = [NSMutableArray arrayWithArray: [[self parent] events]];
if ((o = [theValues objectForKey: ([[context objectForKey: @"ASProtocolVersion"] floatValue] >= 16.0) ? @"ClientUid" : @"UID"]))
[self setUid: o];
// FIXME: merge with iCalToDo
if ((o = [theValues objectForKey: @"Subject"]))
[self setSummary: o];
isAllDay = NO;
if ([[theValues objectForKey: @"AllDayEvent"] intValue])
{
isAllDay = YES;
}
else if ([occurences count] && !([theValues objectForKey: @"AllDayEvent"]))
{
// If the occurence has no AllDay tag use it from master.
isAllDay = [[occurences objectAtIndex: 0] isAllDay];
}
//
// 0- free, 1- tentative, 2- busy and 3- out of office
//
if ((o = [theValues objectForKey: @"BusyStatus"]))
{
if ([o boolValue])
[self setTransparency: @"OPAQUE"];
else
[self setTransparency: @"TRANSPARENT"];
}
//
// 0- normal, 1- personal, 2- private and 3-confidential
//
if ((o = [theValues objectForKey: @"Sensitivity"]))
{
switch ([o intValue])
{
case 2:
[self setAccessClass: @"PRIVATE"];
break;
case 3:
[self setAccessClass: @"CONFIDENTIAL"];
break;
case 0:
case 1:
default:
[self setAccessClass: @"PUBLIC"];
}
}
// Categories
if ((o = [theValues objectForKey: @"Categories"]) && [o length])
[self setCategories: o];
// We ignore TimeZone sent by mobile devices for now.
// Some Windows devices don't send during event updates.
//if ((o = [theValues objectForKey: @"TimeZone"]))
// {
// }
//else
{
// We haven't received a timezone, let's use the user's timezone
// specified in SOGo for now.
userTimeZone = [[[context activeUser] userDefaults] timeZone];
tz = [iCalTimeZone timeZoneForName: [userTimeZone name]];
[(iCalCalendar *) parent addTimeZone: tz];
}
// FIXME: merge with iCalToDo
if ([[context objectForKey: @"ASProtocolVersion"] isEqualToString: @"2.5"])
{
if ((o = [theValues objectForKey: @"Body"]))
[self setComment: o];
}
else
{
if ((o = [[theValues objectForKey: @"Body"] objectForKey: @"Data"]))
[self setComment: o];
}
if ([[context objectForKey: @"ASProtocolVersion"] floatValue] < 16.0 && (o = [theValues objectForKey: @"Location"]))
[self setLocation: o];
else if ([[context objectForKey: @"ASProtocolVersion"] floatValue] >= 16.0 && (o = [theValues objectForKey: @"Location"]) && [o isKindOfClass: [NSDictionary class]])
[self setLocation: [o objectForKey: @"DisplayName"]];
deltasecs = 0;
start = nil;
if ((o = [theValues objectForKey: @"StartTime"]))
{
o = [o calendarDate];
start = (iCalDateTime *) [self uniqueChildWithTag: @"dtstart"];
oldstart = [start dateTime];
[start setTimeZone: tz];
if (isAllDay)
{
[start setDate: o];
[start setTimeZone: nil];
}
else
{
[start setDateTime: o];
}
// Calculate delta if start date has been changed.
if (oldstart)
deltasecs = [[start dateTime ] timeIntervalSinceDate: oldstart] * -1;
}
if ((o = [theValues objectForKey: @"EndTime"]))
{
o = [o calendarDate];
end = (iCalDateTime *) [self uniqueChildWithTag: @"dtend"];
[end setTimeZone: tz];
if (isAllDay)
{
[end setDate: o];
[end setTimeZone: nil];
}
else
{
[end setDateTime: o];
}
}
if ((o = [theValues objectForKey: @"Reminder"]) && [o length])
{
if ([self hasAlarms])
alarm = [[self firstSupportedAlarm] mutableCopy];
else
alarm = [[iCalAlarm alloc] init];
// NOTE: Outlook sends a 15 min reminder (18 hour for allday) if no reminder is specified
// although no default reminder is defined (File -> Options -> Clendar -> Calendar Options - > Default Reminders)
//
// http://answers.microsoft.com/en-us/office/forum/office_2013_release-outlook/desktop-outlook-calendar-creates-entries-with/9aef72d8-81bb-4a32-a6ab-bf7d216fb811?page=5&tm=1395690285088
//
[alarm takeActiveSyncValues: theValues inContext: context];
[self removeAllAlarms];
[self addToAlarms: alarm];
RELEASE(alarm);
}
else
{
// We remove existing alarm since no reminder in the ActiveSync payload
[self removeAllAlarms];
}
// Recurrence
if ((o = [theValues objectForKey: @"Recurrence"]) && [o isKindOfClass: [NSDictionary class]])
{
iCalRecurrenceRule *rule;
rule = [[iCalRecurrenceRule alloc] init];
[self setRecurrenceRules: [NSArray arrayWithObject: rule]];
RELEASE(rule);
[rule takeActiveSyncValues: o inContext: context];
// Exceptions
if ((o = [theValues objectForKey: @"Exceptions"]) && [o isKindOfClass: [NSArray class]])
{
NSCalendarDate *recurrenceId, *adjustedRecurrenceId, *currentId;
NSMutableArray *exdates, *exceptionstouched;
iCalEvent *currentOccurence;
NSDictionary *exception;
unsigned int i, count, max;
[self removeAllExceptionDates];
exdates = [NSMutableArray array];
exceptionstouched = [NSMutableArray array];
for (i = 0; i < [o count]; i++)
{
exception = [o objectAtIndex: i];
if (![[exception objectForKey: @"Exception_Deleted"] intValue])
{
recurrenceId = [[exception objectForKey: @"Exception_StartTime"] asCalendarDate];
if (isAllDay)
recurrenceId = [recurrenceId dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0
seconds: [userTimeZone secondsFromGMTForDate:recurrenceId]];
// When moving the calendar entry (i.e. changing the startDate) iOS and Android sometimes send a value for
// Exception_StartTime which is not what we expect.
// With this we make sure the recurrenceId is always correct.
//
// iOS problem - If the master is a no-allday-event but the exception is, an invalid Exception_StartTime is in the request.
// e.g. it sends 20150409T040000Z instead of 20150409T060000Z;
// This might be a special case since iPhone doesn't allow an allday-exception on a non-allday-event.
if (!([[start dateTime] compare: [[start dateTime] hour:[recurrenceId hourOfDay] minute:[recurrenceId minuteOfHour]]] == NSOrderedSame))
recurrenceId = [recurrenceId hour:[[start dateTime] hourOfDay] minute:[[start dateTime] minuteOfHour]];
// We need to store the recurrenceIds and exception dates adjusted by deltasecs.
// This ensures that the adjustment in SOGoCalendarComponent->updateComponent->_updateRecurrenceIDsWithEvent gives the correct dates.
adjustedRecurrenceId = [recurrenceId dateByAddingYears: 0 months: 0 days: 0
hours: 0 minutes: 0 seconds: deltasecs];
// search for an existing occurence and update it
max = [occurences count];
currentOccurence = nil;
count = 1;
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count] ;
currentId = [currentOccurence recurrenceId];
if ([currentId compare: adjustedRecurrenceId] == NSOrderedSame)
{
[exceptionstouched addObject: adjustedRecurrenceId];
[currentOccurence takeActiveSyncValues: exception inContext: context];
break;
}
count++;
currentOccurence = nil;
}
// Create a new occurence if we found none to update.
if (!currentOccurence)
{
iCalDateTime *recid;
currentOccurence = [self mutableCopy];
[currentOccurence removeAllRecurrenceRules];
[currentOccurence removeAllExceptionRules];
[currentOccurence removeAllExceptionDates];
[[self parent] addToEvents: currentOccurence];
[currentOccurence takeActiveSyncValues: exception inContext: context];
recid = (iCalDateTime *)[currentOccurence uniqueChildWithTag: @"recurrence-id"];
if (isAllDay)
[recid setDate: adjustedRecurrenceId];
else
[recid setDateTime: adjustedRecurrenceId];
[exceptionstouched addObject: [recid dateTime]];
}
}
else if ([[exception objectForKey: @"Exception_Deleted"] intValue])
{
recurrenceId = [[exception objectForKey: @"Exception_StartTime"] asCalendarDate];
if (isAllDay)
recurrenceId = [recurrenceId dateByAddingYears: 0 months: 0
days: 0 hours: 0 minutes: 0
seconds: [userTimeZone secondsFromGMTForDate:recurrenceId]];
// We add only valid exception dates.
if ([self doesOccurOnDate: recurrenceId] &&
([[start dateTime] compare: [[start dateTime] hour:[recurrenceId hourOfDay]
minute:[recurrenceId minuteOfHour]]] == NSOrderedSame))
{
// We need to store the recurrenceIds and exception dates adjusted by deltasecs.
// This ensures that the adjustment in SOGoCalendarComponent->updateComponent->_updateRecurrenceIDsWithEvent gives the correct dates.
[exdates addObject: [recurrenceId dateByAddingYears: 0 months: 0 days: 0 hours: 0 minutes: 0 seconds: deltasecs]];
}
}
}
// Update exception dates in master event.
max = [exdates count];
if (max > 0)
{
for (count = 0; count < max; count++)
{
if (([exceptionstouched indexOfObject: [exdates objectAtIndex: count]] == NSNotFound))
[self addToExceptionDates: [exdates objectAtIndex: count]];
}
}
// Remove all exceptions included in the request.
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count] ;
currentId = [currentOccurence recurrenceId];
// Delete all occurences which are not touched (modified/added).
if (([exceptionstouched indexOfObject: currentId] == NSNotFound))
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
else if ([self isRecurrent])
{
// We have no exceptions in request but there is a recurrence rule.
// Remove all excpetions and exception dates.
iCalEvent *currentOccurence;
unsigned int count, max;
[self removeAllExceptionDates];
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count];
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
}
else if ([self isRecurrent])
{
// We have no recurrence rule in request.
// Remove all exceptions, exception dates and recurrence rules.
iCalEvent *currentOccurence;
unsigned int count, max;
[self removeAllRecurrenceRules];
[self removeAllExceptionRules];
[self removeAllExceptionDates];
max = [occurences count];
count = 1; // skip the master event
while (count < max)
{
currentOccurence = [occurences objectAtIndex: count];
[[[self parent] children] removeObject: currentOccurence];
count++;
}
}
// Organizer - we don't touch the value unless we're the organizer
if ((o = [theValues objectForKey: @"Organizer_Email"]) &&
([self userIsOrganizer: [context activeUser]] || [[context activeUser] hasEmail: o]))
{
iCalPerson *person;
person = [iCalPerson elementWithTag: @"organizer"];
[person setEmail: o];
[person setCn: [theValues objectForKey: @"Organizer_Name"]];
[person setPartStat: @"ACCEPTED"];
[self setOrganizer: person];
}
if ((o = [theValues objectForKey: @"MeetingStatus"]))
{
//
// iOS is plain stupid here. It seends event invitations with no Organizer.
// We check this corner-case and if MeetingStatus == 1 (see http://msdn.microsoft.com/en-us/library/ee219342(v=exchg.80).aspx or details)
// and there's no organizer, we fake one.
//
if ([o intValue] == 1 && ![theValues objectForKey: @"Organizer_Email"] && ![[[self organizer] rfc822Email] length])
{
iCalPerson *person;
person = [iCalPerson elementWithTag: @"organizer"];
[person setEmail: [[[context activeUser] primaryIdentity] objectForKey: @"email"]];
[person setCn: [[context activeUser] cn]];
[person setPartStat: @"ACCEPTED"];
[self setOrganizer: person];
}
//
// When MeetingResponse fails Outlook still sends a new calendar entry with MeetingStatus=3.
// Use the organizer from the request if the event has no organizer.
//
if ([o intValue] == 3 && [theValues objectForKey: @"Organizer_Email"] && ![[[self organizer] rfc822Email] length])
{
iCalPerson *person;
person = [iCalPerson elementWithTag: @"organizer"];
[person setEmail: [theValues objectForKey: @"Organizer_Email"]];
[person setCn: [theValues objectForKey: @"Organizer_Name"]];
[person setPartStat: @"ACCEPTED"];
[self setOrganizer: person];
}
}
// Attendees - we don't touch the values if we're an attendee. This is gonna
// be done automatically by the ActiveSync client when invoking MeetingResponse.
if (![self userIsAttendee: [context activeUser]])
{
// Windows phones sens sometimes an empty Attendees tag.
// We check it's an array before processing it.
if ((o = [theValues objectForKey: @"Attendees"]) && [o isKindOfClass: [NSArray class]])
{
NSMutableArray *attendees;
NSDictionary *attendee;
iCalPerson *person;
int status, i;
attendees = [NSMutableArray array];
for (i = 0; i < [o count]; i++)
{
// Each attendee has is a dictionary similar to this:
// { "Attendee_Email" = "sogo3@example.com"; "Attendee_Name" = "Wolfgang Fritz"; "Attendee_Status" = 5; "Attendee_Type" = 1; }
attendee = [o objectAtIndex: i];
if ([self isOrganizer: [attendee objectForKey: @"Attendee_Email"]])
continue;
person = [iCalPerson elementWithTag: @"attendee"];
[person setCn: [attendee objectForKey: @"Attendee_Name"]];
[person setEmail: [attendee objectForKey: @"Attendee_Email"]];
status = [[attendee objectForKey: @"Attendee_Status"] intValue];
switch (status)
{
case 2:
[person setPartStat: @"TENTATIVE"];
break;
case 3:
[person setPartStat: @"ACCEPTED"];
break;
case 4:
[person setPartStat: @"DECLINED"];
break;
case 0:
case 5:
default:
{
[person setPartStat: @"NEEDS-ACTION"];
[person setRsvp: @"TRUE"];
}
break;
}
// FIXME: handle Attendee_Type
[attendees addObject: person];
}
[self setAttendees: attendees];
}
}
[self setLastModified: [NSCalendarDate calendarDate]];
}
- (void) changeParticipationStatus: (NSDictionary *) theValues
inContext: (WOContext *) context
component: (id) component
{
NSString *status;
iCalAlarm *alarm;
iCalPerson *attendee;
id o;
attendee = [self userAsAttendee: [context activeUser]];
status = [attendee partStat];
alarm = nil;
// See: https://msdn.microsoft.com/en-us/library/ee202290(v=exchg.80).aspx
//
// 0 == Free
// 1 == Tentative
// 2 == Busy
// 3 == Out of Office
// 4 == Working elsehwere
//
if ((o = [theValues objectForKey: @"BusyStatus"]))
{
// We translate >= 2 into ACCEPTED
if ([o intValue] == 0)
status = @"NEEDS-ACTION";
else if ([o intValue] >= 2)
status = @"ACCEPTED";
else
status = @"TENTATIVE";
}
if ((o = [theValues objectForKey: @"Reminder"]) && [o length])
{
if ([self hasAlarms])
alarm = [[self firstSupportedAlarm] mutableCopy];
else
alarm = [[iCalAlarm alloc] init];
[alarm takeActiveSyncValues: theValues inContext: context];
}
// There's no delegate in EAS
[(SOGoAppointmentObject *) component changeParticipationStatus: status
withDelegate: nil
alarm: alarm];
RELEASE(alarm);
}
@end

View File

@ -0,0 +1,48 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ICALRECURRENCERULEACTIVESYNC_H__
#define __ICALRECURRENCERULEACTIVESYNC_H__
#import <NGCards/iCalRecurrenceRule.h>
@class NSDictionary;
@class NSString;
@class WOContext;
@interface iCalRecurrenceRule (ActiveSync)
- (NSString *) activeSyncRepresentationInContext:(WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,399 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "iCalRecurrenceRule+ActiveSync.h"
#import <Foundation/NSArray.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
#import <NGCards/iCalEvent.h>
#import <NGCards/iCalToDo.h>
#import <NGCards/iCalByDayMask.h>
#import <NGCards/iCalDateTime.h>
#import <NGCards/iCalTimeZone.h>
#import "NSCalendarDate+ActiveSync.h"
#import "NSDate+ActiveSync.h"
@implementation iCalRecurrenceRule (ActiveSync)
- (NSCalendarDate *) _adjustedStartDate
{
iCalTimeZone *timeZone;
timeZone = [(iCalDateTime *)[[self parent] firstChildWithTag: @"dtstart"] timeZone];
if (timeZone)
return [timeZone computedDateForDate: [[self parent] startDate]];
else
return [[self parent] startDate];
}
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSMutableString *s;
NSString *t;
int type;
s = [NSMutableString string];
if ([[self parent] isKindOfClass: [iCalToDo class]])
t = @"Tasks";
else
t = @"Calendar";
[s appendFormat: @"<Recurrence xmlns=\"%@:\">", t];
// 0 -> daily, 1 -> weekly, 2 -> montly, 5 -> yearly
type = 0;
if ([self frequency] == iCalRecurrenceFrequenceDaily)
{
type = 0;
// 1 -> sunday, 2 -> monday, 4 -> tuesday, 8 -> wednesday, 16 -> thursday, 32 -> friday, 64 -> saturday, 127 -> last day of month (montly or yearl recurrences only)
if ([[self byDayMask] isWeekDays])
{
[s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"%@:\">%d</Recurrence_DayOfWeek>", t, (2|4|8|16|32)];
}
else
{
[s appendFormat: @"<Recurrence_Interval xmlns=\"%@:\">%d</Recurrence_Interval>", t, [self repeatInterval]];
}
}
else if ([self frequency] == iCalRecurrenceFrequenceWeekly)
{
iCalWeekOccurrences *occurrences;
int i, v;
type = 1;
occurrences = [[self byDayMask] weekDayOccurrences];
v = 0;
if (occurrences)
{
for (i = 0; i < 7; i++)
{
if (occurrences[0][i])
v += (1 << i);
}
}
else
{
// No byDayMask, we take the event's start date to compute the DayOfWeek
// 0 == Sunday, 6 == Saturday
v = (1 << [[self _adjustedStartDate] dayOfWeek]);
}
[s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"%@:\">%d</Recurrence_DayOfWeek>", t, v];
[s appendFormat: @"<Recurrence_Interval xmlns=\"%@:\">%d</Recurrence_Interval>", t, [self repeatInterval]];
}
else if ([self frequency] == iCalRecurrenceFrequenceMonthly)
{
if ([[self byDay] length])
{
int firstOccurrence;
iCalByDayMask *dm;
type = 3; // recurs monthly on the nth day
dm = [self byDayMask];
firstOccurrence = [dayMask firstOccurrence];
// Handle the case for "Last day of the month"
if (firstOccurrence < 0)
firstOccurrence = 5;
[s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"%@:\">%d</Recurrence_DayOfWeek>", t, (1 << [dm firstDay])];
[s appendFormat: @"<Recurrence_WeekOfMonth xmlns=\"%@:\">%d</Recurrence_WeekOfMonth>", t, firstOccurrence];
[s appendFormat: @"<Recurrence_Interval xmlns=\"%@:\">%d</Recurrence_Interval>", t, [self repeatInterval]];
}
else if ([[self byMonthDay] count])
{
NSArray *days;
type = 2; // recurs monthly
days = [self byMonthDay];
if ([days count] > 0 && [[days objectAtIndex: 0] intValue] < 0)
{
// Last day of the month
iCalByDayMask *dm;
dm = [self byDayMask];
[s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"%@:\">%d</Recurrence_DayOfWeek>", t, (1 << [dm firstDay])];
[s appendFormat: @"<Recurrence_WeekOfMonth xmlns=\"%@:\">%d</Recurrence_WeekOfMonth>", t, 5];
[s appendFormat: @"<Recurrence_Interval xmlns=\"%@:\">%d</Recurrence_Interval>", t, [self repeatInterval]];
}
else
{
// Unsupported rule in ActiveSync/Outlook. Rule that says "Repeat on the 7th and 8th of each month".
// FIXME
}
}
else
{
// Simple reccurrence rule of type "Monthly"
type = 2;
[s appendFormat: @"<Recurrence_DayOfMonth xmlns=\"%@:\">%d</Recurrence_DayOfMonth>", t, [[self _adjustedStartDate] dayOfMonth]];
}
}
else if ([self frequency] == iCalRecurrenceFrequenceYearly)
{
type = 6; // Yearly on the nth day
if ([[self flattenedValuesForKey: @"bymonth"] length])
{
if ([[self byDay] length])
{
int firstOccurrence;
iCalByDayMask *dm;
dm = [self byDayMask];
firstOccurrence = [dm firstOccurrence];
if (firstOccurrence < 0)
firstOccurrence = 5;
[s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"%@:\">%d</Recurrence_DayOfWeek>", t, (1 << [dm firstDay])];
[s appendFormat: @"<Recurrence_WeekOfMonth xmlns=\"%@:\">%d</Recurrence_WeekOfMonth>", t, firstOccurrence];
[s appendFormat: @"<Recurrence_MonthOfYear xmlns=\"%@:\">%@</Recurrence_MonthOfYear>", t,
[self flattenedValuesForKey: @"bymonth"]];
}
else
{
type = 5; // Yearly
[s appendFormat: @"<Recurrence_DayOfMonth xmlns=\"%@:\">%@</Recurrence_DayOfMonth>", t,
[self flattenedValuesForKey: @"bymonthday"]];
[s appendFormat: @"<Recurrence_MonthOfYear xmlns=\"%@:\">%@</Recurrence_MonthOfYear>", t,
[self flattenedValuesForKey: @"bymonth"]];
}
}
else
{
type = 5;
[s appendFormat: @"<Recurrence_DayOfMonth xmlns=\"%@:\">%d</Recurrence_DayOfMonth>", t, [[self _adjustedStartDate] dayOfMonth]];
[s appendFormat: @"<Recurrence_MonthOfYear xmlns=\"%@:\">%d</Recurrence_MonthOfYear>", t, [[self _adjustedStartDate] monthOfYear]];
}
}
[s appendFormat: @"<Recurrence_Type xmlns=\"%@:\">%d</Recurrence_Type>", t, type];
if ([[self parent] isKindOfClass: [iCalToDo class]])
[s appendFormat: @"<Recurrence_Start xmlns=\"%@:\">%@</Recurrence_Start>", t, [[[self parent] startDate] activeSyncRepresentationInContext: context]];
// Occurrences / Until
if ([self repeatCount])
{
[s appendFormat: @"<Recurrence_Occurrences xmlns=\"%@:\">%@</Recurrence_Occurrences>", t,
[self flattenedValuesForKey: @"count"]];
}
else if ([self untilDate])
{
NSCalendarDate *date;
date = [self untilDate];
//ud = [[context activeUser] userDefaults];
//[date setTimeZone: [ud timeZone]];
[s appendFormat: @"<Recurrence_Until xmlns=\"%@:\">%@</Recurrence_Until>", t,
[date activeSyncRepresentationWithoutSeparatorsInContext: context]];
}
[s appendString: @"</Recurrence>"];
return s;
}
//
//
//
- (void) _setByDayFromValues: (NSDictionary *) theValues
{
NSString *day;
id o;
unsigned int day_of_week;
int i, week_of_month;
o = [theValues objectForKey: @"Recurrence_DayOfWeek"];
// The documentation says WeekOfMonth must be between 1 and 5. The value
// 5 means "last week of month"
week_of_month = [[theValues objectForKey: @"Recurrence_WeekOfMonth"] intValue];
if (week_of_month > 4)
week_of_month = -1;
// We find the correct day of the week
day_of_week = [o intValue];
for (i = 0; i < 7; i++)
{
if ((1<<i) == day_of_week)
{
day_of_week = i;
break;
}
}
day = [self iCalRepresentationForWeekDay: i];
[self setSingleValue: [NSString stringWithFormat: @"%d%@",
week_of_month, day]
forKey: @"byday"];
}
- (void) _setByMonthFromValues: (NSDictionary *) theValues
{
unsigned int month_of_year;
month_of_year = [[theValues objectForKey: @"Recurrence_MonthOfYear"] intValue];
[self setSingleValue: [NSString stringWithFormat: @"%d", month_of_year]
forKey: @"bymonth"];
}
//
//
//
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
id o;
int recurrenceType;
recurrenceType = [[theValues objectForKey: @"Recurrence_Type"] intValue];
if ((o = [theValues objectForKey: @"Recurrence_Interval"]))
{
[self setRepeatInterval: [o intValue]];
}
else
[self setRepeatInterval: 1];
switch (recurrenceType)
{
//
// Daily
//
case 0:
[self setFrequency: iCalRecurrenceFrequenceDaily];
// Every weekday
if ((o = [theValues objectForKey: @"Recurrence_DayOfWeek"]))
{
[self setByDayMask: [iCalByDayMask byDayMaskWithWeekDays]];
}
break;
//
// Weekly
//
case 1:
[self setFrequency: iCalRecurrenceFrequenceWeekly];
// 42 == Every Monday, Wednesday and Friday, for example
if ((o = [theValues objectForKey: @"Recurrence_DayOfWeek"]))
{
iCalWeekOccurrences days;
unsigned int i, v;
memset(days, 0, 7 * sizeof(iCalWeekOccurrence));
v = [o intValue];
for (i = 0; i < 7; i++)
{
if (v & (1<<i))
days[i] = iCalWeekOccurrenceAll;
}
[self setByDayMask: [iCalByDayMask byDayMaskWithDays: days]];
}
break;
//
// Montly
//
case 2:
case 3:
[self setFrequency: iCalRecurrenceFrequenceMonthly];
// The 5th of every X month(s)
if ((o = [theValues objectForKey: @"Recurrence_DayOfMonth"]))
{
[self setValues: [NSArray arrayWithObject: o]
atIndex: 0 forKey: @"bymonthday"];
}
// The 3rd Thursay every X month(s)
else if ((o = [theValues objectForKey: @"Recurrence_DayOfWeek"]))
{
[self _setByDayFromValues: theValues];
}
break;
//
// Yearly
//
case 5:
case 6:
default:
[self setFrequency: iCalRecurrenceFrequenceYearly];
// On April 19th
if ((o = [theValues objectForKey: @"Recurrence_DayOfMonth"]))
{
[self setValues: [NSArray arrayWithObject: o] atIndex: 0
forKey: @"bymonthday"];
[self _setByMonthFromValues: theValues];
}
else
{
// On the Second Wednesday of April
[self _setByDayFromValues: theValues];
[self _setByMonthFromValues: theValues];
}
break;
}
if ((o = [theValues objectForKey: @"Recurrence_Occurrences"]))
{
[self setRepeatCount: [o intValue]];
}
else if ((o = [theValues objectForKey: @"Recurrence_Until"]))
{
[self setUntilDate: [o calendarDate]];
}
}
@end

View File

@ -0,0 +1,44 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ICALTIMEZONEACTIVESYNC_H__
#define __ICALTIMEZONEACTIVESYNC_H__
#import <NGCards/iCalTimeZone.h>
@class NSString;
@class WOContext;
@interface iCalTimeZone (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,184 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "iCalTimeZone+ActiveSync.h"
#include <Foundation/NSArray.h>
#include <Foundation/NSCalendarDate.h>
#include <Foundation/NSString.h>
#import <NGCards/iCalByDayMask.h>
#import <NGCards/iCalTimeZonePeriod.h>
#include "NSData+ActiveSync.h"
struct SYSTEMTIME {
uint16_t wYear;
uint16_t wMonth;
uint16_t wDayOfWeek;
uint16_t wDay;
uint16_t wHour;
uint16_t wMinute;
uint16_t wSecond;
uint16_t wMilliseconds;
};
@interface iCalTimeZonePeriod (ActiveSync)
- (void) _fillTZDate: (struct SYSTEMTIME *) tzData;
@end
@implementation iCalTimeZonePeriod (ActiveSync)
//
// FIXME - combine with iCalTimeZone+MAPIStore.m
//
- (void) _fillTZDate: (struct SYSTEMTIME *) tzData
{
iCalRecurrenceRule *rrule;
NSArray *byMonth;
iCalByDayMask *mask;
NSCalendarDate *dateValue;
rrule = [self recurrenceRule];
byMonth = [rrule byMonth];
if ([byMonth count] > 0)
{
tzData->wYear = 0;
tzData->wMonth = [[byMonth objectAtIndex: 0] intValue];
mask = [rrule byDayMask];
tzData->wDayOfWeek = [mask firstDay];
tzData->wDay = ([mask firstOccurrence] == -1) ? 5 : [mask firstOccurrence];
dateValue = [self startDate];
if (![dateValue hourOfDay])
{
if ([mask firstDay]-1 < 0)
tzData->wDayOfWeek = 6;
else
tzData->wDayOfWeek = [mask firstDay]-1;
tzData->wHour = 23;
tzData->wMinute = 59;
tzData->wSecond = 59;
tzData->wMilliseconds = 999;
}
else
{
tzData->wDayOfWeek = [mask firstDay];
tzData->wHour = [dateValue hourOfDay];
tzData->wMinute = [dateValue minuteOfHour];
tzData->wSecond = [dateValue secondOfMinute];
tzData->wMilliseconds = 0;
}
}
}
@end
@implementation iCalTimeZone (ActiveSync)
//
// FIXME - combine with iCalTimeZone+MAPIStore.m
//
- (iCalTimeZonePeriod *) _mostRecentPeriodWithName: (NSString *) periodName
{
NSArray *periods;
iCalTimeZonePeriod *period;
NSUInteger max;
periods = [self childrenWithTag: periodName];
max = [periods count];
if (max > 0)
{
periods = [periods sortedArrayUsingSelector: @selector (compare:)];
period = (iCalTimeZonePeriod *) [periods objectAtIndex: (max - 1)];
}
else
period = nil;
return period;
}
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
iCalTimeZonePeriod *period;
NSMutableData *bytes;
uint32_t lBias;
uint32_t lStandardBias;
uint32_t lDaylightBias;
//uint16_t wStandardYear;
struct SYSTEMTIME stStandardDate;
//uint16_t wDaylightYear;
struct SYSTEMTIME stDaylightDate = {0,0,0,0,0,0,0,0};
char standardName[64], daylightName[64];
bytes = [NSMutableData data];
memset(standardName, 0, 64);
memset(daylightName, 0, 64);
lStandardBias = 0;
period = [self _mostRecentPeriodWithName: @"STANDARD"];
lBias = -[period secondsOffsetFromGMT] / 60;
[period _fillTZDate: &stStandardDate];
period = [self _mostRecentPeriodWithName: @"DAYLIGHT"];
if (!period)
{
stStandardDate.wMonth = 0;
lDaylightBias = 0;
}
else
{
lDaylightBias = (uint32_t) -([period secondsOffsetFromGMT] / 60) - lBias;
[period _fillTZDate: &stDaylightDate];
//wStandardYear = stStandardDate.wYear;
//wDaylightYear = stDaylightDate.wYear;
}
// We build the timezone
[bytes appendBytes: &lBias length: 4];
[bytes appendBytes: standardName length: 64];
[bytes appendBytes: &stStandardDate length: 16];
[bytes appendBytes: &lStandardBias length: 4];
[bytes appendBytes: daylightName length: 64];
[bytes appendBytes: &stDaylightDate length: 16];
[bytes appendBytes: &lDaylightBias length: 4];
return [bytes activeSyncRepresentationInContext: context];
}
@end

View File

@ -0,0 +1,46 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ICALTODOACTIVESYNC_H__
#define __ICALTODOACTIVESYNC_H__
#import <NGCards/iCalToDo.h>
@class NSString;
@class WOContext;
@interface iCalToDo (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context;
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context;
@end
#endif

View File

@ -0,0 +1,314 @@
/*
Copyright (c) 2014, Inverse inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Inverse inc. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#import "iCalToDo+ActiveSync.h"
#import <Foundation/NSDictionary.h>
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSString+misc.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WORequest.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
#import <NGCards/iCalCalendar.h>
#import <NGCards/iCalDateTime.h>
#import <NGCards/iCalTimeZone.h>
#import <NGCards/iCalTrigger.h>
#import <Appointments/iCalEntityObject+SOGo.h>
#include "NSDate+ActiveSync.h"
#include "NSString+ActiveSync.h"
#include "iCalRecurrenceRule+ActiveSync.h"
#include "iCalAlarm+ActiveSync.h"
@implementation iCalToDo (ActiveSync)
- (NSString *) activeSyncRepresentationInContext: (WOContext *) context
{
NSMutableString *s;
NSArray *categories;
id o;
int v, i;
s = [NSMutableString string];
// Complete
[s appendFormat: @"<Complete xmlns=\"Tasks:\">%d</Complete>", [[self status] isEqualToString: @"COMPLETED"] ? 1 : 0];
// DateCompleted
if ((o = [self completed]))
[s appendFormat: @"<DateCompleted xmlns=\"Tasks:\">%@</DateCompleted>", [o activeSyncRepresentationInContext: context]];
// Start date
if ((o = [self startDate]))
{
[s appendFormat: @"<StartDate xmlns=\"Tasks:\">%@</StartDate>", [o activeSyncRepresentationInContext: context]];
[s appendFormat: @"<UTCStartDate xmlns=\"Tasks:\">%@</UTCStartDate>", [o activeSyncRepresentationInContext: context]];
}
// Due date
if ((o = [self due]))
{
[s appendFormat: @"<DueDate xmlns=\"Tasks:\">%@</DueDate>", [o activeSyncRepresentationInContext: context]];
[s appendFormat: @"<UTCDueDate xmlns=\"Tasks:\">%@</UTCDueDate>", [o activeSyncRepresentationInContext: context]];
}
// Recurrence rules
if ([self isRecurrent])
[s appendString: [[[self recurrenceRules] lastObject] activeSyncRepresentationInContext: context]];
// Importance
o = [self priority];
if ([o isEqualToString: @"9"])
v = 0;
else if ([o isEqualToString: @"1"])
v = 2;
else
v = 1;
[s appendFormat: @"<Importance xmlns=\"Tasks:\">%d</Importance>", v];
// Reminder
if ([self hasAlarms])
{
iCalAlarm *alarm;
NSString *webstatus;
if ((alarm = [self firstSupportedAlarm]))
{
webstatus = [[alarm trigger] value: 0 ofAttribute: @"x-webstatus"];
if (!webstatus || ([webstatus caseInsensitiveCompare: @"TRIGGERED"] != NSOrderedSame))
[s appendFormat: @"<ReminderSet xmlns=\"Tasks:\">%d</ReminderSet>", 1];
else
[s appendFormat: @"<ReminderSet xmlns=\"Tasks:\">%d</ReminderSet>", 0];
[s appendString: [alarm activeSyncRepresentationInContext: context]];
}
else
{
[s appendFormat: @"<ReminderSet xmlns=\"Tasks:\">%d</ReminderSet>", 0];
}
}
else
{
[s appendFormat: @"<ReminderSet xmlns=\"Tasks:\">%d</ReminderSet>", 0];
}
// Sensitivity
if ([[self accessClass] isEqualToString: @"PRIVATE"])
v = 2;
else if ([[self accessClass] isEqualToString: @"CONFIDENTIAL"])
v = 3;
else
v = 0;
[s appendFormat: @"<Sensitivity xmlns=\"Tasks:\">%d</Sensitivity>", v];
categories = [self categories];
if ([categories count])
{
[s appendFormat: @"<Categories xmlns=\"Tasks:\">"];
for (i = 0; i < [categories count]; i++)
{
[s appendFormat: @"<Category xmlns=\"Tasks:\">%@</Category>", [[categories objectAtIndex: i] activeSyncRepresentationInContext: context]];
}
[s appendFormat: @"</Categories>"];
}
// Subject
o = [self summary];
if ([o length])
[s appendFormat: @"<Subject xmlns=\"Tasks:\">%@</Subject>", [[self summary] activeSyncRepresentationInContext: context]];
if ((o = [self comment]))
{
// It is very important here to NOT set <Truncated>0</Truncated> in the response,
// otherwise it'll prevent WP8 phones from sync'ing. See #3028 for details.
o = [o activeSyncRepresentationInContext: context];
if ([[context objectForKey: @"ASProtocolVersion"] isEqualToString: @"2.5"])
{
[s appendFormat: @"<Body xmlns=\"Tasks:\">%@</Body>", o];
[s appendString: @"<BodyTruncated xmlns=\"Tasks:\">0</BodyTruncated>"];
}
else
{
[s appendString: @"<Body xmlns=\"AirSyncBase:\">"];
[s appendFormat: @"<Type>%d</Type>", 1];
[s appendFormat: @"<EstimatedDataSize>%d</EstimatedDataSize>", (int)[o length]];
[s appendFormat: @"<Data>%@</Data>", o];
[s appendString: @"</Body>"];
}
}
return s;
}
- (void) takeActiveSyncValues: (NSDictionary *) theValues
inContext: (WOContext *) context
{
NSTimeZone *userTimeZone;
iCalTimeZone *tz;
id o;
userTimeZone = [[[context activeUser] userDefaults] timeZone];
tz = [iCalTimeZone timeZoneForName: [userTimeZone name]];
[(iCalCalendar *) parent addTimeZone: tz];
// FIXME: merge with iCalEvent
if ((o = [theValues objectForKey: @"Subject"]))
[self setSummary: o];
// FIXME: merge with iCalEvent
if ([[context objectForKey: @"ASProtocolVersion"] isEqualToString: @"2.5"])
{
if ((o = [theValues objectForKey: @"Body"]))
[self setComment: o];
}
else
{
if ((o = [[theValues objectForKey: @"Body"] objectForKey: @"Data"]))
[self setComment: o];
}
if ([[theValues objectForKey: @"Complete"] intValue] &&
((o = [theValues objectForKey: @"DateCompleted"])) )
{
iCalDateTime *completed;
o = [o calendarDate];
completed = (iCalDateTime *) [self uniqueChildWithTag: @"completed"];
[completed setDate: o];
[self setStatus: @"COMPLETED"];
}
else
{
[self setStatus: @"IN-PROCESS"];
[self setCompleted: nil];
}
if ((o = [theValues objectForKey: @"DueDate"]))
{
iCalDateTime *due;
o = [o calendarDate];
due = (iCalDateTime *) [self uniqueChildWithTag: @"due"];
[due setTimeZone: tz];
[due setDateTime: o];
}
if ((o = [theValues objectForKey: @"StartDate"]))
{
iCalDateTime *due;
o = [o calendarDate];
due = (iCalDateTime *) [self uniqueChildWithTag: @"dtstart"];
[due setTimeZone: tz];
[due setDateTime: o];
}
// 2 == high, 1 == normal, 0 == low
if ((o = [theValues objectForKey: @"Importance"]))
{
if ([o intValue] == 2)
[self setPriority: @"1"];
else if ([o intValue] == 1)
[self setPriority: @"5"];
else
[self setPriority: @"9"];
}
//
// 0- normal, 1- personal, 2- private and 3-confidential
//
if ((o = [theValues objectForKey: @"Sensitivity"]))
{
switch ([o intValue])
{
case 2:
[self setAccessClass: @"PRIVATE"];
break;
case 3:
[self setAccessClass: @"CONFIDENTIAL"];
break;
case 0:
case 1:
default:
[self setAccessClass: @"PUBLIC"];
}
}
// Categories
if ((o = [theValues objectForKey: @"Categories"]) && [o length])
[self setCategories: o];
if ((o = [theValues objectForKey: @"ReminderTime"]))
{
iCalAlarm *alarm;
alarm = [[iCalAlarm alloc] init];
[alarm takeActiveSyncValues: theValues inContext: context];
[self removeAllAlarms];
[self addToAlarms: alarm];
RELEASE(alarm);
}
// Recurrence
if ((o = [theValues objectForKey: @"Recurrence"]) && !([[o objectForKey: @"Recurrence_DeadOccur"] intValue]))
{
iCalRecurrenceRule *rule;
rule = [[iCalRecurrenceRule alloc] init];
[self setRecurrenceRules: [NSArray arrayWithObject: rule]];
RELEASE(rule);
[rule takeActiveSyncValues: o inContext: context];
if (!([theValues objectForKey: @"StartDate"]))
{
iCalDateTime *start;
start = (iCalDateTime *) [self uniqueChildWithTag: @"dtstart"];
[start setTimeZone: tz];
[start setDate: [[o objectForKey: @"Recurrence_Start"] calendarDate]];
}
}
}
@end

View File

@ -1,3 +1,3 @@
{
requires = ( MAIN, Appointments, Contacts, Mailer );
}
}

View File

@ -28,8 +28,13 @@
ProxyPass /SOGo http://127.0.0.1:20000/SOGo interpolate
ProxyPass / http://127.0.0.1:20000/SOGo/dav/ interpolate
<Location />
Order allow,deny
Allow from all
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Location>
<Proxy http://127.0.0.1:20000>

View File

@ -2,13 +2,17 @@ Alias /SOGo.woa/WebServerResources/ \
/usr/lib/GNUstep/SOGo/WebServerResources/
Alias /SOGo/WebServerResources/ \
/usr/lib/GNUstep/SOGo/WebServerResources/
AliasMatch /SOGo/so/ControlPanel/Products/(.*)/Resources/(.*) \
/usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2
<Directory /usr/lib/GNUstep/SOGo/>
AllowOverride None
Order deny,allow
Allow from all
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
# Explicitly allow caching of static content to avoid browser specific behavior.
# A resource's URL MUST change in order to have the client load the new version.
@ -18,20 +22,30 @@ AliasMatch /SOGo/so/ControlPanel/Products/(.*)/Resources/(.*) \
</IfModule>
</Directory>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*\.(jpg|png|gif|css|js)">
SetHandler default-handler
</LocationMatch>
# Don't send the Referer header for cross-origin requests
Header always set Referrer-Policy "same-origin"
## Uncomment the following to enable proxy-side authentication, you will then
## need to set the "SOGoTrustProxyAuthentication" SOGo user default to YES and
## adjust the "x-webobjects-remote-user" proxy header in the "Proxy" section
## below.
#
## For full proxy-side authentication:
#<Location /SOGo>
# AuthType XXX
# Require valid-user
# SetEnv proxy-nokeepalive 1
# Allow from all
#</Location>
#
## For proxy-side authentication only for CardDAV and GroupDAV from external
## clients:
#<Location /SOGo/dav>
# AuthType XXX
# Require valid-user
# SetEnv proxy-nokeepalive 1
# Allow from all
#</Location>
ProxyRequests Off
SetEnv proxy-nokeepalive 1
@ -46,19 +60,35 @@ ProxyPreserveHost On
# Allow from your-cas-host-addr
# </Proxy>
# Redirect / to /SOGo
#RedirectMatch ^/$ https://mail.yourdomain.com/SOGo
# Enable to use Microsoft ActiveSync support
# Note that you MUST have many sogod workers to use ActiveSync.
# See the SOGo Installation and Configuration guide for more details.
#
#ProxyPass /Microsoft-Server-ActiveSync \
# http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync \
# retry=60 connectiontimeout=5 timeout=360
ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
## Adjust the following to your configuration
## and make sure to enable the headers module
<IfModule headers_module>
RequestHeader set "x-webobjects-server-port" "443"
RequestHeader set "x-webobjects-server-name" "yourhostname"
RequestHeader set "x-webobjects-server-url" "https://yourhostname"
SetEnvIf Host (.*) HTTP_HOST=$1
RequestHeader set "x-webobjects-server-name" "%{HTTP_HOST}e" env=HTTP_HOST
RequestHeader set "x-webobjects-server-url" "https://%{HTTP_HOST}e" env=HTTP_HOST
## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
# RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e"
RequestHeader unset "x-webobjects-remote-user"
# RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e" env=REMOTE_USER
RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0"
</IfModule>
AddDefaultCharset UTF-8
@ -66,9 +96,9 @@ ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
Allow from all
</Proxy>
# For apple autoconfiguration
# For Apple autoconfiguration
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^/.well-known/caldav/?$ /SOGo/dav [R=301]
RewriteRule ^/.well-known/carddav/?$ /SOGo/dav [R=301]
</IfModule>

3384
CHANGELOG.md 100644

File diff suppressed because it is too large Load Diff

87344
ChangeLog

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
all: pdf html
ASCIIDOCS = $(wildcard SOGo*.asciidoc)
PDFS = $(patsubst %.asciidoc,%.pdf, $(ASCIIDOCS))
HTML = $(patsubst %.asciidoc,%.html, $(ASCIIDOCS))
%.pdf: %.asciidoc asciidoctor-pdf-theme.yml $(wildcard includes/*.asciidoc)
asciidoctor-pdf \
-a pdf-fontsdir=fonts \
-a release_version=`git describe --abbrev=0 --tags | cut -d'-' -f 2` \
-a release_month=`date +%B` \
-a pdf-theme=asciidoctor-pdf-theme.yml \
--trace \
$<
%.html: %.asciidoc $(wildcard includes/*.asciidoc)
asciidoctor \
-D . \
-a release_version=`git describe --abbrev=0 --tags | cut -d'-' -f 2` \
-a release_month=`date +%B` \
-n \
$<
pdf: $(PDFS)
html: $(HTML)
clean:
rm -f *.pdf *.html

View File

@ -0,0 +1,194 @@
Developer's Guide
=================
////
This file is part of the SOGo project.
See includes/global-attributes.asciidoc
for authors, copyright and license information.
////
include::includes/global-attributes.asciidoc[]
UI and UX
---------
* https://material.io/design/
Frameworks & Tools
------------------
GNUstep
~~~~~~~
SOPE
~~~~
JavaScript libraries
~~~~~~~~~~~~~~~~~~~~
* https://angularjs.org/
* https://material.angularjs.org/
* http://angular-ui.github.io/ui-router/
* http://lodash.com/
* https://github.com/nervgh/angular-file-upload
* https://github.com/a5hik/ng-sortable
Code Style
----------
Objective-C
~~~~~~~~~~~
* To document the Web APIs, we follow the http://apidocjs.com/[APIDOC] standards.
apidoc -f ".*\\.m" -i UI -o Documentation/JSON-API
* When returning JSON from an object extending UIxComponent, use the following method:
- (WOResponse *) responseWithStatus: (unsigned int) status
andJSONRepresentation: (NSObject *) contentObject;
HTML
~~~~
* Localize your strings:
<var:string label:value="I'm localized!"/>
* Localize your attributes:
<input type="text" label:placeholder="I'm localized!"/>
* Reuse existing localized strings as much as possible. Otherwise don't forget to update the English Localizable.strings file of the appropriate module.
JavaScript
~~~~~~~~~~
* http://eslint.org/
* http://standardjs.com
* https://github.com/toddmotto/angularjs-styleguide
* https://github.com/angular/material/blob/master/docs/guides/CODING.md
* http://jshint.com/
* https://github.com/angular/material/tree/master/docs/guides
* We conform to https://github.com/airbnb/javascript[Airbnb coding standards]. Use https://github.com/jscs-dev/node-jscs[jscs] with the 'airbnb' preset to validate your code style:
jscs -p airbnb *.js
* For documentation, we follow the http://usejsdoc.org/[JSDoc3] standards:
jsdoc UI/WebServerResources/js/{Common,Contacts,Mailer,Preferences,Scheduler}/*.js -d Documentation/JavaScript-API
Models (facades)
^^^^^^^^^^^^^^^^
////
http://trochette.github.io/Angular-Design-Patterns-Best-Practices/
////
* Move business logic into models and share them.
* Keep it simple, separate server interaction and error handling from the model. That way model only handle data processing and code is easier to maintain.
Controllers
^^^^^^^^^^^
* Functions not exposed in the controller must be prefixed with an underscore.
SASS/CSS
~~~~~~~~
* http://componentcss.com/
* https://github.com/styleguide/css
* https://smacss.com/
* http://cssguidelin.es/
* http://sixrevisions.com/css/css-methodologies/
* https://css-tricks.com/what-a-css-code-review-might-look-like/
* http://una.im/classy-css/
* http://stylelint.io/
A `@mixin` is like a stamp: it creates a duplicated version of the property block (optionally) with arguments provided. An `@extend` appends the element you are extending to the property block. It is your "yes, and ___" statement.
* For documentation, we follow http://sassdoc.com/[SassDoc] annotations.
* FlexBox compatibility http://caniuse.com/#feat=flexbox
Fonts
^^^^^
* http://mozilla.github.io/Fira/[Mozilla Fira]
* https://material.io/tools/icons/[Material icons]
Building frontend
-----------------
* Install the latest stable release of https://nodejs.org[Node.js]
* Install grunt
npm install -g grunt-cli
npm install -g bower
* We need the SASS files of Angular Material to build our CSS. The git repository of Angular Material is included as a submodule of SOGo:
git submodule init
git submodule update
* Generate the JavaScript and CSS files
cd UI/WebServerResources
npm install
bower install
grunt build
Defining an alternate color theme
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SOGo relies on the https://material.angularjs.org/latest/Theming/01_introduction[theming system of Angular Material] to define the colors of the Web interface.
To overwrite the default theme in SOGo, set the following parameter in `/etc/sogo/sogo.conf`:
SOGoUIAdditionalJSFiles = (js/theme.js);
Edit `theme.js` under `/usr/lib64/GNUstep/SOGo/WebServerResources/js` or `/usr/lib/GNUstep/SOGo/WebServerResources/js` depending on your platform and restart sogod.
If the configuration parameter `SOGoUIxDebugEnabled` is unset or set to `NO` in `/etc/sogo/sogo.conf`, you'll need to generate a new `theme-default.css` stylesheet for the new theme.
. Temporarily set `SOGoUIxDebugEnabled` to `YES`;
. Restart sogod;
. From your favorite browser, open the JavaScript console and type the following:
copy([].slice.call(document.styleSheets)
.map(e => e.ownerNode)
.filter(e => e.hasAttribute('md-theme-style'))
.map(e => e.textContent)
.join('\n')
)
. Overwrite the content of `WebServerResources/css/theme-default.css` with the content of the clipboard;
. Restore the value of `SOGoUIxDebugEnabled` (`NO` or unset);
. Restart sogod.
Version Control
---------------
* https://devcharm.com/articles/46/improve-your-git-workflow/
* https://github.com/angular/material/blob/master/docs/guides/CONTRIBUTING.md#-commit-message-format
* Each commit should cover only one thing;
* Begin the commit message with a single short (less than 50 characters) line summarizing the change, followed by a blank line and then a more thorough description;
* When fixing a bug, commit to the devel branch as well as the maintenance branch of the latest release version (named maintenance/x.y). When a ticket is associated to the bug, add to the description a line saying *Fixes #1234*.
* `git pull` may introduce http://stackoverflow.com/questions/15316601/in-what-cases-could-git-pull-be-harmful[inconsistencies and problems]. Replace it with the following alias:
git config --global alias.up '!git remote update -p; git merge --ff-only @{u}'
Testing
-------
* https://github.com/angular/protractor
* http://karma-runner.github.io/
JSON API
~~~~~~~~
One practical way to test the JSON API is to use `curl`. To do so, you need to enable `SOGoTrustProxyAuthentication` and configure HTTP authentifcation in Apache. You can pipe the result to http://stedolan.github.io/jq/[jq] to nicely format and filter the output:
curl -u username:password http://localhost/SOGo/so/username/Calendar/calendarslist | jq '.'
curl -u username:password -H 'Content-Type: application/json' -d '{}' http://localhost/SOGo/so/francis/Calendar/personal/71B6-54904400-1-7C308500.ics/save

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,328 @@
Mobile Devices Configuration Guide
==================================
////
This file is part of the SOGo project.
See includes/global-attributes.asciidoc
for authors, copyright and license information.
////
include::includes/global-attributes.asciidoc[]
About this Guide
----------------
This guide will walk you through the installation and configuration of
popular SyncML clients to be used with the SOGo solution.
This guide also include instructions for configuring Apple iPhone OS
devices (iPhone, iPod touch, and iPad).
The instructions are based on version {release_version} of SOGo.
The latest version of this guide is available at
https://sogo.nu/downloads/documentation.html.
Introduction
------------
SOGo is a free and modern scalable groupware server. It offers shared
calendars, address books, and emails through your favourite Web browser
and by using a native client such as Mozilla Thunderbird and Lightning.
SOGo is standard-compliant. It supports CalDAV, CardDAV, GroupDAV, iMIP
and iTIP and reuses existing IMAP, SMTP and database servers - making
the solution easy to deploy and interoperable with many applications.
SOGo features:
* Scalable architecture suitable for deployments from dozen to many
thousand users
* Rich Web-based interface that shares the look and feel, the features
and the data of Mozilla Thunderbird and Lightning
* Improved integration with Mozilla Thunderbird and Lighthing by using
the SOGo Connector and the SOGo Integrator
* Two-way synchronization support with any Microsoft ActiveSync-capable
device, or Outlook 2013
SOGo is developed by a community of developers located mainly in North
America and Europe. More information can be found on
http://www.sogo.nu/.
Installation
------------
This section will guide you through the installation of popular SyncML
clients on various devices.
Funambol SyncML Client
~~~~~~~~~~~~~~~~~~~~~~
The recommended SyncML client for BlackBerry, Apple iPhone (for
contacts), mobile devices based on Microsoft Windows Mobile Smartphone
or Windows Mobile PocketPC, is the one provided directly by Funambol,
which is free and open source.
For Microsoft Window Mobile, you must identify which kind of device you
have ("Smartphone" vs. "PocketPC").
Once you've identified what kind of device you have, download the
appropriate client from:
http://www.funambol.com/opensource/downloads.php
The version 8.5 GA or later is required. 
NextHaus SyncJe
~~~~~~~~~~~~~~~
For BlackBerry and Apple iPhone devices, you can also use the
SyncJe SyncML client from NextHaus (http://www.nexthaus.com/). This
client allows one to synchronize contacts, event and tasks with SOGo.
The version 2.43 or later is required. For BlackBerry 7XXX devices, the
required version is 2.25 but isn't officially supported. You can install
SyncJe on your BlackBerry device, over the air, by opening the following
link from your BlackBerry device:
http://www.nexthaus.com/bb/syncjebb.jad
This will download and install the application on your mobile device.
It's important to use the Web browser application and not the WAP
browser to perform this operation. Once installed, restart the device.
This procedure can also be used to update the SyncJe application. Note
that an update of SyncJe will not affect the state of previous
synchronizations. It's not necessary to perform a "slow sync" after an
update of SyncJe. 
Synthesis SyncML Client
~~~~~~~~~~~~~~~~~~~~~~~
The Synthesis (http://www.synthesis.ch/) company provides a SyncML
client for Palm OS-based devices.
"Over The Air" synchronization is possible, as well as synchronization
through a cradle. For the latter, you must install Softick PPP using the
Palm Desktop software. The version 3.01 or later is required and you can
download it from http://www.softick.com/ppp/. Once installed, the
desktop computer must be restarted.
Once completed, you must download the Synthesis client for Palm OS. The
version 3.0.2.9 or later is required. Either the standard or the
professional version can be used.
Once downloaded, uncompress the archive and install the `.prc` file on
your Palm OS-based device. After, you should see a "SyncML" icon on your
device.
Configuration
-------------
In this section, you'll learn how to configure the popular SyncML
clients in order to fully synchronize your mobile device with SOGo.
Instructions for Apple iPhone OS based devices are also included. Note
that those devices do not require a SyncML client for synchronizing
calendars.
Funambol SyncML Client
~~~~~~~~~~~~~~~~~~~~~~
Once the Funambol SyncML client is installed, start the application from
your mobile device to configure it using the following steps:
From the _Tools_ menu, choose _Options..._:
* Specify the _Location_. If your SOGo server is `sogo.domain.com`, the
location should be `http://sogo.domain.com/funambol/ds`.
* Specify your username and password
* Check the _Contacts_ check box and click on the _Details_ button.
The synchronization type is _two-way_ and the _Remote name_ is
`sogo-card`. The data format is vCard.
* Check the _Calendar_ check box and click on the _Details_ button. The
synchronization type is _two-way_ and the _Remote name_ is `sogo-cal`.
The data format is vCalendar.
* Check the _Tasks_ check box and click on the _Details_ button. The
synchronization type is _two-way_ and the _Remote name_ is
`sogo-todo`. The data format is SIF.
* Save the preferences.
To prevent the BlackBerry to automatically add a new event in the
calendar when an invitation is received by email (IMIP message) on the
BlackBerry device, you should delete the CICAL service from the Service
Book. To do so, proceed with the following steps:
From the _Options_ menu:
* Choose _Advanced Options_
* Choose _Service Book_
* Identify the line that mentions the email address of the BlackBerry
user followed by the `[CICAL]` string. For example, `user@domain.com
[CICAL]`.
* Delete this entry.
Once completed, you must restart the device by removing its battery for
a couple of seconds. If you ever want to reactivate the CICAL service,
follow those instructions:
http://support.appriver.com/KB/a205/how-to-resend-service-books-on-blackberry.aspx
Once complete, the client is ready for an initial synchronization.
Ideally, you should *delete* all data from the mobile device before the
initial synchronization. To do so:
* From the _Tools_ menu, choose _Recover..._
* Choose _Replace with data from server_
* Check the _Contacts_, _Calendar_ and _Tasks_ check boxes
Finally, click on the _Sync All_ button to proceed with the
synchronization.
NextHaus SyncJe
~~~~~~~~~~~~~~~
Once NextHaus SyncJe is installed, proceed with the following steps,
from your BlackBerry device, to configure it:
* Open the _SyncJe Client_
From the _Settings_ menu:
* Specify the _Server URL_. If your SOGo server is `sogo.domain.com`,
the URL should be `http://sogo.domain.com/funambol/ds`.
* Specify your user name and password
* Check the _Contacts_ check box and specify `sogo-card` as the
_Foldername_
* Check the _Calendar_ check box and specify `sogo-cal` as the
_Foldername_
* Check the _ToDo_ check box and specify `sogo-todo` as the _Foldername_
* Check the _Auto Sync_ check box if you wish to automatically
synchronize contacts, events and tasks at a predefined time interval
* Do *not* check the _Sync events between_ check box
* Check the _Skip saving attendees_ - this will prevent the BlackBerry
device from sending emails to meeting participants for events
downloaded from the SOGo server
* Check the _BIS_ check box (for _BlackBerry Internet Services_)
* Leave the other fields to the their default value
* Then choose _Save_ from the menu to save the preferences 
To prevent the BlackBerry to automatically add a new event in the
calendar when an invitation is received by email (IMIP message) on the
BlackBerry device, you should delete the CICAL service from the Service
Book. To do so, proceed with the following steps:
From the _Options_ menu:
* Choose _Advanced Options_
* Choose _Service Book_
* Identify the line that mentions the email address of the BlackBerry
user followed by the `[CICAL]` string. For example, `user@domain.com
[CICAL]`.
* Delete this entry
Once completed, you must restart the device by removing its battery for
a couple of seconds. If you ever want to reactivate the CICAL service,
follow those instructions:
http://support.appriver.com/KB/a205/how-to-resend-service-books-on-blackberry.aspx
Once done, you're now ready for your first synchronization.
Ideally, you must delete all data on the BlackBerry before proceeding
with the initial synchronization. To do so, proceed with the following
steps:
* Open the _SyncJe Client_
From the _Settings_ menu:
* Choose the _Clear databases_ option
* Respond _Yes_ to all questions. This will delete all contacts, events
and tasks from your BlackBerry device. 
* Go back in the previous menu
* Choose the _Force Slow Sync_ option
* Choose the _Start Sync_ option to start the synchronization. This
could take a few minutes if you have many contacts, events or tasks.
Subsequent synchronizations should be much faster. 
After the initial _Slow Sync_, you can simply chose the _Start Sync_
option if you do a manual synchronization to synchronize all changes. 
Synthesis SyncML Client
~~~~~~~~~~~~~~~~~~~~~~~
Once the Synthesis SyncML client is installed, proceed with the
following steps to configure it:
* Open the _Synthesis SyncML Standard Edition_ application
From the _Settings..._ menu:
* Specify the _Server URL_. If your SOGo server is `sogo.domain.com`,
the URL should be `http://sogo.domain.com/funambol/ds`.
* Specify your user name and password
* Check the _Contacts_, _Events_ and _Task_ check boxes
* Click on the _more..._ button
* For the _Contacts_, choose _reload device_ and specify `sogo-card` as
the _Server Path_.
* For the _Events_, choose _reload device_ and specify `sogo-cal` as
the _Server Path_. Do *not* check the _Only from..._ check box.
* For the _Tasks_, choose _reload device_ and specify `sogo-todo` as
the _Server Path_.
* Once completed, click on the _Done_ button
The _reload device_ value will *delete* all entries on the device during
the initial synchronization and obtain contacts, events and tasks from
the server. If you do not want to delete everything from the device,
please choose _normal_ instead of _reload device_.
Once ready, click on the _Start_ button to proceed with the initial
synchronization.
During the initial synchronization, the Palm device will ask you how to
connect to the desktop system. From the Palm device, choose _Windows
RAS_ without specifying an user name or a password. This will allow the
Palm device to establish a PPP connection between itself and Softick PPP
and then communicate using its TCP/IP stack to the Funambol server.
Apple iOS — Calendars
~~~~~~~~~~~~~~~~~~~~~
Starting from iOS 3, Apple has added CalDAV support to the calendar
application included in the iPhone/iPod/iPad.
To add a CalDAV account, follow those instructions:
* From the _Settings_ menu, choose _Mail, Contacts, Calendars_
* Choose _Add Account..._
* Choose _Other_
* Choose _Add CalDAV Account_
* Specify the _Server_, the URL should be
`http://sogo.domain.com/SOGo/dav/<username>`
On iOS 3.1.2 and later, you must also specify the range of events you
want to have. 
* From the _Settings_ menu, choose _Mail, Contacts, Calendars_
* From the _Sync_ menu, choose _All Events_
Note that other options (_Events 2 Weeks Back_, etc.) do not work right
now.
Apple iOS — Contacts
~~~~~~~~~~~~~~~~~~~~
If you want to synchronize contacts with your Apple mobile device, use
the native address book application with SOGo using the CardDAV
protocol. To configure the address book application so it works with
SOGo, create a new CardDAV account and specify your server name. In
the _Advanced Settings_, set the port to `8800`.
On iOS prior to version 4, you must install the Funambol client and
configure the `sogo-card` source.
include::includes/additional-info.asciidoc[]
include::includes/commercial-support.asciidoc[]

View File

@ -0,0 +1,338 @@
Mozilla Thunderbird Configuration Guide
=======================================
////
This file is part of the SOGo project.
See includes/global-attributes.asciidoc
for authors, copyright and license information.
////
include::includes/global-attributes.asciidoc[]
About this Guide
----------------
This guide will walk you through the installation and configuration of
Mozilla Thunderbird and its associated extensions so it can be used with
the SOGo solution.
The instructions are based on version {release_version} of SOGo.
The latest version of this guide is available
at http://www.sogo.nu/downloads/documentation.html.
Introduction
------------
SOGo is a free and modern scalable groupware server. It offers shared
calendars, address books, and emails through your favourite Web browser
and by using a native client such as Mozilla Thunderbird and Lightning.
SOGo is standard-compliant. It supports CalDAV, CardDAV, GroupDAV, iMIP
and iTIP and reuses existing IMAP, SMTP and database servers - making
the solution easy to deploy and interoperable with many applications.
SOGo features:
* Scalable architecture suitable for deployments from dozen to many
thousand users
* Rich Web-based interface that shares the look and feel, the features
and the data of Mozilla Thunderbird and Lightning
* Improved integration with Mozilla Thunderbird and Lightning by using
the SOGo Connector and the SOGo Integrator extensions
* Two-way synchronization support with any Microsoft ActiveSync-capable
device, or Outlook 2013
SOGo is developed by a community of developers located mainly in North
America and Europe. More information can be found on
http://www.sogo.nu/.
Installation
------------
This section will guide you through the installation of Thunderbird and
its associated extensions.
Mozilla Thunderbird
~~~~~~~~~~~~~~~~~~~
Mozilla Thunderbird is the official front end client of SOGo.
Mozilla Thunderbird versions 31, 38, 45 and above are supported
and it is recommended to use the latest version of Thunderbird.
In order to download and install Mozilla Thunderbird, please visit:
https://www.mozilla.org/en-US/thunderbird/organizations/all-esr.html
Mozilla Lightning
~~~~~~~~~~~~~~~~~
When using Thunderbird, you can use the latest version of Mozilla
Lightning. Use the Add-ons manager of Thunderbird or visit:
https://addons.mozilla.org/en-US/thunderbird/addon/lightning/
SOGo Connector and SOGo Integrator
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The SOGo Connector and Integrator extensions are provided to perfect the
integration of Mozilla Thunderbird with the SOGo groupware solution.
First of all, the SOGo Connector extension transforms Thunderbird into a
full DAV client for groupware servers such as SOGo, eGroupware or
Citadel. It does this by adding support for remote DAV address books and
by adding features to be used along with the Lightning calendar
extension.
Among supported features of the SOGo Connector extension, we have:
* Free / Busy URL field in the address book
* Free / Busy functionality through HTTP
* Event organizers
* Synchronization of the address book using GroupDAV
* CardDAV implementation for the address book
* Support for WebDAV ACL
On the other hand, the SOGo Integrator extension transforms Thunderbird
into a pure "heavy" client for SOGo. Whereas the SOGo Connector is meant
for portability (horizontal integration), the SOGo Integrator makes use
of the features and layout only available from SOGo (vertical
integration).
Among the supported features of the SOGo Integrator extension, we have :
* Remote administration of folder subscriptions
* Remote administration of folder access control lists (ACL)
* Automatic replication of your local and subscribed folders
* When correctly configured, it handles the propagation of updates to
chosen extensions from a local update server
* Automatic propagation of default settings
In order to download and install the SOGo Connector and Integrator
extensions, please visit:
http://www.sogo.nu/downloads/frontends.html
Prior to installing the SOGo Integrator extension, you should read the
following chapter - _SOGo Integrator Customization_.
SOGo Integrator Customization
-----------------------------
In this section, you'll learn how to customize the SOGo Integrator
extension so it can be used alongside your SOGo server.
Customization
~~~~~~~~~~~~~
The customization steps described here involves understanding of XML and
of text file edition. If you do not have those skills, it is recommended
that you don't try to use this extension.
There are actually two steps in the configuration of a working
environment for SOGo Integrator. First of all, the Integrator will use
the same user name used to connect to the first email server configured
in Thunderbird. It is a current limitation but it will fit nearly all
configurations out there.
For testing purpose, it is strongly recommended to create and
configure an additional user profile for Thunderbird. This is for two
reasons. The first is because of the limitation mentioned above. The
second is because the Integrator will synchronize your personal address
book onto the SOGo server and then remove it so that only your personal
address book on SOGo will be available. If you are not able to do that,
you may want to make a copy of that address book beforehand.
The second part requires editing one file in the extension file sub tree
to specify where the SOGo server is located. This is done by hand. In an
enterprise environment, this step is only required once per release
since the updates are expected to propagate automatically.
Uncompress (using a ZIP or jar tool) the SOGo Integrator XPI and locate
the following file:
extensions.rdf
This file is used for locating the extension update server and the SOGo
server, which we consider to be the same for the moment. There is a line
starting with a "Seq" tag and with an attribute named "isi:updateURL".
Replace the host part of that url with the SOGo server you want to
connect to.
For example, one would replace:
<Seq about="http://inverse.ca/sogo-integrator/extensions" isi:updateURL="http://sogo-demo.inverse.ca/plugins/updates.php?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
by:
<Seq about="http://inverse.ca/sogo-integrator/extensions" isi:updateURL="https://sogo.acme.com/plugins/updates.php?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
if the SOGo server is accessible from the following URL:
https://sogo.acme.com/SOGo
Note that if you changed the `x-webobjects-server-url` configuration
setting from your HTTP server configuration file for SOGo, the
value *must* match the one you specify in `isi:updateURL` - even the
port number.
Moreover, you *must* change the value of the
`sogo-integrator.autocomplete.server.urlid` preference from
`defaults/preferences/site.js` to match the identifier of your
_SOGoUserSources_. This source will be used by Thunderbird for
autocompletion.
Once you're done modifying the configuration file, save your changes and
reconstruct the XPI file. 
Now start Thunderbird and install your newly modified extension.
SOGo Update Server
------------------
In this section, you will learn how to install and configure the SOGo
Update Server.
The SOGo Update Server can be used to automatically install or uninstall
Mozilla Thunderbird extensions, push user settings and more - all from a
central place managed by system administrators.
Installation
~~~~~~~~~~~~
Installation is relatively straightforward. You need to make
the `updates.php` script available through your HTTP server at the URL
you've specified from the `extensions.rdf` file. The `updates.php`
script can be found in the SOGo sources, under the `Scripts` directory.
The `updateLink` section of the XML payload returned to sogo-integrator
is built dynamically using the `SCRIPT_URI` variable, which is only
available when running with mod_rewrite. It should work out of the box
as long as the script is placed in the same directory as the xpi files.
If it is not the case, then the link should be adjusted to fit the
actual file layout:
<em:updateLink><?php echo dirname(getenv('SCRIPT_URI')) . '/relative/path/to/' . $plugin["filename"] ?></em:updateLink>
An http request similar to the following can be used to make sure that
the generated link is correct:
http://sogo.host/path/to/updates.php?plugin=sogo-integrator@inverse.ca&version=0.00
Please refer to your HTTP server documentation for the installation and
configuration of PHP.
Configuration
~~~~~~~~~~~~~
To configure the SOGo update server, you need to modify the
`updates.php` script directly.
Adding an extension to be pushed automatically by the update server
require you to modify the `$plugins` array from updates.php and also
adjust accordingly SOGo Integrator's `extensions.rdf` file.
For example, to automatically install SOGo Connector, SOGo Integrator
and Lightning, you would have:
----
$plugins
= array( "sogo-connector@inverse.ca"
=> array( "application" => "thunderbird",
"version" => "31.0.0",
"filename" => "sogo-connector-31.0.0.xpi" ),
"sogo-integrator@inverse.ca"
=> array( "application" => "thunderbird",
"version" => "31.0.0",
"filename" => "sogo-integrator-31.0.0-sogo-demo.xpi" ),
"{e2fda1a4-762b-4020-b5ad-a41df1933103}"
=> array( "application" => "thunderbird",
"version" => "3.3.1",
"filename" => "lightning.xpi" ));
----
The syntax is:
----
"<extension ID>"
=> array( "application" => "thunderbird",
"version" => "<exact version found in the extension's manifest.json file>",
"filename" => "<exact filename on the filesystem>" )
----
The path of the filename, specified in the `filename` parameter, is
relative to the location of the `updates.php` script. For extensions
that are dependant on the architecture and operating system (Microsoft
Windows, Apple Mac OS X, etc.), they can be placed in subdirectories
relative again to the `updates.php` script (but the filename must be
identical in all subdirectories). For exemple, for Mozilla Lightning, we
could have:
----
Darwin_x86-gcc3/lightning.xpi
Linux_x86-gcc3/lightning.xpi
Linux_x86_64-gcc3/lightning.xpi
WINNT_x86-msvc/lightning.xpi
----
If you eventually want to disable an extension, that is, without
removing it from your users' computers, you can specify `disabled` as
the version number.
Next is to modify the `extensions.rdf` file. Again, to automatically
install SOGo Connector, SOGo Integrator and Lightning, you would have:
----
<li>
<Description
em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}"
em:name="Lightning"/>
</li>
<li>
<Description
em:id="sogo-integrator@inverse.ca"
em:name="SOGo Integrator"/>
</li>
<li>
<Description
em:id="sogo-connector@inverse.ca"
em:name="SOGo Connector"/>
</li>
----
Using SOGo Integrator, you can also push user-settings for any part of
Thunderbird or its extensions. There are two kind of user-settings
push:
* Settings that are pushed during the initial configuration of
Thunderbird
* Settings that are pushed upon every restart (ie., forced) of
Thunderbird
Settings that pushed are pushed during initial configuration are
controlled by the `./defaults/preferences/site.js` file from SOGo
Integrator. Here is an example:
----
pref("calendar.alarms.showmissed", false);
pref("calendar.caldav.sched.enabled", true);
----
Preferences that are forced upon every restart of Thunderbird are
controlled from the `./chrome/content/general/custom-preferences.js`
configuration file.
Here is an example:
----
force_int_pref("changequote.replyformat.format", 0);
force_bool_pref("changequote.headers.withcc", true);
force_char_pref(“foo.bar”, “zot”);
----
include::includes/additional-info.asciidoc[]
include::includes/commercial-support.asciidoc[]

View File

@ -0,0 +1,495 @@
Microsoft Outlook CalDAVSynchronizer Configuration Guide
========================================================
////
This file is part of the SOGo project.
See includes/global-attributes.asciidoc
for authors, copyright and license information.
////
include::includes/global-attributes.asciidoc[]
About this Guide
----------------
This guide will walk you through the installation and configuration of Microsoft Outlook for a better integration with SOGo through the use of the CalDavSynchronizer addon.
Prior going over this guide, you should have a working SOGo
installation. Please refer to the _SOGo Installation and Configuration
Guide_ for more information on installing and configuring SOGo.
The instructions are based on version {release_version} of SOGo.
The latest version of this guide is available
at https://sogo.nu/downloads/documentation.html.
Introduction
------------
Outlook CalDav Synchronizer is an open source addon for Microsoft Windows Outlook. It synchronizes events, tasks and contacts between Microsoft Outlook and CalDAV or CardDAV servers. Supported Outlook versions are Outlook 2007 to Outlook 2016.
Together with other open source solutions like SOGo, a full open source Microsoft Exchange server replacement for desktop users is finally possible and enterprise ready.
Outlook CalDav Synchronizer is Free and Open-Source Software (FOSS) , licensed under AGPL3 and developed by
* https://sourceforge.net/u/nertsch/profile/[Gerhard Zehetbauer]
* https://sourceforge.net/u/nimm/profile/[Alexander Nimmervoll]
Project Links
~~~~~~~~~~~~~
The project source and binaries for installation are hosted on GitHub and SourceForge or can be downloaded from https://caldavsynchronizer.org[caldavsynchronizer.org]
* https://github.com/aluxnimm/outlookcaldavsynchronizer
* https://sourceforge.net/projects/outlookcaldavsynchronizer/
Social Media
~~~~~~~~~~~~
https://www.facebook.com/caldavsynchronizer/[CalDav Synchronizer on Facebook]
Enterprise Support
~~~~~~~~~~~~~~~~~~
Inverse (http://inverse.ca/[http://inverse.ca]) offers professional services around SOGo to help organizations deploy the solution and
migrate from their legacy systems.
For enterprise support on the integration between SOGo and Microsoft Outlook using the Outlook CalDav Synchronizer, please visit https://caldavsynchronizer.org/enterprise
Features
--------
The most important features are
* Open Source, the only free Outlook CalDAV and CardDAV addon
* two-way-sync
* support for CalDAV calendars and tasks, CardDAV contacts
* support for Google native Contacts and Tasks API
* full support for timezones and recurring events with exceptions
* SSL/TLS support, support for self-signed certificates
* proxy support
* Autodiscovery of calendars and addressbooks
* configurable sync timerange filter
* time-triggered-sync and sync changes from Outlook immediately
* Category Filtering (sync CalDAV calendar/tasks to Outlook categories)
* map CalDAV server colors to Outlook category colors
* Use server settings from Outlook IMAP/POP3 account profile
* Mapping of Distribution Lists to SOGo VLIST contact groups
* Configurable mapping of Outlook custom properties
Installation
------------
Download and extract the `OutlookCalDavSynchronizer-<Version>.zip` into any directory and start setup.exe. You can change the default install path, but you need to use a directory on the `C:\` drive. Follow the instructions and restart Outlook after the installation is finished.
image::images/installer1.png[scaledwidth="100%",alt="Installer Step 1"]
image::images/installer2.png[scaledwidth="100%",alt="Installer Step 2"]
Next, you will see a ribbon CalDav Synchronizer in Outlook and can add synchronization profiles for you SOGo calendars, addressbooks and tasks.
image::images/outlook_ribbon.png[scaledwidth="100%",alt="Outlook Ribbon"]
In the Synchronization profiles dialog, press *Add new profile* if you just need to synchronize one resource or *Add multiple profiles* if you need to synchronize multiple calendars, addressbooks or task folders.
image::images/add_multiple.png[scaledwidth="75%",alt="Add multiple profiles"]
Next, select the SOGo profile type
image::images/select_profiletype.png[scaledwidth="100%",alt="Select Profile type"]
In the multiple profile setup dialog you can configure the details of the sync profiles.
image::images/configure_multiple.png[scaledwidth="100%",alt="Multiple Profile Configuration"]
First, you should change the profile name and configure the server settings, the DAV URL is prefilled with the default SOGo DAV path and you should only change the hostname of your SOGo server, enter Username and Password. If you also have configured an IMAP account and your domain supports autodiscovery using DNS SRV records you can also try to fetch the server settings from your existing mail account in Outlook by pressing *Get IMAP/POP3 account settings*. If successful, username and password will be used from the existing mail account and the DAV URL will be discovered.
If all server settings are configured press *Discover resources and assign to Outlook folders* to start the autodiscovery of all server resources.
You can assign Outlook folders to found calendar, addressbook and task resources in the three tab views.
image::images/select_calendar.png[scaledwidth="100%",alt="Add calendar resources"]
image::images/select_addressbook.png[scaledwidth="100%",alt="Add addressbook resources"]
image::images/select_task.png[scaledwidth="100%",alt="Add task resources"]
To assign a folder click on the "..." button for the corresponding resource and either choose an existing Outlook folder or create a new one in the folder dialog.
image::images/select_folder.png[scaledwidth="60%",alt="Select Outlook folder"]
image::images/new_folder.png[scaledwidth="60%",alt="Add new Outlook folder"]
If you chose *Add new profile* for only one resource you can also choose the Outlook folder and dependent on the folder type you will create a calendar, addressbook or task profile.
image::images/profile_config.png[scaledwidth="100%",alt="Single Profile Configuration"]
If you know the correct calendar CalDAV URL, you can also enter that directly into the DAV Url textbox or paste it from the SOGo Web Frontend, when selecting Link in the calendar properties. For the personal calendar it looks like
https://server.example/remote.php/dav/calendars/caldav/personal/
Furthermore, you can configure sync settings and intervals or keep the default settings which are automatic Two-Way-Sync every 30 minutes for all events from 60 days in the past to 365 days in the future.
image::images/profile_advanced.png[scaledwidth="100%",alt="Advanced Settings"]
For addressbooks, the profile setup is similar, just choose an Outlook contacts folder for synchronization.
If needed, you can configure network and proxy options or special mapping configuration parameters in the corresponding option pages.
image::images/profile_network.png[scaledwidth="100%",alt="Network settings"]
image::images/profile_advanced_event_mapping.png[scaledwidth="100%",alt="Event mapping configuration"]
image::images/profile_advanced_contact_mapping.png[scaledwidth="100%",alt="Contact mapping configuration"]
image::images/profile_advanced_task_mapping.png[scaledwidth="100%",alt="Task mapping configuration"]
image::images/profile_advanced_custom_mapping.png[scaledwidth="100%",alt="Custom mapping configuration"]
See *Advanced settings* below for a detailed description of all available options.
After the configuration of the sync profile is finished you can start the synchronization with pressing *Synchronize now* in the CalDav Synchronizer ribbon and your Outlook resources will be in sync with your SOGo resources.
You can check the status of the last sync runs with the *Status* button in the ribbon.
image::images/status_report.png[scaledwidth="50%",alt="Status report"]
Should there be any errors or warnings during synchronization, you can check the *Reports* in the ribbon.
image::images/sync_report.png[scaledwidth="100%",alt="Sync report"]
Configuration Options
---------------------
Synchronization Settings
~~~~~~~~~~~~~~~~~~~~~~~~
* *Outlook → Server (Replicate):* syncronize everything from Outlook to the server (one way)
* *Outlook ← Server (Replicate):* synchronize everything from the server to Outlook (one way)
* *Outlook → Server (Merge):* synchronize everything from Outlook to the server but dont change events created on the server
* *Outlook ← Server (Merge):* synchronize everything from the server to Outlook but dont change events created in Outlook
* *Outlook ←→ Server (Two-Way):* Two-Way synchronization between Outlook and the server with one of the following conflict resolution
* *Conflict resolution*
(only used in Two-Way synchronization mode and only available in *advanced settings*)
** *Outlook Wins:* If an event is modified in Outlook and in the server since last snyc, use the Outlook version. If an event is modified in Outlook and deleted in the server since last snyc, also use the Outlook version. If an event is deleted in Outlook and modified in the server, also delete it in the server.
** *Server Wins:* If an event is modified in Outlook and in the server since last snyc, use the server version. If an event is modified in Outlook and deleted in the server since last snyc, also delete it in Outlook. If an event is deleted in Outlook and modified in the server, recreate it in Outlook.
** *Automatic:* If event is modified in Outlook and in the server since last snyc, use the last recent modified version. If an event is modified in Outlook and deleted in the server since last snyc, delete it also in Outlook. If an event is deleted in Outlook and modified in the server, also delete it in the server.
* *Synchronization interval (minutes):* Choose the interval for synchronization in minutes, if 'Manual only' is choosen, there is no automatic sync but you can use the 'Synchronize now' menu item.
* *Perform synchronization in chunks* perform CalDAV/CardDAV sync in chunks with configurable chunk size to avoid OutOfMemoryEceptions, enabled by default because of lower memory consumption for huge resources. *(only in advanced settings)*
* *Use time range filter* *(only in advanced settings)*
For performance reasons it is useful to sync only a given timespan of a big calendar, especially past events are normally not necessary to sync after a given timespan. But be aware that Outlook and Google and some other CalDAV servers calculate the intersection with the time-range differently for recurring events which can cause doubled or deleted events, so it is recommended to select a time-range which is larger than the largest interval of your recurring events (e.g. 1 year for birthdays).
Advanced Settings
~~~~~~~~~~~~~~~~~
When *Show advanced settings* is enabled, you can expand the tree view of the profile to configure network and proxy options and mapping configuration options.
Network and Proxy Options
^^^^^^^^^^^^^^^^^^^^^^^^^
Here you can configure advanced network options and proxy settings.
* *Close connection after each request* Dont use KeepAlive, only useful for servers which dont support it.
* *Use Preemptive Authentication* Send Authentication header with each request to avoid 401 responses and resending the request, disable only if the server has problems with preemptive authentication.
* *Force basic authentication* Set basic authentication headers to avoid problems with negotiation or digest authentication with servers like Apple OS X / macOS. This is only recommended if you use a secure HTTPS connection, otherwise passwords are sent in cleartext.
* *Use System Default Proxy* Use proxy settings from Internet Explorer or config file, uses default credentials if available for NTLM authentication.
* *Use manual proxy configuration* Specify proxy URL as `http://<your-proxy-domain>:<your-proxy-port>` and optional Username and Password for Basic Authentication.
Mapping Configuration
^^^^^^^^^^^^^^^^^^^^^
Here you can configure what properties should be synced.
Event Mapping Configuration
+++++++++++++++++++++++++++
For appointments you can choose if you want to map reminders (just upcoming, all or none) and the description body.
* *Export html description X-ALT-DESC converted from RTF Body* If enabled, convert formatted RTF Body of Outlook appointment to html and export it as X-ALT-DESC property. The RTF to html conversion is experimental, inline images and some formatting properties cant be converted! Be aware that some servers like Google Calendar drop this attribute!
* *Set RTF Body from X-ALT-DESC html description* If enabled, convert X-ALT-DESC description html property to RTF and set Outlook appointment RTF Body. The html to RTF conversion is experimental, not all html formatting options can be converted! This overwrites also the plaintext Body!
* *Timezone settings* See section Timezone mapping below.
*Use GlobalAppointmentID for UID attribute:* Use Outlook GlobalAppointmendID instead of random Guid for UID attribute in new CalDAV events. This can avoid duplicate events from invitations.
* In *Privacy settings* you can configure if you want to map Outlook private appointments to CLASS:CONFIDENTIAL and vice versa. This could be useful for Owncloud for example, if you share your calendar with others and they should see start/end dates of your private appointments. You can also map all CLASS:PUBLIC events to Outlook private appointments.
* In *Scheduling settings* you can configure if you want to map attendees and organizer and if notifications should be sent by the server.
* Use *Dont send appointment notifications* for SOGo servers and *SCHEDULE-AGENT=CLIENT* for other servers if you want to send invitations from Outlook and avoid that the server sends invitations too, but be aware that not all servers (e.g. Google) support the SCHEDULE-AGENT=CLIENT setting.
* In *Outlook settings* you can also define a filter category so that multiple CalDAV-Calendars can be synchronized into one Outlook calendar via the defined category (see Category Filter and Color below).
* *Cleanup duplicate events after each sync run:* removes duplicate Outlook appointments based on start,end and subject of the events after each sync run, be aware of possible performance penalties with this option enabled.
Contact Mapping Configuration
+++++++++++++++++++++++++++++
* For contacts you can configure if birthdays should be mapped or not. If birthdays are mapped, Outlook also creates an recurring appointment for every contact with a defined birthday.
* You can also configure if contact photos should be mapped or not. Contact photo mapping from Outlook to the server doesnt work in Outlook 2007. You can also add an option to not overwrite the contact photo in Outlook when it changes on the server, which could happen due to other mobile clients reducing the resolution for example.
* Dont overwrite FileAs in Outlook uses the Outlook settings for FileAs and doesnt overwrite the contact FileAs with the FN from the server.
* Fix imported phone number format adds round brackets to the area code of phone numbers, so that Outlook can show correct phone number details with country and area code, e.g. +1 23 45678 is mapped to +1 (23) 45678.
* Map OutlookEmailAddress1 to WORK instead of HOME, enable when you need to change the order of email address mapping.
* Write IM addresses as IMPP attributes. If enabled IMPP is used instead of X-AIM,X-ICQ,X-JABBER etc. for writing Instant messenger addresses in vCards. (SOGo is only using X-AIM atm.)
* Default IM protocol. Choose the default IM service type protocol which will be added to the chat address field from Outlook when writing vCards, defaults to AIM.
* Map Distribution Lists enables the sync of contact groups / Distribution Lists, right now the DAV contact group format SOGo VLIST or vCards with KIND:group are available, see *Distribution Lists* below.
Task Mapping Configuration
++++++++++++++++++++++++++
* For tasks (not for Google task profiles) you can configure if you want to map reminders (just upcoming, all or none), the priority of the task, the description body and if recurring tasks should be synchronized.
* You can also define if task start and due dates should be mapped as floating without timezone to avoid issues with tasks across different timezones.
* Similar to calendars you can also define a filter category so that multiple CalDAV Tasklists can be synchronized into one Outlook task folder via the defined category.
Timezone Settings
^^^^^^^^^^^^^^^^^
Outlook and Windows use different timezone definitions than most CalDAV servers and other clients. When adding new events on the server you have different options how the timezone of the newly created VEVENT is generated. The default setting uses the default Windows timezone from Outlook (e.g. W. Europe Standard Time) or the selected timezones for the start and end of the appointment. Since some servers have problems with that timezone definitions you can change that behaviour in the event mapping configuration with the following options:
* *Create events on server in UTC* Use UTC instead of Outlook Appointment Timezone for creating events on CalDAV server. Not recommended for general use, because recurrence exceptions over DST changes cant be mapped and Appointments with different start and end timezones cant be represented.
* *Create events on server in downloaded IANA Timezones* Use IANA instead of Windows Timezones for creating events on CalDAV server. Needed for servers which do not accept non standard Windows Timezones like GMX for example. Timezone definitions will be downloaded from http://tzurl.org.
* *Use IANA Timezone* Use this IANA timezone for default Outlook/Windows timezone. Manually selected different timezones in Outlook appointments will be mapped to first corresponding IANA timezone.
* *Include full IANA zone with historical data* Use full IANA timezone definition with historical data. Needs more bandwith and can be incompatible when manually importing in Outlook.
Custom Properties Mapping
^^^^^^^^^^^^^^^^^^^^^^^^^
When you expand the tree view of the profile for events and tasks, you can configure the mapping of custom properties.
* *Map all Outlook custom properties to X-CALDAVSYNCHRONIZER attributes* If enabled, all Outlook custom text properties of the appointment/task are mapped to DAV attributes with the prefix X-CALDAVSYNCHRONIZER- and vice versa.
* You can also define manual mapping pairs of Outlook custom attributes and DAV X-Attributes. This will overrule the general mapping of all Outlook custom properties if both is activated. Outlook properties that dont exist, will be created. DAV properties MUST start with X-. Only Outlook custom properties of type Text can be mapped.
Managing Meetings and Invites
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Outlook can only track meeting responses and invites in the main calender folder. If you schedule meetings from Outlook which are synced with the CalDAV server you have two possibilities to avoid double invitation mails for all attendees. First, you can enable the option *Dont send appointment notifications (enabled by default for SOGo profiles)* or *SCHEDULE-AGENT=CLIENT* (for other servers) and let only Outlook send the meeting invites, if the server supports this option. Or you can disable this option and let the server schedule the meetings after syncing the meeting. Then you need to disable the invitation mails sent from Outlook. This is possible by unchecking the checkbox left to the attendee name in the meeting planning dialog. When syncing meetings created in Outlook to the server, the option *Use GlobalAppointmentID for UID attribute* is recommended. This can avoid duplicate events from invitations.
The response status of all attendees can be synced from Outlook to the server but only the status of the own Outlook identity (if included in the attendees) can be synced from the server to Outlook due to limitations of the Outlook Object Model.
When receiving invites from the CalDAV server and via Email in your INBOX, Outlook will automatically create a tentative meeting in the main calendar folder
To avoid double meetings the option *Cleanup duplicate events after each sync run* in event mapping configuration is recommended.
Free/busy Lookups
^^^^^^^^^^^^^^^^^
You can configure free/busy lookups globally in the Outlook options.
Select Options/Calendar and there free/busy information and use a free/busy URL of your server with placeholder like %Name%, e.g. http://myserver/freebusy.php/%Name%
For SOGo the URL looks like: http://<hostname>/SOGo/dav/public/%NAME%/freebusy.ifb
And `SOGoEnablePublicAccess` must be set to `YES`
Then every attendee in the Outlook planning view gets resolved with that URL for a free/busy lookup against your server.
Scheduling Settings and Resources
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If your server supports resources (for SOGo see http://wiki.sogo.nu/ResourceConfiguration disable *set SCHEDULE-AGENT=CLIENT* in Mapping Configuration, so that the server can handle the resource invitation mails, add the resource email adress as attendee in the Outlook appointment and choose type ressource (house icon) for it.
Category Filter and Color
~~~~~~~~~~~~~~~~~~~~~~~~~
If you want to sync multiple CalDAV calendars or task lists into one Outlook folder you can configure an Outlook category for filtering in the *Mapping Configuration*. You can choose a category from the dropdown list of all available Outlook categories or enter a new category name.
For all events/tasks from the server the defined category is added in Outlook, when syncing back from Outlook to the server only appointments/tasks with that category are considered but the filter category is removed. The category name must not contain any commas or semicolons!
With the checkbox *Sync also Appointments without any category* also all appointments/tasks without a category are synced to the server.
With the checkbox below you can alternatively negate the filter and sync all appointments/tasks except this category.
For calendars it is also possible to choose the color of the category or to fetch the calendar color from the server and map it to the nearest supported Outlook category color with the button *Fetch Color*. With *Set DAV Color* it is also possible to sync the choosen category color back to set the server calendar color accordingly. With *Category Shortcut Key* you can define the shortcut key of the selected category for easier access when creating appointments.
Reminders
~~~~~~~~~
In event and task mapping configuration you can define if you want to map (all/non/just upcoming) reminders. If you get the following error message when trying to set reminders in Outlook
`The reminder will not appear because the item is in a folder that doesnt support reminders.`
you can try to change the Outlook options as discussed in
http://answers.microsoft.com/en-us/office/forum/office_2016-outlook/outlook-2016-calendar-reminders/8f40bcdd-e3fc-4f29-acaf-544f48d63992
or try the following reported by user __Todo18__
1. Create a new storage folder in Outlook via the File menu, Info, Account Settings. In the Data Files tab, you can Add a new (.pst) data file. After the file has been added, Make it the default [data file], and close the dialog.
2. Go to the Calendar window, right click on the calendar thats giving you problems, and select Move Calendar. In the dialog, pick the data file that you created in the first step, and confirm. Dont forget to update the storage folder in the CalDav Synchronizer settings!
Distribution Lists
~~~~~~~~~~~~~~~~~~
When enabled in Contact Mapping configuration you can now also sync Outlook Distribution Lists with your server contact groups. Since different servers use different formats to store contact groups, you will be able to choose the used DAV contact group format. Right now, the VLIST format for SOGo servers and vCards with KIND:group are supported. Dont enable any of these options when your server doesnt support it!
Since Outlook Distribution Lists also support list members which arent in the addressbook but SOGo VLISTs dont, we add them as custom X-Attributes. With this workaround those members arent displayed in SOGo but wont get lost when syncing back to Outlook.
Since vCard in version 3.0 doesnt support contact groups we use X-ADDRESSBOOK-SERVER attributes for KIND and MEMBER for contact groups.
General Options and SSL settings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the General Options Dialog you can change settings which are used for all synchronization profiles.
* *Automatically check for newer versions* set to false to disable checking for updates.
* *Check Internet connection before sync run* checks if an interface is up and try DNS query to dns.msftncsi.com first and if that fails try to download http://www.msftncsi.com/ncsi.txt with the configured proxy before each sync run to avoid error reports if network is unavailable after hibernate for example. Disable this option if you are in a local network where DNS and that URL is blocked.
* *Store data in roaming folder* set to true if you need to store state and profile data in the AppData\Roaming\ directory for roaming profiles in a AD domain for example. When changing this option, a restart of Outlook is required.
* *Include custom message classes in Outlook filter* Disabled by default, enable only if you have custom forms with message_classes other than the default IPM.Appointment/Contact/Task. For better performance, Windows Search Service shouldnt be deactivated if this option is enabled.
* *Use fast queries for Outlook folders* Enabled by default, uses fast GetTable queries when accessing Outlook folders. Disable only if you get errors in GetVersions, when disabled every item needs to be requested which causes a performance penalty!
* *Trigger sync after Outlook Send/Receive and on Startup* If checked a manual sync is triggered after the Outlook Send/Receive finishes and on Outlook startup.
* *Show advanced settings as default* Show the advanced settings in synchronization profiles as default if enabled.
* *Expand all nodes in Synchronization profiles* Enabled by default, expands all nodes in the synchronization profiles to see the suboptions for network settings and mapping configuration.
* *Enable Tray Icon* Enabled by default, you can disable the tray icon in the Windows Taskbar if you dont need it.
* *Fix invalid settings* Fixes invalid settings automatically, when synchronization profiles are edited.
* *Show Sync Progress Bar* and *Sync Progress Bar Threshold (Items)* Enabled by default, show a progress bar if more than the treshold of items need to be loaded during a synchronization run. If disabled, no progress bar is shown but be aware that for larger changes Outlook can freeze, since some operations need to be performed in the Outlook main thread.
* *Accept invalid chars in server response* If checked invalid characters in XML server responses are allowed. A typical invalid char, sent by some servers is Form feed (0x0C).
* * Enable useUnsafeHeaderParsing* Enable, if the server sends invalid http headers, see common network errors. Needed for Yahoo and cPanel Horde servers for example. The general option overrides the setting in the app.config file.
* *CalDav Connection Timeout (secs)* For slow server connections you can increaste the timeout value (default 90 secs).
SSL/TLS settings
^^^^^^^^^^^^^^^^
If you have problems with SSL/TLS and self-signed certificates, you can change the following settings at your own risk.
The recommended way would be to add the self signed cert to the Local Computer Trusted Root Certification Authorities
You can import the cert by running the MMC as Administrator.
* *Disable Certificate Validation* set to true to disable SSL/TLS certificate validation, major security risk, use with caution!
* *Enable Client Certificates* If enabled, the available client certificates from the Windows user certificate store will automatically be provided.
* *Enable Tls12* set to false to disable TLS12, not recommended!
* *Enable Ssl3* set to true to enable deprecated SSLv3, major security risk, use with caution!
Logging
^^^^^^^
In the *General Logging* section you can show or clear the log file and define the log level. Possible log levels are `INFO` and `DEBUG`.
You can also configure Synchronization reports for all profiles, this can be configured via general Options:
* *Log* You can choose if you want to generate reports for *"Only sync runs with errors"* or *"Sync runs with errors or warnings"* or *"All sync runs"*.
* *Show immediately* configures if the Sync reports should be shown immediately after a sync run with errors, with warnings or errors, or not at all.
* *Delete reports older than (days)* Automatically delete reports which are older than the days configured.
You can show reports manually with the *Reports* button in the CalDav Synchronizer Ribbon. There you can choose from available reports (shown as profile name with timestamp of the sync run) and see informations about items synced and if there were any warnings or errors. You can also delete reports or add them to a zip file via the context menu. If the last sync run lead to any errors, a warning symbol is shown in the Ribbon or the Report window opens if configured in the general options.
Profile Import/Export
~~~~~~~~~~~~~~~~~~~~~
In the toolbar of the synchronization profiles you can export all profiles to a file and import profiles from an earlier exported file. When exporting, you can choose a filename, the extension is *.cdsp and all options are saved in an xml format into this file. When importing the file, existing profiles are merged with the imported ones. If the selected Outlook folder for the profile doesnt exist during import, you need to manually select a folder before you can save the options, they are not automatically created. You need also be aware of the fact, that saved profile passwords wont work on other accounts or machines, since the encryption is dependant on the current user. But you can use the account password from the IMAP/POP3 account if available. General options are not saved in that file, but in the registry in `HKEY_CURRENT_USER\Software\CalDavSynchronizer`.
Troubleshooting
---------------
Synchronization Status
~~~~~~~~~~~~~~~~~~~~~~
With the *Status* button in the CalDav Synchronizer Ribbon or via doubleclick from the TrayIcon you can access the status of the active sync profiles with their last sync run shown in minutes ago and the status OK, error, or warning. When clicking on the profile name you get to the according sync profile settings, when clicking the status icon, you can open the according sync report. When a sync run has any errors or warnings you will get a notification from the CalDav Synchronizer TrayIcon.
Debugging
~~~~~~~~~
Options and state information is normally stored in the following folder:
----
C:\Users\<Your Username>\AppData\Local\CalDavSychronizer
----
If you activated Store data in roaming folder the location is changed to the following folder:
----
C:\Users\<Your Username>\AppData\Roaming\CalDavSychronizer
----
There is one `options_<your outlook profile>.xml` file which stores the options for each outlook profile.
For each sync profile there is a subfolder with state information stored in a relations.xml file after the inital sync. If you delete that folder, a fresh inital sync is performed. In the Synchronization profiles dialog a context menu is available in each profile (right click), which allows to open the cache directory and read the relations.xml file.
Each synchronization attempt is logged in the `log.txt` file. There you can find information about sync duration and the amount of added, deleted or modified events. Errors and Exceptions are logged aswell. You can view and clear the log file in *General Options*. There you can also change the log level from `INFO` to `DEBUG`.
In the install dir (The default is `C:\Program Files (x86)\CalDavSynchronizer`) you will find the app config file
` CalDavSynchronizer.dll.config`
In that xml file you can config timeout parameters and config options in the section `appSettings`
After changing parameters you have to restart Outlook.
* *wpfRenderModeSoftwareOnly*: When set to true, turn off hardware acceleration and use Software Rendering only. Useful if you have issues with WPF and your graphics card driver.
You can also change defaults for some of the general options like CheckForNewVersions, StoreAppDatainRoamingFolder, IncludeCustomMessageClasses and SSL/TLS options, useful for All Users deployment, because general options are stored per user in the HKCU registry hive.
In the section `system.net` you can define proxy settings, e.g. use of NTLM credentials
----
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
----
In this section you can also allow UnsafeHeaderParsing if the server sends invalid http headers.
----
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
----
This setting can also be enabled in the general options, starting with version 2.10.0.
In the section `log4net` you can define the log level for the main log (also possible in general options now).
level value can be DEBUG or INFO, e.g.:
----
<root>
<level value="DEBUG" />
<appender-ref ref="MainLogAppender" />
</root>
----
Common network errors
^^^^^^^^^^^^^^^^^^^^^
* System.Net.Http.HttpRequestException: Response status code does not indicate success: '401' ('Unauthorized').
** Wrong Username and/or Password provided.
* System.Net.Http.HttpRequestException: An error occurred while sending the request. --→ System.Net.WebException: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
** The server has KeepAlive disabled. Use *"Close connection after each request"* in *Network and proxy options*.
* System.Net.Http.HttpRequestException: An error occurred while sending the request. --→ System.Net.WebException: The server committed a protocol violation. Section=ResponseStatusLine
** The server sends invalid headers. Enable the general option *Enable useUnsafeHeaderParsing* or the commented out option *useUnsafeHeaderparsing* in the app config file.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More