Commit Graph

50 Commits

Author SHA1 Message Date
brad2014 781359a582 iMIP email improvements (take 2)
This PR is a replacement for PR #17195. It is intended to be simpler
to review and approve, with fewer changes, some disabled by default.

It addresses issues #12391 and #13555, with the following changes:

- The plainText of iMIP emails has been upgraded as described in
issue #12391. The HTML design style has not been changed.

- Some of the HTML and plainText content has been rearranged
(simplified header language, moving the event title to from text
body to the first item in the bullet list, spelling corrections,
moving the description to the end of the list), per issue #12391.

- The interface for EMailTemplate has been extended: addBodyListItem
now takes an optional `plainIndent` parameter. Existing callers
see no change. Where new calls set the  new parameter >0, the list
item label (metaInfo) is put in column 1, and the value is indented
into column 2 (properly accounting for multiple lines, if any).

- An optional dav config setting has been added,
`invitation_list_attendees`. It defaults to 'no', leaving emails
unchanged. If set by the site admin to 'yes', then iMIP emails
include, for the organizer and each attendee, their name, email,
and a ✔︎ if they have accepted the invitation.

- Minor refactoring.

Notes:

- The labels for organizers and attendees list items are new, and
require translation/localization.

- Dav config settings are documented in the code, but not in the
Administrator's Guide.

Signed-off-by: brad2014 <brad2014@users.noreply.github.com>
2020-08-20 22:16:47 +02:00
Daniel Kesselberg 6f8147b18f
Fix some MissingDocblockType or InvalidDocblock warnings.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-08-14 15:10:48 +02:00
Christoph Wurst cb057829f7
Update license headers for 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +02:00
Thomas Citharel ebdf66b706
Provide dav setting for user's default calendar
And add tests to handle schedule-default-calendar-URL

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-04-13 15:07:42 +02:00
Christoph Wurst 28f8eb5dba
Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02:00
Christoph Wurst 1584c9ae9c
Add visibility to all methods and position of static keyword
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:51:06 +02:00
Christoph Wurst caff1023ea
Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst 14c996d982
Use elseif instead of else if
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +02:00
Christoph Wurst afbd9c4e6e
Unify function spacing to PSR2 recommendation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 13:54:22 +02:00
Thomas Citharel 058ffa37ff
Add default titles for titleless events in invitations
Closes #19662

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-04-03 13:49:25 +02:00
Christoph Wurst 1a9330cd69
Update the license headers for Nextcloud 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-31 14:52:54 +02:00
Christoph Wurst b80ebc9674
Use the short array syntax, everywhere
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-26 16:34:56 +01:00
Georg Ehrke 165fc172b1
Fix display of DTEND for multi-day all-day event
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-01-30 15:02:16 +01:00
Christoph Wurst 5bf3d1bb38
Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Georg Ehrke 6d39c6cb50
Set common-name to user's displayname if none is set
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-11-29 07:48:30 +01:00
Roeland Jago Douma 68748d4f85
Some php-cs fixes
* Order the imports
* No leading slash on imports
* Empty line before namespace
* One line per import
* Empty after imports
* Emmpty line at bottom of file

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-22 20:52:10 +01:00
Georg Ehrke cc37c39ede
Make rooms / resources automatically reply to invites
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-08-26 13:27:59 +02:00
Roeland Jago Douma 954290ab5f
Merge pull request #12392 from brad2014/feature/properly-present-buttons-from-imip-mails
Customize presentation of accept/decline buttons in iMip mail
2019-08-15 08:17:30 +02:00
brad2014 8d8bcea1d8 Move dav.invitation_link_recipients from getSystemValue to getAppValue
Per @georgehrke change request for PR #12392, instead of setting
dav.invitation_link_recipients in the system config.php file, we
set it in the database table oc_appconfig.

Furthermore, the value of the config variable is always a string:
'yes' to include links in imip mail, 'no' to exclude them, or a
comma-separated list of email addresses and/or domains for which
they should be included.  If not specified in oc_appconfig, the
default is 'yes'.

Signed-off-by: brad2014 <brad2014@users.noreply.github.com>
2019-07-31 12:55:50 -07:00
Georg Ehrke 6a2a5465cf
fix CUType reporting
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-07-26 15:04:58 +02:00
Georg Ehrke 98a93d5226
Revert "send invitations for shared calendars"
This reverts commit a9c313ce45.
2019-05-22 09:02:25 +02:00
Brad Rubenstein 79d20e4758 Revert 3ff3ed0c56 case-insensitive compares.
My oops.  The comparisons, which are copied from the IMipPlugin shipped with sabre-io/dav,
do not need to be case insensitive because the sender and recipient names are normalized by sabre,
(see calls to getNormalizedValue in voboject/lib/ITip/Broker.php).

Signed-off-by: Brad Rubenstein <brad@wbr.tech>
2019-02-28 01:43:07 +00:00
Brad Rubenstein 6421e30b2c Respect RSVP parameter for attendees when adding accept/decline buttons.
If RSVP=TRUE parameter is FALSE or absent for an ATTENDEE, then do no
present accept/decline buttons. The organizer isn't asking for an RSVP.

Signed-off-by: Brad Rubenstein <brad@wbr.tech>
2019-02-28 01:42:47 +00:00
Brad Rubenstein 31a25dc6b0 Customize presentation of accept/decline buttons in iMip mail
Fix Issue #11230
Only present accept/decline button links in iMip mail for REQUEST, not CANCEL or others.

Fix Issue #12156
Implement config setting "dav.invitation_link_recipients", to control
which invitation recipients see accept/decline button links.  The
default, for public internet facing servers, is to always include
them.  For a server on a private intranet, this setting can be set
to the email addresses or email domains of users whose browsers can
access the nextcloud server referenced by those accept/decline
button links. It can also be set to "false" to exclude the links
from all requests.

Signed-off-by: Brad Rubenstein <brad@wbr.tech>
2019-02-28 01:41:48 +00:00
Georg Ehrke 5c51d84a67
Calendar invitation: use system default instead of sender's language as fallback
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-24 18:39:30 +02:00
Georg Ehrke 10f0296ad6
overwrite Sabre/DAV's handler for calendar-user-type to report correct user type
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-22 15:48:18 +02:00
Joas Schilling ea21aa3f7a
Use numeric placeholders if there are multiple, so that RTL languages can operate better
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-10-09 14:32:14 +02:00
rakekniven 6c5670f6d2
Update IMipPlugin.php
Added space before ellipsis
2018-07-30 15:05:55 +02:00
rakekniven c94ac53e60
Typo fix: Triple dot to ellipsis
Signed-off-by: Mark Ziegler <mark.ziegler@rakekniven.de>
2018-07-29 10:15:02 +02:00
Joas Schilling daed1bed57
Also shorten the name of the invitation tokens
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-07-12 12:11:11 +02:00
Georg Ehrke 4aa4e4080c
Include accept / decline links in CalDAV invitation emails
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-06-29 10:44:44 +02:00
Georg Ehrke 2da510af0b
add resource / room principals
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-06-25 04:58:07 +02:00
Georg Ehrke a9c313ce45
send invitations for shared calendars
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-05-25 20:41:50 +02:00
Morris Jobke d3d045dd5c
Remove unused import statements
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-14 16:55:43 +01:00
Georg Ehrke b073b13d9f
refine invitation email
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-11-16 13:54:19 +01:00
Georg Ehrke 072652b2af
show name of organizer in from name of invitation email
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-11-14 21:23:27 +01:00
Morris Jobke 31c5c2a592
Change @georgehrke's email
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 20:38:59 +01:00
Morris Jobke 0eebff152a
Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Georg Ehrke 43147aeada
fancify invitation emails
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-11-03 11:20:03 +01:00
Joas Schilling 1bb048d11f
Correctly use the email templating
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-03 11:20:03 +01:00
Joas Schilling b14b933062
Language depending dates
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-03 11:20:03 +01:00
Joas Schilling cf04093fa6
Fix phpStorm complaints
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-03 11:20:03 +01:00
Leon Klingele c899f35261
DAV: Initial email customization support
Signed-Off-By: Leon Klingele <leon@struktur.de>
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-11-03 11:19:39 +01:00
Georg Ehrke a1df91da9d
Sabre/VObject returns DateTimeImmutable, not a simple DateTime
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-09-05 13:13:37 +02:00
Georg Ehrke 86f28669fc
don't send invitation emails for past events
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-09-05 13:13:37 +02:00
Morris Jobke c54a59d51e
Remove unused use statements
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-22 19:23:31 -05:00
Joas Schilling 474720ff1c
Overwrite the schedule target calendar with the personal one and create it if missing
Otherwise this leads to problems like events being added to the birthday calendar,
if that one is the first calendar which was created for the user. See:
https://github.com/nextcloud/server/pull/2274

Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-12-09 09:34:25 +01:00
Roeland Jago Douma c016d947e2
Fix plugin
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-04 15:10:38 +01:00
Joas Schilling 813f0a0f40
Fix apps/ 2016-07-21 18:13:57 +02:00
Joas Schilling dd9ee10bc0 Move dav app to PSR-4 (#24527)
* Move Application to correct namespace and PSR-4 it

* Move dav app to PSR-4
2016-05-12 09:42:40 +02:00