aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_request_controller.rb32
-rw-r--r--app/views/admin_request/show.rhtml29
2 files changed, 59 insertions, 2 deletions
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb
index f077691ff..a9cc54c89 100644
--- a/app/controllers/admin_request_controller.rb
+++ b/app/controllers/admin_request_controller.rb
@@ -188,6 +188,38 @@ class AdminRequestController < AdminController
redirect_to request_admin_url(destination_request)
end
+ # change user or public body of a request magically
+ def move_request
+ info_request = InfoRequest.find(params[:info_request_id])
+ if params[:commit] == 'Move request to user' && !params[:user_url_name].blank?
+ destination_user = User.find_by_url_name(params[:user_url_name])
+ if destination_user.nil?
+ flash[:error] = "Couldn't find user '" + params[:user_url_name] + "'"
+ else
+ info_request.user = destination_user
+ info_request.save!
+ info_request.reindex_request_events
+ flash[:notice] = "Message has been moved to new user"
+ end
+ redirect_to request_admin_url(info_request)
+ elsif params[:commit] == 'Move request to authority' && !params[:public_body_url_name].blank?
+ destination_public_body = PublicBody.find_by_url_name(params[:public_body_url_name])
+ if destination_public_body.nil?
+ flash[:error] = "Couldn't find public body '" + params[:public_body_url_name] + "'"
+ else
+ info_request.public_body = destination_public_body
+ info_request.save!
+ info_request.reindex_request_events
+ flash[:notice] = "Request has been moved to new body"
+ end
+
+ redirect_to request_admin_url(info_request)
+ else
+ flash[:error] = "Please enter the user or authority to move the request to"
+ redirect_to request_admin_url(info_request)
+ end
+ end
+
def generate_upload_url
info_request = InfoRequest.find(params[:id])
diff --git a/app/views/admin_request/show.rhtml b/app/views/admin_request/show.rhtml
index a6256478a..2e5c73359 100644
--- a/app/views/admin_request/show.rhtml
+++ b/app/views/admin_request/show.rhtml
@@ -3,6 +3,8 @@
<h1><%=@title%></h1>
+<% form_tag '../move_request', { :class => "inline" } do %>
+<%= hidden_field_tag 'info_request_id', @info_request.id %>
<p>
<% for column in InfoRequest.content_columns %>
<strong><%= column.human_name %>:</strong> <%=h @info_request.send(column.name) %>
@@ -16,10 +18,33 @@
<br/>
<% end %>
<% end %>
-<strong>Created by:</strong> <%= user_both_links(@info_request.user) %> <br>
-<strong>Public authority:</strong> <%= public_body_both_links(@info_request.public_body) %> <br>
+ <strong>Created by:</strong> <%= user_both_links(@info_request.user) %>
+ <span>
+ <span>
+ (<%= link_to_function("move...", "$(this).up(1).childElements().invoke('toggle')") %>)
+ </span>
+ <span style="display:none;">
+ <strong>url_name of new user:</strong>
+ <%= text_field_tag 'user_url_name', "", { :size => 20 } %>
+ <%= submit_tag "Move request to user" %>
+ </span>
+ </span>
+ <br>
+<strong>Public authority:</strong> <%= public_body_both_links(@info_request.public_body) %>
+ <span>
+ <span>
+ (<%= link_to_function("move...", "$(this).up(1).childElements().invoke('toggle')") %>)
+ </span>
+ <span style="display:none;">
+ <strong>url_name of new authority:</strong>
+ <%= text_field_tag 'public_body_url_name', "", { :size => 20 } %>
+ <%= submit_tag "Move request to authority" %>
+ </span>
+ </span>
+ <br>
<strong>Incoming email address:</strong> <%= link_to h(@info_request.incoming_email), "mailto:" + @info_request.incoming_email %> <br>
</p>
+<% end %>
<p>
<%= link_to 'Public page', main_url(request_url(@info_request)) %>