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
fixed issue with non-scrollable results list #3888
Conversation
In a scenario when one page of ajax results fits into results area, it becomes non-scrollable and "load more" button is displayed at the bottom, is unusable and there is no way to load more results: http://jsfiddle.net/fz7q66pe/2/ This seems to be an edge-case but we had our results being displayed in a large modal and in a grid so this became a problem on large screens. This fix triggers scroll event after results are appended and it will check if "load more" is already visible and take proper action.
@fsw I realize that you submitted this PR over 2 years ago, but do you still stand by it as a solution? I'm worried that manually triggering the |
@alexweissman I am not sure if I stand by it because I can not even recall creating this PR :) But indeed calling JS event here seems harsh and could have side effects. I guess that extracting a callback from here: So this one does the trick but could be done better. cheers. |
That's exactly what I was thinking! |
I guess this looks better now. I tested this manually and works fine on my fiddle. |
Nope, no need to (and actually should not) commit any A qunit test for this edge case would be helpful though, if possible! |
Buuuuump. 🤜🏼🤛🏼 I just had to fix this in our local version of Select2. I was about to open an issue to begin the process of getting this properly fixed for Select2 as a whole, but then I found this PR! Any reason why this never got merged? I checked out the changes, and I'm actually not sure if it will solve all cases. In my case, I needed to trigger the |
@diakonos I was testing this with ajax so results were empty initially. You are probably right re results:all. |
fix paging in infinte scroll. code stolen from select2#3888 thx
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Ever since the 4.0.0 release of Select2, there has been a bug where if you enabled infinite scrolling but did not return enough results on the first load of AJAX to show a scrollbar, then infinite scrolling would not be enabled and you could not view anything other than the first page of results. The solution for this was first proposed in #3888 but it was closed off because of inactivity and missing tests. This fixes the issue by performing the check to see if more results should be loaded both on scroll and also when the results are first loaded. This solves the issue that we were seeing before, because the plugin knows it needs to load in more results, just it did not receive the scroll event before and thus was not able to actually load in the new results. This has the potential to trigger multiple AJAX requests to load in multiple pages of results if the user has the ability to see many options, but only a few are being loaded at a time. This also adds tests for infinite scrolling, both to ensure that it will attempt to load additional pages, even without the scrollbar, and to ensure that the regular behaviour of not loading additional pages when the scrollbar is visible is preserved. Fixes #3088
Ever since the 4.0.0 release of Select2, there has been a bug where if you enabled infinite scrolling but did not return enough results on the first load of AJAX to show a scrollbar, then infinite scrolling would not be enabled and you could not view anything other than the first page of results. The solution for this was first proposed in #3888 but it was closed off because of inactivity and missing tests. This fixes the issue by performing the check to see if more results should be loaded both on scroll and also when the results are first loaded. This solves the issue that we were seeing before, because the plugin knows it needs to load in more results, just it did not receive the scroll event before and thus was not able to actually load in the new results. This has the potential to trigger multiple AJAX requests to load in multiple pages of results if the user has the ability to see many options, but only a few are being loaded at a time. This also adds tests for infinite scrolling, both to ensure that it will attempt to load additional pages, even without the scrollbar, and to ensure that the regular behaviour of not loading additional pages when the scrollbar is visible is preserved. Fixes #3088
In a scenario when one page of ajax results fits into results area, it becomes non-scrollable and "loading more results.." is displayed at the bottom, is unusable and there is no way to load more results:
http://jsfiddle.net/fz7q66pe/3/
This seems to be an edge-case but we had our results being displayed in a large modal and in a grid so this became a problem on large screens.
This fix triggers scroll event after results are appended and it will check if "load more" is already visible and take proper action.