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(igxGrid): Update navigation to include ghost rows. #7148

Merged
merged 16 commits into from
Apr 27, 2020

Conversation

skrustev
Copy link
Member

@skrustev skrustev commented Apr 16, 2020

#6640

Closes #7087

Additional information (check all that apply):

  • Bug fix
  • New functionality
  • Documentation
  • Demos
  • CI/CD

Checklist:

  • All relevant tags have been applied to this PR
  • This PR includes unit tests covering all the new code
  • This PR includes API docs for newly added methods/properties
  • This PR includes feature/README.MD updates for the feature docs
  • This PR includes general feature table updates in the root README.MD
  • This PR includes CHANGELOG.MD updates for newly added functionality
  • This PR contains breaking changes
  • This PR includes ng update migrations for the breaking changes
  • This PR includes behavioral changes and the feature specification has been updated with them

@MayaKirova
Copy link
Contributor

MayaKirova commented Apr 21, 2020

Base Grid Issues:

  • When there are rows pinned, navigation does not always scroll the active/selected cell in view.

    1. Run the Row Pinning sample
    2. Pin the first 3 rows.
    3. Scroll down so that "Cactus Comidas para llevar" is the last visible row (or navigate with arrow
      down until you reach it).
    4. Click the cell and hit arrow down.
      Next cell is activated/selected but is not scrolled in view.

navigation+pinning

  • When some or all of the pinned rows are filtered out navigation does not skip them.

    1. Run the Row Pinning sample.
    2. Pin 2 rows - for example "Berglunds snabbköp" and "Alfreds Futterkiste".
    3. Filter so that only 1 pinned record remains (for example by "b").
    4. Start navigation from the pinned record.
      The first record in the unpinned area does not activate on the first arrow down. You need to hit arrow down again to reach the unpinned record.

@MayaKirova
Copy link
Contributor

MayaKirova commented Apr 21, 2020

HierarchicalGrid issues:

  • When parent grid has pinned rows, children active cell is not scrolled in view.
    1. Run the Row Pinning sample.
    2. Pin 3 rows in hierarchical grid sample for the parent.
    3. Scroll down parent so that bottom of child grid is visible and start navigating up in child.
      The active cells are nor scrolled in view.
      In case rows are pinned to bottom, navigate down does not scroll cell in view.

Note: This is probably due to the change in the visible view port as previously the whole tbody was used when calculation top/bottom of view port, but now view port is smaller due to the pinned rows, so calculations in _getMaxTop/_getMinBottom in hierarchical nav service should be updated accordingly.

  • When child grid has rows pinned to bottom navigate down from child to parent row fails and error is thrown.

    1. Run the Row Pinning sample.
    2. Enable pinning to bottom for child.
    3. Pin a row in child.
    4. Try to navigate from the pinned row in child to the parent with arrow down.
      Error is thrown. Activation moves, but selection does not and navigation cannot continue.
  • When child grid has rows pinned to bottom and navigation reaches pinned row, it is not scrolled in view (parent should scroll if child row is not visible in parent).

    1. Run the Row Pinning sample.
    2. Enable pinning to bottom for child.
    3. Pin a row in child.
    4. Navigate down with arrow down in child until reaching the pinned row.
      Pinned row cell is active/selected but is not scrolled in view.

@skrustev skrustev added ❌ status: awaiting-test PRs awaiting manual verification and removed 🛠️ status: in-development Issues and PRs with active development on them labels Apr 22, 2020
@MayaKirova MayaKirova added 💥 status: in-test PRs currently being tested and removed ❌ status: awaiting-test PRs awaiting manual verification labels Apr 22, 2020
@MayaKirova MayaKirova self-requested a review April 22, 2020 14:09
@MayaKirova MayaKirova added ✅ status: verified Applies to PRs that have passed manual verification and removed 💥 status: in-test PRs currently being tested labels Apr 22, 2020
MayaKirova
MayaKirova previously approved these changes Apr 22, 2020
@ChronosSF
Copy link
Member

@zdrawku , we are done with the testing and review of the PR. Your team can go through it as well as we discussed.

@ChronosSF ChronosSF mentioned this pull request Apr 22, 2020
10 tasks
@ChronosSF ChronosSF mentioned this pull request Apr 23, 2020
10 tasks
@Aleksandyr Aleksandyr self-requested a review April 23, 2020 12:06
@Aleksandyr Aleksandyr self-assigned this Apr 23, 2020
@Aleksandyr Aleksandyr added ❌ status: awaiting-test PRs awaiting manual verification 💥 status: in-test PRs currently being tested and removed ❌ status: awaiting-test PRs awaiting manual verification labels Apr 23, 2020
@ChronosSF ChronosSF removed the ✅ status: verified Applies to PRs that have passed manual verification label Apr 24, 2020
@Aleksandyr
Copy link
Contributor

Aleksandyr commented Apr 24, 2020

@skrustev After some time of testing, four issues have been found:

  1. After filling the whole grid view with pinned rows and try to navigate to the next unpinned row, the content starts flickering.
  • Open the row pinning demos
  • on the first grid fill the whole row pinning area
  • and try to navigate to the unpinned one
  1. Hierarchical grid: When there is enabled pinning for a particular child grid and click on a row from that child grid so that the row gets pinned through a custom template, the navigation gets frizzed because the parent tbody remains focused. (It was tried to pass the row iland through the click handler in order to select its tbody, but the value of the tbody was undefined)

  2. HGrid: When enabled row pinning in a child grid and strat pinning rows one by one the selection gets wrong (two cells get selected at a time):
    image

  3. Unable to select a row (by space) when the selection is over a ghost element.

@ChronosSF
Copy link
Member

ChronosSF commented Apr 24, 2020

@Aleksandyr , 1. is not related to pinning. I logged it separately in #7204

@skrustev
Copy link
Member Author

skrustev commented Apr 27, 2020

@Aleksandyr 2 and 3 we've decided that they are sample related issues because it involves only scenarios with a templated column and will try to fix them in the demos, 4 is added to #7143 since it is not related to the navigation.

@ChronosSF ChronosSF requested a review from MayaKirova April 27, 2020 16:15
@ChronosSF ChronosSF added ✅ status: verified Applies to PRs that have passed manual verification and removed 💥 status: in-test PRs currently being tested labels Apr 27, 2020
@ChronosSF ChronosSF merged commit f3c90eb into master Apr 27, 2020
@ChronosSF ChronosSF deleted the SKrastev/row-pinning-nav branch April 27, 2020 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Keyboard navigation with Row pinning
6 participants