Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLDR-18220 Dashboard Other category for all other paths #4273

Merged
merged 1 commit into from
Jan 14, 2025

Conversation

srl295
Copy link
Member

@srl295 srl295 commented Jan 14, 2025

CLDR-18220

  • This PR completes the ticket.

  • Adds a new notification category 'other'. It's not included in the default choice sets.

  • The query param includeOther=true adds this category.

  • UI in the dashboard makes the Other category look like similar categories, except that
    internally it reloads with the query param set/unset. (This reduces load in the normal case.)

The benefit here is especially in being able to download a spreadsheet of all values in a coverage
level.

UI

Unchecked

image

Checked

image

Downloaded

image

Dash_csw_default(2).xlsx

ALLOW_MANY_COMMITS=true

- Adds a new notification category 'other'. It's not included in the default choice sets.
- The query param includeOther=true adds this category.
- UI in the dashboard makes the Other category look like similar categories, except that
  internally it reloads with the query param set/unset. (This reduces load in the normal case.)

The benefit here is especially in being able to download a spreadsheet of all values in a coverage
level.
@srl295 srl295 self-assigned this Jan 14, 2025
Comment on lines -60 to +61
;

other('O', "Other", "All other values");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since it's without errors, warnings and it isn't abstained, that this group should be thought of as "voted, no issues"? To keep the name minimal we can call it other, but I wonder if we should make it clearer.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • It's not 'voted' if the user's logged out.
  • How about just "No Issues"?

@@ -551,7 +561,7 @@ public Response getParticipationFor(
coverageLevel = org.unicode.cldr.util.Level.fromString(level);
}
ReviewOutput reviewOutput =
new Dashboard().get(loc, target, coverageLevel, null /* xpath */);
new Dashboard().get(loc, target, coverageLevel, null /* xpath */, false);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: never add a boolean without a comment what it is

Suggested change
new Dashboard().get(loc, target, coverageLevel, null /* xpath */, false);
new Dashboard().get(loc, target, coverageLevel, null /* xpath */, false /* includeOther */);

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm used to getting that filled in by the IDE but sounds good

image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah! If you have a moment during the Stanford visit I'd love for your help setting up my IDE to for things like this. Do you use Eclipse or VSCode?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VS code with the red hat, Java package

@@ -402,7 +402,7 @@ private static Dashboard.ReviewNotification[] getOnePathDash(
String baseXp, CLDRLocale locale, CookieSession mySession) {
Level coverageLevel = Level.get(mySession.getEffectiveCoverageLevel(locale.toString()));
Dashboard.ReviewOutput ro =
new Dashboard().get(locale, mySession.user, coverageLevel, baseXp);
new Dashboard().get(locale, mySession.user, coverageLevel, baseXp, false);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same nit

Suggested change
new Dashboard().get(locale, mySession.user, coverageLevel, baseXp, false);
new Dashboard().get(locale, mySession.user, coverageLevel, baseXp, false /* includeOther */);

Copy link
Contributor

@conradarcturus conradarcturus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! I am glad this was straightforward.

Copy link
Member

@btangmu btangmu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a very useful feature for those who need it, when they need it. On the other hand it has a bit of a "creeping featurism" aspect to it, complicating the interface with something that most (?) users might not use. Is the benefit mainly for downloading, rather than scrolling in the Dashboard itself? If so, it might make sense to apply it only to downloading, and make it an option in the download interface only. Performance may also be a concern, especially if it takes a long time to update the dashboard after a user clicks on the checkbox when they're merely curious to see what happens

class="cldr-nav-btn"
@click="reloadIncludeOther"
>
<input type="checkbox" />&nbsp;Other
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion for future improvement: hover text for this control with brief explanation what it does, e.g., "Include notifications for ALL paths within the chosen coverage level that do not belong to another notification category. Note: the number of 'other' notifications may be very large"

@srl295
Copy link
Member Author

srl295 commented Jan 14, 2025

This seems like a very useful feature for those who need it, when they need it. On the other hand it has a bit of a "creeping featurism" aspect to it, complicating the interface with something that most (?) users might not use. Is the benefit mainly for downloading, rather than scrolling in the Dashboard itself? If so, it might make sense to apply it only to downloading, and make it an option in the download interface only. Performance may also be a concern, especially if it takes a long time to update the dashboard after a user clicks on the checkbox when they're merely curious to see what happens

That's an idea.
Yeah, the reason for the UI distinction is that this category could have 20k items in it that would otherwise not need to be visible.

The Download button currently operates off the data you've already downloaded, BUT, what we could do is have it always do a fresh download (wouldn't be too bad…)

Suggestion is to merge this for today (applying suggestions… for this week) and review if need be. I think it stays out of the way of the normal case

@srl295 srl295 merged commit 3f9a47d into unicode-org:main Jan 14, 2025
14 checks passed
@srl295 srl295 deleted the cldr-18220/download-all-xls branch January 14, 2025 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants