There are some serious problems with the way pagination (i.e. issue list) is implemented.
1) back button is broken
2) bookmarking is broken
This patch isn't a perfect fix, but it's a good hack/patch to use while waiting for a more proper solution to this problem. The root cause is based in using Ajax updates for pagination. Since the page isn't changing, the browser history isn't managed, nor is the URL updated. By moving back to direct links for pagination, this problem can be avoided. Note that in this patch, a lot of Ajax parameters are removed so that they don't show up in the URL. This may introduce problems with maintaining said Ajax properties across pagination.
I've introduced a Ruby hash to isolate these problematic parameters and controllers. By updating turning on logging (uncommenting a line in the patch), you can identify the name of the controller and the name of the parameter that needs to be preserved. The name of the parameter can then be added to the hash, keyed by the name of the controller. This parameter will now appear in the URL and the Ajax parameter will be preserved across pagination. Note that I have only noticed this problem in the users controller, when changing the status or the name query.
It appears that issue grouping and issue filtering (the most important Ajax parameters, in my opinion), are preserved across pagination. However, these Ajax parameters are not preserved across bookmarks. Fortunately, saved queries makes this a non-issue.
#1 Updated by Brian Lindahl over 2 years ago
There are likely issues with this patch that have not been uncovered yet. However, they will not be catastrophic (i.e. trash the database, take down the site, or cause errors in pages). The issues with this patch will most likely be related to Ajax configurations (parameters) of views disappearing when using pagination.