0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-08 17:53:55 +08:00
discourse/app/assets/stylesheets/admin/staff_logs.scss
Kris a1a00dfd41
UX: refactor admin action logs buttons (#38292)
These weren't too pretty, I've refactored them into proper buttons
instead of links with button functions and make them wrap better. This
removes the ability to partially bold the text, but I think it's a fine
trade-off for more button consistency across the app.

Before:
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/cd750faa-9328-4e4b-9bb0-d5939a5afc60"
/>


After: 
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/9dc87cc4-a9fe-40f7-b0be-a2ecd4c66997"
/>
2026-03-06 09:11:51 -05:00

461 lines
7.1 KiB
SCSS
Vendored

@use "lib/viewport";
// Styles for /admin/logs
.log-details-modal {
pre {
white-space: pre-wrap;
max-height: 250px;
}
}
.staff-actions {
width: 100%;
overflow-wrap: break-word;
@media screen and (width >= 550px) and (width <= 767px) {
table.staff-logs tr {
display: grid;
grid-template-rows: auto auto;
grid-template-columns: repeat(4, 1fr);
td {
align-self: start;
padding: 2px 4px;
}
}
td.created-at {
grid-column-start: -1;
}
td.subject {
grid-row: 2;
grid-column-start: 2;
div.subject {
display: flex;
a {
overflow-wrap: break-word;
min-width: 25px;
}
}
}
td.details {
grid-row: 1;
grid-row-start: 1;
grid-row-end: 3;
grid-column-start: 3;
}
td.context {
grid-row-start: 1;
grid-row-end: 3;
grid-column-start: 4;
}
}
@include viewport.until(sm) {
table.staff-logs tr {
grid-template-columns: 1fr 1fr 0.5fr;
td.staff-users {
grid-column-start: 1;
grid-column-end: 3;
}
td.created-at {
grid-row: 1;
grid-column-start: -1;
text-align: right;
}
td.action {
grid-row: 2;
grid-column-start: 1;
}
td.subject {
grid-row: 2;
grid-column-start: 2;
grid-column-end: 5;
max-width: 60vw;
}
td.details,
td.context {
max-width: unset;
}
td.details {
grid-row: 3;
grid-column-start: 1;
grid-column-end: 5;
padding: 0.25em 0;
max-width: 90vw;
}
td.context {
grid-row: 4;
grid-column-start: 1;
grid-column-end: 5;
}
}
}
.staff-user {
font-weight: bold;
display: flex;
a:first-of-type {
margin-right: 0.25em;
}
.deleted-user {
font-size: var(--font-up-2);
}
}
.created_at {
text-align: center;
}
td.subject,
td.details {
max-width: 10vw;
> div {
max-height: 100px;
overflow-y: auto;
}
}
td.context {
max-width: 20vw;
}
}
.staff-action-logs-controls {
display: flex;
align-items: baseline;
gap: 0.5em;
justify-content: space-between;
margin: 0 0 1em 0;
min-width: 0;
flex-wrap: wrap;
.staff-action-logs-controls__left {
flex: 1 1 auto;
justify-content: flex-start;
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
min-width: 0;
// we want to put it in one line
.date-filter-container .d-date-time-input-range {
display: flex;
gap: 0.5em;
.from {
margin-bottom: 0;
}
}
}
#staff-action-logs-action-filter {
// unset the global width of .admin-container .select-kit, so we can shrink it by flex
width: unset;
flex: 1 0 120px;
max-width: 400px;
}
.action-filter-container {
flex: 0 1 380px;
display: flex;
gap: 0.5em;
align-items: center;
}
}
.staff-action-logs-filters {
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
.btn {
gap: var(--space-2);
text-align: left;
}
}
.screened-email-export {
display: block;
}
.screened-ip-controls {
display: flex;
flex-wrap: wrap;
.screened-ip-address-form {
.combobox {
width: 140px;
}
@media screen and (width >= 900px) {
margin-left: auto;
}
@media screen and (width <= 899px) {
margin-top: 1em;
}
}
}
table.screened-ip-addresses {
td.ip_address {
min-width: 150px;
overflow-wrap: break-word;
input {
width: 80%;
}
}
td.actions {
text-align: right;
}
}
@media screen and (width >= 550px) {
table.screened-ip-addresses tr {
grid-template-columns: repeat(5, 1fr) auto;
}
}
@media screen and (width <= 549px) {
table.screened-ip-addresses tr {
td.actions {
grid-row: 3;
grid-column-start: -1;
grid-column-end: -4;
text-align: right;
margin-top: 0.5em;
}
td.created_at {
grid-row: 1;
grid-column-start: 3;
text-align: right;
}
td.last_match_at {
grid-row: 2;
grid-column-start: 3;
text-align: right;
}
td.match_count {
grid-row: 2;
grid-column-start: 2;
}
}
}
// Screened URLs
@include viewport.until(md) {
.screened-urls {
td.domain {
grid-column-start: 1;
grid-column-end: 3;
overflow-wrap: break-word;
}
}
}
// Screened emails
.screened-emails {
td.ip_address {
overflow-wrap: break-word;
@include viewport.from(md) {
max-width: 20vw;
}
}
@include viewport.until(md) {
td.email {
grid-column-start: 1;
grid-column-end: 3;
overflow-wrap: break-word;
}
td.ip_address {
grid-row: 2;
grid-column-start: 1;
grid-column-end: -1;
}
td.action {
margin-top: 0.25em;
}
}
}
// Watched words
.watched-word-regex-errors {
max-height: 200px;
overflow-y: auto;
list-style-type: disc;
padding-left: 20px;
}
.watched-word-box {
display: inline-block;
width: 250px;
margin-bottom: 1em;
vertical-align: top;
}
.watched-words-link {
.watched-word-box {
min-width: 100%;
}
}
.watched-words-replace,
.watched-words-tag {
.watched-word-box {
min-width: calc(50% - 5px);
}
}
.watched-word-box,
.watched-words-test-modal {
.replacement {
white-space: pre;
background: var(--tertiary-low);
}
.tag {
background: var(--primary-low);
font-size: var(--font-down-1);
margin-right: 0.1em;
padding: 0.5em;
}
}
.watched-words-uploader {
display: inline-block;
label {
font-weight: normal;
}
}
.watched-words-list {
margin-top: 20px;
display: inline-block;
width: 100%;
}
.watched-word {
display: inline-block;
cursor: pointer;
.delete-word-record:hover {
color: var(--danger);
}
}
.watched-word-form {
.success-message {
margin-left: 1em;
}
}
.watched-words-detail {
.watched-word-controls,
.about,
.watched-word-form {
margin-bottom: 1em;
}
.about {
font-size: var(--font-up-1);
max-width: 30em;
}
.watched-word-controls .btn {
margin-bottom: 0.25em;
margin-right: 0.25em;
}
}
.watched-words-test-modal p {
margin-top: 0;
}
.watched-word-input {
label {
display: inline-block;
min-width: 150px;
padding-top: 4px;
vertical-align: top;
}
input.watched-word-input-field {
min-width: 300px;
}
.select-kit.multi-select.watched-word-input-field {
width: 300px;
margin-bottom: 9px;
}
+ .btn-primary {
margin-top: 1em;
}
}
// Search logs
table.search-logs-list {
td.term {
width: 60%;
overflow-wrap: break-word;
@media screen and (width <= 767px) {
width: 100%;
}
}
th:not(.term),
td:not(.term) {
text-align: center;
}
@media screen and (width >= 550px) {
tr {
td.term {
grid-column-start: span 3;
}
}
}
@include viewport.until(sm) {
tr {
td.term {
grid-column-start: 1;
grid-column-end: 4;
}
th:not(.term),
td:not(.term) {
text-align: left;
}
}
}
}