aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/request_controller.rb17
-rw-r--r--app/helpers/link_to_helper.rb4
-rw-r--r--app/views/request/_sidebar.rhtml3
-rw-r--r--config/routes.rb1
-rw-r--r--public/stylesheets/main.css24
5 files changed, 47 insertions, 2 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index 4005b15eb..29bdb5c88 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -64,11 +64,26 @@ class RequestController < ApplicationController
@last_response = @info_request.get_last_response
end
+ # Extra info about a request, such as event history
+ def details
+ @info_request = InfoRequest.find_by_url_title(params[:url_title])
+ if !@info_request.user_can_view?(authenticated_user)
+ render :template => 'request/hidden', :status => 410 # gone
+ return
+ end
+
+ @columns = ['id', 'event_type', 'created_at', 'described_state', 'last_described_at', 'calculated_state' ]
+ end
+
# Requests similar to this one
def similar
@per_page = 25
@page = (params[:page] || "1").to_i
@info_request = InfoRequest.find_by_url_title(params[:url_title])
+ if !@info_request.user_can_view?(authenticated_user)
+ render :template => 'request/hidden', :status => 410 # gone
+ return
+ end
@xapian_object = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
:offset => (@page - 1) * @per_page, :limit => @per_page, :collapse_by_prefix => 'request_collapse')
@@ -522,7 +537,7 @@ class RequestController < ApplicationController
# Test for hidden
incoming_message = IncomingMessage.find(params[:incoming_message_id])
if !incoming_message.info_request.user_can_view?(authenticated_user)
- render :template => 'request/hidden'
+ render :template => 'request/hidden', :status => 410 # gone
end
end
diff --git a/app/helpers/link_to_helper.rb b/app/helpers/link_to_helper.rb
index 6ee0edb2b..aa63ef65d 100644
--- a/app/helpers/link_to_helper.rb
+++ b/app/helpers/link_to_helper.rb
@@ -33,6 +33,10 @@ module LinkToHelper
return similar_request_url(:url_title => info_request.url_title, :only_path => true)
end
+ def request_details_url(info_request)
+ return details_request_url(:url_title => info_request.url_title, :only_path => true)
+ end
+
# Incoming / outgoing messages
def incoming_message_url(incoming_message)
return request_url(incoming_message.info_request)+"#incoming-"+incoming_message.id.to_s
diff --git a/app/views/request/_sidebar.rhtml b/app/views/request/_sidebar.rhtml
index 0cb9207d8..1509bf494 100644
--- a/app/views/request/_sidebar.rhtml
+++ b/app/views/request/_sidebar.rhtml
@@ -31,6 +31,7 @@
<!-- Important terms: <%= @xapian_similar.important_terms.join(" ") %> -->
<% end %>
+ <p><%= link_to "Event history details", request_details_url(@info_request) %></p>
<p><a href="/help/about#commercial">Are you the owner of
any commercial copyright on this page?</a></p>
-</div> \ No newline at end of file
+</div>
diff --git a/config/routes.rb b/config/routes.rb
index 14df1c9f7..81739b803 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -37,6 +37,7 @@ ActionController::Routing::Routes.draw do |map|
request.new_request_to_body '/new/:public_body_id', :action => 'new'
request.show_request '/request/:url_title', :action => 'show'
+ request.details_request '/details/request/:url_title', :action => 'details'
request.similar_request '/similar/request/:url_title', :action => 'similar'
request.describe_state '/request/:id/describe', :action => 'describe_state'
diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css
index 97ac34a2a..df363c973 100644
--- a/public/stylesheets/main.css
+++ b/public/stylesheets/main.css
@@ -1048,3 +1048,27 @@ div.act_link img {
font-size: 0.8em;
}
+/*------------------------------------------------ request details */
+
+#request_details table {
+ border-collapse: collapse;
+ margin-bottom: 1em;
+}
+#request_details td, th {
+ border: solid 1px #000000;
+}
+#request_details td {
+ vertical-align: top
+}
+#request_details td {
+ max-width: 30em;
+ overflow: auto;
+}
+#request_details tr.odd {
+ background-color: #bbbbbb;
+}
+#request_details tr.even {
+ background-color: #dddddd;
+}
+
+