Commit 33aea41708b94f480b6eaad760e26abe17a37dfa

Authored by Dmitriy Zaporozhets
1 parent 70c2e1d7

Drop rjs from Infinite scrolling

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/assets/javascripts/commits.js.coffee
@@ -4,13 +4,13 @@ class CommitsList @@ -4,13 +4,13 @@ class CommitsList
4 limit: 0 4 limit: 0
5 offset: 0 5 offset: 0
6 @disable = false 6 @disable = false
7 - 7 +
8 @showProgress: -> 8 @showProgress: ->
9 $('.loading').show() 9 $('.loading').show()
10 - 10 +
11 @hideProgress: -> 11 @hideProgress: ->
12 $('.loading').hide() 12 $('.loading').hide()
13 - 13 +
14 @init: (ref, limit) -> 14 @init: (ref, limit) ->
15 $(".day-commits-table li.commit").live 'click', (event) -> 15 $(".day-commits-table li.commit").live 'click', (event) ->
16 if event.target.nodeName != "A" 16 if event.target.nodeName != "A"
@@ -21,7 +21,7 @@ class CommitsList @@ -21,7 +21,7 @@ class CommitsList
21 @data.ref = ref 21 @data.ref = ref
22 @data.limit = limit 22 @data.limit = limit
23 @data.offset = limit 23 @data.offset = limit
24 - 24 +
25 this.initLoadMore() 25 this.initLoadMore()
26 this.showProgress() 26 this.showProgress()
27 27
@@ -32,7 +32,9 @@ class CommitsList @@ -32,7 +32,9 @@ class CommitsList
32 url: location.href 32 url: location.href
33 data: @data 33 data: @data
34 complete: this.hideProgress 34 complete: this.hideProgress
35 - dataType: "script" 35 + success: (data) ->
  36 + CommitsList.append(data.count, data.html)
  37 + dataType: "json"
36 38
37 @append: (count, html) -> 39 @append: (count, html) ->
38 $("#commits-list").append(html) 40 $("#commits-list").append(html)
@@ -40,7 +42,7 @@ class CommitsList @@ -40,7 +42,7 @@ class CommitsList
40 @data.offset += count 42 @data.offset += count
41 else 43 else
42 @disable = true 44 @disable = true
43 - 45 +
44 @initLoadMore: -> 46 @initLoadMore: ->
45 $(document).unbind('scroll') 47 $(document).unbind('scroll')
46 $(document).endlessScroll 48 $(document).endlessScroll
app/assets/javascripts/pager.js.coffee
@@ -19,8 +19,9 @@ @@ -19,8 +19,9 @@
19 data: "limit=" + @limit + "&offset=" + @offset 19 data: "limit=" + @limit + "&offset=" + @offset
20 complete: -> 20 complete: ->
21 $(".loading").hide() 21 $(".loading").hide()
22 -  
23 - dataType: "script" 22 + success: (data) ->
  23 + Pager.append(data.count, data.html)
  24 + dataType: "json"
24 25
25 append: (count, html) -> 26 append: (count, html) ->
26 $(".content_list").append html 27 $(".content_list").append html
app/controllers/application_controller.rb
@@ -174,4 +174,18 @@ class ApplicationController &lt; ActionController::Base @@ -174,4 +174,18 @@ class ApplicationController &lt; ActionController::Base
174 filters = cookies['event_filter'].split(',') if cookies['event_filter'].present? 174 filters = cookies['event_filter'].split(',') if cookies['event_filter'].present?
175 @event_filter ||= EventFilter.new(filters) 175 @event_filter ||= EventFilter.new(filters)
176 end 176 end
  177 +
  178 + # JSON for infinite scroll via Pager object
  179 + def pager_json(partial, count)
  180 + html = render_to_string(
  181 + partial,
  182 + layout: false,
  183 + formats: [:html]
  184 + )
  185 +
  186 + render json: {
  187 + html: html,
  188 + count: count
  189 + }
  190 + end
177 end 191 end
app/controllers/dashboard_controller.rb
@@ -22,7 +22,7 @@ class DashboardController &lt; ApplicationController @@ -22,7 +22,7 @@ class DashboardController &lt; ApplicationController
22 22
23 respond_to do |format| 23 respond_to do |format|
24 format.html 24 format.html
25 - format.js 25 + format.json { pager_json("events/_events", @events.count) }
26 format.atom { render layout: false } 26 format.atom { render layout: false }
27 end 27 end
28 end 28 end
app/controllers/groups_controller.rb
@@ -38,7 +38,7 @@ class GroupsController &lt; ApplicationController @@ -38,7 +38,7 @@ class GroupsController &lt; ApplicationController
38 38
39 respond_to do |format| 39 respond_to do |format|
40 format.html 40 format.html
41 - format.js 41 + format.json { pager_json("events/_events", @events.count) }
42 format.atom { render layout: false } 42 format.atom { render layout: false }
43 end 43 end
44 end 44 end
app/controllers/projects/commits_controller.rb
@@ -16,7 +16,7 @@ class Projects::CommitsController &lt; Projects::ApplicationController @@ -16,7 +16,7 @@ class Projects::CommitsController &lt; Projects::ApplicationController
16 16
17 respond_to do |format| 17 respond_to do |format|
18 format.html # index.html.erb 18 format.html # index.html.erb
19 - format.js 19 + format.json { pager_json("projects/commits/_commits", @commits.size) }
20 format.atom { render layout: false } 20 format.atom { render layout: false }
21 end 21 end
22 end 22 end
app/controllers/projects_controller.rb
@@ -73,7 +73,7 @@ class ProjectsController &lt; ApplicationController @@ -73,7 +73,7 @@ class ProjectsController &lt; ApplicationController
73 render :show, layout: user_layout 73 render :show, layout: user_layout
74 end 74 end
75 end 75 end
76 - format.js 76 + format.json { pager_json("events/_events", @events.count) }
77 end 77 end
78 end 78 end
79 79
app/views/dashboard/show.js.haml
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -:plain  
2 - Pager.append(#{@events.count}, "#{escape_javascript(render(@events))}");  
app/views/events/_events.html.haml 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 += render @events
app/views/groups/show.js.haml
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -:plain  
2 - Pager.append(#{@events.count}, "#{escape_javascript(render(@events))}");  
app/views/projects/commits/show.js.haml
@@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
1 -:plain  
2 - CommitsList.append(#{@commits.count}, "#{escape_javascript(render('projects/commits/commits'))}");  
3 -  
app/views/projects/show.js.haml
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -:plain  
2 - Pager.append(#{@events.count}, "#{escape_javascript(render(@events))}");