discourse/app/assets/stylesheets/common/base
Martin Brennan 964da21817
FEATURE: Improve group email settings UI (#13083)
This overhauls the user interface for the group email settings management, aiming to make it a lot easier to test the settings entered and confirm they are correct before proceeding. We do this by forcing the user to test the settings before they can be saved to the database. It also includes some quality of life improvements around setting up IMAP and SMTP for our first supported provider, GMail. This PR does not remove the old group email config, that will come in a subsequent PR. This is related to https://meta.discourse.org/t/imap-support-for-group-inboxes/160588 so read that if you would like more backstory.

### UI

Both site settings of `enable_imap` and `enable_smtp` must be true to test this. You must enable SMTP first to enable IMAP.

You can prefill the SMTP settings with GMail configuration. To proceed with saving these settings you must test them, which is handled by the EmailSettingsValidator.

If there is an issue with the configuration or credentials a meaningful error message should be shown.

IMAP settings must also be validated when IMAP is enabled, before saving.

When saving IMAP, we fetch the mailboxes for that account and populate them. This mailbox must be selected and saved for IMAP to work (the feature acts as though it is disabled until the mailbox is selected and saved):

### Database & Backend

This adds several columns to the Groups table. The purpose of this change is to make it much more explicit that SMTP/IMAP is enabled for a group, rather than relying on settings not being null. Also included is an UPDATE query to backfill these columns. These columns are automatically filled when updating the group.

For GMail, we now filter the mailboxes returned. This is so users cannot use a mailbox like Sent or Trash for syncing, which would generally be disastrous.

There is a new group endpoint for testing email settings. This may be useful in the future for other places in our UI, at which point it can be extracted to a more generic endpoint or module to be included.
2021-05-28 09:28:18 +10:00
..
_index.scss FEATURE: Show an educational message in the quick access menu for personal messages when there are none (#12564) 2021-04-01 10:22:40 +10:00
_topic-list.scss UX: Make search result styles more consistent (#13174) 2021-05-26 20:36:21 -04:00
about.scss UX: More consistent table header styles, removing duplicate styles 2019-02-26 21:40:17 -05:00
activation.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
alert.scss FEATURE: Improve group email settings UI (#13083) 2021-05-28 09:28:18 +10:00
bbcode.scss
cat_reorder.scss UX: Increase width & center category reorder input (#10928) 2020-10-15 14:42:42 +11:00
category-list.scss FEATURE: Topic count in category boxes (#12756) 2021-04-19 16:24:17 -05:00
code_highlighting.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
colorpicker.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
compose.scss REFACTOR: Consistency, A11Y, and less text for composer toggles (#12627) 2021-04-07 16:15:07 -04:00
composer-user-selector.scss UX: Reducing usage of btn-small, simplifying styles 2019-01-11 19:41:09 -05:00
crawler_layout.scss UX: remove timeline from print view, fix header in crawler view (#11489) 2020-12-15 16:12:46 -05:00
d-icon.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
d-popover.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
directory.scss UX: respect "prioritize username in ux" setting wherever possible (#12357) 2021-03-11 21:55:14 +05:30
discourse.scss UX: Align list-controls & topic-title top margins (#13150) 2021-05-26 11:12:32 +02:00
edit-category.scss Add category breadcrumbs to edit category page (#13126) 2021-05-25 13:40:11 -05:00
edit-topic-timer-modal.scss FIX: CSS tweaks so bookmark + timer modal work on mobile (#12253) 2021-03-02 16:55:41 +10:00
ember-select.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
emoji.scss UX: Fix tab list alignment in emoji popup (#12548) 2021-03-29 16:30:20 -04:00
empty-state.scss FIX: Small tweaks to "no messages" education (#12588) 2021-04-07 09:28:10 +10:00
exception.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
explain-reviewable.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
faqs.scss UX: fix button alignment on log-in required page (#11965) 2021-02-04 14:38:58 +11:00
group.scss FEATURE: Improve group email settings UI (#13083) 2021-05-28 09:28:18 +10:00
groups.scss REFACTOR: Remove d-button block helpers (#11970) 2021-02-04 14:35:23 -05:00
header.scss UX: Consistent padding on mobile/desktop .wrap (#13155) 2021-05-26 17:33:08 +10:00
history.scss Fix CSS for collapsed table cells when showing insertion in Raw mode (#12489) 2021-03-23 10:43:25 +01:00
lightbox.scss FIX: Do not add CSS transition effect to animated images (#12803) 2021-04-22 14:05:48 -04:00
login.scss FIX: show sign up modal when local logins are disabled (#12611) 2021-04-06 10:31:51 -04:00
magnific-popup.scss DEV: Correct typos and spelling mistakes (#12812) 2021-05-21 11:43:47 +10:00
menu-panel.scss A11Y: Fix post control and user-menu focus styles (#13118) 2021-05-24 18:10:01 +10:00
modal.scss UI: minor tweaks to insert-hyplink modal (#12871) 2021-04-28 17:21:23 +02:00
not-found.scss FEATURE: Add site setting to show more detailed 404 errors. (#8014) 2019-10-08 14:15:08 +03:00
onebox.scss Various GitHub Onebox improvements (#13163) 2021-05-27 12:38:42 +03:00
popup-menu.scss UX: popup menu buttons need focus style (#11962) 2021-02-04 09:37:45 -05:00
redirection.scss FIX: show an error page on click tracking error 2018-03-17 00:33:11 +01:00
request_access.scss DEV: adds prettier (#5956) 2018-06-08 11:49:31 +02:00
request-group-membership-form.scss UX: Split up group form into smaller sections. 2018-04-09 15:14:50 +08:00
reviewables.scss FEATURE: Show stale reviewable to other clients (#13114) 2021-05-26 09:47:35 +10:00
rtl.scss FIX: Remove list double padding (#12275) 2021-03-03 18:09:48 +02:00
search-menu.scss UX: Make search result styles more consistent (#13174) 2021-05-26 20:36:21 -04:00
search.scss UX: Make search result styles more consistent (#13174) 2021-05-26 20:36:21 -04:00
share_link.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
shared-drafts.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
tagging.scss FIX: tag control styles should apply to desktop (#12919) 2021-05-03 13:57:10 -04:00
tooltip.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
topic-admin-menu.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
topic-post.scss FIX: Properly break overflowing long links in topic map (#13146) 2021-05-25 15:43:58 -04:00
topic.scss UX: Align list-controls & topic-title top margins (#13150) 2021-05-26 11:12:32 +02:00
upload.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
user-badges.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
user.scss UX: Reduce the number of columns on invite page (#12891) 2021-04-29 16:44:51 +03:00
username_tagsinput.scss UX: Remove Helvetica from our font stack (#11876) 2021-02-05 17:01:21 -05:00