Fix wall notes

This commit is contained in:
Riyad Preukschas 2012-11-22 02:57:22 +01:00
parent 140652e9b0
commit c4a7824a8c
5 changed files with 29 additions and 4 deletions

View file

@ -267,6 +267,7 @@ var NoteList = {
NoteList.bottom_id = newNoteIds.last(); NoteList.bottom_id = newNoteIds.last();
$("#notes-list").html(html); $("#notes-list").html(html);
// for the wall
if (NoteList.reversed) { if (NoteList.reversed) {
// init infinite scrolling // init infinite scrolling
NoteList.initLoadMore(); NoteList.initLoadMore();
@ -352,6 +353,8 @@ var NoteList = {
/** /**
* Initializes getting new notes every n seconds. * Initializes getting new notes every n seconds.
*
* Note: only used on wall.
*/ */
initRefreshNew: function() { initRefreshNew: function() {
setInterval("NoteList.getNew()", 10000); setInterval("NoteList.getNew()", 10000);
@ -359,6 +362,8 @@ var NoteList = {
/** /**
* Gets the new set of notes. * Gets the new set of notes.
*
* Note: only used on wall.
*/ */
getNew: function() { getNew: function() {
$.ajax({ $.ajax({
@ -371,6 +376,8 @@ var NoteList = {
/** /**
* Called in response to getNew(). * Called in response to getNew().
* Replaces the content of #new-notes-list with the given html. * Replaces the content of #new-notes-list with the given html.
*
* Note: only used on wall.
*/ */
replaceNewNotes: function(newNoteIds, html) { replaceNewNotes: function(newNoteIds, html) {
$("#new-notes-list").html(html); $("#new-notes-list").html(html);
@ -378,7 +385,7 @@ var NoteList = {
}, },
/** /**
* Adds a single common note to #(new-)notes-list. * Adds a single common note to #notes-list.
*/ */
appendNewNote: function(id, html) { appendNewNote: function(id, html) {
$("#notes-list").append(html); $("#notes-list").append(html);
@ -386,7 +393,7 @@ var NoteList = {
}, },
/** /**
* Adds a single discussion note to #(new-)notes-list. * Adds a single discussion note to #notes-list.
*/ */
appendNewDiscussionNote: function(discussionId, diffRowHtml, noteHtml) { appendNewDiscussionNote: function(discussionId, diffRowHtml, noteHtml) {
// is this the first note of discussion? // is this the first note of discussion?
@ -402,6 +409,15 @@ var NoteList = {
$(".notes[rel='"+discussionId+"']").append(noteHtml); $(".notes[rel='"+discussionId+"']").append(noteHtml);
}, },
/**
* Adds a single wall note to #new-notes-list.
*
* Note: only used on wall.
*/
appendNewWallNote: function(id, html) {
$("#new-notes-list").prepend(html);
},
/** /**
* Recalculates the votes and updates them (if they are displayed at all). * Recalculates the votes and updates them (if they are displayed at all).
* *

View file

@ -71,6 +71,7 @@ class NotesController < ProjectResourceController
# Helps to distinguish e.g. commit notes in mr notes list # Helps to distinguish e.g. commit notes in mr notes list
def note_for_main_target?(note) def note_for_main_target?(note)
@target_type.camelize == note.noteable_type && !note.for_diff_line? note.for_wall? ||
(@target_type.camelize == note.noteable_type && !note.for_diff_line?)
end end
end end

View file

@ -1,7 +1,8 @@
module NotesHelper module NotesHelper
# Helps to distinguish e.g. commit notes in mr notes list # Helps to distinguish e.g. commit notes in mr notes list
def note_for_main_target?(note) def note_for_main_target?(note)
@target_type.camelize == note.noteable_type && !note.for_diff_line? note.for_wall? ||
(@target_type.camelize == note.noteable_type && !note.for_diff_line?)
end end
def note_target_fields def note_target_fields

View file

@ -115,6 +115,10 @@ class Note < ActiveRecord::Base
for_merge_request? && for_diff_line? for_merge_request? && for_diff_line?
end end
def for_wall?
noteable_type.blank?
end
# override to return commits, which are not active record # override to return commits, which are not active record
def noteable def noteable
if for_commit? if for_commit?

View file

@ -1,4 +1,7 @@
- if note.valid? - if note.valid?
- if note.for_wall?
NoteList.appendNewWallNote(#{note.id}, "#{escape_javascript(render "notes/note", note: note)}");
- else
NoteList.appendNewNote(#{note.id}, "#{escape_javascript(render "notes/note", note: note)}"); NoteList.appendNewNote(#{note.id}, "#{escape_javascript(render "notes/note", note: note)}");
- else - else