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

Feature to Goto a page directly #2638

Closed
antoine2711 opened this issue May 24, 2020 · 13 comments · Fixed by #2639
Closed

Feature to Goto a page directly #2638

antoine2711 opened this issue May 24, 2020 · 13 comments · Fixed by #2639
Assignees
Labels
grid pagination / scrolling About scrolling through the rows via pagination or potentially seamless scrolling Module: Frontend These issues involve working on HTML, CSS, and JavaScript code that affects the user interface. Theme: UX/Usability Focuses on issues related to improving the overall user experience and interaction flow. Type: Design Discussions Indicates the need for discussion on issues related to UI/UX, accessibility or design refinements. Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements.
Milestone

Comments

@antoine2711
Copy link
Member

Is your feature request related to a problem or area of OpenRefine? Please describe.
We can go to the first, the last, a next or previous page, but we can't jump to any page.

A simple link, with a prompt, telling you your current page, the max # of pages, and asking to what page you want to go would be a nice feature.

Describe the solution you'd like
image

Describe alternatives you've considered
Clicking many times the next button. I works.

@antoine2711 antoine2711 added Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements. Theme: UX/Usability Focuses on issues related to improving the overall user experience and interaction flow. Module: Frontend These issues involve working on HTML, CSS, and JavaScript code that affects the user interface. Type: Design Discussions Indicates the need for discussion on issues related to UI/UX, accessibility or design refinements. grid pagination / scrolling About scrolling through the rows via pagination or potentially seamless scrolling labels May 24, 2020
@antoine2711 antoine2711 self-assigned this May 24, 2020
@antoine2711
Copy link
Member Author

Relates to #571

@antoine2711
Copy link
Member Author

antoine2711 commented May 24, 2020

@wetneb & @thadguidry: this is the last feature I see that would be simple, not prone to breaking, and very useful for our users.

I coded it, it works well.
I didn't do validation yet (range & number), and translation, but for the rest, you can try it.

Regards,
Antoine

@antoine2711
Copy link
Member Author

A background color could also be added to clarify a bit the interface and it's choices:
image

Regards, A.

@thadguidry
Copy link
Member

thadguidry commented May 24, 2020

@antoine2711 Appreciate you working on this!
I think the popup display approach for our users is overly complex and I think we can make this easier and similar to other grids. The numbers themselves currently display the Row range. That's fine, but what we really want to improve and begin to integrate like other grids is the notion of Pages of Rows.

Therefore I think we should do a number of things here:
1. Keep the Row range (Rows per page) display (folks are used to that)
2. Show a new Page range display
3. Allow direct entry of the current page to view on the Page range display, rather than a popup

Look at this beautiful Example Demo that allows all 3 of those needs we have, but using simple control & display of them (Try it out!):
https://xaksis.github.io/vue-good-table/guide/configuration/pagination-options.html#mode

image

I know you can make this look and work amazing if you iterate on this over a few days. Looking forward to testing that out!

@antoine2711
Copy link
Member Author

I know you can make this look and work amazing if you iterate on this over a few days. Looking forward to testing that out!

Thanks for the carrying compliment! ;-)

Therefore I think we should do a number of things here:

  1. Keep the Row range (Rows per page) display (folks are used to that)
  2. Show a new Page range display
  3. Allow direct entry of the current page to view on the Page range display, rather than a popup

So @thadguidry, do I go

  • « First
  • < Previous
  • Page [1] of 3
    or
  • Page [1] of 3 (Rows 1 to 10)
    and
  • Next >
  • Last »

Regards,
Antoine

@thadguidry
Copy link
Member

thadguidry commented May 24, 2020

  • Page [1] of 3

Reasoning is that showing 1-10 or 1-50 etc. is redundant. (I'ved strikedthrough that idea above on my comment)
Folks already know and set the Rows per page via the existing selector:

image

@thadguidry
Copy link
Member

thadguidry commented May 24, 2020

Is it easy enough to calculate the max pages however?
image

How well would the update perform for the max pages count whenever users click and change the value Rows per page to Show: ?
Do we already have the max pages integer value stored somewhere in our current architecture?
Or do you have to add functionality to calc that?
Is Java or JS the best place to calc that?
What does the future look like for calculating that with @lisa761 's upcoming work?

@antoine2711
Copy link
Member Author

antoine2711 commented May 24, 2020

Is it easy enough to calculate the max pages however?

It’s coded in the PR, I would say very easy since it’s done! ;-)

How well would the update perform for the max pages count whenever users click and change the value Rows per page to Show: ?

Do we already have the max pages integer value stored somewhere in our current architecture?

Or do you have to add functionality to calc that?
Is Java or JS the best place to calc that?

In JS. It was semi-coded for the Goto LastPage.

What does the future look like for calculating that with @lisa761 's upcoming work?

No use with infinite scrolling, and we would keep it as long as we keep Paging functionality.

Regards,
Antoine

@antoine2711
Copy link
Member Author

antoine2711 commented May 25, 2020

@thadguidry: you can try it, It's now coded with an <input> tag instead of the prompt. Much harder to code, less robust, but better user interface I would say.

Tell me if you like it.
image

Regards,
Antoine

@antoine2711
Copy link
Member Author

antoine2711 commented May 25, 2020

And I also did this little change… subtle, but still, effective I would say.

image

Regards, A.

@thadguidry
Copy link
Member

thadguidry commented May 25, 2020

On your last screenshot, I think we could reduce the padding around rows and records. Unless that also increases the clickable area for them to make clicking on each easier, then I'd keep it as is.

@antoine2711
Copy link
Member Author

@thadguidry: @wetneb made me change the weak mechanism, and now, it works flawlessly on FF as on Chrome! I just committed the code.

Try that when you're available.

Regards,
Antoine

@thadguidry
Copy link
Member

@antoine2711 I can in a week or so...house flooded, dealing with that for a while.

wetneb pushed a commit that referenced this issue Jun 17, 2020
* Start for Goto Page link.

First implementation. Is functional.

* Background-color & validation

Background-color for each « button » & validation for the page choice of the user: number, > 1 & < last & singular for a one page project.

* Changed from prompt() to <input type="number">

Changed from prompt() to <input type="number">, and visual X out Y.

* Manage bounds in a sticky way

If the user choose below 1, 1 will be displayed, and if the user choose above the max, the max page will be displayed.

* width of <input> & « of X pages »

Add pages after « of maxValue », calculate the width of <input> based on max value.

* Update data-table-view.js

Little fix.

* Correct min and max for <input>

Correct min and max for <input>

* Managment of the arrow's key down.

Add managment to keep the arrow's key in the CurrentPage <input>.

* Fixes for Thad’s KeyDown's « Infinite Paging »

Fixes for Thad’s KeyDown's « Infinite Paging » & PageSize changes.

* Code rehookCurrentPageInput & spacing

Code rehookCurrentPageInput & spacing for PageSize section

* Update data-table-view.js

Fix & move code in Page Control.

* Wrap in a Try/Catch the currentPageInput.focus()

Wrap in a Try/Catch the currentPageInput.focus() and add a verification of focus change with if(!(currentPageInput.is(":focus"))) window.setTimeout(rehookCurrentPageInput, rehookDelay).

* Fixed currentPageInput != document.activeElement

Fixed currentPageInput != document.activeElement

that was before: !(currentPageInput.is(":focus"))

* Better handling of the « Infinite Paging »

Better handling of the « Infinite Paging » with window.setTimeout(rehookCurrentPageInput, rehookDelay)

* $.i18n('core-views/goto-page', …

$.i18n('core-views/goto-page', '<span id="currentPageInput" />', '<span id="lastPageSpan" />'))

* Fix i18n plural

Fix i18n plural, FR still not fixed.

* Remove {{plural:$2|page|pages}} in french

Remove {{plural:$2|page|pages}} in French, not working.

* Update data-table-view.js

Forgot a semi-comma.

* First implementation

First implementation, is functional.

* Remove setTimeout(refocusCurrentPageInput, refocusDelay);

Remove setTimeout(refocusCurrentPageInput, refocusDelay);, instead, onready after creating the page input field.

* Typo: missing semi-colon

Typo: missing semi-colon

* Fix bug related to stealing focus of facets & added a delay

Fix bug related to stealing focus of facets & added a delay (1 s.) before changing pages.

* Revert "Remove {{plural:$2|page|pages}} in french"

This reverts commit 7274a21.

* Start for Goto Page link.

First implementation. Is functional.

* Background-color & validation

Background-color for each « button » & validation for the page choice of the user: number, > 1 & < last & singular for a one page project.

* Changed from prompt() to <input type="number">

Changed from prompt() to <input type="number">, and visual X out Y.

* Manage bounds in a sticky way

If the user choose below 1, 1 will be displayed, and if the user choose above the max, the max page will be displayed.

* width of <input> & « of X pages »

Add pages after « of maxValue », calculate the width of <input> based on max value.

* Update data-table-view.js

Little fix.

* Correct min and max for <input>

Correct min and max for <input>

* Managment of the arrow's key down.

Add managment to keep the arrow's key in the CurrentPage <input>.

* Fixes for Thad’s KeyDown's « Infinite Paging »

Fixes for Thad’s KeyDown's « Infinite Paging » & PageSize changes.

* Code rehookCurrentPageInput & spacing

Code rehookCurrentPageInput & spacing for PageSize section

* Update data-table-view.js

Fix & move code in Page Control.

* Wrap in a Try/Catch the currentPageInput.focus()

Wrap in a Try/Catch the currentPageInput.focus() and add a verification of focus change with if(!(currentPageInput.is(":focus"))) window.setTimeout(rehookCurrentPageInput, rehookDelay).

* Fixed currentPageInput != document.activeElement

Fixed currentPageInput != document.activeElement

that was before: !(currentPageInput.is(":focus"))

* Better handling of the « Infinite Paging »

Better handling of the « Infinite Paging » with window.setTimeout(rehookCurrentPageInput, rehookDelay)

* $.i18n('core-views/goto-page', …

$.i18n('core-views/goto-page', '<span id="currentPageInput" />', '<span id="lastPageSpan" />'))

* Bump rhino from 1.7.10 to 1.7.12

Bumps [rhino](https://github.com/mozilla/rhino) from 1.7.10 to 1.7.12.
- [Release notes](https://github.com/mozilla/rhino/releases)
- [Changelog](https://github.com/mozilla/rhino/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/mozilla/rhino/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Fix i18n plural

Fix i18n plural, FR still not fixed.

* Remove {{plural:$2|page|pages}} in french

Remove {{plural:$2|page|pages}} in French, not working.

* Update data-table-view.js

Forgot a semi-comma.

* Bump guava from 19.0 to 23.0

Bumps [guava](https://github.com/google/guava) from 19.0 to 23.0.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](google/guava@v19.0...v23.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump testng from 6.9.10 to 7.1.0

Bumps [testng](https://github.com/cbeust/testng) from 6.9.10 to 7.1.0.
- [Release notes](https://github.com/cbeust/testng/releases)
- [Changelog](https://github.com/cbeust/testng/blob/master/CHANGES.txt)
- [Commits](https://github.com/cbeust/testng/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump to Guava 23.6.1-jre

* Bump jasypt from 1.9.2 to 1.9.3

Bumps [jasypt](https://github.com/jasypt/jasypt) from 1.9.2 to 1.9.3.
- [Release notes](https://github.com/jasypt/jasypt/releases)
- [Commits](https://github.com/jasypt/jasypt/commits/jasypt-1.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Added conflicts-with constraints (#2641)

Implemented conflicts-with scrutinizer as part of #2354

* Fix a bug introduced by I #1038, PR #2616 (#2684)

Fix a bug introduced by I #1038, where the first tab, in the Wikidata mode, would have a bad background. PR #2616

* Fixed typos made in PR #2641

* Remove setTimeout(refocusCurrentPageInput, refocusDelay);

Remove setTimeout(refocusCurrentPageInput, refocusDelay);, instead, onready after creating the page input field.

* Trim input url whitespace (#2534)

Fixes #2516

* Bump google-http-client-jackson2 from 1.20.0 to 1.35.0

Bumps [google-http-client-jackson2](https://github.com/googleapis/google-http-java-client) from 1.20.0 to 1.35.0.
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/master/CHANGELOG.md)
- [Commits](googleapis/google-http-java-client@1.20.0...v1.35.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Switch to new rhino-runtime component

* Typo: missing semi-colon

Typo: missing semi-colon

* Replace Apache Ant with Commons Compress (#2691)

NOTE: Changes the public API where some of the old types were
embedded which means that any extensions that extend these
interfaces will have to be updated.

Fixes #2690.

* Fix bug related to stealing focus of facets & added a delay

Fix bug related to stealing focus of facets & added a delay (1 s.) before changing pages.

* Revert "Remove {{plural:$2|page|pages}} in french"

This reverts commit 7274a21.

* Update to latest Jython version 2.7.2

Closes #2642

* Bump git-commit-id-plugin from 2.2.4 to 4.0.0

Bumps [git-commit-id-plugin](https://github.com/git-commit-id/maven-git-commit-id-plugin) from 2.2.4 to 4.0.0.
- [Release notes](https://github.com/git-commit-id/maven-git-commit-id-plugin/releases)
- [Commits](git-commit-id/git-commit-id-maven-plugin@v2.2.4...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump maven-assembly-plugin from 3.1.0 to 3.3.0

Bumps [maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.1.0 to 3.3.0.
- [Release notes](https://github.com/apache/maven-assembly-plugin/releases)
- [Commits](apache/maven-assembly-plugin@maven-assembly-plugin-3.1.0...maven-assembly-plugin-3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump httpclient from 4.5.5 to 4.5.12

Bumps httpclient from 4.5.5 to 4.5.12.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump powermock.version from 2.0.2 to 2.0.7

Bumps `powermock.version` from 2.0.2 to 2.0.7.

Updates `powermock-module-testng` from 2.0.2 to 2.0.7
- [Release notes](https://github.com/powermock/powermock/releases)
- [Changelog](https://github.com/powermock/powermock/blob/release/2.x/docs/changelog.txt)
- [Commits](powermock/powermock@powermock-2.0.2...powermock-2.0.7)

Updates `powermock-api-mockito2` from 2.0.2 to 2.0.7
- [Release notes](https://github.com/powermock/powermock/releases)
- [Changelog](https://github.com/powermock/powermock/blob/release/2.x/docs/changelog.txt)
- [Commits](powermock/powermock@powermock-2.0.2...powermock-2.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump butterfly from 1.0.2 to 1.0.3

Bumps [butterfly](https://github.com/OpenRefine/simile-butterfly) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/OpenRefine/simile-butterfly/releases)
- [Commits](https://github.com/OpenRefine/simile-butterfly/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump slf4j-api from 1.7.18 to 1.7.30

Bumps [slf4j-api](https://github.com/qos-ch/slf4j) from 1.7.18 to 1.7.30.
- [Release notes](https://github.com/qos-ch/slf4j/releases)
- [Commits](qos-ch/slf4j@v_1.7.18...v_1.7.30)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Bump commons-validator from 1.5.1 to 1.6

Bumps commons-validator from 1.5.1 to 1.6.

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Added translation using Weblate (Portuguese (Brazil))

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (47 of 47 strings)

Translation: OpenRefine/gdata
Translate-URL: https://hosted.weblate.org/projects/openrefine/gdata/pt_BR/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (179 of 179 strings)

Translation: OpenRefine/wikidata
Translate-URL: https://hosted.weblate.org/projects/openrefine/wikidata/ja/

* Disables FacetContainer while computing clusters

fixes #2675

* Added translation using Weblate (Portuguese (Brazil))

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (740 of 740 strings)

Translation: OpenRefine/Translations
Translate-URL: https://hosted.weblate.org/projects/openrefine/translations/pt_BR/

* Added translation using Weblate (Portuguese (Brazil))

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenRefine/database
Translate-URL: https://hosted.weblate.org/projects/openrefine/database/pt_BR/

* Translated using Weblate (Portuguese (Brazil))

Currently translated at 6.7% (12 of 179 strings)

Translation: OpenRefine/wikidata
Translate-URL: https://hosted.weblate.org/projects/openrefine/wikidata/pt_BR/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenRefine/database
Translate-URL: https://hosted.weblate.org/projects/openrefine/database/ja/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (740 of 740 strings)

Translation: OpenRefine/Translations
Translate-URL: https://hosted.weblate.org/projects/openrefine/translations/ja/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenRefine/database
Translate-URL: https://hosted.weblate.org/projects/openrefine/database/ja/

* Added translation using Weblate (Bengali (India))

* Load GDrive icon from local resource, not Github (#2689)

Fixes #2688.

* Convert illegal characters into legal ones. (#2431)

* Convert illegal characters into leagal ones.

* Test tab in key & value string

Also fix up test that depended on previous TAB
related error message and clean up logging

Co-authored-by: Tom Morris <tfmorris@gmail.com>

* Bump signpost-commonshttp4 from 1.2.1.2 to 2.0.0 (#2695)

Bumps [signpost-commonshttp4](https://github.com/mttkay/signpost) from 1.2.1.2 to 2.0.0.
- [Release notes](https://github.com/mttkay/signpost/releases)
- [Changelog](https://github.com/mttkay/signpost/blob/master/CHANGELOG.md)
- [Commits](mttkay/signpost@1.2.1.2...oauth-signpost-2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Add comment to help designers understand TreeData (#2715)

* Update jquery.i18n to 1.07 and fix non-English plural support (#2717)

* Update jquery.i18n to 1.07 and add missing rule parser

Fixes #2700
Adds missing CLDRPluralRuleParser.js so that plurals are supported.
Updates all files to jquery.i18n 1.07
Includes a bunch of specialty language support,
but only Finnish and Russian are loaded as examples.

* Add some missing translations, including plurals

Fix some cases of Javascript string concatenation and
plural conditionalization to demonstrate that plurals work
in both English and French now.

NOTE: Corresponding updates need to be made to all the other
language files since some keys were renamed or eliminated.

* Unused imports and other minor cleanups (#2723)

* Two minor fixes

- prevent invalid index error on empty strings (shouldn't normally happen)
- update deprecated Apache Commons Lang method

* Remove unused imports

* Remove feature Edit Facet Name

Remove feature Edit Facet Name that got merged by mistake.

* Remove feature Edit Facet Name

Remove feature Edit Facet Name that got merged by mistake.

* Spacing

Spacing

* Fix the delay, adjust to .2 s.

Fix the delay, adjust to .2 s. and stop using promises.

* Fix headerTable to tableHeader

Fix headerTable to tableHeader (PR #2719)

* data-header-table to data-table-header

data-header-table to data-table-header

* Remove .data-header-table-container

Remove .data-header-table-container

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Tom Morris <tfmorris@gmail.com>
Co-authored-by: Ekta Mishra <ektamishra1999@gmail.com>
Co-authored-by: Nishtha <51858166+Nishtha3512@users.noreply.github.com>
Co-authored-by: Thad Guidry <thadguidry@gmail.com>
Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Co-authored-by: Isao Matsunami <isao.matsunami@gmail.com>
Co-authored-by: Biswaranjan Manna <manna.biswaranjan@gmail.com>
Co-authored-by: chuhao zeng <32441682+zengchu2@users.noreply.github.com>
@wetneb wetneb added this to the 3.5 milestone Jun 17, 2020
@wetneb wetneb mentioned this issue Apr 24, 2021
16 tasks
wetneb added a commit to wetneb/OpenRefine that referenced this issue Nov 8, 2022
…ne#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.
wetneb added a commit that referenced this issue Dec 5, 2022
…#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and #570

* Revert "(I #2638) Feature to Goto a page directly (#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, #570 and #572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes #570, closes #572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit that referenced this issue Oct 10, 2023
…#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and #570

* Revert "(I #2638) Feature to Goto a page directly (#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, #570 and #572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes #570, closes #572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit that referenced this issue Nov 12, 2023
…#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and #570

* Revert "(I #2638) Feature to Goto a page directly (#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, #570 and #572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes #570, closes #572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 18, 2024
…f the grid (OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 18, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 18, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 19, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 19, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Apr 24, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue May 16, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Jun 25, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit to wetneb/OpenRefine that referenced this issue Jul 3, 2024
…OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests
wetneb added a commit that referenced this issue Jul 29, 2024
* Preserve pagination after actions which trigger an update of the grid (#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving #33 and #570

* Revert "(I #2638) Feature to Goto a page directly (#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for #33, #570 and #572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes #33, closes #570, closes #572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests

* Preserve pagination also when discarding recon matches

* Small changes from review feedback

Co-authored-by: Tom Morris <tfmorris@gmail.com>
sunilnatraj pushed a commit to sunilnatraj/OpenRefine that referenced this issue Aug 24, 2024
…fine#6546)

* Preserve pagination after actions which trigger an update of the grid (OpenRefine#5411)

* Adapt the GridState interface to separate sorting and pagination.

This adds `getRowsBefore` methods, counterpart to the existing pagination
methods, so that we can do efficient and correct pagination, solving OpenRefine#33 and OpenRefine#570

* Revert "(I OpenRefine#2638) Feature to Goto a page directly (OpenRefine#2639)"

Go back to simply displaying a range of row numbers, because
that will enable a solution for OpenRefine#33, OpenRefine#570 and OpenRefine#572.
This reverts commit d7aaac2.

* Do not move back to the first page when applying an action which refreshes the grid.

Instead, the current page is refreshed.
This closes OpenRefine#33, closes OpenRefine#570, closes OpenRefine#572.

* Specify which actions preserve row and record ids

This lets us preserve pagination only when it is guaranteed to show the same
part of the data after the operation.

* Make paging user-editable like before

* Adapt cypress tests

* Preserve pagination also when discarding recon matches

* Small changes from review feedback

Co-authored-by: Tom Morris <tfmorris@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
grid pagination / scrolling About scrolling through the rows via pagination or potentially seamless scrolling Module: Frontend These issues involve working on HTML, CSS, and JavaScript code that affects the user interface. Theme: UX/Usability Focuses on issues related to improving the overall user experience and interaction flow. Type: Design Discussions Indicates the need for discussion on issues related to UI/UX, accessibility or design refinements. Type: Feature Request Identifies requests for new features or enhancements. These involve proposing new improvements.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants