Commit 32c7310f4a2ba8b408f0dd0cc17eba9b92159817
1 parent
5b1984ce
Exists in
spb-stable
and in
3 other branches
Clear refresh interval for notes. Fixes duplicate note rendering
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
1 changed file
with
19 additions
and
9 deletions
Show diff stats
app/assets/javascripts/notes.js.coffee
1 | 1 | class Notes |
2 | + @interval: null | |
3 | + | |
2 | 4 | constructor: (notes_url, note_ids) -> |
3 | 5 | @notes_url = notes_url |
4 | 6 | @notes_url = gon.relative_url_root + @notes_url if gon.relative_url_root? |
... | ... | @@ -60,7 +62,8 @@ class Notes |
60 | 62 | |
61 | 63 | |
62 | 64 | initRefresh: -> |
63 | - setInterval => | |
65 | + clearInterval(Notes.interval) | |
66 | + Notes.interval = setInterval => | |
64 | 67 | @refresh() |
65 | 68 | , 15000 |
66 | 69 | |
... | ... | @@ -74,11 +77,7 @@ class Notes |
74 | 77 | success: (data) => |
75 | 78 | notes = data.notes |
76 | 79 | $.each notes, (i, note) => |
77 | - # render note if it not present in loaded list | |
78 | - # or skip if rendered | |
79 | - if $.inArray(note.id, @note_ids) == -1 | |
80 | - @note_ids.push(note.id) | |
81 | - @renderNote(note) | |
80 | + @renderNote(note) | |
82 | 81 | |
83 | 82 | |
84 | 83 | ### |
... | ... | @@ -87,7 +86,19 @@ class Notes |
87 | 86 | Note: for rendering inline notes use renderDiscussionNote |
88 | 87 | ### |
89 | 88 | renderNote: (note) -> |
90 | - $('ul.main-notes-list').append(note.html) | |
89 | + # render note if it not present in loaded list | |
90 | + # or skip if rendered | |
91 | + if @isNewNote(note) | |
92 | + @note_ids.push(note.id) | |
93 | + $('ul.main-notes-list').append(note.html) | |
94 | + | |
95 | + | |
96 | + ### | |
97 | + Check if note does not exists on page | |
98 | + ### | |
99 | + isNewNote: (note) -> | |
100 | + $.inArray(note.id, @note_ids) == -1 | |
101 | + | |
91 | 102 | |
92 | 103 | ### |
93 | 104 | Render note in discussion area. |
... | ... | @@ -95,6 +106,7 @@ class Notes |
95 | 106 | Note: for rendering inline notes use renderDiscussionNote |
96 | 107 | ### |
97 | 108 | renderDiscussionNote: (note) -> |
109 | + @note_ids.push(note.id) | |
98 | 110 | form = $("form[rel='" + note.discussion_id + "']") |
99 | 111 | row = form.closest("tr") |
100 | 112 | |
... | ... | @@ -219,7 +231,6 @@ class Notes |
219 | 231 | Adds new note to list. |
220 | 232 | ### |
221 | 233 | addNote: (xhr, note, status) => |
222 | - @note_ids.push(note.id) | |
223 | 234 | @renderNote(note) |
224 | 235 | |
225 | 236 | ### |
... | ... | @@ -228,7 +239,6 @@ class Notes |
228 | 239 | Adds new note to list. |
229 | 240 | ### |
230 | 241 | addDiscussionNote: (xhr, note, status) => |
231 | - @note_ids.push(note.id) | |
232 | 242 | @renderDiscussionNote(note) |
233 | 243 | |
234 | 244 | ### | ... | ... |