dev/core#2141 - "Add Mail Account" - Allow hookable listing of setup links
authorTim Otten <totten@civicrm.org>
Fri, 30 Oct 2020 06:59:51 +0000 (23:59 -0700)
committerTim Otten <totten@civicrm.org>
Fri, 30 Oct 2020 10:40:16 +0000 (03:40 -0700)
commit5f68c8c8a0e50f733ba54698e892056db3efab4e
treea9d681e388b6134a74889d03a79ad81b3beca75a
parenta61fabf2715f78ddab22096ce34e5cc4c96cb0f9
dev/core#2141 - "Add Mail Account" - Allow hookable listing of setup links

Overview
--------

For certain types of mail accounts -- such as Google Mail and Microsoft
Exchange Online -- the setup process may require interaction with a remote
web-service.  The web-service provides some critical details (like
authentication tokens) and some handy details (like their username / email
address).

If the supports one of these services, then this revision will enable a
setup process.  It alters the "Add Mail Account" action to use a more
fine-tuned procedure.

Before
------

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a singular button "Add Mail Account".
* Click the button.
* It opens an empty form for configuring the account.

After
-----

By default, the UX is the same.  However, if you have an extension like
`oauth-client`, then it changes:

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a select box for "Add Mail Account". It lists different account types.
* Choose one of the options from the dropbox. The step depends on...
    * If you choose "Standard Mail Account", it opens the empty config form.
    * If you choose "Microsoft Exchange Online", it redirects to MS to get authorization
      from the user. Then, it redirects and prefills the config form.
CRM/Admin/Page/MailSettings.php
CRM/Core/BAO/MailSettings.php
CRM/Mailing/Page/AJAX.php
CRM/Mailing/xml/Menu/Mailing.xml
CRM/Utils/Hook.php
templates/CRM/Admin/Page/MailSettings.tpl