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

feat(datagrid): add ability to unsort datagrid colums #1617

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

valentin-mladenov
Copy link
Contributor

@valentin-mladenov valentin-mladenov commented Nov 13, 2024

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • If applicable, have a visual design approval

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Once turned on column sort can only be rotated between ASC and DESC when clicking on the column, but can't be turned off.

Issue Number: CDE-2439, CDE-2416

What is the new behavior?

Column sort can be turned off by clicking third time on the column.
The feature can be turned on by clrDgEnableUnsortColumns flag on datagrid level for entire datagrid.
The feature can be turned on/off per column by clrDgDisableUnsort flag on column level.

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Copy link
Contributor

github-actions bot commented Nov 13, 2024

👋 @valentin-mladenov,

  • 🙏 The Clarity team thanks you for opening a pull request
  • 🎉 The build for this PR has succeeded
  • 🔍 The PR is now ready for review
  • 🍿 In the meantime, view a preview of this PR
  • 🖐 You can always follow up here. If you're a VMware employee, you can also reach us on our internal Clarity Support space

Thank you,

🤖 Clarity Release Bot

@valentin-mladenov
Copy link
Contributor Author

follow up of #1612

@valentin-mladenov valentin-mladenov changed the title feat(datagrid): add option to disable column unsort feat(datagrid): add ability to unsort datagrid colums Dec 11, 2024
@valentin-mladenov valentin-mladenov self-assigned this Dec 11, 2024
@valentin-mladenov valentin-mladenov marked this pull request as ready for review February 27, 2025 15:55
Copy link
Member

@kevinbuhmann kevinbuhmann left a comment

Choose a reason for hiding this comment

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

See my comments. Please also update the PR summary.

  1. It references a clrDgEnableUnsortColumns input that does not exist in the current revision.
  2. It states that isn't a breaking change, but requiring application code to opt out of unsorting is a breaking change. If we want to release this as a non-breaking change, it needs to be an opt-in feature.

Comment on lines +206 to +211
} else if (comparator) {
this._sortBy = comparator;
} else if (this.field) {
this._sortBy = new DatagridPropertyComparator(this.field);
} else {
if (comparator) {
this._sortBy = comparator;
} else {
if (this.field) {
this._sortBy = new DatagridPropertyComparator(this.field);
} else {
delete this._sortBy;
}
}
delete this._sortBy;
Copy link
Member

Choose a reason for hiding this comment

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

Does this just flatten the if blocks? Mixing such refactors with another significant code change can make the change harder to read and understand. Please extract this to a separate PR.

Comment on lines 236 to 241
// the Unsorted case happens when the current state is neither Asc nor Desc
case ClrDatagridSortOrder.UNSORTED:
default:
this._sort.clear();
this._sortDirection = null;
break;
Copy link
Member

@kevinbuhmann kevinbuhmann Mar 2, 2025

Choose a reason for hiding this comment

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

This case should be moved back to its original position to minimize this diff and make the change more obvious without requiring the reader to mentally compare the code.

Further, there are actually two places with the unsorted/default case listed first. I have fixed both in a separate PR: #1721.

@@ -99,6 +99,7 @@ export class ClrDatagridColumn<T = any>
@Input('clrFilterStringPlaceholder') filterStringPlaceholder: string;
@Input('clrFilterNumberMaxPlaceholder') filterNumberMaxPlaceholder: string;
@Input('clrFilterNumberMinPlaceholder') filterNumberMinPlaceholder: string;
@Input('clrDgSortDisableUnsort') clrDgSortDisableUnsort = false;
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
@Input('clrDgSortDisableUnsort') clrDgSortDisableUnsort = false;
@Input('clrDgDisableUnsort') disableUnsort = false;

The input alias is redundant (has "sort" twice) and the property name doesn't need the clrDg prefix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants