From 94e0834b88877aa247e0d4f02c1da79b0ee01e3e Mon Sep 17 00:00:00 2001 From: Keegan George Date: Mon, 10 Mar 2025 09:25:55 -0700 Subject: [PATCH] DEV: Sentiment follow-up updates (#1172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### ✨ What's new? - [X] show sentiment counts by color on doughnut without needing to hover - [X] minor UI padding adjustments - [X] hide filters that are not allowed to be adjusted in selected chart view - [X] fix z-index issues with drill-down filters --- .../admin-report-sentiment-analysis.gjs | 2 ++ .../discourse/components/doughnut-chart.gjs | 34 +++++++++++++++++++ .../modules/sentiment/common/dashboard.scss | 31 ++++++++++++++--- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs b/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs index f49745eb..2354ec14 100644 --- a/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs +++ b/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs @@ -10,6 +10,7 @@ import { and } from "truth-helpers"; import DButton from "discourse/components/d-button"; import HorizontalOverflowNav from "discourse/components/horizontal-overflow-nav"; import PostList from "discourse/components/post-list"; +import bodyClass from "discourse/helpers/body-class"; import dIcon from "discourse/helpers/d-icon"; import replaceEmoji from "discourse/helpers/replace-emoji"; import { ajax } from "discourse/lib/ajax"; @@ -318,6 +319,7 @@ export default class AdminReportSentimentAnalysis extends Component { {{/unless}} {{#if (and this.selectedChart this.showingSelectedChart)}} + {{bodyClass "showing-sentiment-analysis-chart"}}
{ + const { x, y } = element.tooltipPosition(); + const value = dataset.data[index]; + const nonZeroCount = dataset.data.filter((v) => v > 0).length; + + if (value === 0 || nonZeroCount === 1) { + return; + } + + ctx.fillText(value, x, y); + }); + }, + }, ], }; } diff --git a/assets/stylesheets/modules/sentiment/common/dashboard.scss b/assets/stylesheets/modules/sentiment/common/dashboard.scss index a38f2f84..08416d5e 100644 --- a/assets/stylesheets/modules/sentiment/common/dashboard.scss +++ b/assets/stylesheets/modules/sentiment/common/dashboard.scss @@ -44,6 +44,13 @@ display: none; } + .control:last-child { + align-self: flex-end; + + input { + } + } + .control:has(.export-csv-btn) { display: none; } @@ -63,10 +70,12 @@ @include report-container-box(); flex: 2; display: flex; - gap: 1rem; - justify-content: space-around; + gap: 2rem 1rem; + justify-content: space-evenly; align-items: center; flex-flow: row wrap; + padding-inline: 0; + padding-block: 1.5rem; .admin-report-doughnut { padding: 0.25rem; @@ -87,7 +96,7 @@ &:hover { box-shadow: var(--shadow-card); - transform: translateY(-1rem); + transform: translateY(-0.5rem); cursor: pointer; } } @@ -219,6 +228,20 @@ position: sticky; top: 0; padding-top: 1rem; - z-index: z("header"); + z-index: z("timeline"); + } +} + +.showing-sentiment-analysis-chart + .admin-report.sentiment-analysis + .body + .filters { + // Hide elements 2 - 6 when showing selected chart + // as they're not supported being changed in this view + .control:first-of-type { + flex: unset; + } + .control:nth-of-type(n + 2):nth-of-type(-n + 6) { + display: none; } }