From 3e695acfa2f4035431cb325645b3114d06e43105 Mon Sep 17 00:00:00 2001 From: Andrew8xx8 <avk@8xx8.ru> Date: Mon, 25 Mar 2013 15:58:09 +0400 Subject: [PATCH] Notes fixed --- Gemfile.lock | 28 +++++++++++++------------- app/models/event.rb | 4 ++++ app/models/note.rb | 6 ++++++ app/models/snippet.rb | 1 + app/views/events/event/_note.html.haml | 4 ++++ 5 files changed, 29 insertions(+), 14 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f2800771f61..ffbef9488e4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,17 @@ +GIT + remote: https://github.com/ctran/annotate_models.git + revision: be4e26825b521f0b2d86b181e2dff89901aa9b1e + specs: + annotate (2.6.0.beta1) + activerecord (>= 2.3.0) + rake (>= 0.8.7) + +GIT + remote: https://github.com/gitlabhq/raphael-rails.git + revision: cb2c92a040b9b941a5f1aa1ea866cc26e944fe58 + specs: + raphael-rails (2.1.0) + GIT remote: https://github.com/gollum/gollum.git revision: 5dcd3c8c8f68158e43ff79861279088ee56d0ebe @@ -15,20 +29,6 @@ GIT stringex (~> 1.5.1) useragent (~> 0.4.16) -GIT - remote: https://github.com/ctran/annotate_models.git - revision: be4e26825b521f0b2d86b181e2dff89901aa9b1e - specs: - annotate (2.6.0.beta1) - activerecord (>= 2.3.0) - rake (>= 0.8.7) - -GIT - remote: https://github.com/gitlabhq/raphael-rails.git - revision: cb2c92a040b9b941a5f1aa1ea866cc26e944fe58 - specs: - raphael-rails (2.1.0) - GEM remote: https://rubygems.org/ specs: diff --git a/app/models/event.rb b/app/models/event.rb index ae14454c59a..d39445c4ffe 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -259,6 +259,10 @@ class Event < ActiveRecord::Base target.noteable_type == "Commit" end + def note_project_snippet? + target.noteable_type == "Snippet" + end + def note_target target.noteable end diff --git a/app/models/note.rb b/app/models/note.rb index f56f999fda1..2f3b059918a 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -170,4 +170,10 @@ class Note < ActiveRecord::Base "wall" end end + + # FIXME: Hack for polymorphic associations with STI + # For more information wisit http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Polymorphic+Associations + def noteable_type=(sType) + super(sType.to_s.classify.constantize.base_class.to_s) + end end diff --git a/app/models/snippet.rb b/app/models/snippet.rb index 5d09c6b6e47..1b37ffe8339 100644 --- a/app/models/snippet.rb +++ b/app/models/snippet.rb @@ -20,6 +20,7 @@ class Snippet < ActiveRecord::Base attr_accessible :title, :content, :file_name, :expires_at, :private belongs_to :author, class_name: "User" + has_many :notes, as: :noteable, dependent: :destroy delegate :name, :email, to: :author, prefix: true, allow_nil: true diff --git a/app/views/events/event/_note.html.haml b/app/views/events/event/_note.html.haml index 8bcfa95ff62..81b8ff9bf24 100644 --- a/app/views/events/event/_note.html.haml +++ b/app/views/events/event/_note.html.haml @@ -5,6 +5,10 @@ - if event.note_commit? = event.note_target_type = link_to event.note_short_commit_id, project_commit_path(event.project, event.note_commit_id), class: "commit_short_id" + - if event.note_project_snippet? + = link_to project_snippet_path(event.project, event.note_target) do + %strong + #{event.note_target_type} ##{truncate event.note_target_id} - else = link_to [event.project, event.note_target] do %strong -- GitLab