aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_outgoing_message_controller.rb36
-rw-r--r--app/controllers/admin_request_controller.rb33
-rw-r--r--app/views/admin_outgoing_message/edit.html.erb (renamed from app/views/admin_request/edit_outgoing.html.erb)0
-rw-r--r--config/routes.rb9
-rw-r--r--spec/controllers/admin_outgoing_message_controller_spec.rb23
-rw-r--r--spec/controllers/admin_request_controller_spec.rb12
6 files changed, 65 insertions, 48 deletions
diff --git a/app/controllers/admin_outgoing_message_controller.rb b/app/controllers/admin_outgoing_message_controller.rb
new file mode 100644
index 000000000..3f53838d6
--- /dev/null
+++ b/app/controllers/admin_outgoing_message_controller.rb
@@ -0,0 +1,36 @@
+class AdminOutgoingMessageController < AdminController
+
+ def edit
+ @outgoing_message = OutgoingMessage.find(params[:id])
+ end
+
+ def destroy
+ @outgoing_message = OutgoingMessage.find(params[:outgoing_message_id])
+ @info_request = @outgoing_message.info_request
+ outgoing_message_id = @outgoing_message.id
+
+ @outgoing_message.fully_destroy
+ @outgoing_message.info_request.log_event("destroy_outgoing",
+ { :editor => admin_current_user(), :deleted_outgoing_message_id => outgoing_message_id })
+
+ flash[:notice] = 'Outgoing message successfully destroyed.'
+ redirect_to admin_request_show_url(@info_request)
+ end
+
+ def update
+ @outgoing_message = OutgoingMessage.find(params[:id])
+
+ old_body = @outgoing_message.body
+
+ if @outgoing_message.update_attributes(params[:outgoing_message])
+ @outgoing_message.info_request.log_event("edit_outgoing",
+ { :outgoing_message_id => @outgoing_message.id, :editor => admin_current_user(),
+ :old_body => old_body, :body => @outgoing_message.body })
+ flash[:notice] = 'Outgoing message successfully updated.'
+ redirect_to admin_request_show_url(@outgoing_message.info_request)
+ else
+ render :action => 'edit'
+ end
+ end
+
+end
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb
index 66989ea93..d965b86b0 100644
--- a/app/controllers/admin_request_controller.rb
+++ b/app/controllers/admin_request_controller.rb
@@ -106,39 +106,6 @@ class AdminRequestController < AdminController
redirect_to admin_request_list_url
end
- def edit_outgoing
- @outgoing_message = OutgoingMessage.find(params[:id])
- end
-
- def destroy_outgoing
- @outgoing_message = OutgoingMessage.find(params[:outgoing_message_id])
- @info_request = @outgoing_message.info_request
- outgoing_message_id = @outgoing_message.id
-
- @outgoing_message.fully_destroy
- @outgoing_message.info_request.log_event("destroy_outgoing",
- { :editor => admin_current_user(), :deleted_outgoing_message_id => outgoing_message_id })
-
- flash[:notice] = 'Outgoing message successfully destroyed.'
- redirect_to admin_request_show_url(@info_request)
- end
-
- def update_outgoing
- @outgoing_message = OutgoingMessage.find(params[:id])
-
- old_body = @outgoing_message.body
-
- if @outgoing_message.update_attributes(params[:outgoing_message])
- @outgoing_message.info_request.log_event("edit_outgoing",
- { :outgoing_message_id => @outgoing_message.id, :editor => admin_current_user(),
- :old_body => old_body, :body => @outgoing_message.body })
- flash[:notice] = 'Outgoing message successfully updated.'
- redirect_to admin_request_show_url(@outgoing_message.info_request)
- else
- render :action => 'edit_outgoing'
- end
- end
-
def edit_comment
@comment = Comment.find(params[:id])
end
diff --git a/app/views/admin_request/edit_outgoing.html.erb b/app/views/admin_outgoing_message/edit.html.erb
index a0c60520a..a0c60520a 100644
--- a/app/views/admin_request/edit_outgoing.html.erb
+++ b/app/views/admin_outgoing_message/edit.html.erb
diff --git a/config/routes.rb b/config/routes.rb
index 5af94768c..cbebe85f3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -187,9 +187,6 @@ Alaveteli::Application.routes.draw do
match '/admin/request/edit/:id' => 'admin_request#edit', :as => :admin_request_edit
match '/admin/request/update/:id' => 'admin_request#update', :as => :admin_request_update
match '/admin/request/destroy/:id' => 'admin_request#fully_destroy', :as => :admin_request_destroy
- match '/admin/request/edit_outgoing/:id' => 'admin_request#edit_outgoing', :as => :admin_request_edit_outgoing
- match '/admin/request/destroy_outgoing/:id' => 'admin_request#destroy_outgoing', :as => :admin_request_destroy_outgoing
- match '/admin/request/update_outgoing/:id' => 'admin_request#update_outgoing', :as => :admin_request_update_outgoing
match '/admin/request/edit_comment/:id' => 'admin_request#edit_comment', :as => :admin_request_edit_comment
match '/admin/request/update_comment/:id' => 'admin_request#update_comment', :as => :admin_request_update_comment
match '/admin/request/destroy_incoming' => 'admin_request#destroy_incoming', :as => :admin_request_destroy_incoming
@@ -202,6 +199,12 @@ Alaveteli::Application.routes.draw do
match '/admin/request/hide/:id' => 'admin_request#hide_request', :as => :admin_request_hide
####
+ #### AdminOutgoingMessage controller
+ match '/admin/request/edit_outgoing/:id' => 'admin_outgoing_message#edit', :as => :admin_request_edit_outgoing
+ match '/admin/request/destroy_outgoing/:id' => 'admin_outgoing_message#destroy', :as => :admin_request_destroy_outgoing
+ match '/admin/request/update_outgoing/:id' => 'admin_outgoing_message#update', :as => :admin_request_update_outgoing
+ ####
+
#### AdminUser controller
match '/admin/user' => 'admin_user#index', :as => :admin_user_index
match '/admin/user/list' => 'admin_user#list', :as => :admin_user_list
diff --git a/spec/controllers/admin_outgoing_message_controller_spec.rb b/spec/controllers/admin_outgoing_message_controller_spec.rb
new file mode 100644
index 000000000..b97df69d5
--- /dev/null
+++ b/spec/controllers/admin_outgoing_message_controller_spec.rb
@@ -0,0 +1,23 @@
+require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+
+describe AdminOutgoingMessageController do
+ render_views
+ before { basic_auth_login @request }
+
+ before(:each) do
+ load_raw_emails_data
+ end
+
+ it "edits an outgoing message" do
+ get :edit, :id => outgoing_messages(:useless_outgoing_message)
+ end
+
+ it "saves edits to an outgoing_message" do
+ outgoing_messages(:useless_outgoing_message).body.should include("fancy dog")
+ post :update, { :id => outgoing_messages(:useless_outgoing_message), :outgoing_message => { :body => "Why do you have such a delicious cat?" } }
+ request.flash[:notice].should include('successful')
+ ir = OutgoingMessage.find(outgoing_messages(:useless_outgoing_message).id)
+ ir.body.should include("delicious cat")
+ end
+
+end
diff --git a/spec/controllers/admin_request_controller_spec.rb b/spec/controllers/admin_request_controller_spec.rb
index b7b726507..ed9327f25 100644
--- a/spec/controllers/admin_request_controller_spec.rb
+++ b/spec/controllers/admin_request_controller_spec.rb
@@ -52,18 +52,6 @@ describe AdminRequestController, "when administering requests" do
end
- it "edits an outgoing message" do
- get :edit_outgoing, :id => outgoing_messages(:useless_outgoing_message)
- end
-
- it "saves edits to an outgoing_message" do
- outgoing_messages(:useless_outgoing_message).body.should include("fancy dog")
- post :update_outgoing, { :id => outgoing_messages(:useless_outgoing_message), :outgoing_message => { :body => "Why do you have such a delicious cat?" } }
- request.flash[:notice].should include('successful')
- ir = OutgoingMessage.find(outgoing_messages(:useless_outgoing_message).id)
- ir.body.should include("delicious cat")
- end
-
describe 'when fully destroying a request' do
it 'expires the file cache for that request' do