diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index ea1e56394b867f53a8f5cffef911f219baee15cb..7333389b8cc02db3fb3ab41a1df8c50e8b548a0f 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -21,6 +21,9 @@ class StatusMessagesController < ApplicationController @status_message = current_user.build_post(:status_message, params[:status_message]) aspects = current_user.aspects_from_ids(params[:aspect_ids]) + if !photos.empty? + @status_message.photos << photos + end if @status_message.save Rails.logger.info("event=create type=status_message chars=#{params[:status_message][:message].length}") @@ -31,14 +34,12 @@ class StatusMessagesController < ApplicationController if !photos.empty? for photo in photos was_pending = photo.pending - photo.public = public_flag - photo.pending = false - @status_message.photos << photo if was_pending current_user.add_to_streams(photo, aspects) current_user.dispatch_post(photo) end end + photos.update_all(:pending => false, :public => public_flag) end respond_to do |format| @@ -47,6 +48,9 @@ class StatusMessagesController < ApplicationController format.mobile{ redirect_to :back} end else + if !photos.empty? + photos.update_all(:status_message_id => nil) + end respond_to do |format| format.js { render :json =>{:errors => @status_message.errors.full_messages}, :status => 406 } format.html {redirect_to :back} diff --git a/spec/controllers/status_messages_controller_spec.rb b/spec/controllers/status_messages_controller_spec.rb index 1299fcf7dd600f0515842dd7b71c96c524039a10..d51fb2ef318cb58854554d436c1ce7e504c5de96 100644 --- a/spec/controllers/status_messages_controller_spec.rb +++ b/spec/controllers/status_messages_controller_spec.rb @@ -127,6 +127,11 @@ describe StatusMessagesController do @hash = status_message_hash @hash[:photos] = [@photo1.id.to_s, @photo2.id.to_s] end + it "will post a photo without text" do + @hash.delete :message + post :create, @hash + response.should be_redirect + end it "dispatches all referenced photos" do @user1.should_receive(:dispatch_post).exactly(3).times post :create, @hash diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index dee3fd9d9b9c091cc678520f9d3b1a33f0d0890e..7beb656e0685694536ae2d74324ad0d1f24a5b0f 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -43,7 +43,7 @@ describe StatusMessage do photo.save! n.photos << photo - n.valid? + n.valid?.should be_true n.errors.full_messages.should == [] end