From afd7580598b40c7709f5e2d299d1e0d4abb203a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 6 Dec 2018 08:08:16 +0100 Subject: [PATCH] explore logs css refactoring, step1 --- public/app/features/explore/Logs.tsx | 37 ++-- public/sass/_grafana.scss | 2 +- public/sass/components/_logs-rows.scss | 23 --- public/sass/components/_panel_logs.scss | 223 ++++++++++++++++++++++++ public/sass/pages/_explore.scss | 201 --------------------- 5 files changed, 241 insertions(+), 245 deletions(-) delete mode 100644 public/sass/components/_logs-rows.scss create mode 100644 public/sass/components/_panel_logs.scss diff --git a/public/app/features/explore/Logs.tsx b/public/app/features/explore/Logs.tsx index 017483cccd4..76c1bd7fd33 100644 --- a/public/app/features/explore/Logs.tsx +++ b/public/app/features/explore/Logs.tsx @@ -60,15 +60,15 @@ function Row({ const previewHighlights = highlighterExpressions && !_.isEqual(highlighterExpressions, row.searchWords); const highlights = previewHighlights ? highlighterExpressions : row.searchWords; const needsHighlighter = highlights && highlights.length > 0; - const highlightClassName = classnames('logs-row-match-highlight', { - 'logs-row-match-highlight--preview': previewHighlights, + const highlightClassName = classnames('logs-row__match-highlight', { + 'logs-row__match-highlight--preview': previewHighlights, }); return (
{showDuplicates && ( -
{row.duplicates > 0 ? `${row.duplicates + 1}x` : null}
+
{row.duplicates > 0 ? `${row.duplicates + 1}x` : null}
)} -
+
{showUtc && (
{row.timestamp} @@ -80,11 +80,11 @@ function Row({
)} {showLabels && ( -
+
)} -
+
{needsHighlighter ? ( + ); @@ -112,7 +112,6 @@ function renderMetaItem(value: any, kind: LogsMetaKind) { } interface LogsProps { - className?: string; data: LogsModel; highlighterExpressions: string[]; loading: boolean; @@ -220,7 +219,6 @@ export default class Logs extends PureComponent { render() { const { - className = '', data, highlighterExpressions, loading = false, @@ -286,8 +284,8 @@ export default class Logs extends PureComponent { const scanText = scanRange ? `Scanning ${rangeUtil.describeTimeRange(scanRange)}` : 'Scanning...'; return ( -
-
+
+
{ userOptions={graphOptions} />
- -
-
+
+
@@ -330,11 +327,11 @@ export default class Logs extends PureComponent { /> {hasData && meta && ( -
+
{meta.map(item => ( -
- {item.label}: - {renderMetaItem(item.value, item.kind)} +
+ {item.label}: + {renderMetaItem(item.value, item.kind)}
))}
@@ -379,7 +376,7 @@ export default class Logs extends PureComponent { {!loading && !hasData && !scanning && ( -
+
No logs found. Scan for older logs @@ -388,7 +385,7 @@ export default class Logs extends PureComponent { )} {scanning && ( -
+
{scanText} Stop scan diff --git a/public/sass/_grafana.scss b/public/sass/_grafana.scss index f8de32098d1..3c3acf7b490 100644 --- a/public/sass/_grafana.scss +++ b/public/sass/_grafana.scss @@ -59,6 +59,7 @@ @import 'components/panel_text'; @import 'components/panel_heatmap'; @import 'components/panel_add_panel'; +@import 'components/panel_logs'; @import 'components/settings_permissions'; @import 'components/tagsinput'; @import 'components/tables_lists'; @@ -101,7 +102,6 @@ @import 'components/delete_button'; @import 'components/add_data_source.scss'; @import 'components/page_loader'; -@import 'components/logs-rows'; // PAGES @import 'pages/login'; diff --git a/public/sass/components/_logs-rows.scss b/public/sass/components/_logs-rows.scss deleted file mode 100644 index 0812be12cf9..00000000000 --- a/public/sass/components/_logs-rows.scss +++ /dev/null @@ -1,23 +0,0 @@ -.logs-rows { - // display: grid; - // grid-column-gap: 1rem; - // grid-row-gap: 0.1rem; - // font-family: $font-family-monospace; - // font-size: 12px; - display: table; -} - -.logs-row { - display: table-row; - - > div { - display: table-cell; - } -} - -.logs-row__time { - white-space: nowrap; -} - -.logs-row__message { -} diff --git a/public/sass/components/_panel_logs.scss b/public/sass/components/_panel_logs.scss new file mode 100644 index 00000000000..d3381a70d13 --- /dev/null +++ b/public/sass/components/_panel_logs.scss @@ -0,0 +1,223 @@ +.logs-panel-controls { + display: flex; + background-color: $page-bg; + padding: $panel-padding; + padding-top: 10px; + border-radius: $border-radius; + margin: 2*$panel-margin 0; + border: $panel-border; + justify-items: flex-start; + align-items: flex-start; + + > * { + margin-right: 1em; + } +} + +.logs-panel-nodata { + > * { + margin-left: 0.5em; + } +} + +.logs-panel-meta { + flex: 1; + color: $text-color-weak; + // Align first line with controls labels + margin-top: -2px; +} + +.logs-panel-meta__item { + margin-right: 1em; +} + +.logs-panel-meta__label { + margin-right: 0.5em; + font-size: 0.9em; + font-weight: 500; +} + +.logs-panel-meta__value { + font-family: $font-family-monospace; +} + +.logs-panel-meta-item__labels { + // compensate for the labels padding + position: relative; + top: 4px; +} + +.logs-rows { + // display: grid; + // grid-column-gap: 1rem; + // grid-row-gap: 0.1rem; + // font-family: $font-family-monospace; + // font-size: 12px; + display: table; +} + +.logs-row { + display: table-row; + + > div { + display: table-cell; + padding-left: 10px; + } +} + +.logs-row__time { + white-space: nowrap; +} + +.logs-row__message { + word-break: break-all; +} + +.logs-row__match-highlight { + // Undoing mark styling + background: inherit; + padding: inherit; + + color: $typeahead-selected-color; + border-bottom: 1px solid $typeahead-selected-color; + background-color: rgba($typeahead-selected-color, 0.1); + + &--preview { + background-color: rgba($typeahead-selected-color, 0.2); + border-bottom-style: dotted; + } +} + +.logs-row__level { + background-color: transparent; + margin: 2px 0; + position: relative; + opacity: 0.8; + padding: 0 3px 0 0 !important; + + &--critical, + &--crit { + background-color: #705da0; + } + + &--error, + &--err { + background-color: #e24d42; + } + + &--warning, + &--warn { + background-color: #eab839; + } + + &--info { + background-color: #7eb26d; + } + + &--debug { + background-color: #1f78c1; + } + + &--trace { + background-color: #6ed0e0; + } +} + +.logs-row__time { +} + +.logs-row__duplicates { + text-align: right; +} + +.logs-label { + display: inline-block; + padding: 0 2px; + background-color: $btn-inverse-bg; + border-radius: $border-radius; + margin: 0 4px 2px 0; + text-overflow: ellipsis; + white-space: nowrap; + position: relative; +} + +.logs-label__icon { + border-left: $panel-border; + padding: 0 2px; + cursor: pointer; + margin-left: 2px; +} + +.logs-label__stats { + position: absolute; + top: 1.25em; + left: -10px; + z-index: 100; + background-color: $popover-bg; + color: $popover-color; + border: 1px solid $popover-border-color; + padding: 10px; + border-radius: $border-radius; + justify-content: space-between; + box-shadow: $popover-shadow; +} + +.logs-row__labels { + line-height: 1.2; +} + +.logs-stats__info { + margin-bottom: $spacer / 2; +} + +.logs-stats__icon { + margin-left: 0.5em; + cursor: pointer; +} + +.logs-stats-row { + margin: $spacer/1.75 0; + + &--active { + color: $blue; + position: relative; + } + + &--active:after { + display: inline; + content: '*'; + position: absolute; + top: 0; + left: -8px; + } + + &__label { + display: flex; + margin-bottom: 1px; + } + + &__value { + flex: 1; + } + + &__count, + &__percent { + text-align: right; + margin-left: 0.5em; + } + + &__percent { + width: 3em; + } + + &__bar, + &__innerbar { + height: 4px; + overflow: hidden; + background: $text-color-faint; + } + + &__innerbar { + background-color: $blue; + } +} diff --git a/public/sass/pages/_explore.scss b/public/sass/pages/_explore.scss index fc5398553d7..37ed0bcbc92 100644 --- a/public/sass/pages/_explore.scss +++ b/public/sass/pages/_explore.scss @@ -238,207 +238,6 @@ padding-right: 0.25em; } -.explore { - .logs { - .logs-controls { - display: flex; - background-color: $page-bg; - padding: $panel-padding; - padding-top: 10px; - border-radius: $border-radius; - margin: 2*$panel-margin 0; - border: $panel-border; - justify-items: flex-start; - align-items: flex-start; - - > * { - margin-right: 1em; - } - } - - .logs-nodata { - > * { - margin-left: 0.5em; - } - } - - .logs-meta { - flex: 1; - color: $text-color-weak; - // Align first line with controls labels - margin-top: -2px; - } - - .logs-meta-item { - margin-right: 1em; - } - - .logs-meta-item__label { - margin-right: 0.5em; - font-size: 0.9em; - font-weight: 500; - } - - .logs-meta-item__value { - font-family: $font-family-monospace; - } - - .logs-meta-item__value-labels { - // compensate for the labels padding - position: relative; - top: 4px; - } - - .logs-row-match-highlight { - // Undoing mark styling - background: inherit; - padding: inherit; - - color: $typeahead-selected-color; - border-bottom: 1px solid $typeahead-selected-color; - background-color: rgba($typeahead-selected-color, 0.1); - } - - .logs-row-match-highlight--preview { - background-color: rgba($typeahead-selected-color, 0.2); - border-bottom-style: dotted; - } - - .logs-row-level { - background-color: transparent; - margin: 2px 0; - position: relative; - opacity: 0.8; - } - - .logs-row__time { - } - - .logs-row-level-critical, - .logs-row-level-crit { - background-color: #705da0; - } - - .logs-row-level-error, - .logs-row-level-err { - background-color: #e24d42; - } - - .logs-row-level-warning, - .logs-row-level-warn { - background-color: #eab839; - } - - .logs-row-level-info { - background-color: #7eb26d; - } - - .logs-row-level-debug { - background-color: #1f78c1; - } - - .logs-row-level-trace { - background-color: #6ed0e0; - } - - .logs-row-duplicates { - text-align: right; - } - - .logs-label { - display: inline-block; - padding: 0 2px; - background-color: $btn-inverse-bg; - border-radius: $border-radius; - margin: 0 4px 2px 0; - text-overflow: ellipsis; - white-space: nowrap; - position: relative; - } - - .logs-label__icon { - border-left: $panel-border; - padding: 0 2px; - cursor: pointer; - margin-left: 2px; - } - - .logs-label__stats { - position: absolute; - top: 1.25em; - left: -10px; - z-index: 100; - background-color: $popover-bg; - color: $popover-color; - border: 1px solid $popover-border-color; - padding: 10px; - border-radius: $border-radius; - justify-content: space-between; - box-shadow: $popover-shadow; - } - - .logs-row-labels { - line-height: 1.2; - } - - .logs-stats__info { - margin-bottom: $spacer / 2; - } - - .logs-stats__icon { - margin-left: 0.5em; - cursor: pointer; - } - - .logs-stats-row { - margin: $spacer/1.75 0; - - &--active { - color: $blue; - position: relative; - } - - &--active:after { - display: inline; - content: '*'; - position: absolute; - top: 0; - left: -8px; - } - - &__label { - display: flex; - margin-bottom: 1px; - } - - &__value { - flex: 1; - } - - &__count, - &__percent { - text-align: right; - margin-left: 0.5em; - } - - &__percent { - width: 3em; - } - - &__bar, - &__innerbar { - height: 4px; - overflow: hidden; - background: $text-color-faint; - } - - &__innerbar { - background-color: $blue; - } - } - } -} - // Prometheus-specifics, to be extracted to datasource soon .explore {