summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-12-27 14:11:19 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-12-27 14:11:19 +0200
commit32c7310f4a2ba8b408f0dd0cc17eba9b92159817 (patch)
treece1e14def24669a3b4a94b2640f99a7829f69d2f
parent5b1984ce5a01d66b2630f76ef47ac156980ee38e (diff)
downloadgitlab-ce-32c7310f4a2ba8b408f0dd0cc17eba9b92159817.tar.gz
Clear refresh interval for notes. Fixes duplicate note rendering
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/assets/javascripts/notes.js.coffee28
1 files changed, 19 insertions, 9 deletions
diff --git a/app/assets/javascripts/notes.js.coffee b/app/assets/javascripts/notes.js.coffee
index b3e71965a07..d13fc439fa4 100644
--- a/app/assets/javascripts/notes.js.coffee
+++ b/app/assets/javascripts/notes.js.coffee
@@ -1,4 +1,6 @@
class Notes
+ @interval: null
+
constructor: (notes_url, note_ids) ->
@notes_url = notes_url
@notes_url = gon.relative_url_root + @notes_url if gon.relative_url_root?
@@ -60,7 +62,8 @@ class Notes
initRefresh: ->
- setInterval =>
+ clearInterval(Notes.interval)
+ Notes.interval = setInterval =>
@refresh()
, 15000
@@ -74,11 +77,7 @@ class Notes
success: (data) =>
notes = data.notes
$.each notes, (i, note) =>
- # render note if it not present in loaded list
- # or skip if rendered
- if $.inArray(note.id, @note_ids) == -1
- @note_ids.push(note.id)
- @renderNote(note)
+ @renderNote(note)
###
@@ -87,7 +86,19 @@ class Notes
Note: for rendering inline notes use renderDiscussionNote
###
renderNote: (note) ->
- $('ul.main-notes-list').append(note.html)
+ # render note if it not present in loaded list
+ # or skip if rendered
+ if @isNewNote(note)
+ @note_ids.push(note.id)
+ $('ul.main-notes-list').append(note.html)
+
+
+ ###
+ Check if note does not exists on page
+ ###
+ isNewNote: (note) ->
+ $.inArray(note.id, @note_ids) == -1
+
###
Render note in discussion area.
@@ -95,6 +106,7 @@ class Notes
Note: for rendering inline notes use renderDiscussionNote
###
renderDiscussionNote: (note) ->
+ @note_ids.push(note.id)
form = $("form[rel='" + note.discussion_id + "']")
row = form.closest("tr")
@@ -219,7 +231,6 @@ class Notes
Adds new note to list.
###
addNote: (xhr, note, status) =>
- @note_ids.push(note.id)
@renderNote(note)
###
@@ -228,7 +239,6 @@ class Notes
Adds new note to list.
###
addDiscussionNote: (xhr, note, status) =>
- @note_ids.push(note.id)
@renderDiscussionNote(note)
###