Commit 586c53ea0594a327b346c6fed38528a1f508c9e1
1 parent
0b0e0225
Exists in
master
and in
4 other branches
fixed notes loading/paging
Showing
6 changed files
with
47 additions
and
15 deletions
Show diff stats
app/assets/javascripts/note.js
@@ -31,6 +31,15 @@ append: | @@ -31,6 +31,15 @@ append: | ||
31 | this.initLoadMore(); | 31 | this.initLoadMore(); |
32 | }, | 32 | }, |
33 | 33 | ||
34 | +replace: | ||
35 | + function(fid, lid, html) { | ||
36 | + this.first_id = fid; | ||
37 | + this.last_id = lid; | ||
38 | + $("#notes-list").html(html); | ||
39 | + this.initLoadMore(); | ||
40 | + }, | ||
41 | + | ||
42 | + | ||
34 | prepend: | 43 | prepend: |
35 | function(id, html) { | 44 | function(id, html) { |
36 | this.last_id = id; | 45 | this.last_id = id; |
@@ -47,10 +56,23 @@ getNew: | @@ -47,10 +56,23 @@ getNew: | ||
47 | dataType: "script"}); | 56 | dataType: "script"}); |
48 | }, | 57 | }, |
49 | 58 | ||
59 | +refresh: | ||
60 | + function() { | ||
61 | + // refersh notes list | ||
62 | + $.ajax({ | ||
63 | + type: "GET", | ||
64 | + url: location.href, | ||
65 | + data: "first_id=" + this.first_id + "&last_id=" + this.last_id, | ||
66 | + dataType: "script"}); | ||
67 | + }, | ||
68 | + | ||
69 | + | ||
70 | + | ||
50 | initRefresh: | 71 | initRefresh: |
51 | function() { | 72 | function() { |
52 | // init timer | 73 | // init timer |
53 | - var int = setInterval("NoteList.getNew()", 20000); | 74 | + var intNew = setInterval("NoteList.getNew()", 15000); |
75 | + var intRefresh = setInterval("NoteList.refresh()", 90000); | ||
54 | }, | 76 | }, |
55 | 77 | ||
56 | initLoadMore: | 78 | initLoadMore: |
app/controllers/application_controller.rb
@@ -83,4 +83,16 @@ class ApplicationController < ActionController::Base | @@ -83,4 +83,16 @@ class ApplicationController < ActionController::Base | ||
83 | cookies[:view_style] = "" | 83 | cookies[:view_style] = "" |
84 | end | 84 | end |
85 | end | 85 | end |
86 | + | ||
87 | + def respond_with_notes | ||
88 | + if params[:last_id] && params[:first_id] | ||
89 | + @notes = @notes.where("id >= ?", params[:first_id]) | ||
90 | + elsif params[:last_id] | ||
91 | + @notes = @notes.where("id > ?", params[:last_id]) | ||
92 | + elsif params[:first_id] | ||
93 | + @notes = @notes.where("id < ?", params[:first_id]) | ||
94 | + else | ||
95 | + nil | ||
96 | + end | ||
97 | + end | ||
86 | end | 98 | end |
app/controllers/commits_controller.rb
@@ -33,10 +33,7 @@ class CommitsController < ApplicationController | @@ -33,10 +33,7 @@ class CommitsController < ApplicationController | ||
33 | 33 | ||
34 | respond_to do |format| | 34 | respond_to do |format| |
35 | format.html | 35 | format.html |
36 | - format.js do | ||
37 | - @notes = @notes.where("id > ?", params[:last_id]) if params[:last_id] | ||
38 | - @notes = @notes.where("id < ?", params[:first_id]) if params[:first_id] | ||
39 | - end | 36 | + format.js { respond_with_notes } |
40 | end | 37 | end |
41 | end | 38 | end |
42 | end | 39 | end |
app/controllers/issues_controller.rb
@@ -40,10 +40,7 @@ class IssuesController < ApplicationController | @@ -40,10 +40,7 @@ class IssuesController < ApplicationController | ||
40 | 40 | ||
41 | respond_to do |format| | 41 | respond_to do |format| |
42 | format.html | 42 | format.html |
43 | - format.js do | ||
44 | - @notes = @notes.where("id > ?", params[:last_id]) if params[:last_id] | ||
45 | - @notes = @notes.where("id < ?", params[:first_id]) if params[:first_id] | ||
46 | - end | 43 | + format.js { respond_with_notes } |
47 | end | 44 | end |
48 | end | 45 | end |
49 | 46 |
app/controllers/projects_controller.rb
@@ -90,10 +90,7 @@ class ProjectsController < ApplicationController | @@ -90,10 +90,7 @@ class ProjectsController < ApplicationController | ||
90 | 90 | ||
91 | respond_to do |format| | 91 | respond_to do |format| |
92 | format.html | 92 | format.html |
93 | - format.js do | ||
94 | - @notes = @notes.where("id > ?", params[:last_id]) if params[:last_id] | ||
95 | - @notes = @notes.where("id < ?", params[:first_id]) if params[:first_id] | ||
96 | - end | 93 | + format.js { respond_with_notes } |
97 | end | 94 | end |
98 | end | 95 | end |
99 | 96 |
app/views/notes/_load.js.haml
1 | - unless @notes.blank? | 1 | - unless @notes.blank? |
2 | 2 | ||
3 | - - if params[:last_id] | 3 | + - if params[:last_id] && params[:first_id] |
4 | + :plain | ||
5 | + NoteList.replace(#{@notes.last.id}, #{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}"); | ||
6 | + | ||
7 | + | ||
8 | + - elsif params[:last_id] | ||
4 | :plain | 9 | :plain |
5 | NoteList.prepend(#{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}"); | 10 | NoteList.prepend(#{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}"); |
6 | 11 | ||
7 | - - if params[:first_id] | 12 | + - elsif params[:first_id] |
8 | :plain | 13 | :plain |
9 | NoteList.append(#{@notes.last.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}"); | 14 | NoteList.append(#{@notes.last.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}"); |
10 | 15 | ||
16 | + - else | ||
17 | + :plain |