diff options
-rw-r--r-- | app/controllers/admin_request_controller.rb | 32 | ||||
-rw-r--r-- | app/views/admin_request/show.rhtml | 29 |
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)) %> |