discourse/app/assets/stylesheets/mobile
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
..
components UX: improve user card control layout for long text (#12770) 2021-04-20 18:34:33 -04:00
select-kit DEV: Use indexes when importing SCSS from a folder (#11591) 2020-12-30 15:29:10 -05:00
_index.scss DEV: Use indexes when importing SCSS from a folder (#11591) 2020-12-30 15:29:10 -05:00
admin_badges.scss General admin style cleanup 2019-10-04 13:25:54 -04:00
admin_customize.scss UX: Unify admin intro styles for badges/customize, improve mobile 2019-04-09 20:32:24 -04:00
admin_emojis.scss UX: better customize emoji layout on mobile (#9319) 2020-03-31 08:55:47 +02:00
admin_report.scss FIX: quality/bugfix dashboard/reports pass (#6283) 2018-08-17 16:19:25 +02:00
admin_report_counters.scss FIX: quality/bugfix dashboard/reports pass (#6283) 2018-08-17 16:19:25 +02:00
admin_report_table.scss DEV: allows reports to display an html title (#12687) 2021-04-22 13:38:10 +02:00
admin_reports.scss FIX: IE11 layout glitches 2019-01-21 13:40:55 -05:00
alert.scss UX: Fix mobile padding-top on mobile, follow up to da5841d (#10982) 2020-10-21 17:52:35 +11:00
banner.scss Revert "Revert "Merge branch 'master' of https://github.com/discourse/discourse"" 2020-05-23 00:56:13 -04:00
buttons.scss Mobile SCSS cleanup and removing unused styles 2019-01-23 14:36:53 -05:00
compose.scss UX: Full height composer on mobile Android (#12709) 2021-04-15 09:02:24 -04:00
dashboard.scss UX: Styling adjustments for admin new features (#12189) 2021-02-23 11:58:20 -05:00
directory.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
discourse.scss UX: Consistent padding on mobile/desktop `.wrap` (#13155) 2021-05-26 17:33:08 +10:00
edit-category.scss Add category breadcrumbs to edit category page (#13126) 2021-05-25 13:40:11 -05:00
emoji.scss UX: improves picker on automatic dark themes (#10515) 2020-08-24 15:04:11 +02:00
group.scss FEATURE: Improve group email settings UI (#13083) 2021-05-28 09:28:18 +10:00
header.scss REFACTOR: Remove position fixed from the header and use sticky instead (#10781) 2020-10-19 17:26:38 -04:00
history.scss UX: rearrange controls in edit modals 2019-07-15 13:44:44 -04:00
lightbox.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
login.scss UX: login; smaller titles, more consistent spacing, other fixes (#12317) 2021-03-09 17:00:46 -05:00
menu-panel.scss UX: On very short screens switch quick-access-profile to 2-columns (#12120) 2021-02-18 18:47:37 -05:00
modal.scss DEV: Fix linting (#12754) 2021-04-19 09:28:07 -04:00
push-notifications-mobile.scss Feature: Push notifications for Android (#5792) 2018-05-04 15:31:48 -07:00
reviewables.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
ring.scss UX: Reduce number of words used. 2016-11-16 12:44:22 +08:00
search.scss REFACTOR: reworks all the search-advanced-options panel (#10661) 2020-09-15 09:39:12 +02:00
topic-list.scss UX: Improve category controls on smallest devices (#12945) 2021-05-06 17:51:55 -04:00
topic-post.scss UX: Align list-controls & topic-title top margins (#13150) 2021-05-26 11:12:32 +02: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 UX: Improve user profile header layout on mobile 2019-03-20 14:56:34 -04:00
user.scss UX: Reduce the number of columns on invite page (#12891) 2021-04-29 16:44:51 +03:00