From 0128a408babeefc787a230b1a38e26485382d8f7 Mon Sep 17 00:00:00 2001 From: Istvan Soos Date: Wed, 15 Oct 2025 08:51:10 +0200 Subject: [PATCH] Use the same title attribute for both download count widget. --- app/lib/frontend/templates/_consts.dart | 4 ++++ .../templates/views/pkg/labeled_scores.dart | 6 ++---- .../frontend/templates/views/pkg/score_tab.dart | 14 ++++++++++++-- app/test/frontend/golden/pkg_score_page.html | 2 +- .../pkg_score_page_with_downloads_chart.html | 2 +- .../testdata/goldens/packages/oxygen/score.html | 2 +- .../packages/oxygen/versions/1.0.0/score.html | 2 +- 7 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/lib/frontend/templates/_consts.dart b/app/lib/frontend/templates/_consts.dart index 70602b20e6..f1597c64b0 100644 --- a/app/lib/frontend/templates/_consts.dart +++ b/app/lib/frontend/templates/_consts.dart @@ -11,6 +11,10 @@ const myPackagesTabTitle = 'Packages'; const myLikedPackagesTabTitle = 'Likes'; const myActivityLogTabTitle = 'Activity log'; +/// Text to display when the mouse pointer is hovering over the download count number. +const titleFor30DaysDownloadCounts = + 'Number of downloads of this package during the past 30 days'; + class SdkDict { final String topSdkPackages; final String searchPackagesLabel; diff --git a/app/lib/frontend/templates/views/pkg/labeled_scores.dart b/app/lib/frontend/templates/views/pkg/labeled_scores.dart index cc18779998..6265ac1ed2 100644 --- a/app/lib/frontend/templates/views/pkg/labeled_scores.dart +++ b/app/lib/frontend/templates/views/pkg/labeled_scores.dart @@ -5,6 +5,7 @@ import 'package:_pub_shared/format/number_format.dart'; import '../../../dom/dom.dart' as d; +import '../../_consts.dart'; d.Node labeledScoresNode({ required String package, @@ -36,10 +37,7 @@ d.Node labeledScoresNode({ child: _labeledScore('points', grantedPubPoints?.toString(), sign: ''), ), d.div( - attributes: { - 'title': - 'Number of downloads of this package during the past 30 days', - }, + attributes: {'title': titleFor30DaysDownloadCounts}, classes: ['packages-score', 'packages-score-downloads'], child: _labeledScore( 'downloads', diff --git a/app/lib/frontend/templates/views/pkg/score_tab.dart b/app/lib/frontend/templates/views/pkg/score_tab.dart index e89ae32e05..089e52be29 100644 --- a/app/lib/frontend/templates/views/pkg/score_tab.dart +++ b/app/lib/frontend/templates/views/pkg/score_tab.dart @@ -7,14 +7,15 @@ import 'dart:convert'; import 'package:_pub_shared/data/download_counts_data.dart'; import 'package:_pub_shared/format/number_format.dart'; import 'package:pana/models.dart'; -import 'package:pub_dev/frontend/dom/material.dart'; import 'package:pub_dev/service/download_counts/backend.dart'; import 'package:pub_dev/shared/utils.dart'; import '../../../../scorecard/models.dart' hide ReportStatus; import '../../../../shared/urls.dart' as urls; import '../../../dom/dom.dart' as d; +import '../../../dom/material.dart'; import '../../../static_files.dart'; +import '../../_consts.dart'; /// Renders the score page content. d.Node scoreTabNode({ @@ -337,7 +338,12 @@ d.Node _likeKeyFigureNode(int? likeCount) { d.Node _downloadCountsKeyFigureNode(int? downloadCounts) { if (downloadCounts == null) { - return _keyFigureNode(value: '--', supplemental: '', label: 'downloads'); + return _keyFigureNode( + value: '--', + supplemental: '', + label: 'downloads', + title: titleFor30DaysDownloadCounts, + ); } return _keyFigureNode( value: @@ -345,6 +351,7 @@ d.Node _downloadCountsKeyFigureNode(int? downloadCounts) { '${compactFormat(downloadCounts).suffix}', supplemental: '', label: 'downloads', + title: titleFor30DaysDownloadCounts, ); } @@ -373,10 +380,13 @@ d.Node _keyFigureNode({ required String value, required String supplemental, required String label, + String? title, List? classes, }) { + final attributes = title == null ? null : {'title': title}; return d.div( classes: ['score-key-figure', ...?classes], + attributes: attributes, children: [ d.div( classes: ['score-key-figure-title'], diff --git a/app/test/frontend/golden/pkg_score_page.html b/app/test/frontend/golden/pkg_score_page.html index 96549ca7e8..566dd8d696 100644 --- a/app/test/frontend/golden/pkg_score_page.html +++ b/app/test/frontend/golden/pkg_score_page.html @@ -228,7 +228,7 @@

Metadata

pub points
-
+
-- diff --git a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html index 96549ca7e8..566dd8d696 100644 --- a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html +++ b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html @@ -228,7 +228,7 @@

Metadata

pub points
-
+
-- diff --git a/app/test/task/testdata/goldens/packages/oxygen/score.html b/app/test/task/testdata/goldens/packages/oxygen/score.html index 3ecc19e4a0..1888a45eb8 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/score.html +++ b/app/test/task/testdata/goldens/packages/oxygen/score.html @@ -219,7 +219,7 @@

Metadata

pub points
-
+
-- diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html index 7a1050c622..f6e3b8851e 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html @@ -223,7 +223,7 @@

Metadata

pub points
-
+
--