diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2014-05-23 13:57:15 +0200 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2014-05-23 13:57:15 +0200 |
commit | 1cf6d415b7e9b580c7a683a07f3325e80455e585 (patch) | |
tree | 77a38e035712776aefd82ce7048f4ceab483bc87 | |
parent | 7298efea1b742e3ad3c22134fbbf688e2c6f8f00 (diff) | |
download | sonarqube-1cf6d415b7e9b580c7a683a07f3325e80455e585.tar.gz sonarqube-1cf6d415b7e9b580c7a683a07f3325e80455e585.zip |
SONAR-5007 Fix infinite scrolling
-rw-r--r-- | sonar-server/src/main/coffee/coding-rules/app.coffee | 38 | ||||
-rw-r--r-- | sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee | 13 |
2 files changed, 29 insertions, 22 deletions
diff --git a/sonar-server/src/main/coffee/coding-rules/app.coffee b/sonar-server/src/main/coffee/coding-rules/app.coffee index 2b690a931ae..100614eb00d 100644 --- a/sonar-server/src/main/coffee/coding-rules/app.coffee +++ b/sonar-server/src/main/coffee/coding-rules/app.coffee @@ -131,6 +131,11 @@ requirejs [ # Optimize requested fields _.extend fetchQuery, f: 'name,lang,status' + if @codingRulesListView + scrollOffset = jQuery('.navigator-results')[0].scrollTop + else + scrollOffset = 0 + @layout.showSpinner 'resultsRegion' @layout.showSpinner 'facetsRegion' unless fromFacets || !firstPage jQuery.ajax @@ -150,12 +155,16 @@ requirejs [ pageIndex: r.p pageSize: r.ps pages: 1 + (r.total / r.ps) + @codingRulesListView = new CodingRulesListView app: @ collection: @codingRules @layout.resultsRegion.show @codingRulesListView @codingRulesListView.selectFirst() + unless firstPage + jQuery('.navigator-results')[0].scrollTop = scrollOffset + unless fromFacets @codingRulesFacetsView = new CodingRulesFacetsView app: @ @@ -349,25 +358,24 @@ requirejs [ # Call app before start the application appXHR = jQuery.ajax url: "#{baseUrl}/api/rules/app" + .done (r) -> + App.appState = new Backbone.Model + App.state = new Backbone.Model + App.canWrite = r.canWrite + App.qualityProfiles = r.qualityprofiles + App.languages = r.languages + App.repositories = r.repositories + App.statuses = r.statuses + App.characteristics = r.characteristics + + App.facetPropertyToLabels = + 'languages': App.languages + 'repositories': App.repositories # Message bundles l10nXHR = window.requestMessages() - jQuery.when(appXHR, l10nXHR) - .done (r) -> - App.appState = new Backbone.Model - App.state = new Backbone.Model - App.canWrite = r.canWrite - App.qualityProfiles = r.qualityprofiles - App.languages = r.languages - App.repositories = r.repositories - App.statuses = r.statuses - App.characteristics = r.characteristics - - App.facetPropertyToLabels = - 'languages': App.languages - 'repositories': App.repositories - + jQuery.when(appXHR, l10nXHR).done -> # Remove the initial spinner jQuery('#coding-rules-page-loader').remove() diff --git a/sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee index 3c9eb0b3d29..7bd846b35bb 100644 --- a/sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee +++ b/sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee @@ -29,22 +29,21 @@ define [ key 'up', 'list', => @selectPrev() key 'down', 'list', => @selectNext() - that = @ $scrollEl = jQuery('.navigator-results') scrollEl = $scrollEl.get(0) - onScroll = -> - if (scrollEl.offsetHeight + scrollEl.scrollTop >= scrollEl.scrollHeight) - that.options.app.fetchNextPage() - throttledScroll = _.throttle(onScroll, 300) - $scrollEl.off('scroll').on('scroll', throttledScroll) + onScroll = => + if scrollEl.offsetHeight + scrollEl.scrollTop >= scrollEl.scrollHeight + @options.app.fetchNextPage() + throttledScroll = _.throttle onScroll, 300 + $scrollEl.off('scroll').on 'scroll', throttledScroll close: -> - super key.unbind 'up', 'list' key.unbind 'down', 'list' scrollEl = jQuery '.navigator-results' scrollEl.off 'scroll'; + super selectIssue: (el, open) -> |