discourse/app/assets/stylesheets/common/base/group.scss

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

300 lines
4.9 KiB
SCSS
Raw Normal View History

// We should try to reuse the user page HTML for groups when possible
// To style group content differently, use the existing classes with a .group parent class.
// For example: .group .user-secondary-navigation
@use "sass:math";
2016-12-05 16:18:24 +08:00
.group-details-container {
background: var(--primary-very-low);
2016-12-05 16:18:24 +08:00
padding: 20px;
margin-bottom: 15px;
2018-03-29 14:57:10 +08:00
position: relative;
}
.group-delete-tooltip {
background-color: var(--tertiary-low);
padding: 0.1em 2.5em 0.1em 1em;
margin-bottom: 10px;
}
2018-03-29 14:57:10 +08:00
.group-outlet {
position: relative;
}
.group-members-actions {
2018-05-08 22:08:31 +08:00
display: flex;
flex-wrap: wrap;
width: 100%;
gap: 0.5em 0;
.bulk-select + input {
margin-left: 0.5em;
}
input {
margin: 0 auto 0 0;
}
.bulk-select-buttons-wrap {
margin-right: 0.5em;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
}
}
.group-members-manage {
display: flex;
gap: 0.5em;
}
2016-12-15 12:07:22 +08:00
.group-info {
align-items: flex-start;
display: flex;
gap: 10px;
.group-info-names {
flex-grow: 1;
}
2016-12-15 12:07:22 +08:00
.group-info-name {
font-size: var(--font-up-3);
2016-12-15 12:07:22 +08:00
font-weight: bold;
color: var(--primary);
2016-12-15 12:07:22 +08:00
}
.group-info-full-name {
font-size: var(--font-up-2);
color: var(--primary-high-or-secondary-low);
2016-12-15 12:07:22 +08:00
}
2016-12-22 14:30:49 +08:00
$size: 50px;
$icon-size: math.div($size, 1.8);
2016-12-22 14:30:49 +08:00
.avatar-flair-image {
width: $size;
}
2016-12-15 12:07:22 +08:00
2016-12-22 14:30:49 +08:00
.avatar-flair {
2016-12-15 12:07:22 +08:00
background-size: $size;
height: $size;
width: $size;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-repeat: no-repeat;
2016-12-15 12:07:22 +08:00
Upgrade to FontAwesome 5 (take two) (#6673) * Add missing icons to set * Revert FA5 revert This reverts commit 42572ff * use new SVG syntax in locales * Noscript page changes (remove login button, center "powered by" footer text) * Cast wider net for SVG icons in settings - include any _icon setting for SVG registry (offers better support for plugin settings) - let themes store multiple pipe-delimited icons in a setting - also replaces broken onebox image icon with SVG reference in cooked post processor * interpolate icons in locales * Fix composer whisper icon alignment * Add support for stacked icons * SECURITY: enforce hostname to match discourse hostname This ensures that the hostname rails uses for various helpers always matches the Discourse hostname * load SVG sprite with pre-initializers * FIX: enable caching on SVG sprites * PERF: use JSONP for SVG sprites so they are served from CDN This avoids needing to deal with CORS for loading of the SVG Note, added the svg- prefix to the filename so we can quickly tell in dev tools what the file is * Add missing SVG sprite JSONP script to CSP * Upgrade to FA 5.5.0 * Add support for all FA4.7 icons - adds complete frontend and backend for renamed FA4.7 icons - improves performance of SvgSprite.bundle and SvgSprite.all_icons * Fix group avatar flair preview - adds an endpoint at /svg-sprites/search/:keyword - adds frontend ajax call that pulls icon in avatar flair preview even when it is not in subset * Remove FA 4.7 font files
2018-11-27 05:49:57 +08:00
.d-icon {
2018-11-30 01:02:11 +08:00
height: $icon-size;
width: $icon-size;
2016-12-15 12:07:22 +08:00
}
}
.group-details-button {
display: flex;
flex-wrap: wrap;
button:not(:last-child) {
margin-right: 0.5em;
}
}
}
.group-nav {
.count {
margin-left: 5px;
}
2016-12-15 12:07:22 +08:00
}
.group-manage-logs-filter {
2016-12-11 23:36:15 +08:00
margin-right: 10px;
&:hover {
background-color: var(--danger);
2016-12-11 23:36:15 +08:00
}
}
table.group-manage-logs {
2016-12-11 23:36:15 +08:00
width: 100%;
td {
padding: 0.5em;
2016-12-11 23:36:15 +08:00
}
.group-manage-logs-expand-details {
2016-12-11 23:36:15 +08:00
cursor: pointer;
Upgrade to FontAwesome 5 (take two) (#6673) * Add missing icons to set * Revert FA5 revert This reverts commit 42572ff * use new SVG syntax in locales * Noscript page changes (remove login button, center "powered by" footer text) * Cast wider net for SVG icons in settings - include any _icon setting for SVG registry (offers better support for plugin settings) - let themes store multiple pipe-delimited icons in a setting - also replaces broken onebox image icon with SVG reference in cooked post processor * interpolate icons in locales * Fix composer whisper icon alignment * Add support for stacked icons * SECURITY: enforce hostname to match discourse hostname This ensures that the hostname rails uses for various helpers always matches the Discourse hostname * load SVG sprite with pre-initializers * FIX: enable caching on SVG sprites * PERF: use JSONP for SVG sprites so they are served from CDN This avoids needing to deal with CORS for loading of the SVG Note, added the svg- prefix to the filename so we can quickly tell in dev tools what the file is * Add missing SVG sprite JSONP script to CSP * Upgrade to FA 5.5.0 * Add support for all FA4.7 icons - adds complete frontend and backend for renamed FA4.7 icons - improves performance of SvgSprite.bundle and SvgSprite.all_icons * Fix group avatar flair preview - adds an endpoint at /svg-sprites/search/:keyword - adds frontend ajax call that pulls icon in avatar flair preview even when it is not in subset * Remove FA 4.7 font files
2018-11-27 05:49:57 +08:00
.d-icon {
color: var(--primary-medium);
2016-12-11 23:36:15 +08:00
}
}
}
.group-members {
grid-template-columns: 3fr repeat(3, minmax(min-content, 1fr));
&--can-manage {
grid-template-columns: 3fr repeat(4, minmax(min-content, 1fr)) 3em;
@container (max-width: 47em) {
// positioning the member settings button within the same cell
// and avoiding overlap with padding-right on user-info
.group-member,
.member-settings {
grid-row-start: 1;
grid-column-start: 1;
grid-column-end: -1;
}
.member-settings {
margin-left: auto;
}
.user-info {
padding-right: 3.5em;
}
}
}
&.group-members__requests {
grid-template-columns: 3fr repeat(3, minmax(max-content, 1fr));
}
.directory-table__value {
font-size: var(--font-0);
color: var(--primary);
}
.group-accept-deny-buttons {
gap: 0.5em;
}
[class*="group-request-reason__"] {
justify-content: start;
}
.group-request-reason__content {
.directory-table__value {
white-space: normal;
max-width: 30em;
}
}
@container (max-width: 47em) {
.directory-table__cell {
grid-column-start: 1;
grid-column-end: -1;
}
.group-accept-deny-buttons {
justify-content: start;
}
.directory-table__cell.group-owner {
order: 2;
}
}
}
.group-owner-label {
color: var(--primary);
}
2020-06-03 08:36:01 +08:00
.group-flair-inputs {
display: inline-block;
.avatar-flair-preview {
position: relative;
width: 45px;
.avatar-wrapper {
background-color: var(--primary-very-low);
}
}
.radios {
margin-bottom: 5px;
}
.radio-label {
display: inline-flex;
padding-right: 10px;
margin-bottom: 0;
align-items: center;
}
.uploaded-image-preview {
height: 75px;
width: 275px;
}
}
2018-03-29 14:57:10 +08:00
.group-form-save {
margin-right: 20px;
2016-12-07 14:42:58 +08:00
}
.group-add-members {
.ac-wrap {
overflow: hidden;
}
.group-add-members-make-owner {
label {
display: inline;
vertical-align: middle;
}
input[type="checkbox"] {
vertical-align: middle;
}
}
}
label.group-category-permissions-desc {
font-size: 1.15em;
margin-bottom: 1em;
}
table.group-category-permissions {
width: 100%;
tr {
line-height: 3em;
width: 100%;
.category-name {
font-size: 1.25em;
}
}
}
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 07:28:18 +08:00
.group-smtp-email-settings,
.group-imap-email-settings {
.groups-form {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
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 07:28:18 +08:00
margin-bottom: 0;
&.groups-form-imap {
grid-template-columns: 1fr 1fr 2fr;
}
}
background-color: var(--primary-very-low);
padding: 1em;
margin: 1em 0;
border: 1px solid var(--primary-low);
.group-imap-mailboxes {
.combo-box {
width: 50%;
}
}
}
.group-manage-email-additional-settings-wrapper {
margin-top: 1em;
}
.groups-form .control-group.buttons {
margin-bottom: 0px;
padding: 1em 0;
}