WebGUI::Inbox::Message::create now passes isInbox flag to WebGUI::Mail::Send::create
so that per-user notification settings get used
SMS Gateway setting field is now 'text' instead of 'email' so that user can enter a
properly formed value (such as 'myemailgateway.com', which is not an email address).
Added SMS notification template as distinct from email notification template because
SMSs should not be HTML and in general you will want to make your SMS notification
message a lot shorter than your html email notification message (160 char limits in
many countries). As a result, SMSs are now sent as separate emails to gateway rather
than being CCd on email notification.
Added smsGatewaySubject setting because many SMS Gateways use email subject for
authentication. For consistency, also added Email notification email subject.
Fixed handling of different combinations of site-wide sendInboxNotificationsOnly with
per-user receiveInboxEmailNotifications and receiveInboxSmsEmailNotifications.
* sendInboxNotificationsOnly && receiveInboxEmailNotifications = email notification
* sendInboxNotificationsOnly && !receiveInboxEmailNotifications = no email
* !sendInboxNotificationsOnly = ignore receiveInboxEmailNotifications
* In all cases, SMS is optional and only dependent on receiveInboxSmsEmailNotifications
Updated tests and i18n
to send an email to their friends and invite them to create an account
on the site. The feature is enabled or disabled in the site Settings.
(Operation/Settings.pm)
It is implemented as a new operation, Invite (Operation/Invite.pm,
Help/Invite.pm, i18n/English/Invite.pm), and the option is displayed
as an option on the user's account screen. (Operation/Shared.pm).
The form is templated, and lives in the Invite namespace. Once
the invitation is submitted, if the user's email address is not
already in WebGUI, an email is sent and a record is stored in
the userInvitations table.
When the friend gets the invitation, they are taken to the account
creation screen, which conveniently has their email address already
filled in. This required changes in the Auth modules (Auth.pm, Auth/*.pm),
and ProfileField.pm. The latter was so that profile fields can have
their values manually set. The former changes handle inserting the
email address, bypassing the anonymous registration check, and
updating the record in ther userInvitations table.
I refactored some code out of the AdminConsole for finding the url
back to the site and added it to Session/Url.pm. The method is
called getBackToSiteUrl.