Fix wall notes

4-1-stable
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();
$("#notes-list").html(html);
// for the wall
if (NoteList.reversed) {
// init infinite scrolling
NoteList.initLoadMore();
@ -352,6 +353,8 @@ var NoteList = {
/**
* Initializes getting new notes every n seconds.
*
* Note: only used on wall.
*/
initRefreshNew: function() {
setInterval("NoteList.getNew()", 10000);
@ -359,6 +362,8 @@ var NoteList = {
/**
* Gets the new set of notes.
*
* Note: only used on wall.
*/
getNew: function() {
$.ajax({
@ -371,6 +376,8 @@ var NoteList = {
/**
* Called in response to getNew().
* Replaces the content of #new-notes-list with the given html.
*
* Note: only used on wall.
*/
replaceNewNotes: function(newNoteIds, 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) {
$("#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) {
// is this the first note of discussion?
@ -402,6 +409,15 @@ var NoteList = {
$(".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).
*

View File

@ -71,6 +71,7 @@ class NotesController < ProjectResourceController
# Helps to distinguish e.g. commit notes in mr notes list
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

View File

@ -1,7 +1,8 @@
module NotesHelper
# Helps to distinguish e.g. commit notes in mr notes list
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
def note_target_fields

View File

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

View File

@ -1,4 +1,7 @@
- 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)}");
- else