Diff
Modified: branches/events/app/controllers/blobs_controller.rb (3105 => 3106)
--- branches/events/app/controllers/blobs_controller.rb 2012-08-24 10:05:17 UTC (rev 3105)
+++ branches/events/app/controllers/blobs_controller.rb 2012-08-24 12:23:49 UTC (rev 3106)
@@ -152,6 +152,7 @@
respond_to do |format|
if @blob.save
+ Event.create(:subject => current_user, :action ="" 'create', :objekt => @blob)
if params[:blob][:tag_list]
@blob.tags_user_id = current_user
@blob.tag_list = convert_tags_to_gem_format params[:blob][:tag_list]
@@ -218,6 +219,13 @@
respond_to do |format|
if @blob.update_attributes(params[:blob])
+
+ if @blob.new_version_number
+ Event.create(:subject => current_user, :action ="" 'create version', :objekt => @blob)
+ else
+ Event.create(:subject => current_user, :action ="" 'edit', :objekt => @blob)
+ end
+
@blob.refresh_tags(convert_tags_to_gem_format(params[:blob][:tag_list]), current_user) if params[:blob][:tag_list]
policy_err_msg = update_policy(@blob, params)
Modified: branches/events/app/helpers/application_helper.rb (3105 => 3106)
--- branches/events/app/helpers/application_helper.rb 2012-08-24 10:05:17 UTC (rev 3105)
+++ branches/events/app/helpers/application_helper.rb 2012-08-24 12:23:49 UTC (rev 3106)
@@ -548,11 +548,20 @@
def activity_feed(opts = {})
sentences = {
- "register" => "$S joined #{Conf.sitename}.",
- "create Workflow" => "$S uploaded $O.",
- "create Blob" => "$S uploaded $O.",
- "create Pack" => "$S created $O.",
- "create Blog" => "$S created $O."
+ "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 = []
@@ -575,7 +584,7 @@
conditions = [conditions_expr] + conditions_operands
end
- events = Event.find(:all, :order => 'created_at ASC', :conditions => conditions, :limit => 15)
+ events = Event.find(:all, :order => 'created_at ASC', :conditions => conditions, :order => 'created_at DESC', :limit => 15)
markup = '<ol class="activity-feed">'
Modified: branches/events/lib/rest.rb (3105 => 3106)
--- branches/events/lib/rest.rb 2012-08-24 10:05:17 UTC (rev 3105)
+++ branches/events/lib/rest.rb 2012-08-24 12:23:49 UTC (rev 3106)
@@ -1252,7 +1252,7 @@
ob.content_blob = ContentBlob.new(:data ="" content) if content
- new_version = action == 'create' && opts[:query][:id]
+ new_version = action == 'create' && opts[:query]['id'] != nil
edit_version = action == 'edit' && opts[:query]['version'] != nil
if new_version
@@ -1261,6 +1261,15 @@
success = ob.save
+ if success
+ case "#{action} #{new_version || edit_version}"
+ when "create false": Event.create(:subject => opts[:user], :action ="" 'create', :objekt => ob)
+ when "create true": Event.create(:subject => opts[:user], :action ="" 'create version', :objekt => ob)
+ when "edit false": Event.create(:subject => opts[:user], :action ="" 'edit', :objekt => ob)
+ when "edit true": Event.create(:subject => opts[:user], :action ="" 'edit version', :objekt => ob, :extra => ob.version)
+ end
+ end
+
return rest_response(400, :object => ob) unless success
if opts[:query]['version'].nil?
Modified: branches/events/test/functional/api_controller_test.rb (3105 => 3106)
--- branches/events/test/functional/api_controller_test.rb 2012-08-24 10:05:17 UTC (rev 3105)
+++ branches/events/test/functional/api_controller_test.rb 2012-08-24 12:23:49 UTC (rev 3106)
@@ -229,6 +229,8 @@
# post a file
+ existing_events = Event.all
+
rest_request(:post, 'file', "<?xml version='1.0'?>
<file>
<title>#{title}</title>
@@ -240,6 +242,14 @@
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(title, new_events.first.objekt.title)
+
extra_files = Blob.find(:all) - existing_files
assert_equal(extra_files.length, 1)
@@ -277,6 +287,8 @@
setup
login_as(:john)
+ existing_events = Event.all
+
rest_request(:put, 'file', "<?xml version='1.0'?>
<file>
<title>#{title2}</title>
@@ -284,6 +296,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("edit", new_events.first.action)
+ assert_equal(title2, new_events.first.objekt.title)
+
# get the updated file
response = rest_request(:get, 'file', nil, "id" => file.id,
@@ -296,6 +315,8 @@
# add a new version of the file
+ existing_events = Event.all
+
rest_request(:post, 'file', "<?xml version='1.0'?>
<file>
<title>#{title2}</title>
@@ -307,12 +328,21 @@
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 version", new_events.first.action)
+ assert_equal(title2, new_events.first.objekt.title)
+
file.reload
assert_equal(2, file.versions.length)
# update the first version of the file
+ existing_events = Event.all
+
rest_request(:put, 'file', "<?xml version='1.0'?>
<file>
<title>#{title3}</title>
@@ -320,6 +350,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("edit version", new_events.first.action)
+ assert_equal(title3, new_events.first.objekt.title)
+
file.reload
assert_equal(title3, file.find_version(1).title);
assert_equal(title2, file.find_version(2).title);