aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2014-05-23 13:57:15 +0200
committerStas Vilchik <vilchiks@gmail.com>2014-05-23 13:57:15 +0200
commit1cf6d415b7e9b580c7a683a07f3325e80455e585 (patch)
tree77a38e035712776aefd82ce7048f4ceab483bc87
parent7298efea1b742e3ad3c22134fbbf688e2c6f8f00 (diff)
downloadsonarqube-1cf6d415b7e9b580c7a683a07f3325e80455e585.tar.gz
sonarqube-1cf6d415b7e9b580c7a683a07f3325e80455e585.zip
SONAR-5007 Fix infinite scrolling
-rw-r--r--sonar-server/src/main/coffee/coding-rules/app.coffee38
-rw-r--r--sonar-server/src/main/coffee/coding-rules/views/coding-rules-list-view.coffee13
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) ->