myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [3108] branches/events: added comment events and


From: noreply
Subject: [myexperiment-hackers] [3108] branches/events: added comment events and adjusted activity feed
Date: Fri, 24 Aug 2012 14:52:15 +0000 (UTC)

Revision
3108
Author
dgc
Date
2012-08-24 14:52:14 +0000 (Fri, 24 Aug 2012)

Log Message

added comment events and adjusted activity feed

Modified Paths

Diff

Modified: branches/events/app/controllers/comments_controller.rb (3107 => 3108)


--- branches/events/app/controllers/comments_controller.rb	2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/app/controllers/comments_controller.rb	2012-08-24 14:52:14 UTC (rev 3108)
@@ -33,9 +33,14 @@
     end
 
     if text and text.length > 0
-      comment = Comment.create(:user => current_user, :comment => text)
-      @context.comments << comment
-      @context.solr_save if @context.respond_to?(:solr_save)
+      comment = Comment.new(:user => current_user, :comment => text, :commentable => @context)
+
+      success = comment.save
+
+      if success
+        Event.create(:subject => current_user, :action ="" 'create', :objekt => comment)
+        @context.solr_save if @context.respond_to?(:solr_save)
+      end
     end
     
     respond_to do |format|

Modified: branches/events/app/helpers/application_helper.rb (3107 => 3108)


--- branches/events/app/helpers/application_helper.rb	2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/app/helpers/application_helper.rb	2012-08-24 14:52:14 UTC (rev 3108)
@@ -547,6 +547,30 @@
 
   def activity_feed(opts = {})
 
+    def link_aux(thing, label)
+
+      case thing.class.name
+        when "Bookmark"
+          thing = thing.bookmarkable
+        when "Comment"
+          thing = thing.commentable
+      end
+
+      if thing
+        link_to(thing.label, polymorphic_path(thing))
+      else
+        h(label)
+      end
+    end
+
+    def subject_link(event)
+      link_aux(event.subject, event.subject_label)
+    end
+
+    def objekt_link(event)
+      link_aux(event.objekt, event.objekt_label)
+    end
+
     conditions_expr     = []
     conditions_operands = []
 
@@ -574,24 +598,26 @@
     markup << events.map do |event|
 
       action = "" event.objekt
-        "#{event.action} #{event.objekt_type}"
+        "#{event.objekt_type} #{event.action}"
       else
         "#{event.action}"
       end
 
       sentence = case action
-        when "register":                "#{event.subject.label} joined #{Conf.sitename}"
-        when "create Workflow":         "#{event.subject.label} uploaded #{event.objekt.label}"
-        when "create version Workflow": "#{event.subject.label} uploaded a new version of #{event.objekt.label}"
-        when "edit Workflow":           "#{event.subject.label} edited #{event.objekt.label}"
-        when "edit version Workflow":   "#{event.subject.label} edited version #{event.extra} of #{event.objekt.label}"
-        when "create Blob":             "#{event.subject.label} uploaded #{event.objekt.label}"
-        when "create version Blob":     "#{event.subject.label} uploaded a new version of #{event.objekt.label}"
-        when "edit Blob":               "#{event.subject.label} edited #{event.objekt.label}"
-        when "edit version Blob":       "#{event.subject.label} edited version #{event.extra} of #{event.objekt.label}"
-        when "create Bookmark":         "#{event.subject.label} favourited #{event.objekt.bookmarkable.label}"
-        when "create Pack":             "#{event.subject.label} created #{event.objekt.label}"
-        when "create Blog":             "#{event.subject.label} created #{event.objekt.label}"
+        when "Blob create version":     "#{subject_link(event)} uploaded a new version of #{objekt_link(event)}"
+        when "Blob create":             "#{subject_link(event)} uploaded #{objekt_link(event)}"
+        when "Blob edit version":       "#{subject_link(event)} edited version #{event.extra} of #{objekt_link(event)}"
+        when "Blob edit":               "#{subject_link(event)} edited #{objekt_link(event)}"
+        when "Blog create":             "#{subject_link(event)} created #{objekt_link(event)}"
+        when "Bookmark create":         "#{subject_link(event)} favourited #{objekt_link(event)}"
+        when "Comment create":          "#{subject_link(event)} commented on #{objekt_link(event)}"
+        when "Pack create":             "#{subject_link(event)} created #{objekt_link(event)}"
+        when "Workflow create version": "#{subject_link(event)} uploaded a new version of #{objekt_link(event)}"
+        when "Workflow create":         "#{subject_link(event)} uploaded #{objekt_link(event)}"
+        when "Workflow edit version":   "#{subject_link(event)} edited version #{event.extra} of #{objekt_link(event)}"
+        when "Workflow edit":           "#{subject_link(event)} edited #{objekt_link(event)}"
+        when "register":                "#{subject_link(event)} joined #{Conf.sitename}"
+        else "Unknown event"
       end
 
       "<li>#{sentence}.</li>"

Modified: branches/events/lib/rest.rb (3107 => 3108)


--- branches/events/lib/rest.rb	2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/lib/rest.rb	2012-08-24 14:52:14 UTC (rev 3108)
@@ -1930,7 +1930,16 @@
 
     # End of curation hack
 
-    return rest_response(400, :object => ob) unless ob.save
+    success = ob.save
+
+    if success
+      case action
+      when "create": Event.create(:subject => opts[:user], :action ="" 'create', :objekt => ob)
+      when "edit":   Event.create(:subject => opts[:user], :action ="" 'edit', :objekt => ob)
+      end
+    end
+
+    return rest_response(400, :object => ob) unless success
   end
 
   rest_get_request(ob, opts[:user], { "id" => ob.id.to_s })

Modified: branches/events/test/functional/api_controller_test.rb (3107 => 3108)


--- branches/events/test/functional/api_controller_test.rb	2012-08-24 13:37:38 UTC (rev 3107)
+++ branches/events/test/functional/api_controller_test.rb	2012-08-24 14:52:14 UTC (rev 3108)
@@ -645,6 +645,8 @@
 
     existing_comments = Comment.find(:all)
 
+    existing_events = Event.all
+
     rest_request(:post, 'comment', "<?xml version='1.0'?>
       <comment>
         <comment>#{comment_text}</comment>
@@ -653,6 +655,13 @@
 
     assert_response(:success)
 
+    new_events = Event.all - existing_events
+
+    assert_equal(1, new_events.length)
+    assert_equal("John Smith", new_events.first.subject.name)
+    assert_equal("create", new_events.first.action)
+    assert_equal("Unique tags", new_events.first.objekt.commentable.title)
+
     extra_comments = Comment.find(:all) - existing_comments 
     
     assert_equal(extra_comments.length, 1)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]