discourse/app/assets/stylesheets/common/admin/dashboard_next.scss
Joffrey JAFFEUX 1a78e12f4e
FEATURE: part 2 of dashboard improvements
- moderation tab
- sorting/pagination
- improved third party reports support
- trending charts
- better perf
- many fixes
- refactoring
- new reports

Co-Authored-By: Simon Cossar <scossar@users.noreply.github.com>
2018-07-19 14:33:11 -04:00

524 lines
8.7 KiB
SCSS

.admin-reports,
.dashboard-next {
&.admin-contents {
margin: 10px 0 0 0;
}
}
.dashboard-next {
.section-top {
margin-bottom: 1em;
}
.navigation {
display: flex;
margin: 0 0 1em 0;
.navigation-item {
display: inline;
background: $secondary;
padding: 0.5em 1em;
}
.navigation-link {
font-weight: 700;
}
}
@mixin active-navigation-item {
border-radius: 3px 3px 0 0;
border: 1px solid $primary-low;
border-bottom: 10px solid $secondary;
}
&.moderation .navigation-item.moderation {
@include active-navigation-item;
}
&.general .navigation-item.general {
@include active-navigation-item;
}
.sections {
display: flex;
flex-direction: column;
}
.section-columns {
display: flex;
justify-content: space-between;
@include breakpoint(medium) {
flex-direction: column;
}
.section-column {
min-width: calc(50% - 0.5em);
max-width: 100%;
&:last-child {
margin-left: 1em;
}
&:first-child {
margin-right: 1em;
}
@include breakpoint(medium) {
min-width: 100%;
&:last-child {
order: 1;
}
&:first-child {
order: 2;
}
}
}
@include breakpoint(medium) {
.section-column:last-child,
.section-column:first-child {
margin: 0;
}
}
}
.section {
.section-title {
h2 {
margin: 0 0.5em 0 0;
}
display: flex;
@media screen and (max-width: 400px) {
flex-wrap: wrap;
}
align-items: center;
justify-content: space-between;
border-bottom: 1px solid $primary-low;
margin-bottom: 0.5em;
padding-bottom: 0.5em;
}
.section-body {
padding: 1em 0 0;
}
}
.charts {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.chart {
max-width: calc(100% * 1 / 3.2);
width: 100%;
flex-grow: 1;
flex-basis: 100%;
display: flex;
margin-bottom: 1em;
}
@include breakpoint(medium) {
.chart {
max-width: 100%;
}
}
.chart-canvas-container {
position: relative;
margin-left: -5px;
}
.chart-canvas {
width: 100%;
height: 100%;
}
}
.misc {
display: flex;
border: 1px solid $primary-low;
.durability,
.last-dashboard-update {
flex: 1 1 50%;
box-sizing: border-box;
margin: 1em 0;
padding: 0 1em;
}
.durability {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.backups,
.uploads {
flex: 1 1 100%;
}
.uploads p:last-of-type {
margin-bottom: 0;
}
.durability-title {
text-transform: capitalize;
}
}
@media screen and (max-width: 400px) {
flex-wrap: wrap;
.durability,
.last-dashboard-update {
flex: 1 1 100%;
text-align: left;
}
.last-dashboard-update {
display: block;
margin: 0 20px 20px 20px;
padding: 20px 0 0 0;
border-top: 1px solid $primary-low;
border-left: none;
}
}
.last-dashboard-update {
border-left: 1px solid $primary-low;
text-align: center;
display: flex;
justify-content: center;
div {
align-self: center;
h4 {
margin-bottom: 0;
}
}
}
}
.top-referred-topics,
.trending-search {
th:first-of-type {
text-align: left;
}
}
.top-referred-topics {
.dashboard-table table {
table-layout: auto;
}
}
.section {
.period-chooser .period-chooser-header {
.selected-name,
.d-icon {
font-size: $font-up-1;
}
.d-icon {
margin: 0;
}
}
}
.dashboard-problems {
margin-bottom: 2em;
.d-icon-exclamation-triangle {
color: $danger;
}
.actions {
margin: 0;
}
}
}
.admin-report-table {
margin-bottom: 1em;
&.is-disabled {
background: $primary-low;
padding: 1em;
}
@media screen and (max-width: 650px) {
table {
tbody tr td {
font-size: $font-down-1;
}
}
}
&.is-loading {
height: 150px;
}
}
.user-metrics {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
flex-direction: column;
.dashboard-inline-table {
// and "hides" margin when the item spans 100% width
flex: 1 0 auto;
max-width: 95%;
}
.table-cell {
display: flex;
flex: 0 1 auto;
margin: 0 10px 5px 0;
border: 1px solid $primary-low;
border-radius: 10px;
.label {
display: flex;
align-items: center;
color: $primary;
background: $primary-very-low;
justify-content: center;
border-radius: 9px 0 0 9px;
padding: 0 5px 0 8px;
.d-icon {
margin-right: 5px;
font-size: $font-down-1;
}
}
.value {
padding: 0 8px 0 5px;
}
&.user-newuser {
.label {
color: $primary-high;
}
}
&.user-basic,
&.user-member {
border-color: $bronze;
.label {
border-color: $bronze;
background: $bronze;
color: $secondary;
}
}
&.user-regular {
border-color: $silver;
.label {
border-color: $silver;
background: $silver;
color: $secondary;
}
}
&.user-leader {
border-color: $gold;
.label {
background: $gold;
border-color: $gold;
color: $secondary;
}
}
}
}
.admin-report.activity-metrics {
table {
@media screen and (min-width: 400px) {
table-layout: auto;
}
tr th {
text-align: right;
}
.d-icon {
color: $primary-low-mid;
min-width: 14px;
text-align: center;
}
@media screen and (max-width: 400px) {
.d-icon {
display: none;
}
td.title {
padding: 8px 0 8px 4px;
}
}
tr {
td {
text-overflow: unset;
overflow: auto;
white-space: normal;
}
td:first-child {
text-overflow: ellipsis;
overflow: hidden;
white-space: normal;
}
}
td {
text-align: center;
padding: 8px;
}
td.left {
text-align: left;
}
td.title {
text-align: left;
}
td.value {
text-align: right;
padding: 8px 21px 8px 8px; // accounting for negative right caret margin
&:nth-of-type(2) {
padding: 8px 12px 8px;
}
i {
margin-right: -12px; // align on caret
@media screen and (max-width: 650px) {
margin-right: -9px;
}
}
&.high-trending-up,
&.trending-up {
i {
color: $success;
}
}
&.high-trending-down,
&.trending-down {
i {
color: $danger;
}
}
}
}
}
.rtl .dashboard-next {
.section-column {
&:last-child {
margin-right: 1em;
margin-left: 0;
}
&:first-child {
margin-left: 1em;
margin-right: 0;
}
}
.dashboard-table table tbody tr {
td.title {
text-align: right;
}
td.value i {
margin-right: 0;
margin-left: -12px;
}
}
.user-metrics .table-cell {
margin: 0 0 5px 10px;
}
.table-cell {
.label {
border-radius: 0 9px 9px 0;
.d-icon {
margin-right: 0;
margin-left: 5px;
}
}
}
}
.community-health.section {
margin-bottom: 1em;
}
.admin-report.activity-metrics {
table {
table-layout: auto;
}
}
.admin-report.users-by-type {
margin-top: 1em;
}
.admin-report.users-by-type,
.admin-report.users-by-trust-level {
margin-bottom: 1em;
flex: 1;
.report-header {
border-bottom: 1px solid $primary-medium;
padding-bottom: 0.5em;
border-bottom: 1px solid #e9e9e9;
}
}
.admin-report.moderators-activity {
tbody tr td.username,
thead tr th.username {
text-align: left;
}
}
.admin-report.trending-search {
tbody tr td.term,
thead tr th.term {
text-align: left;
}
}
.admin-report.top-traffic-sources {
tbody tr td.domain,
thead tr th.domain {
text-align: left;
}
}
.dashboard-next.moderation {
.admin-dashboard-moderation-top {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-column-gap: 1em;
}
.main-section {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-column-gap: 1em;
> * {
grid-column: span 12;
}
.admin-dashboard-moderation-bottom-outlet {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-column-gap: 1em;
}
}
.admin-report.flags-status {
grid-column: span 6;
}
.admin-report.post-edits {
grid-column: span 6;
}
}