Diff
Modified: branches/events/app/controllers/blobs_controller.rb (3106 => 3107)
--- branches/events/app/controllers/blobs_controller.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/app/controllers/blobs_controller.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -314,11 +314,26 @@
# POST /files/1;favourite
def favourite
- @blob.bookmarks << Bookmark.create(:user => current_user, :bookmarkable => @blob) unless @blob.bookmarked_by_user?(current_user)
+
+ bookmark = Bookmark.new(:user => current_user, :bookmarkable => @blob)
+
+ success = bookmark.save
+
+ if success
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => bookmark)
+ end
respond_to do |format|
- flash[:notice] = "You have successfully added this item to your favourites."
- format.html { redirect_to blob_url(@blob) }
+
+ format.html {
+ if success
+ flash[:notice] = "You have successfully added this item to your favourites."
+ else
+ flash[:error] = "Unable to create favourite."
+ end
+
+ redirect_to blob_url(@blob)
+ }
end
end
Modified: branches/events/app/controllers/packs_controller.rb (3106 => 3107)
--- branches/events/app/controllers/packs_controller.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/app/controllers/packs_controller.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -192,11 +192,26 @@
# POST /packs/1;favourite
def favourite
- @pack.bookmarks << Bookmark.create(:user => current_user, :bookmarkable => @pack) unless @pack.bookmarked_by_user?(current_user)
+
+ bookmark = Bookmark.new(:user => current_user, :bookmarkable => @pack)
+
+ success = bookmark.save
+
+ if success
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => bookmark)
+ end
respond_to do |format|
- flash[:notice] = "You have successfully added this item to your favourites."
- format.html { redirect_to pack_url(@pack) }
+
+ format.html {
+ if success
+ flash[:notice] = "You have successfully added this item to your favourites."
+ else
+ flash[:error] = "Unable to create favourite."
+ end
+
+ redirect_to pack_url(@pack)
+ }
end
end
Modified: branches/events/app/controllers/workflows_controller.rb (3106 => 3107)
--- branches/events/app/controllers/workflows_controller.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/app/controllers/workflows_controller.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -42,14 +42,29 @@
# POST /workflows/1;favourite
def favourite
- Bookmark.create(:user => current_user, :bookmarkable => @workflow) unless @workflow.bookmarked_by_user?(current_user)
+
+ bookmark = Bookmark.new(:user => current_user, :bookmarkable => @workflow)
+
+ success = bookmark.save
+
+ if success
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => bookmark)
+ end
respond_to do |format|
- flash[:notice] = "You have successfully added this item to your favourites."
- format.html { redirect_to workflow_url(@workflow) }
+
+ format.html {
+ if success
+ flash[:notice] = "You have successfully added this item to your favourites."
+ else
+ flash[:error] = "Unable to create favourite."
+ end
+
+ redirect_to workflow_url(@workflow)
+ }
end
end
-
+
# DELETE /workflows/1;favourite_delete
def favourite_delete
@workflow.bookmarks.each do |b|
Modified: branches/events/app/helpers/application_helper.rb (3106 => 3107)
--- branches/events/app/helpers/application_helper.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/app/helpers/application_helper.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -547,23 +547,6 @@
def activity_feed(opts = {})
- sentences = {
- "register" => "$S joined #{Conf.sitename}.",
-
- "create Workflow" => "$S uploaded $O.",
- "create version Workflow" => "$S uploaded a new version of $O.",
- "edit Workflow" => "$S edited $O.",
- "edit version Workflow" => "$S edited version $E of $O.",
-
- "create Blob" => "$S uploaded $O.",
- "create version Blob" => "$S uploaded a new version of $O.",
- "edit Blob" => "$S edited $O.",
- "edit version Blob" => "$S edited version $E of $O.",
-
- "create Pack" => "$S created $O.",
- "create Blog" => "$S created $O.",
- }
-
conditions_expr = []
conditions_operands = []
@@ -590,51 +573,29 @@
markup << events.map do |event|
- if event.objekt
- sentence = sentences["#{event.action} #{event.objekt_type}"]
+ action = "" event.objekt
+ "#{event.action} #{event.objekt_type}"
else
- sentence = sentences["#{event.action}"]
+ "#{event.action}"
end
- next unless sentence
-
- if sentence.include?("$S")
-
- lhs_url = send("#{Object.const_get(event.subject_type).table_name.singularize}_path".to_sym,
- :id => event.subject_id)
-
- if lhs_url == request.path
- lhs = h(event.subject_label)
- else
- lhs = link_to(event.subject_label, lhs_url)
- end
-
- sentence = sentence.sub("$S", lhs)
+ 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}"
end
- if sentence.include?("$O")
+ "<li>#{sentence}.</li>"
- if event.objekt_id
-
- rhs_url = send("#{event.objekt_type.constantize.table_name.singularize}_path".to_sym,
- :id => event.objekt_id)
- end
-
- if rhs_url == request.path
- rhs = h(event.objekt_label)
- else
- rhs = link_to(event.objekt_label, rhs_url)
- end
-
- sentence = sentence.sub("$O", rhs)
- end
-
- if sentence.include?("$E")
- sentence = sentence.sub("$E", event.extra)
- end
-
- "<li>#{sentence}</li>"
-
end.join
markup << '</ol>'
Modified: branches/events/lib/rest.rb (3106 => 3107)
--- branches/events/lib/rest.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/lib/rest.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -1986,7 +1986,13 @@
ob.bookmarkable = target
end
- return rest_response(400, :object => ob) unless ob.save
+ success = ob.save
+
+ if success
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => ob)
+ 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 (3106 => 3107)
--- branches/events/test/functional/api_controller_test.rb 2012-08-24 12:23:49 UTC (rev 3106)
+++ branches/events/test/functional/api_controller_test.rb 2012-08-24 13:37:38 UTC (rev 3107)
@@ -789,6 +789,8 @@
existing_favourites = Bookmark.find(:all)
+ existing_events = Event.all
+
rest_request(:post, 'favourite', "<?xml version='1.0'?>
<favourite>
<object resource='#{workflow_url}'/>
@@ -796,6 +798,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.bookmarkable.title)
+
extra_favourites = Bookmark.find(:all) - existing_favourites
assert_equal(extra_favourites.length, 1)