aboutsummaryrefslogtreecommitdiffstats
path: root/app/views
diff options
context:
space:
mode:
Diffstat (limited to 'app/views')
-rw-r--r--app/views/admin_public_body/_form.rhtml20
-rw-r--r--app/views/admin_public_body/_tag_help.rhtml2
-rw-r--r--app/views/admin_public_body/import_csv.rhtml35
-rw-r--r--app/views/admin_user/show.rhtml11
-rw-r--r--app/views/admin_user/show_bounce_message.rhtml3
-rw-r--r--app/views/comment/_single_comment.rhtml2
-rw-r--r--app/views/comment/new.rhtml3
-rw-r--r--app/views/general/_credits.rhtml2
-rw-r--r--app/views/general/_footer.rhtml6
-rw-r--r--app/views/general/_frontpage_intro_sentence.rhtml7
-rw-r--r--app/views/general/_orglink.rhtml2
-rw-r--r--app/views/general/_topnav.rhtml10
-rw-r--r--app/views/general/blog.rhtml101
-rw-r--r--app/views/general/frontpage.rhtml71
-rw-r--r--app/views/general/search.rhtml226
-rw-r--r--app/views/help/_sidebar.rhtml9
-rw-r--r--app/views/help/about.rhtml96
-rw-r--r--app/views/help/alaveteli.rhtml30
-rw-r--r--app/views/help/api.rhtml155
-rw-r--r--app/views/help/contact.rhtml8
-rw-r--r--app/views/help/credits.rhtml161
-rw-r--r--app/views/help/officers.rhtml476
-rw-r--r--app/views/help/privacy.rhtml100
-rw-r--r--app/views/help/requesting.rhtml548
-rw-r--r--app/views/help/unhappy.rhtml2
-rw-r--r--app/views/layouts/default.rhtml136
-rw-r--r--app/views/layouts/no_chrome.rhtml41
-rw-r--r--app/views/public_body/_body_listing.rhtml2
-rw-r--r--app/views/public_body/_search_ahead.rhtml18
-rw-r--r--app/views/public_body/list.rhtml32
-rw-r--r--app/views/public_body/show.rhtml169
-rw-r--r--app/views/request/_after_actions.rhtml10
-rw-r--r--app/views/request/_correspondence.rhtml20
-rw-r--r--app/views/request/_followup.rhtml37
-rw-r--r--app/views/request/_next_actions.rhtml1
-rw-r--r--app/views/request/_request_filter_form.rhtml53
-rw-r--r--app/views/request/_request_listing_via_event.rhtml29
-rw-r--r--app/views/request/_search_ahead.rhtml12
-rw-r--r--app/views/request/_sidebar.rhtml32
-rw-r--r--app/views/request/list.rhtml53
-rw-r--r--app/views/request/new.rhtml228
-rw-r--r--app/views/request/preview.rhtml10
-rw-r--r--app/views/request/select_authority.rhtml68
-rw-r--r--app/views/request/show.rhtml2
-rw-r--r--app/views/request/simple_correspondence.rhtml45
-rw-r--r--app/views/track/_tracking_links.rhtml17
-rw-r--r--app/views/track_mailer/event_digest.rhtml12
-rw-r--r--app/views/user/_signin.rhtml7
-rw-r--r--app/views/user/_signup.rhtml5
-rw-r--r--app/views/user/set_draft_profile_photo.rhtml4
-rw-r--r--app/views/user/show.rhtml69
-rw-r--r--app/views/user/sign.rhtml21
-rw-r--r--app/views/user/signin_successful.rhtml9
-rw-r--r--app/views/user/wrong_user.rhtml6
54 files changed, 1819 insertions, 1415 deletions
diff --git a/app/views/admin_public_body/_form.rhtml b/app/views/admin_public_body/_form.rhtml
index 191b29e89..1cdc9b3fe 100644
--- a/app/views/admin_public_body/_form.rhtml
+++ b/app/views/admin_public_body/_form.rhtml
@@ -26,20 +26,20 @@
<div id="div-locale-<%=locale.to_s%>">
<%= t.hidden_field :locale, :value => locale.to_s %>
- <p><label for="public_body_name">Name</label><br/>
- <%= t.text_field :name, :size => 60 %></p>
+ <p><label for="<%= form_tag_id(t.object_name, :name, locale) %>">Name</label><br/>
+ <%= t.text_field :name, :size => 60, :id => form_tag_id(t.object_name, :name, locale) %></p>
- <p><label for="public_body_short_name">Short name <small>(only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL - don't worry about breaking URLs through renaming, as the history is used to redirect)</small></label><br/>
- <%= t.text_field :short_name, :size => 60 %></p>
+ <p><label for="<%= form_tag_id(t.object_name, :short_name, locale) %>">Short name <small>(only put in abbreviations which are really used, otherwise leave blank. Short or long name is used in the URL - don't worry about breaking URLs through renaming, as the history is used to redirect)</small></label><br/>
+ <%= t.text_field :short_name, :size => 60, :id => form_tag_id(t.object_name, :short_name, locale) %></p>
- <p><label for="public_body_request_email">Request email <small>(set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA)</small></label><br/>
- <%= t.text_field :request_email, :size => 40 %></p>
+ <p><label for="<%= form_tag_id(t.object_name, :request_email, locale) %>">Request email <small>(set to <strong>blank</strong> (empty string) if can't find an address; these emails are <strong>public</strong> as anyone can view with a CAPTCHA)</small></label><br/>
+ <%= t.text_field :request_email, :size => 40, :id => form_tag_id(t.object_name, :request_email, locale) %></p>
- <p><label for="public_body_publication_scheme">Publication scheme URL</label><br/>
- <%= t.text_field :publication_scheme, :size => 60 %></p>
+ <p><label for="<%= form_tag_id(t.object_name, :publication_scheme, locale) %>">Publication scheme URL</label><br/>
+ <%= t.text_field :publication_scheme, :size => 60, :id => form_tag_id(t.object_name, :publication_scheme, locale) %></p>
- <p><label for="public_body_notes">Public notes</label> <small>(HTML, for users to consider when making FOI requests to the authority)</small><br/>
- <%= t.text_area :notes, :rows => 3, :cols => 60 %></p>
+ <p><label for="<%= form_tag_id(t.object_name, :notes, locale) %>">Public notes</label> <small>(HTML, for users to consider when making FOI requests to the authority)</small><br/>
+ <%= t.text_area :notes, :rows => 3, :cols => 60, :id => form_tag_id(t.object_name, :notes, locale) %></p>
</div>
<%
end
diff --git a/app/views/admin_public_body/_tag_help.rhtml b/app/views/admin_public_body/_tag_help.rhtml
index 7954ff992..0d0f84dda 100644
--- a/app/views/admin_public_body/_tag_help.rhtml
+++ b/app/views/admin_public_body/_tag_help.rhtml
@@ -1,7 +1,7 @@
<div id="tag_help">
<h2>List of tags</h2>
<% first_row = true %>
- <% for row in PublicBodyCategories::CATEGORIES_WITH_HEADINGS %>
+ <% for row in PublicBodyCategories::get().with_headings() %>
<% if row.instance_of?(Array) %>
<% if row[0] != 'other' %>
<strong><%= row[0] %></strong>=<%= row[1] %>
diff --git a/app/views/admin_public_body/import_csv.rhtml b/app/views/admin_public_body/import_csv.rhtml
index 3bcc4bf41..ecd2c38b7 100644
--- a/app/views/admin_public_body/import_csv.rhtml
+++ b/app/views/admin_public_body/import_csv.rhtml
@@ -12,15 +12,23 @@
<% form_tag 'import_csv', :multipart => true do %>
<p>
- <label for="tag">Tag to add entries to / alter entries for:</label>
- <%= text_field_tag 'tag', params[:tag] %>
- </p>
-
- <p>
<label for="csv_file">CSV file:</label>
<%= file_field_tag :csv_file, :size => 40 %>
</p>
+ <p>
+ <label for="tag">Optional: Tag to add entries to / alter entries for:</label>
+ <%= text_field_tag 'tag', params[:tag] %>
+ </p>
+
+ <p>
+ <label for="tag_behaviour">What to do with existing tags?</label>
+ <%= select_tag 'tag_behaviour',
+ "<option value='add' selected>Add new tags to existing ones</option>
+ <option value='replace'>Replace existing tags with new ones</option>"
+ %>
+ </p>
+
<p><strong>CSV file format:</strong> A first row with the list of fields,
starting with '#', is optional but highly recommended. The fields 'name'
and 'request_email' are required; additionaly, translated values are supported by
@@ -28,13 +36,13 @@
</p>
<blockquote>
- #id,name,request_email,name.es<br/>
- 1,An Authority,a@example.com,Un organismo<br/>
- 2,Another One,another@example.com,Otro organismo<br/>
+ #id,name,request_email,name.es,tag_string<br/>
+ 1,An Authority,a@example.com,Un organismo,a_tag another_tag<br/>
+ 2,Another One,another@example.com,Otro organismo,a_tag<br/>
</blockquote>
- <p>Supported files: name (i18n), short_name (i18n), request_email (i18n), notes (i18n),
- publication_scheme (i18n), home_page.</p>
+ <p>Supported fields: name (i18n), short_name (i18n), request_email (i18n), notes (i18n),
+ publication_scheme (i18n), home_page, tag_string (tags separated by spaces).</p>
<p><strong>Note:</strong> Choose <strong>dry run</strong> to test, without
actually altering the database. Choose <strong>upload</strong> to actually
@@ -42,6 +50,11 @@
of the changes. When uploading, any changes since last import will be
overwritten - e.g. email addresses changed back.
</p>
+
+ <p><strong>Note:</strong> The import tag will also be added to the imported bodies
+ if no tags are provided in the CSV file or if the import mode is set to
+ "Add new tags to existing ones".
+ </p>
<p><%= submit_tag 'Dry run' %> <%= submit_tag 'Upload' %></p>
<% end %>
@@ -49,7 +62,7 @@
<hr>
<p>Standard tags:
- <% for category, description in PublicBodyCategories::CATEGORIES_BY_TAG %>
+ <% for category, description in PublicBodyCategories::get().by_tag() %>
<% if category != "other" %>
<strong><%= category %></strong>=<%= description %>;
<% end %>
diff --git a/app/views/admin_user/show.rhtml b/app/views/admin_user/show.rhtml
index 18d23fe73..4af79e45a 100644
--- a/app/views/admin_user/show.rhtml
+++ b/app/views/admin_user/show.rhtml
@@ -13,18 +13,25 @@
<% end %>
-<p>
+<div>
<strong>Id:</strong> <%= @admin_user.id%> <br>
<% for column in User.content_columns %>
<strong><%= column.human_name %>:</strong>
<% if column.name == 'email' %>
<a href="mailto:<%=h @admin_user.email %>"><%=h @admin_user.email%></a>
+ <% elsif column.name == 'email_bounce_message' %>
+ <% if !@admin_user.email_bounce_message.empty? %>
+ <a href="../show_bounce_message/<%= @admin_user.id.to_s %>">See bounce message</a>
+ <% end %>
<% else %>
<%=h @admin_user.send(column.name) %>
<% end %>
+ <% if column.name == 'email_bounced_at' && !@admin_user.email_bounced_at.nil? %>
+ <form action="../clear_bounce/<%= @admin_user.id.to_s %>" style="display: inline;"><input type="submit" name="action" value="Clear bounce"></form>
+ <% end %>
<br>
<% end %>
-</p>
+</div>
<p>
<%= link_to 'Public page', main_url(user_url(@admin_user)) %>
diff --git a/app/views/admin_user/show_bounce_message.rhtml b/app/views/admin_user/show_bounce_message.rhtml
new file mode 100644
index 000000000..ad643a13e
--- /dev/null
+++ b/app/views/admin_user/show_bounce_message.rhtml
@@ -0,0 +1,3 @@
+<h1>Email bounce message for <%= @admin_user.name %></h1>
+
+<pre><%= @admin_user.email_bounce_message %></pre>
diff --git a/app/views/comment/_single_comment.rhtml b/app/views/comment/_single_comment.rhtml
index e6a1728a8..013e5e107 100644
--- a/app/views/comment/_single_comment.rhtml
+++ b/app/views/comment/_single_comment.rhtml
@@ -17,7 +17,7 @@
</div>
<p class="event_actions">
<% if !comment.id.nil? %>
- <%= link_to "Link to this", comment_url(comment) %>
+ <%= link_to "Link to this", comment_url(comment), :class => "link_to_this" %>
<% if !@user.nil? && @user.admin_page_links? %>
| <%= link_to "Admin", admin_url("request/edit_comment/" + comment.id.to_s) %>
<% end %>
diff --git a/app/views/comment/new.rhtml b/app/views/comment/new.rhtml
index 1a4f2c0dc..cf9367b88 100644
--- a/app/views/comment/new.rhtml
+++ b/app/views/comment/new.rhtml
@@ -11,7 +11,8 @@
<%= foi_error_messages_for :comment %>
-<h1><%= _('Add an annotation to ')%>'<%=request_link(@info_request)%>'</h1>
+<h1><%= _('Add an annotation')%></h1>
+<h2>to &ldquo;<%=request_link(@info_request)%>&rdquo;</h2>
<p>
<%= _('Annotations are so anyone, including you, can help the requester with their request. For example:')%>
diff --git a/app/views/general/_credits.rhtml b/app/views/general/_credits.rhtml
index 8c519ce7e..b1a9ce05e 100644
--- a/app/views/general/_credits.rhtml
+++ b/app/views/general/_credits.rhtml
@@ -1 +1 @@
-| <%= _('Powered by <a href="http://www.alaveteli.org/">Alaveteli</a>.') %>
+| <%= _('Powered by <a href="http://www.alaveteli.org/">Alaveteli</a>') %>
diff --git a/app/views/general/_footer.rhtml b/app/views/general/_footer.rhtml
new file mode 100644
index 000000000..2f6c30f5f
--- /dev/null
+++ b/app/views/general/_footer.rhtml
@@ -0,0 +1,6 @@
+<div id="footer">
+ <%= link_to _("Contact {{site_name}}", :site_name => site_name), help_contact_url %>
+| <img src="/images/twitter-16.png" alt="twitter icon" class="twitter-icon"> <a href="http://www.twitter.com/<%= MySociety::Config.get('TWITTER_USERNAME') %>"><%= _("Follow us on twitter") %></a>
+<%= render :partial => 'general/credits' %>
+</div>
+<div class="after-footer">&nbsp;</div>
diff --git a/app/views/general/_frontpage_intro_sentence.rhtml b/app/views/general/_frontpage_intro_sentence.rhtml
index 2c3bcaf83..70b47ad06 100644
--- a/app/views/general/_frontpage_intro_sentence.rhtml
+++ b/app/views/general/_frontpage_intro_sentence.rhtml
@@ -1,3 +1,4 @@
-First, type in the <strong>name of the UK public authority</strong> you'd
-<br>like information from. <strong>By law, they have to respond</strong>
-(<a href="<%= help_about_url %>">why?</a>).
+<h2>
+ Your <strong>Right to Know</strong>
+</h2>
+<p>Every citizen has the right to access information held by public authorities. <strong>By law, they have to respond</strong>. <a href="<%= help_about_url %>">Find out more about freedom of information.</a></p>
diff --git a/app/views/general/_orglink.rhtml b/app/views/general/_orglink.rhtml
index 20d0d6ce4..7d74dbaac 100644
--- a/app/views/general/_orglink.rhtml
+++ b/app/views/general/_orglink.rhtml
@@ -1,2 +1,2 @@
<%-# Put the link to your organisation here, or leave blank -%>
-<a href="http://www.alaveteli.org">an Alaveteli site</a>
+<%= link_to image_tag('logo.png'), frontpage_url, :id=>'logo' %>
diff --git a/app/views/general/_topnav.rhtml b/app/views/general/_topnav.rhtml
new file mode 100644
index 000000000..619ff3593
--- /dev/null
+++ b/app/views/general/_topnav.rhtml
@@ -0,0 +1,10 @@
+<div id="topnav">
+ <ul id="navigation">
+ <li class="<%= 'selected' if params[:controller] == 'general' and params[:action] != 'blog' %>"><%= link_to _("Home"), frontpage_url %></li>
+ <li class="<%= 'selected' if params[:controller] == 'request' and ['new', 'select_authority'].include?(params[:action]) %>"><%= link_to _("Make a request"), select_authority_url, :id => 'make-request-link' %></li>
+ <li class="<%= 'selected' if params[:controller] == 'request' and !['new', 'select_authority'].include?(params[:action]) %>"><%= link_to _("View requests"), request_list_successful_url %></li>
+ <li class="<%= 'selected' if params[:controller] == 'public_body' %>"><%= link_to _("View authorities"), list_public_bodies_default %></li>
+ <li class="<%= 'selected' if params[:controller] == 'general' and params[:action] == 'blog' %>"><%= link_to _("Read blog"), blog_url %></li>
+ <li class="<%= 'selected' if params[:controller] == 'help' %>"><%= link_to _("Help"), help_about_url %></li>
+ </ul>
+</div> \ No newline at end of file
diff --git a/app/views/general/blog.rhtml b/app/views/general/blog.rhtml
index f5bd66ebd..834676f82 100644
--- a/app/views/general/blog.rhtml
+++ b/app/views/general/blog.rhtml
@@ -1,56 +1,63 @@
-<% @title = "#{site_name} blog and tweets" %>
+<% @title = _("{{site_name}} blog and tweets", :site_name => site_name) %>
-<h1><%=@title %></h1>
- <img src="/images/twitter.png" alt="twitter icon" valign="middle"> <a href="http://www.twitter.com/<%= MySociety::Config.get('TWITTER_USERNAME') %>">Follow us on twitter</a>&nbsp;
- <img src="/images/rss.png" alt="RSS icon" valign="middle"> <a href="<%= MySociety::Config.get('BLOG_FEED') %>">Subscribe to blog</a>
<% if !@twitter_user.empty? %>
-<div id="twitter">
-<script src="http://widgets.twimg.com/j/2/widget.js"></script>
-<script type="text/javascript">
-new TWTR.Widget({
- version: 2,
- type: 'profile',
- rpp: 15,
- interval: 6000,
- width: 'auto',
- height: 500,
- theme: {
- shell: {
- background: '#eaeaea',
- color: '#000000'
+<div id="right_column">
+ <div class="act_link">
+ <h2><%= _("Stay up to date") %></h2>
+ <img src="/images/twitter-16.png" alt="twitter icon" class="twitter-icon"> <a href="http://www.twitter.com/<%= MySociety::Config.get('TWITTER_USERNAME') %>"><%= _("Follow us on twitter") %></a><br/><br/>
+ <img src="/images/feed-16.png" alt="RSS icon" valign="middle"> <a href="<%= MySociety::Config.get('BLOG_FEED') %>"><%= _("Subscribe to blog") %></a>
+ </div>
+ <div id="twitter">
+ <script src="http://widgets.twimg.com/j/2/widget.js"></script>
+ <script type="text/javascript">
+ new TWTR.Widget({
+ version: 2,
+ type: 'profile',
+ rpp: 15,
+ interval: 6000,
+ width: 'auto',
+ height: 500,
+ theme: {
+ shell: {
+ background: '#eaeaea',
+ color: '#000000'
+ },
+ tweets: {
+ background: '#ffffff',
+ color: '#000000',
+ links: '#0b004a'
+ }
},
- tweets: {
- background: '#ffffff',
- color: '#000000',
- links: '#0b004a'
+ features: {
+ scrollbar: false,
+ loop: false,
+ live: false,
+ hashtags: true,
+ timestamp: true,
+ avatars: true,
+ behavior: 'all'
}
- },
- features: {
- scrollbar: false,
- loop: false,
- live: false,
- hashtags: true,
- timestamp: true,
- avatars: true,
- behavior: 'all'
- }
-}).render().setUser('<%=@twitter_user %>').start();
-</script>
-
+ }).render().setUser('<%=@twitter_user %>').start();
+ </script>
+ </div>
</div>
<% end %>
-<div id="blog">
- <% for item in @blog_items: %>
- <div class="blog_post">
- <h2><a href="<%=item['link']%>"><%=h item['title'] %></a></h2>
- <p class="subtitle">Posted on <%= simple_date(Time.parse(item['pubDate'][0])) %> by <%=h item['creator'] %></p>
- <div><%= item['encoded'] %></div>
- <p><em>
- <a href="<%=item['comments'][0]%>"><%=item['comments'][1]%> comments</a>
- </em>
- </p>
- </div>
- <% end %>
+<div id="left_column">
+ <h1><%=@title %></h1>
+
+ <div id="blog">
+ <% for item in @blog_items: %>
+ <div class="blog_post">
+ <h2 id="<%= Time.parse(item['pubDate'][0]).to_i %>"><a href="<%=item['link']%>"><%=h item['title'] %></a></h2>
+ <p class="subtitle"><%= _("Posted on {{date}} by {{author}}", :date=>simple_date(Time.parse(item['pubDate'][0])), :author=>item['creator']) %></p>
+ <div><%= item['encoded'] %></div>
+ <p><em>
+ <a href="<%=item['comments'][0]%>"><%= _("{{number_of_comments}} comments", :number_of_comments=>item['comments'][1]) %></a>
+ </em>
+ </p>
+ </div>
+ <% end %>
+ </div>
</div>
diff --git a/app/views/general/frontpage.rhtml b/app/views/general/frontpage.rhtml
index 44b4980df..f71980302 100644
--- a/app/views/general/frontpage.rhtml
+++ b/app/views/general/frontpage.rhtml
@@ -1,29 +1,42 @@
<% view_cache :ttl => 5.minutes, :tag => I18n.locale do %>
-
-<div id="frontpage_search">
- <h1><%= _('Make or explore Freedom of Information requests') %></h1>
-
- <% form_tag({:action => "search_redirect"}, {:id => "search_form"}) do %>
- <p>
- <%= render :partial => 'frontpage_intro_sentence' %>
- <br>
-
- <br>
- <%= text_field_tag 'query', params[:query], { :size => 30 } %>
- <%= hidden_field_tag 'bodies', 1 %>
- <%= submit_tag _('Search') %>
- <br>
- <%= render :partial => 'frontpage_search_examples' %>
- <br>
- <br>
- <%= _('OR, <strong>search</strong> for information others have requested using {{site_name}}', :site_name => site_name) %>
- </p>
- <% end %>
-</div>
+ <div id="frontpage_splash">
+ <div id="left_column">
+ <h1>
+ <%= _("Make a new<br/>
+ <strong>Freedom <span>of</span><br/>
+ Information<br/>
+ request</strong>") %>
+ </h1>
+ <a class="link_button_green_large" href="/select_authority"><%= _("Start now &raquo;") %></a>
+ </div>
+ <div id="right_column">
+ <div id="frontpage_search_box">
+ <h2>
+ <%= _("Search over<br/>
+ <strong>{{number_of_requests}} requests</strong> <span>and</span><br/>
+ <strong>{{number_of_authorities}} authorities</strong>",
+ :number_of_requests => InfoRequest.count, :number_of_authorities => PublicBody.count) %>
+ </h2>
+ <% form_tag({:action => "search_redirect"}, {:id => "search_form"}) do %>
+ <div>
+ <%= text_field_tag 'query', params[:query], { :size => 30 } %>
+ <%= submit_tag _('Search') %>
+ </div>
+ <% end %>
+ </div>
+ <div id="frontpage_right_to_know">
+ <%= render :partial => 'frontpage_intro_sentence' %>
+ </div>
+ </div>
+ <div style="clear:both"></div>
+ </div>
<div id="frontpage_examples">
<% if @popular_bodies.size > 0 %>
<div id="examples_0">
+ <h3><%= _("Who can I request information from?") %></h3>
+ <%= _("{{site_name}} covers requests to {{number_of_authorities}} authorities, including:",
+ :site_name => site_name, :number_of_authorities => PublicBody.count) %>
<ul>
<% for popular_body in @popular_bodies %>
<li><%=public_body_link(popular_body)%>
@@ -32,23 +45,27 @@
<% end%>
</ul>
<p><strong>
- <%= link_to _('More authorities...'), list_public_bodies_default %>
+ <%= link_to _('Browse all authorities...'), list_public_bodies_default %>
</strong></p>
</div>
<% end %>
- <% if @successful_request_events.size > 0 %>
<div id="examples_1">
+ <h3><%= _("What information has been released?") %></h3>
+ <%= _("{{site_name}} users have made {{number_of_requests}} requests, including:",
+ :site_name => site_name, :number_of_requests => InfoRequest.count) %>
<ul>
- <% for event in @successful_request_events %>
- <li><%=link_to h(excerpt(event.info_request.title, "", 30)), request_url(event.info_request)%>
- <%= _('{{length_of_time}} ago', :length_of_time => time_ago_in_words(event.described_at)) %>
+ <% for event in @request_events %>
+ <li>
+ <%= public_body_link(event.info_request.public_body) %> <%= _('answered a request about') %>
+ <%=link_to h(event.info_request.title), request_url(event.info_request)%>
+ <%= _('{{length_of_time}} ago', :length_of_time => time_ago_in_words(event.described_at)) %>
+ <p class="excerpt" onclick="document.location.href='<%=request_url(event.info_request)%>'"><%= excerpt(event.info_request.title, "", 200) %></p>
</li>
<% end %>
</ul>
<p><strong><%=link_to _('More successful requests...'), request_list_successful_url %></strong></p>
</div>
- <% end %>
</div>
diff --git a/app/views/general/search.rhtml b/app/views/general/search.rhtml
index 15e00b85e..903eaa414 100644
--- a/app/views/general/search.rhtml
+++ b/app/views/general/search.rhtml
@@ -1,5 +1,9 @@
<% @show_tips = @xapian_requests.nil? || (@total_hits == 0) %>
+<% @include_request_link_in_authority_listing = true %>
+
+<%= render :partial => 'localised_datepicker' %>
+
<% if @query.nil? %>
<% @title = _("Search Freedom of Information requests, public authorities and users") %>
<% elsif @total_hits == 0 %>
@@ -7,56 +11,62 @@
<% else %>
<% @title = _("Results page {{page_number}}", :page_number => @page.to_s) %>
<% end%>
-<% @include_request_link_in_authority_listing = true %>
-<h1><%=@title%></h1>
+<div id="header_left">
+ <% if @query.nil? %>
+ <h1>Search</h1>
+ <% else %>
+ <h1>Search results</h1>
+ <% end%>
-<%= render :partial => 'localised_datepicker' %>
-
-<% if @advanced %>
- <p><%= _('To use the advanced search, combine phrases and labels as described in the search tips below.') %></p>
- <% form_tag(advanced_search_url, :method => "get") do %>
- <%= label_tag(:query, _("Search for:")) %>
- <%= text_field_tag(:query, params[:query], { :size => 40 }) %>
- <%= submit_tag("Search") %>
- <% end %>
- <p><%= link_to(_("Simple search"), search_redirect_url) %></p>
-
-<% else %>
+ <% if @advanced %>
+ <div id="advanced-search">
+ <p><%= _('To use the advanced search, combine phrases and labels as described in the search tips below.') %></p>
+ <% form_tag(advanced_search_url, :method => "get") do %>
+ <p>
+ <%= text_field_tag :query, @query, { :size => 60 } %>
+ <%= hidden_field_tag 'sortby', @inputted_sortby %>
+ <% if @bodies %>
+ <%= hidden_field_tag 'bodies', 1 %>
+ <% end %>
+ <%= submit_tag _("Search") %>
+ &nbsp;&nbsp;<%= link_to _('Simple search'), search_redirect_path %>
+ </p>
+ <% end %>
+ </div>
+ <% else %>
+ <% form_tag(request.url, {:method => "get", :id => "search_form"}) do %>
+ <p>
+ <%= text_field_tag 'query', params[:query], { :size => 40 } %>
+ <%= hidden_field_tag 'sortby', @inputted_sortby %>
+ <% if @bodies %>
+ <%= hidden_field_tag 'bodies', 1 %>
+ <% end %>
+ <%= submit_tag _("Search") %>
+ <%= link_to(_("Advanced search"), advanced_search_url) %>
-<% form_tag(request.url, :method => "get") do %>
-<div id="list-filter">
- <div id="simple-search-box">
- <%= label_tag(:query, _("Search for:")) %>
- <%= text_field_tag(:query, params[:query], { :size => 40 }) %>
- <%= submit_tag("Search") %>
- </div>
- <fieldset>
- <legend>
- <%= _("Filters:") %>
- </legend>
+ </p>
<div id="common-subfilters">
<div id="variety-filter">
- <ul>
- <% for variety, label in [
- ["all", _("everything")],
- ["requests", _("requests")],
+ <h3 class="title"><%= _("Showing") %></h3>
+ <% labels = [
+ ["requests", _("requests")],
["users", _("users")],
- ["bodies", _("authorities")]]%>
- <li>
+ ["bodies", _("authorities")],
+ ["all", _("everything")]]%>
+ <% for variety, label in labels %>
<% if @variety_postfix != variety %>
<% if variety != "users" %>
- <%= link_to label, search_url([params[:query], @common_query], variety, @sort_postfix), :method => :get %>
+ <%= link_to label, search_url([params[:query], @common_query], variety, @sort_postfix) %>
<% else %>
- <%= link_to label, search_url(params[:query], variety, @sort_postfix), :method => :get %>
+ <%= link_to label, search_url(params[:query], variety, @sort_postfix) %>
<% end %>
<% else %>
<%= label %>
<% end %>
- </li>
+ <%= "|" unless variety == labels.last[0]%>
<% end %>
- </ul>
</div>
<% if false %>
@@ -75,19 +85,19 @@
<% if @variety_postfix == "requests" %>
<div id="requests-subfilters">
<div>
- <%= _("Only show:") %> <br />
+ <h3 class="title"><%= _("Restrict to") %></h3>
<% [["successful", _("successful requests")],
["unsuccessful", _("unsuccessful requests")],
["awaiting", _("unresolved requests")],
["internal_review", _("internal reviews")]].each_with_index do |item, index|
-
- status, title = item %>
+ status, title = item %>
+
<%= check_box_tag "latest_status[]", status, params[:latest_status].nil? ? false : params[:latest_status].include?(status), :id => "latest_status_#{index}" %>
<%= label_tag("latest_status_#{index}", title) %> <br/>
<% end %>
</div>
<div>
- <%= _("Search for words in:") %> <br/>
+ <h3 class="title"><%= _("Search in") %></h3>
<% [["sent", _("messages from users")],
["response", _("messages from authorities")],
["comment", _("comments")]].each_with_index do |item, index|
@@ -97,68 +107,85 @@
<%= label_tag("request_variety_#{index}", title) %> <br/>
<% end %>
</div>
- <div>
- Search between dates:
- <%= text_field_tag(:request_date_after, params[:request_date_after], {:class => "use-datepicker", :size => 10}) %> -
+ <div id="date_range">
+ <label class="form_label title" for="query">Made between</label>
+ <%= text_field_tag(:request_date_after, params[:request_date_after], {:class => "use-datepicker", :size => 10}) %>
+ <label class="form_label" for="query">&nbsp;and</label>
<%= text_field_tag(:request_date_before, params[:request_date_before], {:class => "use-datepicker", :size => 10}) %>
</div>
</div>
<% end %>
- <%= submit_tag("Filter") %>
- </fieldset>
+<div>
+ <%= submit_tag("Filter") if @variety_postfix == "requests"%>
</div>
+ <% end %>
<% end %>
+
-<p><%= link_to(_("Advanced search"), advanced_search_url) %></p>
-<% end %>
-<% if !@query.nil? %>
- <p>
- <%=link_to_unless @sortby == 'relevant', _("Show most relevant results first"), search_url(@query, @variety_postfix, 'relevant', @advanced) %>
- |
- <%=link_to_unless @sortby == 'newest', _("Newest results first"), search_url(@query, @variety_postfix, 'newest', @advanced) %>
- <% if @sortby == 'described' %>
- | <%= _('Recently described results first') %>
- <% end %>
- </p>
-<% end %>
+ <% if !@query.nil? %>
+ <p id="search_controls">
+ <%=link_to_unless @sortby == 'relevant', _("Show most relevant results first"), search_url(@query, @variety_postfix, 'relevant') %>
+ |
+ <%=link_to_unless @sortby == 'newest', _("Newest results first"), search_url(@query, @variety_postfix, 'newest') %>
+ <% if @sortby == 'described' %>
+ | <%= _('Recently described results first') %>
+ <% end %>
+ </p>
+ <% end %>
+</div>
-<% if not @query.nil? %>
- <% if @spelling_correction %>
- <p id="did_you_mean"><%= _('Did you mean: {{correction}}', :correction => search_link(@spelling_correction, @variety_postfix, @sort_postfix, @advanced)) %></p>
- <% end %>
+<% if @track_thing && (@xapian_bodies_hits > 0 || @xapian_users_hits > 0 || @total_hits == 0)%>
+ <div id="header_right">
+ <h2>Track this search</h2>
+ <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
+ </div>
+<% end %>
- <% if (!@bodies || @xapian_requests_hits == 0) && @track_thing && (@xapian_bodies_hits > 0 || @xapian_users_hits > 0 || @total_hits == 0)%>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
- <% end %>
+<div style="clear:both;"></div>
- <% if @xapian_bodies_hits > 0 %>
- <% if @xapian_bodies_hits == 1 && @page == 1 %>
- <h1><%= _('One public authority matching your search', :user_search_query => h(@query)) %></h1>
- <% else %>
- <h1><%= _('Public authorities {{start_count}} to {{end_count}} of {{total_count}} for {{user_search_query}}', :start_count => ((@page-1)*@bodies_per_page+1).to_s, :end_count => [@page*@bodies_per_page, @xapian_bodies.matches_estimated].min.to_s, :total_count => @xapian_bodies.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
- <% end %>
+<% if @total_hits == 0 %>
+ <h2><%=@title %></h2>
+<% end %>
- <% for result in @xapian_bodies.results %>
- <%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
- <% end %>
+<% if not @query.nil? %>
+ <div class="results_section">
+ <% if @xapian_bodies_hits > 0 %>
+ <% if @xapian_bodies_hits == 1 && @page == 1 %>
+ <h2 class="publicbody_results"><%= _('One public authority found') %></h2>
+ <% else %>
+ <h2 class="publicbody_results"><%= _('Public authorities {{start_count}} to {{end_count}} of {{total_count}}', :start_count => ((@page-1)*@bodies_per_page+1).to_s, :end_count => [@page*@bodies_per_page, @xapian_bodies.matches_estimated].min.to_s, :total_count => @xapian_bodies.matches_estimated.to_s) %></h2>
+ <% end %>
- <%= will_paginate WillPaginate::Collection.new(@page, @bodies_per_page, @xapian_bodies.matches_estimated) %>
- <% end %>
+ <div class="results_block">
+ <% for result in @xapian_bodies.results %>
+ <%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
+ <% end %>
+ </div>
- <% if @xapian_users_hits > 0 %>
- <% if @xapian_users_hits == 1 && @page == 1 %>
- <h1><%= _("One person matching &#x2018;{{user_search_query}}&#x2019;", :user_search_query => h(@query)) %></h1>
- <% else %>
- <h1><%= _("People {{start_count}} to {{end_count}} of {{total_count}} for &#x2018;{{user_search_query}}&#x2019;", :start_count => ((@page-1)*@users_per_page+1).to_s, :end_count => [@page*@users_per_page, @xapian_users.matches_estimated].min.to_s, :total_count => @xapian_users.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
+ <%= will_paginate WillPaginate::Collection.new(@page, @bodies_per_page, @xapian_bodies.matches_estimated) %>
+ <% elsif @bodies && !@query.nil? && @xapian_bodies.results.size == 0 && @page == 1 %>
+ <h2 class="publicbody_results"><%= _('No public authorities found') %></h2>
+ <% if @spelling_correction %>
+ <p id="did_you_mean"><%= _('Did you mean: {{correction}}', :correction => search_link(@spelling_correction, @postfix)) %></p>
<% end %>
+ <p><%= _('<a href="%s">Browse all</a> or <a href="%s">ask us to add one</a>.') % [list_public_bodies_default, help_requesting_path + '#missing_body'] %></p>
+ <% end %>
+ </div>
- <% for result in @xapian_users.results %>
- <%= render :partial => 'user/user_listing_single', :locals => { :display_user => result[:model] } %>
- <% end %>
+ <div class="results_section">
+ <% if @xapian_users_hits > 0 %>
+ <% if @xapian_users_hits == 1 && @page == 1 %>
+ <h2 class="person_results"><%= _("One person found") %></h2>
+ <% else %>
+ <h2 class="person_results"><%= _("People {{start_count}} to {{end_count}} of {{total_count}}", :start_count => ((@page-1)*@users_per_page+1).to_s, :end_count => [@page*@users_per_page, @xapian_users.matches_estimated].min.to_s, :total_count => @xapian_users.matches_estimated.to_s) %></h2>
+ <% end %>
- <%= will_paginate WillPaginate::Collection.new(@page, @users_per_page, @xapian_users.matches_estimated) %>
- <% end %>
+ <div class="results_block">
+ <% for result in @xapian_users.results %>
+ <%= render :partial => 'user/user_listing_single', :locals => { :display_user => result[:model] } %>
+ <% end %>
+ </div>
<% if @xapian_requests_hits > 0 %>
<% if @xapian_requests_hits == 1 && @page == 1 %>
@@ -167,20 +194,23 @@
<h1><%= _("FOI requests {{start_count}} to {{end_count}} of {{total_count}}", :start_count => ((@page-1)*@requests_per_page+1).to_s, :end_count => [@page*@requests_per_page, @xapian_requests.matches_estimated].min.to_s, :total_count => @xapian_requests.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
<% end %>
- <% if @track_thing %>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
- <% end %>
+ <div class="results_section">
+ <% if @xapian_requests_hits > 0 %>
+ <% if @xapian_requests_hits == 1 && @page == 1 %>
+ <h2 class="foi_results"><%= _("One FOI request found") %></h2>
+ <% else %>
+ <h2 class="foi_results"><%= _("FOI requests {{start_count}} to {{end_count}} of {{total_count}}", :start_count => ((@page-1)*@requests_per_page+1).to_s, :end_count => [@page*@requests_per_page, @xapian_requests.matches_estimated].min.to_s, :total_count => @xapian_requests.matches_estimated.to_s) %></h2>
+ <% end %>
- <% for result in @xapian_requests.results %>
- <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
- <% end %>
+ <div class="results_block">
+ <% for result in @xapian_requests.results %>
+ <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
+ <% end %>
+ </div>
- <%= will_paginate WillPaginate::Collection.new(@page, @requests_per_page, @xapian_requests.matches_estimated) %>
- <% if @track_thing %>
- <p></p>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
- <% end %>
- <% end %>
+ <%= will_paginate WillPaginate::Collection.new(@page, @requests_per_page, @xapian_requests.matches_estimated) %>
+ <% end %>
+ </div>
<% end %>
<% if @advanced %>
@@ -207,6 +237,8 @@
</ul>
<h2 id="statuses"><%= _('Table of statuses') %></h2>
+ <p><%= _("All the options below can use <strong>status</strong> or <strong>latest_status</strong> before the colon. For example, <strong>status:not_held</strong> will match requests which have <em>ever</em> been marked as not held; <strong>latest_status:not_held</strong> will match only requests that are <em>currently</em> marked as not held.") %></p>
+
<table class="status_table">
<tr><td><strong><%=search_link('status:waiting_response', nil, nil, true)%></strong></td><td><%= _('Waiting for the public authority to reply') %></td></tr>
<tr><td><strong><%=search_link('status:not_held', nil, nil, true)%></strong></td><td><%= _('The public authority does not have the information requested') %></td></tr>
@@ -222,7 +254,7 @@
</table>
<h2 id="varieties"><%= _('Table of varieties') %></h2>
-
+ <p><%= _("All the options below can use <strong>variety</strong> or <strong>latest_variety</strong> before the colon. For example, <strong>variety:sent</strong> will match requests which have <em>ever</em> been sent; <strong>latest_variety:sent</strong> will match only requests that are <em>currently</em> marked as sent.") %></p>
<table class="status_table">
<tr><td><strong><%=search_link('variety:sent', nil, nil, true)%></strong></td><td><%= _('Original request sent') %></td></tr>
<tr><td><strong><%=search_link('variety:followup_sent', nil, nil, true)%></strong></td><td><%= _('Follow up message sent by requester') %></td></tr>
diff --git a/app/views/help/_sidebar.rhtml b/app/views/help/_sidebar.rhtml
index 99298e9c6..21038e8df 100644
--- a/app/views/help/_sidebar.rhtml
+++ b/app/views/help/_sidebar.rhtml
@@ -1,16 +1,17 @@
-<div id="about_sidebar">
- <h1>Help pages</h1>
- <ul>
+<div id="right_column_flip">
+ <h2>Help pages</h2>
+ <ul class="no_bullets">
<li><%= link_to_unless_current "Introduction", "/help/about" %></li>
<li><%= link_to_unless_current "Making requests", "/help/requesting" %></li>
<li><%= link_to_unless_current "Your privacy", "/help/privacy" %></li>
<li><%= link_to_unless_current "FOI officers", "/help/officers" %></li>
+ <li><%= link_to_unless_current "About the software", "/help/alaveteli" %></li>
<li><%= link_to_unless_current "Credits", "/help/credits" %></li>
<li><%= link_to_unless_current "Programmers API", "/help/api" %></li>
<li><%= link_to_unless_current "Advanced search", "/search" %></li>
</ul>
- <h1 id="contact">Contact us</h1>
+ <h2 id="contact">Contact us</h2>
<p>If your question isn't answered here, or you just wanted to let us know
something about the site, <a href="/help/contact">contact&nbsp;us</a>.
</p>
diff --git a/app/views/help/about.rhtml b/app/views/help/about.rhtml
index d22cc5b30..668a1df7f 100644
--- a/app/views/help/about.rhtml
+++ b/app/views/help/about.rhtml
@@ -2,50 +2,52 @@
<%= render :partial => 'sidebar' %>
-<h1 id="introduction">Introduction to <%= site_name %><a href="#introduction">#</a> </h1>
-<dl>
-
-<dt id="purpose">What is <%= site_name %> for? <a href="#purpose">#</a> </dt>
-<dd>To help you find out inside information about what the UK government
-is doing.
-</dd>
-
-<dt id="premise">How does the site work? <a href="#premise">#</a> </dt>
-<dd>You choose the public authority that you would like information from, then
-write a brief note describing what you want to know. We then send your request
-to the public authority. Any response they make is automatically published on the
-website for you and anyone else to find and read.
-</dd>
-
-<dt id="whybother_me">Why would I bother to do this? <a href="#whybother_me">#</a> </dt>
-<dd>You pay taxes, and then government does things with the money. All sorts of
-things that affect your life, from healthcare through to national defence. Some
-it does badly, some it does well. The more we find out about how government
-works, the better able we are to make suggestions to improve the things that
-are done badly, and to celebrate the things that are done well.
-</dd>
-
-<dt id="whybother_them">Why would the public authority bother to reply? <a href="#whybother_them">#</a> </dt>
-<dd>Under Freedom of Information (FOI) law, they have to respond. The response
-will either contain the information you want, or give a valid legal reason why
-it must be kept confidential.
-</dd>
-
-<dt id="who">Who makes <%= site_name %>? <a href="#who">#</a> </dt>
-<dd><%= site_name %> is created and run by <a href="http://www.mysociety.org">mySociety</a>,
-and was initially <a href="http://www.mysociety.org/2006/12/06/funding-for-freedom-of-information/">funded by the JRSST Charitable Trust</a>. mySociety is a project of the
-registered charity <a href="http://www.ukcod.org.uk/UK_Citizens_Online_Democracy">UK Citizens Online Democracy</a>.
-If you like what we're doing, then you can
-<a href="https://secure.mysociety.org/donate/">make a donation</a>.
-</dd>
-
-<dt id="updates">How can I keep up with news about <%= site_name %>?<a href="#updates">#</a> </dt>
-<dd>We have a <a href="/blog">blog</a> and a <a href="http://www.twitter.com/whatdotheyknow">twitter feed</a>.
-</dd>
-
-
-</dl>
-
-<p><strong>Next</strong>, read about <a href="/help/requesting">making requests</a> --&gt;
-
-<div id="hash_link_padding"></div>
+<div id="left_column_flip">
+ <h1 id="introduction">Introduction</h1>
+ <dl>
+
+ <dt id="purpose">What is WhatDoTheyKnow for? <a href="#purpose">#</a> </dt>
+ <dd>To help you find out inside information about what the UK government
+ is doing.
+ </dd>
+
+ <dt id="premise">How does the site work? <a href="#premise">#</a> </dt>
+ <dd>You choose the public authority that you would like information from, then
+ write a brief note describing what you want to know. We then send your request
+ to the public authority. Any response they make is automatically published on the
+ website for you and anyone else to find and read.
+ </dd>
+
+ <dt id="whybother_me">Why would I bother to do this? <a href="#whybother_me">#</a> </dt>
+ <dd>You pay taxes, and then government does things with the money. All sorts of
+ things that affect your life, from healthcare through to national defence. Some
+ it does badly, some it does well. The more we find out about how government
+ works, the better able we are to make suggestions to improve the things that
+ are done badly, and to celebrate the things that are done well.
+ </dd>
+
+ <dt id="whybother_them">Why would the public authority bother to reply? <a href="#whybother_them">#</a> </dt>
+ <dd>Under Freedom of Information (FOI) law, they have to respond. The response
+ will either contain the information you want, or give a valid legal reason why
+ it must be kept confidential.
+ </dd>
+
+ <dt id="who">Who makes WhatDoTheyKnow? <a href="#who">#</a> </dt>
+ <dd>WhatDoTheyKnow is created and run by <a href="http://www.mysociety.org">mySociety</a>,
+ and was initially <a href="http://www.mysociety.org/2006/12/06/funding-for-freedom-of-information/">funded by the JRSST Charitable Trust</a>. mySociety is a project of the
+ registered charity <a href="http://www.ukcod.org.uk/UK_Citizens_Online_Democracy">UK Citizens Online Democracy</a>.
+ If you like what we're doing, then you can
+ <a href="https://secure.mysociety.org/donate/">make a donation</a>.
+ </dd>
+
+ <dt id="updates">How can I keep up with news about WhatDoTheyKnow?<a href="#updates">#</a> </dt>
+ <dd>We have a <a href="/blog">blog</a> and a <a href="http://www.twitter.com/whatdotheyknow">twitter feed</a>.
+ </dd>
+
+
+ </dl>
+
+ <p><strong>Next</strong>, read about <a href="/help/requesting">making requests</a> --&gt;
+
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/alaveteli.rhtml b/app/views/help/alaveteli.rhtml
new file mode 100644
index 000000000..41c75619c
--- /dev/null
+++ b/app/views/help/alaveteli.rhtml
@@ -0,0 +1,30 @@
+<% @title = "Making requests" %>
+
+<%= render :partial => 'sidebar' %>
+<div id="left_column_flip">
+ <% if params[:country_name] %>
+ <h1><%= _("Would you like to see a website like this in your country?") %></h1>
+ <% else %>
+ <h1>Powered by Alaveteli</h1>
+ <% end %>
+ <p>This website is powered by Alaveteli. Alaveteli is free software
+ for making Freedom of Information requests. It can easily be
+ translated into any language, and customised for variations of FOI
+ law.</p>
+
+ <p>The development of Alaveteli is sponsored and supported by a
+ number of foundataions and charities who are interested in
+ transparency across the world.</p>
+
+ <p>If you would like to set up an Alaveteli website in your own
+ country, we can help. You will need a few days to get the site
+ configured and ready to use, and will then have to spend at least an
+ hour a week moderating and managing the site (more for busy
+ websites).</p>
+
+ <p>Read more on the <a href="http://alaveteli.org">Alaveteli
+ website</a>, or <a href="mailto:hello@alaveteli.org">drop us an
+ email</a>.</p>
+
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/api.rhtml b/app/views/help/api.rhtml
index 3cafbb665..76d2992fb 100644
--- a/app/views/help/api.rhtml
+++ b/app/views/help/api.rhtml
@@ -1,82 +1,81 @@
-<% @title = "Application Programming Interface - API" %>
+<% @title = "About our API" %>
<%= render :partial => 'sidebar' %>
-<h1><%=@title %></h1>
-
-<h2> Introduction </h2>
-
-<p>This page explains how programmers can make other websites and software
-interact with <%= site_name %> via an "API".
-</p>
-
-<p><%= site_name %> does not have a full API yet, but we are gradually adding
-lots of things that are similar in use to an API as they are requested.
-</p>
-
-<hr>
-
-<h2> 1. Linking to new requests </h2>
-
-<p>To encourage your users to make links to a particular public authority, use URLs of the form
-<%= link_to new_request_to_body_url(:url_name => "liverpool_city_council") , new_request_to_body_url(:url_name => "liverpool_city_council") %>.
-These are the parameters you can add to those URLs, either in the URL or from a form.
-
-<ul>
- <li> <strong>title</strong> - default summary of the new request.</li>
- <li> <strong>default_letter</strong> - default text of the body of the letter. The salutation (Dear...) and signoff (Yours...) are wrapped round this. </li>
- <li> <strong>body</strong> - as an alternative to default_letter, this sets the default entire text of the request, so you can customise the salutation and signoff. </li>
- <li> <strong>tags</strong> - space separated list of tags, so you can find and link up any requests made later, e.g. <em>openlylocal spending_id:12345</em>. The : indicates it is a machine tag. The values of machine tags may also include colons, useful for URIs.
-</ul>
-
-<hr>
-
-<h2> 2. RSS (actually, Atom) feeds </h2>
-
-<p>There are Atom feeds on most pages which list FOI requests, which you can
-use to get updates and links in XML format. Find the URL of the Atom feed in
-one of these ways:
-<ul>
- <li>Look for the <img src="/images/feed-16.png" alt=""> RSS feed links.</li>
- <li>Examine the <tt>&lt;link rel="alternate" type="application/atom+xml"&gt;</tt> tag in the head of the HTML. </li>
- <li>Add <tt>/feed</tt> to the start of another URL.
-</ul>
-
-<p>In particular, even complicated search queries have Atom feeds.
-You can do all sorts of things with them, such as query by authority, by file
-type, by date range, or by status. See the <a href="/search">advanced search
-tips</a> for details.
-
-<hr>
-
-<h2> 3. JSON structured data </h2>
-
-<p>Quite a few pages have JSON versions, which let you download information about
-objects in a structured form. Find them by:
-<ul>
- <li>Adding <tt>.json</tt> to the end of the URL. </li>
- <li>Look for the <tt>&lt;link rel="alternate" type="application/json"&gt;</tt> tag in the head of the HTML. </li>
-</ul>
-</p>
-
-<p>Requests, users and authorities all have JSON versions containing basic
-information about them. Every Atom feed has a JSON equivalent, containing
-information about the list of events in the feed.
-</p>
-
-<hr>
-<h2> 4. Spreadsheet of all authorities </h2>
-
-<p>
-A spreadsheet file listing every body in <%= site_name %> is available:
-<%= link_to "all-authorities.csv", all_public_bodies_csv_url() %>
-</p>
-
-<hr>
-
-<p>Please <a href="/help/contact">contact us</a> if you need an API feature that isn't there yet. It's
-very much a work in progress, and we do add things when people ask us to.</p>
-
-<div id="hash_link_padding"></div>
-
+<div id="left_column_flip">
+ <h1><%=@title %></h1>
+ <dl>
+ <dt>Introduction</dt>
+ <dd>
+ <p>This page explains how programmers can make other websites and software
+ interact with WhatDoTheyKnow via an "API".
+ </p>
+
+ <p>WhatDoTheyKnow does not have a full API yet, but we are gradually adding
+ lots of things that are similar in use to an API as they are requested.
+ </p>
+ </dd>
+
+ <dt>Linking to new requests</dt>
+ <dd>
+ <p>To encourage your users to make links to a particular public authority, use URLs of the form
+ <%= link_to new_request_to_body_url(:url_name => "liverpool_city_council") , new_request_to_body_url(:url_name => "liverpool_city_council") %>.
+ These are the parameters you can add to those URLs, either in the URL or from a form.
+
+ <ul>
+ <li> <strong>title</strong> - default summary of the new request.</li>
+ <li> <strong>default_letter</strong> - default text of the body of the letter. The salutation (Dear...) and signoff (Yours...) are wrapped round this. </li>
+ <li> <strong>body</strong> - as an alternative to default_letter, this sets the default entire text of the request, so you can customise the salutation and signoff. </li>
+ <li> <strong>tags</strong> - space separated list of tags, so you can find and link up any requests made later, e.g. <em>openlylocal spending_id:12345</em>. The : indicates it is a machine tag. The values of machine tags may also include colons, useful for URIs.
+ </ul>
+ </dd>
+
+ <dt>RSS (actually, Atom) feeds</h2>
+ <dd>
+ <p>There are Atom feeds on most pages which list FOI requests, which you can
+ use to get updates and links in XML format. Find the URL of the Atom feed in
+ one of these ways:
+ <ul>
+ <li>Look for the <img src="/images/feed-16.png" alt=""> RSS feed links.</li>
+ <li>Examine the <tt>&lt;link rel="alternate" type="application/atom+xml"&gt;</tt> tag in the head of the HTML. </li>
+ <li>Add <tt>/feed</tt> to the start of another URL.
+ </ul>
+
+ <p>In particular, even complicated search queries have Atom feeds.
+ You can do all sorts of things with them, such as query by authority, by file
+ type, by date range, or by status. See the <a href="/search">advanced search
+ tips</a> for details.
+ </dd>
+
+ <dt>JSON structured data</dt>
+ <dd>
+ <p>Quite a few pages have JSON versions, which let you download information about
+ objects in a structured form. Find them by:
+ <ul>
+ <li>Adding <tt>.json</tt> to the end of the URL. </li>
+ <li>Look for the <tt>&lt;link rel="alternate" type="application/json"&gt;</tt> tag in the head of the HTML. </li>
+ </ul>
+ </p>
+
+ <p>Requests, users and authorities all have JSON versions containing basic
+ information about them. Every Atom feed has a JSON equivalent, containing
+ information about the list of events in the feed.
+ </p>
+ </dd>
+
+ <dt>Spreadsheet of all authorities</dt>
+ <dd>
+ <p>
+ A spreadsheet file listing every body in WhatDoTheyKnow is available:
+ <%= link_to "all-authorities.csv", all_public_bodies_csv_url() %>
+ </p>
+
+ </dd>
+ </dl>
+
+ <p>Please <a href="/help/contact">contact us</a> if you need an API feature that isn't there yet. It's
+ very much a work in progress, and we do add things when people ask us to.</p>
+
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/contact.rhtml b/app/views/help/contact.rhtml
index 6c65fb1c9..dd49f7951 100644
--- a/app/views/help/contact.rhtml
+++ b/app/views/help/contact.rhtml
@@ -2,10 +2,12 @@
<%= foi_error_messages_for :contact %>
+<h1><%= @title %></h1>
+
<div id="contact_preamble">
<% if !flash[:notice] %>
- <h1>Contact an authority to get official information</h1>
+ <h2>Contact an authority to get official information</h2>
<ul>
<li><a href="/new">Go here</a> to make a request, in public, for information
from UK public authorities.</li>
@@ -17,7 +19,7 @@
</li>
</ul>
- <h1>Take up an issue with Government</h1>
+ <h2>Take up an issue with Government</h2>
<ul>
<li><a href="http://www.writetothem.com">Write to your MP,
@@ -28,7 +30,7 @@
<% end %>
- <h1>Contact the <%= site_name %> team</h1>
+ <h2>Contact the WhatDoTheyKnow team</h2>
<% if !flash[:notice] %>
<ul>
<li>
diff --git a/app/views/help/credits.rhtml b/app/views/help/credits.rhtml
index 02cd55c90..02f1e40e8 100644
--- a/app/views/help/credits.rhtml
+++ b/app/views/help/credits.rhtml
@@ -1,90 +1,91 @@
-<% @title = "Credit where credit is due" %>
+<% @title = "Credit where credit's due" %>
<%= render :partial => 'sidebar' %>
-<h1 id="credits"><%= @title%> <a href="#credits">#</a> </h1>
+<div id="left_column_flip">
+ <h1 id="credits"><%= @title%></h1>
-<dl>
-
-<dt id="thanks">Which people made <%= site_name %>? <a href="#thanks">#</a> </dt>
-<dd>Oh, nearly everyone (and <a href="http://www.mysociety.org/helpus">maybe you too</a>)!
-<ul>
-<li>
- <a href="http://www.yrtk.org">Heather Brooke</a>
- (<a href="http://www.guardian.co.uk/politics/2008/mar/29/houseofcommons.michaelmartin?gusrc=rss&amp;feed=worldnews">vampy!</a>) has
- been pushing the idea of a UK FOI archive for years now.
-</li>
-<li>
- Both Phil Rodgers and <a href="http://www.flourish.org/blog/">Francis Irving</a>
- entered it in a mySociety competition for ideas for public interest websites to build.
-</li>
-<li>
- <a href="http://www.mysociety.org/2006/09/27/the-mysociety-call-for-proposals-the-winner-and-runners-up/">It won</a>,
- and then Chris Lightfoot (<a href="http://mk.ucant.org/archives/000129.html">RIP :(</a>)
- thought up the wheeze of intercepting email responses to requests and
- automatically publishing them.
-</li>
-<li>
- Tom Steinberg got the cash to pay for the site from
- <a href="http://www.jrrt.org.uk/">a dead chocolate mogul</a> (<em>thank you!</em>) ...
-</li>
-<li>
- ... so that Francis Irving, Angie Ahl, Tommy Martin, Louise Crow, Matthew Somerville
- and Tom Steinberg could do the complex mixture of design and coding to build
- what you see today.
-</li>
-<li>
- Thanks particularly to Julian Todd (<a href="http://www.freesteel.co.uk/wpblog/">great blog!</a>),
- Francis Davey, and Etienne Pollard for using the site early on and giving
- feedback (and/or legal advice!), and also to all our other users and
- testers.
-</li>
-<li>
- The amazing team of volunteers who run the site, answer your support
- emails, maintain the database of public authorities and
- <a href="http://www.mysociety.org/2009/10/13/behind-whatdotheyknow/">so much more</a>.
- Thanks to John Cross, Ben Harris, Adam McGreggor, Alex Skene,
- Richard Taylor.
-</li>
-<li>
- Volunteers who have provided patches to the code - thanks Peter Collingbourne
- and Tony Bowden.
-</li>
-<li>
- Everyone who has helped look up FOI email addresses.
-</li>
-<li>
- We couldn't do any of this without those
- <a href="http://www.ukcod.org.uk/UKCOD_Trustees">crazy people</a> who volunteer,
- amongst many other things, to do the accounts and fill in our VAT return.
-</li>
-<li>
- Finally, all the officers and servants who have answered the many requests
- made through the site. Their diligence, patience and professionalism is
- what has actually made the information that you see here. Thank them for
- helping make Government more transparent.
-</li>
-</ul>
-You're all stars.
-</dd>
-
-<dt id="helpus">Can I help out? <a href="#helpus">#</a> </dt>
-<dd>
- <p>Yes please! We're built out of our supporters and volunteers.</p>
+ <dl>
+ <dt id="thanks">Who made WhatDoTheyKnow? <a href="#thanks">#</a> </dt>
+ <dd>Oh, nearly everyone (and <a href="http://www.mysociety.org/helpus">maybe you too</a>)!
<ul>
- <li>You can <a href="https://secure.mysociety.org/donate/">make a donation</a>. We're a registered charity.</li>
- <li>Help people find successful requests, and monitor performance of authorities, by
- <a href="/categorise/play">playing the categorisation game</a>. </li>
- <li>Find out FOI email addresses of <a href="/help/requesting#missing_body">authorities that we're missing</a>.</li>
- <li>Write a blog post about either <%= site_name %> or an interesting request that you've
- found. Post about it on a forum that you frequent. Tell friends about it.</li> <li>If you're
- a programmer, get the source code for our parent project, <a href="http://alaveteli.org">Alaveteli</a>
- and tell us about patches we can pull. It's made in Ruby on Rails.
- <li>Read more about <a href="http://www.mysociety.org/helpus/">volunteering with mySociety</a>.
+ <li>
+ <a href="http://www.yrtk.org">Heather Brooke</a>
+ (<a href="http://www.guardian.co.uk/politics/2008/mar/29/houseofcommons.michaelmartin?gusrc=rss&amp;feed=worldnews">vampy!</a>) has
+ been pushing the idea of a UK FOI archive for years now.
+ </li>
+ <li>
+ Both Phil Rodgers and <a href="http://www.flourish.org/blog/">Francis Irving</a>
+ entered it in a mySociety competition for ideas for public interest websites to build.
+ </li>
+ <li>
+ <a href="http://www.mysociety.org/2006/09/27/the-mysociety-call-for-proposals-the-winner-and-runners-up/">It won</a>,
+ and then Chris Lightfoot (<a href="http://mk.ucant.org/archives/000129.html">RIP :(</a>)
+ thought up the wheeze of intercepting email responses to requests and
+ automatically publishing them.
+ </li>
+ <li>
+ Tom Steinberg got the cash to pay for the site from
+ <a href="http://www.jrrt.org.uk/">a dead chocolate mogul</a> (<em>thank you!</em>) ...
+ </li>
+ <li>
+ ... so that Francis Irving, Angie Ahl, Tommy Martin, Louise Crow, Matthew Somerville
+ and Tom Steinberg could do the complex mixture of design and coding to build
+ what you see today.
+ </li>
+ <li>
+ Thanks particularly to Julian Todd (<a href="http://www.freesteel.co.uk/wpblog/">great blog!</a>),
+ Francis Davey, and Etienne Pollard for using the site early on and giving
+ feedback (and/or legal advice!), and also to all our other users and
+ testers.
+ </li>
+ <li>
+ The amazing team of volunteers who run the site, answer your support
+ emails, maintain the database of public authorities and
+ <a href="http://www.mysociety.org/2009/10/13/behind-whatdotheyknow/">so much more</a>.
+ Thanks to John Cross, Ben Harris, Adam McGreggor, Alex Skene,
+ Richard Taylor.
+ </li>
+ <li>
+ Volunteers who have provided patches to the code - thanks Peter Collingbourne
+ and Tony Bowden.
+ </li>
+ <li>
+ Everyone who has helped look up FOI email addresses.
+ </li>
+ <li>
+ We couldn't do any of this without those
+ <a href="http://www.ukcod.org.uk/UKCOD_Trustees">crazy people</a> who volunteer,
+ amongst many other things, to do the accounts and fill in our VAT return.
+ </li>
+ <li>
+ Finally, all the officers and servants who have answered the many requests
+ made through the site. Their diligence, patience and professionalism is
+ what has actually made the information that you see here. Thank them for
+ helping make Government more transparent.
+ </li>
</ul>
-</dd>
+ You're all stars.
+ </dd>
+ <dt id="helpus">Can I help out? <a href="#helpus">#</a> </dt>
+ <dd>
+ <p>Yes please! We're built out of our supporters and volunteers.</p>
+ <ul>
+ <li>You can <a href="https://secure.mysociety.org/donate/">make a donation</a>. We're a registered charity.</li>
+ <li>Help people find successful requests, and monitor performance of authorities, by
+ <a href="/categorise/play">playing the categorisation game</a>. </li>
+ <li>Find out FOI email addresses of <a href="/help/requesting#missing_body">authorities that we're missing</a>.</li>
+ <li>Write a blog post about either WhatDoTheyKnow or an interesting request that you've
+ found. Post about it on a forum that you frequent. Tell friends about it.</li> <li>If you're
+ a programmer, get the source code for our parent project, <a href="http://alaveteli.org">Alaveteli</a>
+ and tell us about patches we can pull. It's made in Ruby on Rails.
+ <li>Read more about <a href="http://www.mysociety.org/helpus/">volunteering with mySociety</a>.
+ </ul>
+ </dd>
+ </dl>
-<div id="hash_link_padding"></div>
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/officers.rhtml b/app/views/help/officers.rhtml
index d9656186a..3defec62f 100644
--- a/app/views/help/officers.rhtml
+++ b/app/views/help/officers.rhtml
@@ -2,246 +2,246 @@
<%= render :partial => 'sidebar' %>
-<h1 id="officers"><%= @title %> <a href="#officers">#</a> </h1>
-
-<dl>
-
-<dt id="top">I just got here from bottom of an FOI request, what is going on? <a href="#top">#</a> </dt>
-
-<dd><p><%= site_name %> is a service run by a charity. It helps ordinary members
-of the public make FOI requests, and easily track and share the responses.</p>
-
-<p>The FOI request you received was made by someone using <%= site_name %>. You can
-simply reply to the request as you would any other request from an individual.
-The only difference is that your response will be automatically published on
-the Internet.
-</p>
-<p>If you have privacy or other concerns, please read the answers below.
-You might also like to read the <a
-href="/help/about">introduction to <%= site_name %></a> to find out more about what
-the site does from the point of view of a user. You can also search the
-site to find the authority that you work for, and view the status of
-any requests made using the site.
-
-<p>Finally, we welcome comments and
-thoughts from FOI officers, please <a href="/help/contact">get in touch</a>.
-</p>
-</dd>
-
-<dt id="responses">Why are you publishing responses to FOI requests? <a href="#responses">#</a> </dt>
-
-<dd>We think there are lots of benefits. Most importantly it will encourage the
-public to be more interested and involved in the work of government. We
-also hope that it will reduce the number of duplicate requests on any
-subject that a public body will receive. Given that Freedom of Information
-responses contain public information, which anybody could easily request
-again from the public authority, we think there should be no reason not to
-publish it widely.
-</dd>
-
-<dt id="realpeople">Are the people making requests real people? <a href="#realpeople">#</a> </dt>
-
-<dd>Yes. For the purposes of keeping track of responses we use
-computer-generated email addresses for each request. However, before
-they can send a request, each user must register on the site with a
-unique email address that we then verify. You can search this site and
-find a page listing all requests that each person has made.
-</dd>
-
-<dt id="email_only">An email isn't a sufficient address for an FOI request! <a href="#email_only">#</a> </dt>
-
-<dd>Yes it is. This
-<a href="http://www.whatdotheyknow.com/request/1142/response/2894/attach/5/20080806100741260.pdf">letter from the ICO to Rother District Council</a> gives guidance on the matter, specifically
-in the context of requests made via <%= site_name %>.
-</dd>
-
-<dt id="vexatious">Aren't you making lots of vexatious requests? <a href="#vexatious">#</a> </dt>
-
-<dd><p><%= site_name %> is not making any requests. We are sending requests on
-behalf of our users, who are real people making the requests. </p>
-<p>Look at it like this - if lots of different people made requests from
-different Hotmail email addresses, then you would not think that Microsoft were
-making vexatious requests. It is exactly the same if lots of requests are made
-via <%= site_name %>. Moreover, since all requests are public it is much easier
-for you to see if one of our users is making vexatious requests. </p>
-<p>If that isn't enough for you, the
-<a href="http://www.whatdotheyknow.com/request/1142/response/2894/attach/5/20080806100741260.pdf">letter from the ICO to Rother District Council</a> gives some guidance on the matter.</p>
-</dd>
-
-<dt id="spam_problems">I can see a request on <%= site_name %>, but we never got it by email!<a href="#spam_problems">#</a> </dt>
-
-<dd><p>If a request appears on the site, then we have attempted to send it to
-the authority by email. Any delivery failure messages will automatically
-appear on the site. You can check the address we're using with the "View FOI
-email address" link which appears on the page for the authority. <a
-href="/help/contact">Contact us</a> if there is a better address we can
-use.</p>
-<p>Requests are sometimes not delivered because they are quietly removed by
-"spam filters" in the IT department of the authority. Authorities can make
-sure this doesn't happen by asking their IT departments to "whitelist"
-any email from <strong>@whatdotheyknow.com</strong>.
-If you <a href="/help/contact">ask us</a> we will resend any request,
-and/or give technical details of delivery so an IT department can chase
-up what happened to the message.
-</p>
-<p>Finally, you can respond to any request from your web browser, without
-needing any email, using the "respond to request" link at the bottom of
-each request page.
-</dd>
-
-<dt id="days">How do you calculate the deadline shown on request pages?<a href="#days">#</a> </dt>
-
-<dd>
-<p>The Freedom of Information Act says:</p>
-
-<blockquote><p>A public authority must comply with section 1(1) <strong>promptly</strong> and
-in any event not later than the twentieth working day following the date of
-receipt.</p></blockquote>
-
-<p>The nerdy detail of exactly how weekends are counted, and what happens if
-the request arrives out of office hours, is just that - detail. What matters
-here is that the law says authorities must respond <strong>promptly</strong>.</p>
-
-<p>If you've got a good reason why the request is going to take a while to
-process, requesters find it really helpful if you can send a quick email with a
-sentence or two saying what is happening. </p>
-
-<p>FOI officers often have to do a lot of <strong>hard work</strong> to answer
-requests, and this is hidden from the public. We think it would help everyone
-to have more of that complexity visible.</p>
-
-</dd>
-
-<dt id="days2">But really, how do you calculate the deadline?<a href="#days2">#</a> </dt>
-
-<dd>
-
-<p>Please read the answer to the previous question first. Legally, authorities
-must respond <strong>promptly</strong> to FOI requests. If they fail to do that,
-it is best if they show the hard work they are doing by explaining what is
-taking the extra time to do.
-</p>
-
-<p>That said, <%= site_name %> does show the maximum legal deadline
-for response on each request. Here's how we calculate it.</p>
-
-<ul>
-
-<li>If the day we deliver the request by email is a working day, we count that
-as "day zero", even if it was delivered late in the evening. Days end at
-midnight. We then count the next working day as "day one", and so on up to
-<strong>20 working days</strong>.</li>
-
-<li>If the day the request email was delivered was a non-working day, we count
-the next working day as "day one". Delivery is delivery, even if it happened on
-the weekend. Some authorities
-<a href="http://www.whatdotheyknow.com/request/policy_regarding_body_scans#incoming-1100">disagree with this</a>,
-our lawyer disagrees with them. </li>
-
-<li>Requesters are encouraged to mark when they have <strong>clarified</strong>
-their request so the clock resets, but sometimes they get this wrong. If you
-see a problem with a particular request, let us know and we'll fix it.</li>
-</ul>
-
-<p>The date thus calculated is shown on requests with the text "By law,
-Liverpool City Council should normally have responded by...". There is only
-one case which is not normal, see the next question about
-<a href="#public_interest_test">public interest test time extensions</a>.
-</p>
-
-<p>Schools are also a special case, which <%= site_name %> displays differently.
-</p>
-
-<ul>
-<li>Since June 2009, <strong>schools</strong> have "20 working days
-disregarding any working day which is not a school day, or 60 working days,
-whichever is first" (<a href="http://www.opsi.gov.uk/si/si2009/draft/ukdsi_9780111477632_en_1">FOI (Time for Compliance with Request) Regulations 2009</a>). <%= site_name %> indicates on requests to schools that the 20 day deadline is only
-during term time, and shows them as definitely overdue after 60 working days
-</li>
-</ul>
-
-<p>If you're getting really nerdy about all this, read the <a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/timeforcompliance.pdf">detailed ICO guidance</a>.
-Meanwhile, remember that the law says authorities must respond
-<strong>promptly</strong>. That's really what matters.</p>
-
-</dd>
-
-<dt id="public_interest_test">How do you reflect time extensions for public interest tests?<a href="#public_interest_test">#</a> </dt>
-
-<dd>
-
-<p>The Freedom of Information Act lets authorities claim an indefinite time
-extension when applying a <strong>public interest test</strong>. Information
-Commissioner guidance says that it should only be used in "exceptionally
-complex" cases
-(<a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/foi_good_practice_guidance_4.pdf">FOI Good Practice Guidance No. 4</a>).
-<%= site_name %> doesn't specifically handle this case, which is why we use the
-phrase "should normally have responded by" when the 20 working day time is
-exceeded.
-</p>
-
-<p>The same guidance says that, even in exceptionally complex cases, no
-Freedom of Information request should take more than <strong>40 working days</strong>
-to answer. <%= site_name %> displays requests which are overdue by that much
-with stronger wording to indicate they are definitely late.
-</p>
+<div id="left_column_flip">
+ <h1 id="officers"><%= @title %> <a href="#officers">#</a> </h1>
+
+ <dl>
+
+ <dt id="top">I just got here from bottom of an FOI request, what is going on? <a href="#top">#</a> </dt>
+
+ <dd><p>WhatDoTheyKnow is a service run by a charity. It helps ordinary members
+ of the public make FOI requests, and easily track and share the responses.</p>
+
+ <p>The FOI request you received was made by someone using WhatDoTheyKnow. You can
+ simply reply to the request as you would any other request from an individual.
+ The only difference is that your response will be automatically published on
+ the Internet.
+ </p>
+ <p>If you have privacy or other concerns, please read the answers below.
+ You might also like to read the <a
+ href="/help/about">introduction to WhatDoTheyKnow</a> to find out more about what
+ the site does from the point of view of a user. You can also search the
+ site to find the authority that you work for, and view the status of
+ any requests made using the site.
+
+ <p>Finally, we welcome comments and
+ thoughts from FOI officers, please <a href="/help/contact">get in touch</a>.
+ </p>
+ </dd>
+
+ <dt id="responses">Why are you publishing responses to FOI requests? <a href="#responses">#</a> </dt>
+
+ <dd>We think there are lots of benefits. Most importantly it will encourage the
+ public to be more interested and involved in the work of government. We
+ also hope that it will reduce the number of duplicate requests on any
+ subject that a public body will receive. Given that Freedom of Information
+ responses contain public information, which anybody could easily request
+ again from the public authority, we think there should be no reason not to
+ publish it widely.
+ </dd>
+
+ <dt id="realpeople">Are the people making requests real people? <a href="#realpeople">#</a> </dt>
+
+ <dd>Yes. For the purposes of keeping track of responses we use
+ computer-generated email addresses for each request. However, before
+ they can send a request, each user must register on the site with a
+ unique email address that we then verify. You can search this site and
+ find a page listing all requests that each person has made.
+ </dd>
+
+ <dt id="email_only">An email isn't a sufficient address for an FOI request! <a href="#email_only">#</a> </dt>
+
+ <dd>Yes it is. This
+ <a href="http://www.whatdotheyknow.com/request/1142/response/2894/attach/5/20080806100741260.pdf">letter from the ICO to Rother District Council</a> gives guidance on the matter, specifically
+ in the context of requests made via WhatDoTheyKnow.
+ </dd>
+
+ <dt id="vexatious">Aren't you making lots of vexatious requests? <a href="#vexatious">#</a> </dt>
+
+ <dd><p>WhatDoTheyKnow is not making any requests. We are sending requests on
+ behalf of our users, who are real people making the requests. </p>
+ <p>Look at it like this - if lots of different people made requests from
+ different Hotmail email addresses, then you would not think that Microsoft were
+ making vexatious requests. It is exactly the same if lots of requests are made
+ via WhatDoTheyKnow. Moreover, since all requests are public it is much easier
+ for you to see if one of our users is making vexatious requests. </p>
+ <p>If that isn't enough for you, the
+ <a href="http://www.whatdotheyknow.com/request/1142/response/2894/attach/5/20080806100741260.pdf">letter from the ICO to Rother District Council</a> gives some guidance on the matter.</p>
+ </dd>
+
+ <dt id="spam_problems">I can see a request on WhatDoTheyKnow, but we never got it by email!<a href="#spam_problems">#</a> </dt>
+
+ <dd><p>If a request appears on the site, then we have attempted to send it to
+ the authority by email. Any delivery failure messages will automatically
+ appear on the site. You can check the address we're using with the "View FOI
+ email address" link which appears on the page for the authority. <a
+ href="/help/contact">Contact us</a> if there is a better address we can
+ use.</p>
+ <p>Requests are sometimes not delivered because they are quietly removed by
+ "spam filters" in the IT department of the authority. Authorities can make
+ sure this doesn't happen by asking their IT departments to "whitelist"
+ any email from <strong>@whatdotheyknow.com</strong>.
+ If you <a href="/help/contact">ask us</a> we will resend any request,
+ and/or give technical details of delivery so an IT department can chase
+ up what happened to the message.
+ </p>
+ <p>Finally, you can respond to any request from your web browser, without
+ needing any email, using the "respond to request" link at the bottom of
+ each request page.
+ </dd>
+
+ <dt id="days">How do you calculate the deadline shown on request pages?<a href="#days">#</a> </dt>
+
+ <dd>
+ <p>The Freedom of Information Act says:</p>
+
+ <blockquote><p>A public authority must comply with section 1(1) <strong>promptly</strong> and
+ in any event not later than the twentieth working day following the date of
+ receipt.</p></blockquote>
+
+ <p>The nerdy detail of exactly how weekends are counted, and what happens if
+ the request arrives out of office hours, is just that - detail. What matters
+ here is that the law says authorities must respond <strong>promptly</strong>.</p>
+
+ <p>If you've got a good reason why the request is going to take a while to
+ process, requesters find it really helpful if you can send a quick email with a
+ sentence or two saying what is happening. </p>
+
+ <p>FOI officers often have to do a lot of <strong>hard work</strong> to answer
+ requests, and this is hidden from the public. We think it would help everyone
+ to have more of that complexity visible.</p>
+
+ </dd>
+
+ <dt id="days2">But really, how do you calculate the deadline?<a href="#days2">#</a> </dt>
+
+ <dd>
+
+ <p>Please read the answer to the previous question first. Legally, authorities
+ must respond <strong>promptly</strong> to FOI requests. If they fail to do that,
+ it is best if they show the hard work they are doing by explaining what is
+ taking the extra time to do.
+ </p>
+
+ <p>That said, WhatDoTheyKnow does show the maximum legal deadline
+ for response on each request. Here's how we calculate it.</p>
+
+ <ul>
+
+ <li>If the day we deliver the request by email is a working day, we count that
+ as "day zero", even if it was delivered late in the evening. Days end at
+ midnight. We then count the next working day as "day one", and so on up to
+ <strong>20 working days</strong>.</li>
+
+ <li>If the day the request email was delivered was a non-working day, we count
+ the next working day as "day one". Delivery is delivery, even if it happened on
+ the weekend. Some authorities <a href="http://www.whatdotheyknow.com/request/policy_regarding_body_scans#incoming-1100">disagree with this</a>, our lawyer disagrees with them. </li>
+
+ <li>Requesters are encouraged to mark when they have <strong>clarified</strong>
+ their request so the clock resets, but sometimes they get this wrong. If you
+ see a problem with a particular request, let us know and we'll fix it.</li>
+ </ul>
+
+ <p>The date thus calculated is shown on requests with the text "By law,
+ Liverpool City Council should normally have responded by...". There is only
+ one case which is not normal, see the next question about
+ <a href="#public_interest_test">public interest test time extensions</a>.
+ </p>
+
+ <p>Schools are also a special case, which WhatDoTheyKnow displays differently.
+ </p>
+
+ <ul>
+ <li>Since June 2009, <strong>schools</strong> have "20 working days
+ disregarding any working day which is not a school day, or 60 working days,
+ whichever is first" (<a href="http://www.opsi.gov.uk/si/si2009/draft/ukdsi_9780111477632_en_1">FOI (Time for Compliance with Request) Regulations 2009</a>). WhatDoTheyKnow indicates on requests to schools that the 20 day deadline is only
+ during term time, and shows them as definitely overdue after 60 working days
+ </li>
+ </ul>
+
+ <p>If you're getting really nerdy about all this, read the <a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/timeforcompliance.pdf">detailed ICO guidance</a>.
+ Meanwhile, remember that the law says authorities must respond
+ <strong>promptly</strong>. That's really what matters.</p>
+
+ </dd>
+
+ <dt id="public_interest_test">How do you reflect time extensions for public interest tests?<a href="#public_interest_test">#</a> </dt>
+
+ <dd>
+
+ <p>The Freedom of Information Act lets authorities claim an indefinite time
+ extension when applying a <strong>public interest test</strong>. Information
+ Commissioner guidance says that it should only be used in "exceptionally
+ complex" cases
+ (<a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/foi_good_practice_guidance_4.pdf">FOI Good Practice Guidance No. 4</a>).
+ WhatDoTheyKnow doesn't specifically handle this case, which is why we use the
+ phrase "should normally have responded by" when the 20 working day time is
+ exceeded.
+ </p>
+
+ <p>The same guidance says that, even in exceptionally complex cases, no
+ Freedom of Information request should take more than <strong>40 working days</strong>
+ to answer. WhatDoTheyKnow displays requests which are overdue by that much
+ with stronger wording to indicate they are definitely late.
+ </p>
-<p>The Freedom of Information (Scotland) Act does not allow such a public
-interest extension. <%= site_name %> would like to see the law changed to either
-remove the extension from the UK Act, or to reintroduce an absolute time limit
-of 40 working days even with the extension (the House of Lords <a
-href="http://www.publicwhip.org.uk/division.php?date=2000-10-17&amp;number=1&amp;house=lords">voted
-to remove</a> provision for such a time limit during the initial passage
-of the UK Act through Parliament).
-</p>
-</dd>
-
-<dt id="large_file">How can I send a large file, which won't go by email?<a href="#large_file">#</a> </dt>
+ <p>The Freedom of Information (Scotland) Act does not allow such a public
+ interest extension. WhatDoTheyKnow would like to see the law changed to either
+ remove the extension from the UK Act, or to reintroduce an absolute time limit
+ of 40 working days even with the extension (the House of Lords <a
+ href="http://www.publicwhip.org.uk/division.php?date=2000-10-17&amp;number=1&amp;house=lords">voted
+ to remove</a> provision for such a time limit during the initial passage
+ of the UK Act through Parliament).
+ </p>
+ </dd>
-<dd>Instead of email, you can respond to a request directly from your web
-browser, including uploading a file. To do this, choose "respond to request" at
-the bottom of the request's page. <a href="/help/contact">Contact us</a> if it
-is too big for even that (more than, say, 50Mb).
-</dd>
-
-<dt id="names">Why do you publish the names of civil servants and the text of emails? <a href="#names">#</a> </dt>
+ <dt id="large_file">How can I send a large file, which won't go by email?<a href="#large_file">#</a> </dt>
-<dd>We consider what officers or servants do in the course of their employment
-to be public information. We will only remove content in exceptional
-circumstances, see our <a href="/help/privacy#takedown">take down policy</a>.
-</dd>
-
-<dt id="mobiles">Do you publish email addresses or mobile phone numbers? <a href="#mobiles">#</a> </dt>
-
-<dd><p>To prevent spam, we automatically remove most emails and some mobile numbers from
-responses to requests. Please <a href="/help/contact">contact us</a> if we've
-missed one.
-For technical reasons we don't always remove them from attachments, such as certain PDFs.</p>
-<p>If you need to know what an address was that we've removed, please <a
- href="/help/contact">get in touch with us</a>. Occasionally, an email address
-forms an important part of a response and we will post it up in an obscured
-form in an annotation.
-</dd>
-
-<dt id="copyright"><a name="commercial"></a>What is your policy on copyright of documents?<a href="#copyright">#</a> </dt>
-
-<dd>Our Freedom of Information law is "applicant blind", so anyone in the
-world can request the same document and get a copy of it.
-
-If you think our making a document available on the internet infringes your
-copyright, you may <a href="/help/contact">contact us</a> and ask us
-to take it down. However, to save tax payers' money by preventing duplicate
-requests, and for good public relations, we'd advise you not to do that.
-</dd>
-
-</dl>
-
-
-</dl>
-
-<p><strong>If you haven't already</strong>, read <a href="/help/about">the introduction</a> --&gt;
-<br><strong>Otherwise</strong>, the <a href="/help/credits">credits</a> or the <a href="/help/api">programmers API</a> --&gt;
-
-<div id="hash_link_padding"></div>
+ <dd>Instead of email, you can respond to a request directly from your web
+ browser, including uploading a file. To do this, choose "respond to request" at
+ the bottom of the request's page. <a href="/help/contact">Contact us</a> if it
+ is too big for even that (more than, say, 50Mb).
+ </dd>
+
+ <dt id="names">Why do you publish the names of civil servants and the text of emails? <a href="#names">#</a> </dt>
+
+ <dd>We consider what officers or servants do in the course of their employment
+ to be public information. We will only remove content in exceptional
+ circumstances, see our <a href="/help/privacy#takedown">take down policy</a>.
+ </dd>
+
+ <dt id="mobiles">Do you publish email addresses or mobile phone numbers? <a href="#mobiles">#</a> </dt>
+
+ <dd><p>To prevent spam, we automatically remove most emails and some mobile numbers from
+ responses to requests. Please <a href="/help/contact">contact us</a> if we've
+ missed one.
+ For technical reasons we don't always remove them from attachments, such as certain PDFs.</p>
+ <p>If you need to know what an address was that we've removed, please <a
+ href="/help/contact">get in touch with us</a>. Occasionally, an email address
+ forms an important part of a response and we will post it up in an obscured
+ form in an annotation.
+ </dd>
+
+ <dt id="copyright"><a name="commercial"></a>What is your policy on copyright of documents?<a href="#copyright">#</a> </dt>
+
+ <dd>Our Freedom of Information law is "applicant blind", so anyone in the
+ world can request the same document and get a copy of it.
+
+ If you think our making a document available on the internet infringes your
+ copyright, you may <a href="/help/contact">contact us</a> and ask us
+ to take it down. However, to save tax payers' money by preventing duplicate
+ requests, and for good public relations, we'd advise you not to do that.
+ </dd>
+
+ </dl>
+
+
+ </dl>
+
+ <p><strong>If you haven't already</strong>, read <a href="/help/about">the introduction</a> --&gt;
+ <br><strong>Otherwise</strong>, the <a href="/help/credits">credits</a> or the <a href="/help/api">programmers API</a> --&gt;
+
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/privacy.rhtml b/app/views/help/privacy.rhtml
index fc8c54885..bec0c8c23 100644
--- a/app/views/help/privacy.rhtml
+++ b/app/views/help/privacy.rhtml
@@ -2,54 +2,54 @@
<%= render :partial => 'sidebar' %>
-<h1 id="privacy"><%= @title %> <a href="#privacy">#</a> </h1>
-
-<dl>
-
-<dt id="email_address">Who gets to see my email address? <a href="#email_address">#</a> </dt>
-
-<dd><p>We will not disclose your email address to anyone unless we are obliged to by law,
-or you ask us to. This includes the public authority that you are sending a
-request to. They only get to see an email address
-@whatdotheyknow.com which is specific to that request. </p>
-<p>If you send a message to another user on the site, then it will reveal your
-email address to them. You will be told that this is going to happen.</p>
-</dd>
-
-<dt id="nasty_spam">Will you send nasty, brutish spam to my email address? <a href="#nasty_spam">#</a> </dt>
-<dd>Nope. After you sign up to <%= site_name %> we will only send you emails
-relating to a request you made, an email alert that you have signed up for,
-or for other reasons that you specifically authorise. We will never give or
-sell your email addresses to anyone else, unless we are obliged to by law, or
-you ask us to.
-</dd>
-
-<dt id="public_request">Why will my name and my request appear publicly on the site? <a href="#public_request">#</a> </dt>
-
-<dd>
-<p>We publish your request on the Internet so that anybody can read it and
-make use of the information that you have found. We do not normally delete
-requests (<a href="#delete_requests">more details</a>).
-</p>
-<p>
-Your name is tangled up with your request, so has to be published as well.
-It is only fair, as we're going to publish the name of the civil servant who
-writes the response to your request. Using your real name also helps people
-get in touch with you to assist you with your research or to campaign with you.
-</p>
-<p>By law, you must use your real name for the request to be a valid Freedom of
-Information request. See the next question for alternatives if you do not want
-to publish your full name.
-</p>
-</dd>
-
-<dt id="real_name">Can I make an FOI request using a pseudonym? <a href="#real_name">#</a> </dt>
-
-
-<dd>
-<p>Technically, you must use your real name for your request to be a valid Freedom of Information request in law. See this
-<a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/name_of_applicant_fop083_v1.pdf">guidance from the Information Commissioner</a> (January 2009).
-</p>
+<div id="left_column_flip">
+ <h1 id="privacy"><%= @title %></h1>
+ <dl>
+
+ <dt id="email_address">Who gets to see my email address? <a href="#email_address">#</a> </dt>
+
+ <dd><p>We will not disclose your email address to anyone unless we are obliged to by law,
+ or you ask us to. This includes the public authority that you are sending a
+ request to. They only get to see an email address
+ @whatdotheyknow.com which is specific to that request. </p>
+ <p>If you send a message to another user on the site, then it will reveal your
+ email address to them. You will be told that this is going to happen.</p>
+ </dd>
+
+ <dt id="nasty_spam">Will you send nasty, brutish spam to my email address? <a href="#nasty_spam">#</a> </dt>
+ <dd>Nope. After you sign up to WhatDoTheyKnow we will only send you emails
+ relating to a request you made, an email alert that you have signed up for,
+ or for other reasons that you specifically authorise. We will never give or
+ sell your email addresses to anyone else, unless we are obliged to by law, or
+ you ask us to.
+ </dd>
+
+ <dt id="public_request">Why will my name and my request appear publicly on the site? <a href="#public_request">#</a> </dt>
+
+ <dd>
+ <p>We publish your request on the Internet so that anybody can read it and
+ make use of the information that you have found. We do not normally delete
+ requests (<a href="#delete_requests">more details</a>).
+ </p>
+ <p>
+ Your name is tangled up with your request, so has to be published as well.
+ It is only fair, as we're going to publish the name of the civil servant who
+ writes the response to your request. Using your real name also helps people
+ get in touch with you to assist you with your research or to campaign with you.
+ </p>
+ <p>By law, you must use your real name for the request to be a valid Freedom of
+ Information request. See the next question for alternatives if you do not want
+ to publish your full name.
+ </p>
+ </dd>
+
+ <dt id="real_name">Can I make an FOI request using a pseudonym? <a href="#real_name">#</a> </dt>
+
+
+ <dd>
+ <p>Technically, you must use your real name for your request to be a valid Freedom of Information request in law. See this
+ <a href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/detailed_specialist_guides/name_of_applicant_fop083_v1.pdf">guidance from the Information Commissioner</a> (January 2009).
+ </p>
<p>However, the same guidance also says it is good practice for the public
authority to still consider a request made using an obvious pseudonym.
@@ -179,6 +179,6 @@ that authorities resend these with the personal information removed.</p>
<p><strong>Learn more</strong> from the help for <a href="/help/officers">FOI officers</a> --&gt;
-<div id="hash_link_padding"></div>
-
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/requesting.rhtml b/app/views/help/requesting.rhtml
index eec887950..af8f2e45d 100644
--- a/app/views/help/requesting.rhtml
+++ b/app/views/help/requesting.rhtml
@@ -1,293 +1,293 @@
<% @title = "Making requests" %>
<%= render :partial => 'sidebar' %>
-
-<h1 id="making_requests"><%= @title %> <a href="#making_requests">#</a> </h1>
-<dl>
-
-<dt id="which_authority">I'm not sure which authority to make my request to, how can I find out? <a href="#which_authority">#</a> </dt>
-
-<dd>
-<p>It can be hard to untangle government's complicated structured, and work out
-who knows the information that you want. Here are a few tips:
-<ul>
-<li>Browse or search <%= site_name %> looking for similar requests to yours.</li>
-<li>When you've found an authority you think might have the information, use
-the "home page" link on the right hand side of their page to check what they do
-on their website.</li>
-<li>Contact the authority by phone or email to ask if they hold the kind of
-information you're after.</li>
-<li>Don't worry excessively about getting the right authority. If you get it
-wrong, they ought to advise you who to make the request to instead.
-</li>
-<li>If you've got a thorny case, please <a href="/help/contact">contact us</a> for help.</li>
-</ul>
-
-</dd>
-
-
-
-<dt id="missing_body">You're missing the public authority that I want to request from! <a href="#missing_body">#</a> </dt>
-
-<dd>
-<p>Please <a href="/help/contact">contact us</a> with the name of the public authority and,
-if you can find it, their contact email address for Freedom of Information requests.
-</p>
-<p>If you'd like to help add a whole category of public authority to the site, we'd love
-to hear from you too.
-</p>
-
-</dd>
-
-<dt id="authorities">Why do you include some authorities that aren't formally subject to FOI?<a href="#authorities">#</a> </dt>
-
-<dd>
-<p><%= site_name %> lets you make requests for information to a range of
-organisations:</p>
-
-<ul>
- <li> Those formally subject to the FOI Act</li>
- <li> Those formally subject to the Environmental Regulations (a less well
- defined group)</li>
- <li> Those which voluntarily comply with the FOI Act</li>
- <li> Those which aren't subject to the Act but we think should be, on grounds
- such as them having significant public responsibilities.
+<div id="left_column_flip">
+ <h1 id="making_requests"><%= @title %></h1>
+ <dl>
+
+ <dt id="which_authority">I'm not sure which authority to make my request to, how can I find out? <a href="#which_authority">#</a> </dt>
+
+ <dd>
+ <p>It can be hard to untangle government's complicated structured, and work out
+ who knows the information that you want. Here are a few tips:
+ <ul>
+ <li>Browse or search WhatDoTheyKnow looking for similar requests to yours.</li>
+ <li>When you've found an authority you think might have the information, use
+ the "home page" link on the right hand side of their page to check what they do
+ on their website.</li>
+ <li>Contact the authority by phone or email to ask if they hold the kind of
+ information you're after.</li>
+ <li>Don't worry excessively about getting the right authority. If you get it
+ wrong, they ought to advise you who to make the request to instead.
</li>
-</ul>
-
-<p>In the last case, we're using the site to lobby for expansion of the
-scope of the FOI Act. Even if an organisation is not legally obliged to respond
-to an FOI request, they can still do so voluntarily.
-</p>
-
-</dd>
-
-<dt id="focused">Why must I keep my request focused?<a href="#focused">#</a> </dt>
-
-<dd>
+ <li>If you've got a thorny case, please <a href="/help/contact">contact us</a> for help.</li>
+ </ul>
-<p>
-Please put in your request only what is needed so that someone can
-easily identify what information you are asking for. Please do
-<i>not</i> include any of the following:
-</p>
+ </dd>
-<ul>
-<li>arguments about your cause</li>
-<li>statements that could defame or insult others</li>
-</ul>
-<p>
-If you do, we may have to remove your request to avoid problems with
-libel law, which is a pain for both you and us. Short, succinct messages
-make it easier for authorities to be clear what information you are
-requesting, which means you will get a reply more quickly.
-</p>
-<p>
-If you want information to support an argument or campaign, Freedom of
-Information is a powerful tool. Although you may not use this site to
-run your campaign, we encourage you to use it to get the information you
-need. We also encourage to run your campaign elsewhere - one effective
-and very easy way is to <%= link_to 'start your own blog',
-"http://wordpress.com/"%>. You are welcome to link to your campaign
-from this site in an annotation to your request (you can make
-annotations after submitting the request).
-</p>
+ <dt id="missing_body">You're missing the public authority that I want to request from! <a href="#missing_body">#</a> </dt>
-</dd>
+ <dd>
+ <p>Please <a href="/help/contact">contact us</a> with the name of the public authority and,
+ if you can find it, their contact email address for Freedom of Information requests.
+ </p>
+ <p>If you'd like to help add a whole category of public authority to the site, we'd love
+ to hear from you too.
+ </p>
-<dt id="fees">Does it cost me anything to make a request?<a href="#fees">#</a> </dt>
+ </dd>
-<dd>
+ <dt id="authorities">Why do you include some authorities that aren't formally subject to FOI?<a href="#authorities">#</a> </dt>
-<p>Making an FOI request is nearly always free.</p>
+ <dd>
+ <p>WhatDoTheyKnow lets you make requests for information to a range of
+ organisations:</p>
-<p>Authorities often include unnecessary, scary, boilerplate in
-acknowledgement messages saying they "may" charge a fee. Ignore such notices.
-They hardly ever will actually charge a fee. If they do, they can only charge you if
-you have specifically agreed in advance to pay. <a
- href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/practical_application/chargingafee.pdf">More
- details</a> from the Information Commissioner.
-</p>
-
-<p>Sometimes an authority will refuse your request, saying that the cost
-of handling it exceeds £600 (for central government) or £450 (for all other
-public authorities). At this point you can refine your
-request. e.g. it would be much cheaper for an authority to tell you the amount
-spent on marshmallows in the past year than in the past ten years.
-</p>
-
-</dd>
-
-
-
-<dt id="quickly_response">How quickly will I get a response? <a href="#quickly_response">#</a> </dt>
-
-<dd>
-<p>By law, public authorities must respond <strong>promptly</strong> to
-requests.
-</p>
-
-<p>Even if they are not prompt, in nearly all cases they must respond within
-20 working days. If you had to clarify your request, or they are a school,
-or one or two other cases, then they may have more time
-(<a href="/help/officers#days">full details</a>).
-
-<p><%= site_name %> will email you if you don't get a timely response. You can
-then send the public authority a message to remind them, and tell them if they
-are breaking the law.</p>
-
-</dd>
-
-<dt id="deadline_extended">Deadline extended <a href="#deadline_extended">#</a> </dt>
-
-<dd>
-<p>By law, public authorities must needs <strong>more time</strong> for request ... (TO DO)
-</p>
-
-
-</dd>
-<dt id="no_response">What if I never get a response?<a href="#no_response">#</a> </dt>
-
-<dd>
-<p>There are several things you can do if you never get a response.</p>
-<ul>
- <li>Sometimes there has been a genuine problem and the authority never
- received the request. It is worth telephoning the authority and politely
- checking that they received the request. It was sent to them by email.
- </li>
- <li>If they have not received it, the problem is most likely due to
- "spam filters". Refer the authority to the measures in the answer
- '<a href="/help/officers#spam_problems">I can see a request on <%= site_name %>, but we never got it by email!</a>'
- in the FOI officers section of this help.
+ <ul>
+ <li> Those formally subject to the FOI Act</li>
+ <li> Those formally subject to the Environmental Regulations (a less well
+ defined group)</li>
+ <li> Those which voluntarily comply with the FOI Act</li>
+ <li> Those which aren't subject to the Act but we think should be, on grounds
+ such as them having significant public responsibilities.
</li>
- <li>If you're still having no luck, then you can ask for an internal review,
- and then complain to the Information Commissioner about the authority.
- Read our page '<a href="/help/unhappy">Unhappy about the response you got?</a>'.
-</ul>
-</dd>
-
-<dt id="not_satifised">What if I'm not satisfied with the response? <a href="#not_satifised">#</a> </dt>
-<dd>If you didn't get the information you asked for, or you didn't get it in time,
-then read our page '<a href="/help/unhappy">Unhappy about the response you got?</a>'.
-</dd>
-
-<dt id="reuse">It says I can't re-use the information I got!<a href="#reuse">#</a> </dt>
-<dd>
-<p>Authorities often add legal boilerplate about the
-"<a href="http://www.opsi.gov.uk/si/si2005/20051515">Re-Use of Public Sector
-Information Regulations 2005</a>", which at first glance implies you may not
-be able do anything with the information.
-</p>
-
-<p>You can, of course, write articles about the information or summarise it, or
-quote parts of it. We also think you should feel free to republish the
-information in full, just as we do, even though in theory you might not be
-allowed to do so. See <a href="/help/officers#copyright">our policy on copyright</a>.</p>
-
-</dd>
-
-<dt id="ico_help">Can you tell me more of the nitty gritty about the process of making requests? <a href="#ico_help">#</a> </dt>
-
-<dd>
-<p>Have a look at the
-<a href="http://www.ico.gov.uk/for_the_public/access_to_official_information.aspx">access to official information</a>
-pages on the Information Commissioner's website.</p>
-
-<p>If you're requesting information from a Scottish public authority,
-the process is very similar. There are differences around time
-limits for compliance.
-See the <a href="http://www.itspublicknowledge.info/nmsruntime/saveasdialog.asp?lID=1858&amp;sID=321">Scottish
-Information Commissioner's guidance</a> for details.</p>
-</dd>
-
-<dt id="data_protection">Can I request information about myself? <a href="#data_protection">#</a> </dt>
-
-<dd>
-<p>No. Requests made using <%= site_name %> are public, made under the Freedom of
-Information Act, and cannot help you find information about a private
-individual.</p>
-
-<p>If you would like to know what information a public
-authority holds about yourself, you should make a "Subject Access Request" in
-private using Data Protection law. The leaflet "<a
-href="http://www.ico.gov.uk/upload/documents/library/data_protection/introductory/subject_access_rights.pdf">How to access your information</a>" (on the Information Commissioner's
-website) explains how to do this.</p>
-
-<p>If you see that somebody has included personal information, perhaps
-unwittingly, in a request, please <a href="/help/contact">contact us</a>
-immediately so we can remove it.</p>
-</dd>
-
-
-<dt id="private_requests">I'd like to keep my request secret! (At least until I publish my story) <a href="#private_requests">#</a> </dt>
-
-<dd><p><%= site_name %> is currently only designed for public requests. All
-responses that we receive are automatically published on the website for anyone
-to read. </p>
-<p>You should contact the public authority directly if you would like to
-make a request in private. If you're interested in buying a system which helps
-you manage FOI requests in secret, then <a href="/help/contact">contact us</a>.
-</p>
-</dd>
-
-<dt id="eir">Why can I only request information about the environment from some authorities? <a href="#eir">#</a> </dt>
-
-<dd>
-<p>Some public authorities, such as <a href="http://www.whatdotheyknow.com/body/south_east_water">South East Water</a>,
-don't come under the Freedom of Information Act, but do come under another law called
-the Environmental Information Regulations (EIR).
-</p>
-
-<p>It's a very similar law, so you make a request
-to them using <%= site_name %> in just the same way as an FOI request. The only
-difference is that on the page where your write you request, it reminds you
-that you can only request "environmental information" and tells you what that
-means. It is quite broad.
-</p>
-
-<p>You can, of course, request environmental information from other
-authorities. Just make a Freedom of Information (FOI) request as normal. The
-authority has a duty to work out if the Environmental Information Regulations
-(EIR) is the more appropriate legislation to reply under.
-</p>
-</dd>
-
-<dt id="multiple">Can I make the same to request to lots of authorities, e.g. all councils? <a href="#multiple">#</a> </dt>
-
-<dd>We ask you to first send a test version of your request to a few
-authorities. Their responses will help you improve the wording of your request,
-so that you get the best information when you send the request to all of
-the authorities. There is currently no automated system for sending the request
-to the other authorities, you must copy and paste it by hand.
-
-</dd>
-
-<dt id="offsite">I made a request off the site, how do I upload it to the archive?<a href="#offsite">#</a> </dt>
-
-<dd><%= site_name %> is an archive of requests made through the site,
-and does not try to be an archive of all FOI requests. We'll never support uploading
-other requests. For one thing, we wouldn't be able to verify that other
-responses actually came from the authority. If this really matters to you,
-you can always make the same request again via <%= site_name %>.
-</dd>
-
-<dt id="moderation">How do you moderate request annotations? <a href="#moderation">#</a> </dt>
-
-<dd>
-<p>Annotations on <%= site_name %> are to help
-people get the information they want, or to give them pointers to places they
-can go to help them act on it. We reserve the right to remove anything else.
-</p>
-<p>Endless, political discussions are not allowed.
-Post a link to a suitable forum or campaign site elsewhere.</p>
-<dd>
+ </ul>
-</dl>
+ <p>In the last case, we're using the site to lobby for expansion of the
+ scope of the FOI Act. Even if an organisation is not legally obliged to respond
+ to an FOI request, they can still do so voluntarily.
+ </p>
-<p><strong>Next</strong>, read about <a href="/help/privacy">your privacy</a> --&gt;
+ </dd>
-<div id="hash_link_padding"></div>
+ <dt id="focused">Why must I keep my request focused?<a href="#focused">#</a> </dt>
+ <dd>
+
+ <p>
+ Please put in your request only what is needed so that someone can
+ easily identify what information you are asking for. Please do
+ <i>not</i> include any of the following:
+ </p>
+
+ <ul>
+ <li>arguments about your cause</li>
+ <li>statements that could defame or insult others</li>
+ </ul>
+
+ <p>
+ If you do, we may have to remove your request to avoid problems with
+ libel law, which is a pain for both you and us. Short, succinct messages
+ make it easier for authorities to be clear what information you are
+ requesting, which means you will get a reply more quickly.
+ </p>
+
+ <p>
+ If you want information to support an argument or campaign, Freedom of
+ Information is a powerful tool. Although you may not use this site to
+ run your campaign, we encourage you to use it to get the information you
+ need. We also encourage to run your campaign elsewhere - one effective
+ and very easy way is to <%= link_to 'start your own blog',
+ "http://wordpress.com/"%>. You are welcome to link to your campaign
+ from this site in an annotation to your request (you can make
+ annotations after submitting the request).
+ </p>
+
+ </dd>
+
+ <dt id="fees">Does it cost me anything to make a request?<a href="#fees">#</a> </dt>
+
+ <dd>
+
+ <p>Making an FOI request is nearly always free.</p>
+
+ <p>Authorities often include unnecessary, scary, boilerplate in
+ acknowledgement messages saying they "may" charge a fee. Ignore such notices.
+ They hardly ever will actually charge a fee. If they do, they can only charge you if
+ you have specifically agreed in advance to pay. <a
+ href="http://www.ico.gov.uk/upload/documents/library/freedom_of_information/practical_application/chargingafee.pdf">More
+ details</a> from the Information Commissioner.
+ </p>
+
+ <p>Sometimes an authority will refuse your request, saying that the cost
+ of handling it exceeds £600 (for central government) or £450 (for all other
+ public authorities). At this point you can refine your
+ request. e.g. it would be much cheaper for an authority to tell you the amount
+ spent on marshmallows in the past year than in the past ten years.
+ </p>
+
+ </dd>
+
+
+
+ <dt id="quickly_response">How quickly will I get a response? <a href="#quickly_response">#</a> </dt>
+
+ <dd>
+ <p>By law, public authorities must respond <strong>promptly</strong> to
+ requests.
+ </p>
+
+ <p>Even if they are not prompt, in nearly all cases they must respond within
+ 20 working days. If you had to clarify your request, or they are a school,
+ or one or two other cases, then they may have more time
+ (<a href="/help/officers#days">full details</a>).
+
+ <p>WhatDoTheyKnow will email you if you don't get a timely response. You can
+ then send the public authority a message to remind them, and tell them if they
+ are breaking the law.</p>
+
+ </dd>
+
+ <dt id="deadline_extended">Deadline extended <a href="#deadline_extended">#</a> </dt>
+
+ <dd>
+ <p>By law, public authorities must needs <strong>more time</strong> for request ... (TO DO)
+ </p>
+
+
+ </dd>
+ <dt id="no_response">What if I never get a response?<a href="#no_response">#</a> </dt>
+
+ <dd>
+ <p>There are several things you can do if you never get a response.</p>
+ <ul>
+ <li>Sometimes there has been a genuine problem and the authority never
+ received the request. It is worth telephoning the authority and politely
+ checking that they received the request. It was sent to them by email.
+ </li>
+ <li>If they have not received it, the problem is most likely due to
+ "spam filters". Refer the authority to the measures in the answer
+ '<a href="/help/officers#spam_problems">I can see a request on WhatDoTheyKnow, but we never got it by email!</a>'
+ in the FOI officers section of this help.
+ </li>
+ <li>If you're still having no luck, then you can ask for an internal review,
+ and then complain to the Information Commissioner about the authority.
+ Read our page '<a href="/help/unhappy">Unhappy about the response you got?</a>'.
+ </ul>
+ </dd>
+
+ <dt id="not_satifised">What if I'm not satisfied with the response? <a href="#not_satifised">#</a> </dt>
+ <dd>If you didn't get the information you asked for, or you didn't get it in time,
+ then read our page '<a href="/help/unhappy">Unhappy about the response you got?</a>'.
+ </dd>
+
+ <dt id="reuse">It says I can't re-use the information I got!<a href="#reuse">#</a> </dt>
+ <dd>
+ <p>Authorities often add legal boilerplate about the
+ "<a href="http://www.opsi.gov.uk/si/si2005/20051515">Re-Use of Public Sector
+ Information Regulations 2005</a>", which at first glance implies you may not
+ be able do anything with the information.
+ </p>
+
+ <p>You can, of course, write articles about the information or summarise it, or
+ quote parts of it. We also think you should feel free to republish the
+ information in full, just as we do, even though in theory you might not be
+ allowed to do so. See <a href="/help/officers#copyright">our policy on copyright</a>.</p>
+
+ </dd>
+
+ <dt id="ico_help">Can you tell me more of the nitty gritty about the process of making requests? <a href="#ico_help">#</a> </dt>
+
+ <dd>
+ <p>Have a look at the
+ <a href="http://www.ico.gov.uk/for_the_public/access_to_official_information.aspx">access to official information</a>
+ pages on the Information Commissioner's website.</p>
+
+ <p>If you're requesting information from a Scottish public authority,
+ the process is very similar. There are differences around time
+ limits for compliance.
+ See the <a href="http://www.itspublicknowledge.info/nmsruntime/saveasdialog.asp?lID=1858&amp;sID=321">Scottish
+ Information Commissioner's guidance</a> for details.</p>
+ </dd>
+
+ <dt id="data_protection">Can I request information about myself? <a href="#data_protection">#</a> </dt>
+
+ <dd>
+ <p>No. Requests made using WhatDoTheyKnow are public, made under the Freedom of
+ Information Act, and cannot help you find information about a private
+ individual.</p>
+
+ <p>If you would like to know what information a public
+ authority holds about yourself, you should make a "Subject Access Request" in
+ private using Data Protection law. The leaflet "<a
+ href="http://www.ico.gov.uk/upload/documents/library/data_protection/introductory/subject_access_rights.pdf">How to access your information</a>" (on the Information Commissioner's
+ website) explains how to do this.</p>
+
+ <p>If you see that somebody has included personal information, perhaps
+ unwittingly, in a request, please <a href="/help/contact">contact us</a>
+ immediately so we can remove it.</p>
+ </dd>
+
+
+ <dt id="private_requests">I'd like to keep my request secret! (At least until I publish my story) <a href="#private_requests">#</a> </dt>
+
+ <dd><p>WhatDoTheyKnow is currently only designed for public requests. All
+ responses that we receive are automatically published on the website for anyone
+ to read. </p>
+ <p>You should contact the public authority directly if you would like to
+ make a request in private. If you're interested in buying a system which helps
+ you manage FOI requests in secret, then <a href="/help/contact">contact us</a>.
+ </p>
+ </dd>
+
+ <dt id="eir">Why can I only request information about the environment from some authorities? <a href="#eir">#</a> </dt>
+
+ <dd>
+ <p>Some public authorities, such as <a href="http://www.whatdotheyknow.com/body/south_east_water">South East Water</a>,
+ don't come under the Freedom of Information Act, but do come under another law called
+ the Environmental Information Regulations (EIR).
+ </p>
+
+ <p>It's a very similar law, so you make a request
+ to them using WhatDoTheyKnow in just the same way as an FOI request. The only
+ difference is that on the page where your write you request, it reminds you
+ that you can only request "environmental information" and tells you what that
+ means. It is quite broad.
+ </p>
+
+ <p>You can, of course, request environmental information from other
+ authorities. Just make a Freedom of Information (FOI) request as normal. The
+ authority has a duty to work out if the Environmental Information Regulations
+ (EIR) is the more appropriate legislation to reply under.
+ </p>
+ </dd>
+
+ <dt id="multiple">Can I make the same to request to lots of authorities, e.g. all councils? <a href="#multiple">#</a> </dt>
+
+ <dd>We ask you to first send a test version of your request to a few
+ authorities. Their responses will help you improve the wording of your request,
+ so that you get the best information when you send the request to all of
+ the authorities. There is currently no automated system for sending the request
+ to the other authorities, you must copy and paste it by hand.
+
+ </dd>
+
+ <dt id="offsite">I made a request off the site, how do I upload it to the archive?<a href="#offsite">#</a> </dt>
+
+ <dd>WhatDoTheyKnow is an archive of requests made through the site,
+ and does not try to be an archive of all FOI requests. We'll never support uploading
+ other requests. For one thing, we wouldn't be able to verify that other
+ responses actually came from the authority. If this really matters to you,
+ you can always make the same request again via WhatDoTheyKnow.
+ </dd>
+
+ <dt id="moderation">How do you moderate request annotations? <a href="#moderation">#</a> </dt>
+
+ <dd>
+ <p>Annotations on WhatDoTheyKnow are to help
+ people get the information they want, or to give them pointers to places they
+ can go to help them act on it. We reserve the right to remove anything else.
+ </p>
+ <p>Endless, political discussions are not allowed.
+ Post a link to a suitable forum or campaign site elsewhere.</p>
+ <dd>
+
+ </dl>
+
+ <p><strong>Next</strong>, read about <a href="/help/privacy">your privacy</a> --&gt;
+
+ <div id="hash_link_padding"></div>
+</div>
diff --git a/app/views/help/unhappy.rhtml b/app/views/help/unhappy.rhtml
index 86ded2e59..4f3c67b9e 100644
--- a/app/views/help/unhappy.rhtml
+++ b/app/views/help/unhappy.rhtml
@@ -29,7 +29,7 @@ to your request '<%=request_link(@info_request) %>'?
<p>
<% if !@info_request.nil? %>
- Choose <%= link_to "request an internal review", show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup" %> and then write a message asking the authority to review your request.
+ <%= link_to "Request an internal review", show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "?internal_review=1#followup", :class => 'link_button_green' %> and then write a message asking the authority to review your request.
<% else %>
At the bottom of the relevant request page on <%= site_name %> choose
"request an internal review". Then write a message asking for an internal
diff --git a/app/views/layouts/default.rhtml b/app/views/layouts/default.rhtml
index e1e7a1e19..abac4139c 100644
--- a/app/views/layouts/default.rhtml
+++ b/app/views/layouts/default.rhtml
@@ -1,8 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="<%= I18n.locale %>">
<head>
+ <script type="text/javascript" src="/javascripts/jquery.js"></script>
<% if @profile_photo_javascript %>
- <script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript" src="/javascripts/jquery.Jcrop.js"></script>
<script type="text/javascript" src="/javascripts/profile_photo.js"></script>
<link rel="stylesheet" href="/stylesheets/jquery.Jcrop.css" type="text/css" >
@@ -15,19 +15,31 @@
<%= site_name %> - <%= _('Make and browse Freedom of Information (FOI) requests') %>
<% end %>
</title>
-
+
<link rel="shortcut icon" href="/favicon.ico">
- <%= javascript_include_tag 'jquery.js', 'jquery-ui.min' %>
+ <%= stylesheet_link_tag 'main', :title => "Main", :rel => "stylesheet", :media => "all" %>
+ <%= stylesheet_link_tag 'fonts', :rel => "stylesheet", :media => "all" %>
+ <%= stylesheet_link_tag 'theme', :rel => "stylesheet", :media => "all" %>
+ <%= stylesheet_link_tag 'print', :rel => "stylesheet", :media => "print" %>
+ <% if !params[:print_stylesheet].nil? %>
+ <%= stylesheet_link_tag 'print', :rel => "stylesheet", :media => "all" %>
+ <% end %>
+ <%= javascript_include_tag 'jquery.js', 'jquery-ui.min','jquery.cookie.js', 'general.js' %>
<%= stylesheet_link_tag 'admin-theme/jquery-ui-1.8.15.custom.css', :rel => 'stylesheet'%>
- <%= stylesheet_link_tag 'main', :title => "Main", :rel => "stylesheet" %>
<!--[if LT IE 7]>
<style type="text/css">@import url("/stylesheets/ie6.css");</style>
<![endif]-->
<!--[if LT IE 7]>
<style type="text/css">@import url("/stylesheets/ie6-custom.css");</style>
<![endif]-->
+ <!--[if LT IE 8]>
+ <style type="text/css">@import url("/stylesheets/ie7.css");</style>
+ <![endif]-->
<%= stylesheet_link_tag 'custom', :title => "Main", :rel => "stylesheet" %>
-
+ <% if force_registration_on_new_request %>
+ <%= stylesheet_link_tag 'jquery.fancybox-1.3.4', :rel => "stylesheet" %>
+ <% end %>
+
<% if @feed_autodetect %>
<% for feed in @feed_autodetect %>
<link rel="alternate" type="application/atom+xml" title="<%=h feed[:title] %>" href="<%=h feed[:url]%>">
@@ -46,8 +58,30 @@
<%= render :partial => 'general/before_head_end' %>
</head>
- <body>
+ <body <%= "class='front'" if params[:action] == 'frontpage' %>>
+ <!-- XXX: move to a separate file -->
+ <% if force_registration_on_new_request && !@user %>
+ <%= javascript_include_tag 'jquery.fancybox-1.3.4.pack' %>
+ <script type="text/javascript">
+ $(document).ready(function() {
+ $("#make-request-link").fancybox({
+ 'modal': false,
+ 'width': 900,
+ 'height': 400,
+ 'type': 'iframe',
+ 'href': '/en/profile/sign_in?modal=1',
+ 'onClosed': function() {
+ // modal_signin_successful variable set by modal dialog box
+ if (typeof modal_signin_successful != 'undefined' ) {
+ window.location.href = '<%= select_authority_url %>';
+ }
+ }
+ });
+ });
+ </script>
+ <% end %>
+
<% # code for popup advert for a campaign etc.
=begin
<div id="everypage" class="jshide">
@@ -58,59 +92,43 @@
=end
%>
<div class="entirebody">
- <div id="banner"></div>
- <div id="header">
- <h1>
- <%= link_to site_name, frontpage_url %>
- </h1>
+ <div id="banner">
+ <div id="banner_inner">
+ <div class="lang"><%= render :partial => 'general/locale_switcher' %></div>
+
+ <% if not (controller.action_name == 'signin' or controller.action_name == 'signup') %>
+ <div id="logged_in_bar">
+ <% if @user %>
+ <%= _('Hello, {{username}}!', :username => h(@user.name))%>
- <div id="tagline">
- <%= _('Make and explore Freedom of Information requests') %>
- </div>
+ <% if @user %>
+ <%=link_to _("My profile"), user_url(@user) %>
+ <% end %>
- </div>
- <div id="orglogo">
- <%= render :partial => 'general/orglink' %>
- </div>
- <div class="lang"><%= render :partial => 'general/locale_switcher' %></div>
-
- <div id="navigation_search">
- <% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "navigation_search_form"}) do %>
- <p>
- <%= text_field_tag 'query', params[:query], { :size => 40, :id => "navigation_search_query" } %>
- <%= submit_tag _("Search") %>
- </p>
- <% end %>
- </div>
- <div id="topnav">
- <ul id="navigation">
- <li><%= link_to _("Make request"), frontpage_url %></li>
- <li><%= link_to _("View requests"), request_list_successful_url %></li>
- <li><%= link_to _("View authorities"), list_public_bodies_default %></li>
- <% if @user %>
- <li><%=link_to _("My requests"), user_url(@user) %></li>
- <% end %>
- <li><%= link_to _("Read blog"), blog_url %></li>
- <li><%= link_to _("Help"), help_about_url %></li>
- </ul>
- <% if not (controller.action_name == 'signin' or controller.action_name == 'signup') %>
- <div id="logged_in_bar">
- <% if @user %>
- <%= _('Hello, {{username}}!', :username => h(@user.name))%>
- (<%= link_to _("Sign out"), signout_url(:r => request.request_uri) %>)
- <% else %>
- <%= _('Hello!') %>
- (<%= link_to _("Sign in or sign up"), signin_url(:r => request.request_uri) %>)
+ <%= link_to _("Sign out"), signout_url(:r => request.request_uri) %>
+ <% else %>
+ <%= link_to _("Sign in or sign up"), signin_url(:r => request.request_uri) %>
+ <% end %>
+ </div>
+ <% end %>
+
+ <div id="navigation_search">
+ <% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "navigation_search_form"}) do %>
+ <p>
+ <%= text_field_tag 'query', params[:query], { :size => 40, :id => "navigation_search_query" } %>
+ <%= image_submit_tag('search-button.png') %>
+ </p>
<% end %>
- </div>
- <% end %>
+ </div>
+
+ <%= render :partial => 'general/orglink' %>
+
+ <%= render :partial => 'general/topnav' %>
+ </div>
</div>
-
<div id="wrapper">
-
<div id="content">
-
<% if flash[:notice] %>
<div id="notice"><%= flash[:notice] %></div>
<% end %>
@@ -121,16 +139,20 @@
<div id="<%= controller.controller_name + "_" + controller.action_name %>" class="controller_<%= controller.controller_name %>">
<%= yield :layout %>
</div>
+ <div style="clear:both"></div>
</div>
</div>
- <div id="footer">
- <%= link_to _("Contact {{site_name}}", :site_name => site_name), help_contact_url %>
- <%= render :partial => 'general/credits' %>
- </div>
- <div class="after-footer">&nbsp;</div>
+ <%= render :partial => 'general/footer' %>
<%= render :partial => 'general/before_body_end' %>
</div>
+<div id="other-country-notice"></div>
+<div id="link_box"><span class="close-button">X</span>
+<%= _("Paste this link into emails, tweets, and anywhere else:") %>
+<br />
+<input type="text">
+</div>
</body>
</html>
+
diff --git a/app/views/layouts/no_chrome.rhtml b/app/views/layouts/no_chrome.rhtml
new file mode 100644
index 000000000..74c79b701
--- /dev/null
+++ b/app/views/layouts/no_chrome.rhtml
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="<%= I18n.locale %>">
+ <head>
+ <title>
+ <% if @title %>
+ <%=@title%> - <%= site_name %>
+ <% else %>
+ <%= site_name %> - <%= _('Make and browse Freedom of Information (FOI) requests') %>
+ <% end %>
+ </title>
+
+ <script type="text/javascript" src="/javascripts/jquery.js"></script>
+
+ <%= stylesheet_link_tag 'main', :title => "Main", :rel => "stylesheet" %>
+ <%= stylesheet_link_tag 'fonts', :rel => "stylesheet" %>
+ <%= stylesheet_link_tag 'theme', :rel => "stylesheet" %>
+ <!--[if LT IE 7]>
+ <style type="text/css">@import url("/stylesheets/ie6.css");</style>
+ <![endif]-->
+ <!--[if LT IE 7]>
+ <style type="text/css">@import url("/stylesheets/ie6-custom.css");</style>
+ <![endif]-->
+ <%= stylesheet_link_tag 'custom', :title => "Main", :rel => "stylesheet" %>
+ </head>
+ <body>
+ <div class="entirebody">
+ <div id="content">
+ <% if flash[:notice] %>
+ <div id="notice"><%= flash[:notice] %></div>
+ <% end %>
+ <% if flash[:error] %>
+ <div id="error"><%= flash[:error] %></div>
+ <% end %>
+
+ <div id="<%= controller.controller_name + "_" + controller.action_name %>" class="controller_<%= controller.controller_name %>">
+ <%= yield :layout %>
+ </div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/app/views/public_body/_body_listing.rhtml b/app/views/public_body/_body_listing.rhtml
index 48b6e8245..864ab8c9b 100644
--- a/app/views/public_body/_body_listing.rhtml
+++ b/app/views/public_body/_body_listing.rhtml
@@ -1,5 +1,7 @@
<% if public_bodies.empty? %>
+ <p>
<%= _("None found.")%>
+ </p>
<% else %>
<% for public_body in public_bodies %>
<%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => public_body } %>
diff --git a/app/views/public_body/_search_ahead.rhtml b/app/views/public_body/_search_ahead.rhtml
new file mode 100644
index 000000000..19c7eb4e8
--- /dev/null
+++ b/app/views/public_body/_search_ahead.rhtml
@@ -0,0 +1,18 @@
+<p>
+ <% if @xapian_requests.results.size > 0 %>
+ <h3><%= _('Top search results:') %></h3>
+ <p>
+ <%= _('Select one to see more information about the authority.')%>
+ </p>
+ <% else %>
+ <h3><%= _('No results found.') %></h3>
+ <% end %>
+ <div id="authority_search_ahead_results">
+ <% for result in @xapian_requests.results %>
+ <%= render :partial => 'body_listing_single', :locals => { :public_body => result[:model] } %>
+ <% end %>
+ </div>
+</p>
+
+
+
diff --git a/app/views/public_body/list.rhtml b/app/views/public_body/list.rhtml
index c8a89ed3a..81593fcc7 100644
--- a/app/views/public_body/list.rhtml
+++ b/app/views/public_body/list.rhtml
@@ -1,14 +1,13 @@
-<div id="body_sidebar">
+<div id="right_column_flip">
+ <h2><%=_('Show only...')%></h2>
- <h1><%=_('Show only...')%></h1>
-
- <h2><%=_('Alphabet') %></h2>
+ <h3><%=_('Beginning with') %></h3>
<ul><li>
<%= render :partial => 'alphabet' %>
</li></ul>
<% first_row = true %>
- <% for row in PublicBodyCategories::CATEGORIES_WITH_HEADINGS %>
+ <% for row in PublicBodyCategories::get().with_headings() %>
<% if row.instance_of?(Array) %>
<li>
<%= link_to_unless (@tag == row[0]), row[1], list_public_bodies_url(:tag => row[0]) %>
@@ -19,7 +18,7 @@
<% else %>
<% first_row = false %>
<% end %>
- <h2><%=h row%></h2>
+ <h3><%=h row%></h3>
<ul>
<% end %>
<% end %>
@@ -31,29 +30,22 @@
<p>
<%= link_to _('List of all authorities (CSV)'), all_public_bodies_csv_url() %>
</p>
-
</div>
<% @title = _("Public authorities - {{description}}", :description => @description) %>
+<div id="left_column_flip">
+<h1><%= _('Public authorities') %></h1>
-<h1><%=@title%></h1>
-
-<% form_tag(request.url, :method => "get") do %>
+<% form_tag(list_public_bodies_default_url, :method => "get", :id=>"search_form") do %>
<div>
- <%= label_tag(:public_body_query, _("Search:")) %>
<%= text_field_tag(:public_body_query, params[:public_body_query]) %>
<%= submit_tag(_("Search")) %>
</div>
<% end %>
-<p class="subtitle">
- <%= @public_bodies.size %> <%= _('in total') %>
- (<%= _('<a href="%s">can\'t find the one you want?</a>') % [help_requesting_path + '#missing_body'] %>)
-</p>
-
+<h2 class="publicbody_results"><%= _('Found {{count}} public bodies {{description}}', :count=>@public_bodies.size, :description=>@description) %></h2>
<%= render :partial => 'body_listing', :locals => { :public_bodies => @public_bodies } %>
-<% if @tag.size == 1 && @public_bodies.size > 0 %>
- <p><%= render :partial => 'alphabet' %></p>
-<% end %>
-<%= will_paginate(@public_bodies) %>
+ <%= will_paginate(@public_bodies) %><br/>
+ <%= _('<a href="%s">Can\'t find the one you want?</a>') % [help_requesting_path + '#missing_body'] %>
+</div>
diff --git a/app/views/public_body/show.rhtml b/app/views/public_body/show.rhtml
index 1151b9966..2436c58b9 100644
--- a/app/views/public_body/show.rhtml
+++ b/app/views/public_body/show.rhtml
@@ -1,69 +1,72 @@
<% @title = h(@public_body.name) + " - view and make Freedom of Information requests" %>
-<div id="request_sidebar">
- <h2><%= _('Track this authority')%></h2>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
- <h2><%= _('More about this authority')%></h2>
- <% if !@public_body.calculated_home_page.nil? %>
- <%= link_to _('Home page of authority'), @public_body.calculated_home_page %><br>
- <% end %>
- <% if !@public_body.publication_scheme.empty? %>
- <%= link_to _('Publication scheme'), @public_body.publication_scheme %><br>
- <% end %>
- <% if @public_body.has_tag?("charity") %>
- <% for tag_value in @public_body.get_tag_values("charity") %>
- <% if tag_value.match(/^SC/) %>
- <%= link_to _('Charity registration'), "http://www.oscr.org.uk/CharityIndexDetails.aspx?id=" + tag_value %><br>
- <% else %>
- <%= link_to _('Charity registration'), "http://www.charity-commission.gov.uk/SHOWCHARITY/RegisterOfCharities/CharityFramework.aspx?RegisteredCharityNumber=" + tag_value %><br>
- <% end %>
- <% end %>
- <% end %>
- <%= link_to _('View FOI email address'), view_public_body_email_url(@public_body.url_name) %><br>
-</div>
+<div id="main_content">
+ <div id="header_right">
+ <h2><%= _('Follow this authority')%></h2>
-<h1><%=h(@public_body.name)%></h1>
+ <% follower_count = TrackThing.count(:all, :conditions => ["public_body_id = ?", @public_body.id]) %>
+ <p><%= n_("There is %d person following this authority", "There are %d people following this authority", follower_count) % follower_count %></p>
-<p class="subtitle">
-<%=@public_body.type_of_authority(true)%>
-<% if not @public_body.short_name.empty? %>,
-<%= _('also called {{public_body_short_name}}', :public_body_short_name => h(@public_body.short_name))%><% end %>
-<% if !@user.nil? && @user.admin_page_links? %>
-(<%= link_to _("admin"), public_body_admin_url(@public_body) %>)
-<% end %>
-</p>
+ <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
+ <h2><%= _('More about this authority')%></h2>
+ <% if !@public_body.calculated_home_page.nil? %>
+ <%= link_to _('Home page of authority'), @public_body.calculated_home_page %><br>
+ <% end %>
+ <% if !@public_body.publication_scheme.empty? %>
+ <%= link_to _('Publication scheme'), @public_body.publication_scheme %><br>
+ <% end %>
+ <% if @public_body.has_tag?("charity") %>
+ <% for tag_value in @public_body.get_tag_values("charity") %>
+ <% if tag_value.match(/^SC/) %>
+ <%= link_to _('Charity registration'), "http://www.oscr.org.uk/CharityIndexDetails.aspx?id=" + tag_value %><br>
+ <% else %>
+ <%= link_to _('Charity registration'), "http://www.charity-commission.gov.uk/SHOWCHARITY/RegisterOfCharities/CharityFramework.aspx?RegisteredCharityNumber=" + tag_value %><br>
+ <% end %>
+ <% end %>
+ <% end %>
+ <%= link_to _('View FOI email address'), view_public_body_email_url(@public_body.url_name) %><br>
+ </div>
-<% if @public_body.has_notes? && (@public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact') %>
- <p><%= @public_body.notes_as_html %></p>
-<% end %>
+ <div id="header_left">
+ <p class="public-body-name-prefix"><%= _("Freedom of information requests to") %></p>
+ <h1><%=h(@public_body.name)%></h1>
-<% if @public_body.eir_only? %>
- <p><%= _('You can only request information about the environment from this authority.')%></p>
-<% end %>
+ <p class="subtitle">
+ <%=@public_body.type_of_authority(true)%><% if not @public_body.short_name.empty? %>,
+ <%= _('also called {{public_body_short_name}}', :public_body_short_name => h(@public_body.short_name))%><% end %>
+ <% if !@user.nil? && @user.admin_page_links? %>
+ (<%= link_to _("admin"), public_body_admin_url(@public_body) %>)
+ <% end %>
+ </p>
-<div id="stepwise_make_request">
- <strong>
- <% if @public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact' %>
- <% if @public_body.eir_only? %>
- <%= link_to _("Make a new Environmental Information request"), new_request_to_body_url(:url_name => @public_body.url_name)%> to <%= h(@public_body.name) %>
+ <% if @public_body.has_notes? && (@public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact') %>
+ <p><%= @public_body.notes_as_html %></p>
+ <% end %>
+
+ <% if @public_body.eir_only? %>
+ <p><%= _('You can only request information about the environment from this authority.')%></p>
+ <% end %>
+ <div id="stepwise_make_request">
+ <% if @public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact' %>
+ <% if @public_body.eir_only? %>
+ <%= _('Make a new <strong>Environmental Information</strong> request')%>
+ <% else %>
+ <%= _('Make a new <strong>Freedom of Information</strong> request to {{public_body}}', :public_body => h(@public_body.name))%>
+ <% end %>
+ &nbsp;<%= _('<a class="link_button_green" href="{{url}}">{{text}}</a>', :url=>new_request_to_body_url(:url_name => @public_body.url_name), :text=>_("Start"))%>
+ <% elsif @public_body.has_notes? %>
+ <%= @public_body.notes_as_html %>
+ <% elsif @public_body.not_requestable_reason == 'not_apply' %>
+ <%= _('Freedom of Information law does not apply to this authority, so you cannot make
+ a request to it.')%>
+ <% elsif @public_body.not_requestable_reason == 'defunct' %>
+ <%= _('This authority no longer exists, so you cannot make a request to it.')%>
<% else %>
- <%= _('<a href="{{url}}">Make a new Freedom of Information request</a> to {{public_body_name}}',
- :public_body_name => h(@public_body.name), :url=>new_request_to_body_url(:url_name => @public_body.url_name))%>
+ <%= _('For an unknown reason, it is not possible to make a request to this authority.')%>
<% end %>
- <% elsif @public_body.has_notes? %>
- <%= @public_body.notes_as_html %>
- <% elsif @public_body.not_requestable_reason == 'not_apply' %>
- <%= _('Freedom of Information law does not apply to this authority, so you cannot make
- a request to it.')%>
- <% elsif @public_body.not_requestable_reason == 'defunct' %>
- <%= _('This authority no longer exists, so you cannot make a request to it.')%>
- <% else %>
- <%= _('For an unknown reason, it is not possible to make a request to this authority.')%>
- <% end %>
- </strong>
-</div>
+ </div>
+ </div>
-<% if !@xapian_requests.nil? %>
<% if @public_body.info_requests.size == 0 %>
<% if @public_body.eir_only? %>
<h2><%= _('Environmental Information Regulations requests made using this site') %></h2>
@@ -73,36 +76,46 @@
<p><%= _('Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet.', :public_body_name => h(@public_body.name))%></p>
<% end %>
<% else %>
- <h2>
+ <h2 class="foi_results">
<% if @public_body.eir_only? %>
<%= pluralize(@public_body.info_requests.size, "Environmental Information Regulations request made using this site") %>
<% else %>
- <%= n_('%d Freedom of Information request made using this site', '%d Freedom of Information requests made using this site', @public_body.info_requests.size) % @public_body.info_requests.size %>
+ <% if @public_body.info_requests.size > 4 %>
+ <%= n_('Search within the %d Freedom of Information requests to %s', 'Search within the %d Freedom of Information requests made to %s', @public_body.info_requests.size) % [@public_body.info_requests.size, @public_body.name] %>
+ <% else %>
+ <%= n_('%d Freedom of Information request to %s', '%d Freedom of Information requests to %s', @public_body.info_requests.size) % [@public_body.info_requests.size, @public_body.name] %>
+ <% end %>
<% end %>
<%= @page_desc %>
</h2>
+ <a name="results"></a>
+
+ <% if @public_body.info_requests.size > 4 %>
+ <%= render :partial => 'request/request_filter_form' %>
+ <% end %>
+ <% end %>
- <%= render :partial => 'request/request_filter_form' %>
+ <div style="clear:both">&nbsp;</div>
+ <% if !@xapian_requests.nil? %>
- <% for result in @xapian_requests.results %>
- <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
- <% end %>
+ <% for result in @xapian_requests.results %>
+ <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
+ <% end %>
- <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @public_body.info_requests.size) %>
+ <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @public_body.info_requests.size) %>
- <% if @xapian_requests.results.empty? %>
- <p><% _('There were no requests matching your query.') %></p>
- <% else %>
- <p> <%= _('Only requests made using {{site_name}} are shown.', :site_name => site_name) %></p>
- <% end %>
-
- <% end %>
-<% else %>
- <% if @public_body.eir_only? %>
- <h2><%= _('Environmental Information Regulations requests made') %></h2>
- <% else %>
- <h2> <%= _('Freedom of Information requests made')%></h2>
- <% end %>
- <p> <%= _('The search index is currently offline, so we can\'t show the Freedom of Information requests that have been made to this authority.')%></p>
-<% end %>
+ <% if @xapian_requests.results.empty? %>
+ <p><% _('There were no requests matching your query.') %></p>
+ <% else %>
+ <p> <%= _('Only requests made using {{site_name}} are shown.', :site_name => site_name) %></p>
+ <% end %>
+ <% else %>
+ <% if @public_body.eir_only? %>
+ <h2><%= _('Environmental Information Regulations requests made') %></h2>
+ <% else %>
+ <h2> <%= _('Freedom of Information requests made')%></h2>
+ <% end %>
+ <p> <%= _('The search index is currently offline, so we can\'t show the Freedom of Information requests that have been made to this authority.')%></p>
+ <% end %>
+</div>
diff --git a/app/views/request/_after_actions.rhtml b/app/views/request/_after_actions.rhtml
index 797ecaea5..205b738de 100644
--- a/app/views/request/_after_actions.rhtml
+++ b/app/views/request/_after_actions.rhtml
@@ -13,19 +13,21 @@
<%= link_to _('Update the status of this request'), '#describe_state_form_1' %>
</li>
<% end %>
+ <li>
+ <%= link_to _("Download a zip file of all correspondence"), download_entire_request_url(:url_title => @info_request.url_title) %>
+ </li>
</ul>
</div>
<div id="owner_actions">
<strong><%= _('{{info_request_user_name}} only:',:info_request_user_name=>h(@info_request.user.name)) %></strong>
<ul>
+
<li>
<% if @last_response.nil? %>
- <%= link_to "Send follow up to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "#followup" %>
+ <%= link_to _("Send a followup"), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil) + "#followup" %>
<% else %>
- <% foi_cache(:controller => "request", :action => "show_response", :id => @info_request.id, :incoming_message_id => @last_response.id, :only_path => true, :template => "_after_actions", :section => "reply_to_link") do %>
- <%= link_to "Reply to " + OutgoingMailer.name_for_followup(@info_request, @last_response), show_response_url(:id => @info_request.id, :incoming_message_id => @last_response.id) + "#followup" %>
- <% end %>
+ <%= link_to _("Write a reply"), show_response_url(:id => @info_request.id, :incoming_message_id => @last_response.id) + "#followup" %>
<% end %>
</li>
<% if !@old_unclassified %>
diff --git a/app/views/request/_correspondence.rhtml b/app/views/request/_correspondence.rhtml
index 4e46347b8..9a198ad7d 100644
--- a/app/views/request/_correspondence.rhtml
+++ b/app/views/request/_correspondence.rhtml
@@ -1,3 +1,4 @@
+<div class="ff-print-fix"></div>
<%
if !info_request_event.nil? && info_request_event.event_type == 'response'
incoming_message = info_request_event.incoming_message
@@ -5,11 +6,10 @@ end
if not incoming_message.nil?
%>
- <div class="correspondence" id="incoming-<%=incoming_message.id.to_s%>">
- <% foi_cache(:controller => "request", :action => "show_response", :id => @info_request.id, :incoming_message_id => incoming_message.id, :only_path => true, :template => "_correspondence", :section => "incoming_message_bubble", :collapse => @collapse_quotes ? nil : 'no' ) do %>
+ <div class="incoming correspondence" id="incoming-<%=incoming_message.id.to_s%>">
<h2>
<% if !incoming_message.safe_mail_from.nil? && incoming_message.safe_mail_from.strip != @info_request.public_body.name.strip %>
- <%=h incoming_message.safe_mail_from %><br>
+ <%= _("From:") %> <%=h incoming_message.safe_mail_from %><br>
<% end %>
<% if incoming_message.safe_mail_from.nil? || (incoming_message.mail_from_domain == @info_request.public_body.request_email_domain) %>
<%=h @info_request.public_body.name %><br>
@@ -18,25 +18,22 @@ if not incoming_message.nil?
</h2>
<%= render :partial => 'bubble', :locals => { :incoming_message => incoming_message, :body => incoming_message.get_body_for_html_display(@collapse_quotes), :attachments => incoming_message.get_attachments_for_display } %>
- <% end %>
<p class="event_actions">
<% if !@user.nil? && @user.admin_page_links? %>
<%= link_to "Admin", admin_url("request/show_raw_email/" + incoming_message.raw_email_id.to_s) %> |
<% end %>
- <%= link_to _("Link to this"), incoming_message_url(incoming_message) %> |
- <%= link_to _("Reply to this message"), show_response_url(:id => incoming_message.info_request.id, :incoming_message_id => incoming_message.id) + "#followup" %>
-
+ <%= link_to _("Link to this"), incoming_message_url(incoming_message), :class => "link_to_this" %>
</p>
</div>
<%
elsif [ 'sent', 'followup_sent' ].include?(info_request_event.event_type)
outgoing_message = info_request_event.outgoing_message
%>
- <div class="correspondence" id="outgoing-<%=outgoing_message.id.to_s%>">
+ <div class="outgoing correspondence" id="outgoing-<%=outgoing_message.id.to_s%>">
<h2>
- <%=h @info_request.user.name %><br>
+ <%= _("From:") %> <%=h @info_request.user.name %><br>
<br><%= simple_date(info_request_event.created_at) %>
</h2>
@@ -54,12 +51,11 @@ elsif [ 'sent', 'followup_sent' ].include?(info_request_event.event_type)
<% end %>
-->
- <%= link_to _("Link to this"), outgoing_message_url(outgoing_message) %> |
- <%= link_to _("Send follow up"), show_response_no_followup_url(:id => outgoing_message.info_request.id, :incoming_message_id => nil) + "#followup" %>
+ <%= link_to _("Link to this"), outgoing_message_url(outgoing_message), :class => "link_to_this" %>
</p>
</div>
<% elsif [ 'resent', 'followup_resent' ].include?(info_request_event.event_type) %>
- <div class="correspondence" id="outgoing-<%=outgoing_message.id.to_s%>">
+ <div class="outgoing correspondence" id="outgoing-<%=outgoing_message.id.to_s%>">
<h2>
<%= simple_date(info_request_event.created_at) %>
</h2>
diff --git a/app/views/request/_followup.rhtml b/app/views/request/_followup.rhtml
index a15f2912d..be57ac9ef 100644
--- a/app/views/request/_followup.rhtml
+++ b/app/views/request/_followup.rhtml
@@ -1,17 +1,44 @@
<div id="followup">
-
+ <% if (incoming_message.nil? || !incoming_message.valid_to_reply_to?)
+ name_for_followup = _("the main FOI contact at {{public_body}}", :public_body => h(OutgoingMailer.name_for_followup(@info_request, nil)))
+ else
+ name_for_followup = h(OutgoingMailer.name_for_followup(@info_request, incoming_message))
+ end %>
<% if @internal_review %>
- <h1><%= _('Request an internal review from') %> <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
+ <h1><%= _('Request an internal review from {{person_or_body}}', :person_or_body => name_for_followup) %>
</h1>
<% elsif incoming_message.nil? || !incoming_message.valid_to_reply_to? %>
- <h2><%= _('Send a public follow up message to') %> <%=h OutgoingMailer.name_for_followup(@info_request, nil) %>
+ <h2><%= _('Send a public follow up message to {{person_or_body}}', :person_or_body => name_for_followup) %>
</h2>
<% else %>
- <h2><%= _('Send a public reply to') %>
- <%=h OutgoingMailer.name_for_followup(@info_request, incoming_message) %>
+ <h2><%= _('Send a public reply to {{person_or_body}}', :person_or_body => name_for_followup) %>
</h2>
<% end %>
+<% if @info_request.who_can_followup_to(incoming_message).count > 0 %>
+<div id="other_recipients">
+ <%= _("Don't want to address your message to {{person_or_body}}? You can also write to:", :person_or_body => name_for_followup) %>
+ <ul>
+<% @info_request.who_can_followup_to(incoming_message).each do |name, email, id| %>
+ <% if id.nil? && !incoming_message.nil? && incoming_message.valid_to_reply_to? %>
+ <li><%= link_to(_("the main FOI contact address for {{public_body}}", :public_body => name), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil)) %></li>
+ <% else %>
+ <% if !id.nil? %>
+ <% if @info_request.public_body.request_email == email %>
+ <% if !incoming_message.nil? %>
+ <li><%= link_to(_("the main FOI contact address for {{public_body}}", :public_body => name), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil)) %></li>
+ <% end %>
+ <% else %>
+ <li><%= link_to name, show_response_url(:id => @info_request.id, :incoming_message_id => id)%></li>
+ <% end %>
+ <% else %>
+ <li><%= link_to(_("the main FOI contact address for {{public_body}}", :public_body => name), show_response_no_followup_url(:id => @info_request.id, :incoming_message_id => nil)) %></li>
+ <% end %>
+ <% end %>
+<% end %>
+</ul>
+</div>
+<% end %>
<% if @info_request.allow_new_responses_from == 'nobody' %>
<p><%= _('Follow ups and new responses to this request have been stopped to prevent spam. Please <a href="{{url}}">contact us</a> if you are {{user_link}} and need to send a follow up.',:user_link=>user_link(@info_request.user), :url=>help_contact_path) %></p>
<% else %>
diff --git a/app/views/request/_next_actions.rhtml b/app/views/request/_next_actions.rhtml
new file mode 100644
index 000000000..f318df6e4
--- /dev/null
+++ b/app/views/request/_next_actions.rhtml
@@ -0,0 +1 @@
+<!-- Consider listing websites that users might find useful here (in your theme) -->
diff --git a/app/views/request/_request_filter_form.rhtml b/app/views/request/_request_filter_form.rhtml
index 33b7bfb27..fa760bf74 100644
--- a/app/views/request/_request_filter_form.rhtml
+++ b/app/views/request/_request_filter_form.rhtml
@@ -1,32 +1,9 @@
<%= render :partial => 'general/localised_datepicker' %>
<div id="list-filter">
- <div class="list-filter-item">
- Showing:
- <ul class="request-selector">
- <% for status, label in [["all", _("all requests")],
- ["successful", _("successful requests")],
- ["unsuccessful", _("unsuccessful requests")],
- ["awaiting", _("unresolved requests")]] %>
- <li>
- <% if params[:view] != status %>
- <% if params[:controller] == "public_body"
-
- %>
- <%= link_to label, url_for(:controller => "public_body", :action => "show", :view => status, :url_name => @public_body.url_name) + "?" + request.query_string %>
- <% else %>
- <%= link_to label, url_for(:controller => "request", :action => "list", :view => status) + "?" + request.query_string %>
- <% end %>
- <% else %>
- <%= label %>
- <% end %>
- </li>
- <% end %>
- </ul>
- </div>
- <% form_tag(request.path, :method => "get") do %>
+ <% form_tag(request.path, :method => "get", :id=>"filter_requests_form") do %>
<div class="list-filter-item">
- <%= label_tag(:query, _("Search for:")) %>
+ <%= label_tag(:query, _("Keywords"), :class=>"form_label title") %>
<%= text_field_tag(:query, params[:query]) %>
</div>
<% if false # don't think we want this, but leaving as an example %>
@@ -43,13 +20,33 @@
</div>
<% end %>
<div class="list-filter-item">
- Search between dates:
- <%= text_field_tag(:request_date_after, params[:request_date_after], {:class => "use-datepicker", :size => 10}) %> -
+ <%= label_tag(:query, _("Made between"), :class=>"form_label title") %>
+ <%= text_field_tag(:request_date_after, params[:request_date_after], {:class => "use-datepicker", :size => 10}) %>&nbsp;&nbsp;
+ <%= label_tag(:query, _("and"), :class=>"form_label") %>
<%= text_field_tag(:request_date_before, params[:request_date_before], {:class => "use-datepicker", :size => 10}) %>
</div>
+ <div class="list-filter-item">
+ <h3 class="title"><%= _("Showing") %></h3>
+ <% statuses = [["all", _("all requests")],
+ ["successful", _("successful requests")],
+ ["unsuccessful", _("unsuccessful requests")],
+ ["awaiting", _("unresolved requests")]] %>
+ <% for status, label in statuses %>
+ <% if params[:view] != status %>
+ <% if params[:controller] == "public_body" %>
+ <%= link_to label, url_for(:controller => "public_body", :action => "show", :view => status, :url_name => @public_body.url_name) + "?" + request.query_string + '#results' %>
+ <% else %>
+ <%= link_to label, url_for(:controller => "request", :action => "list", :view => status) + "?" + request.query_string + '#results' %>
+ <% end %>
+ <% else %>
+ <%= label %>
+ <% end %>
+ <%= "|" unless statuses.last[0] == status %>
+ <% end %>
+ </div>
<div class="list-filter-item">
- <%= submit_tag("Search") %>
+ <%= submit_tag(_("Search")) %>
</div>
<% end %>
</div>
diff --git a/app/views/request/_request_listing_via_event.rhtml b/app/views/request/_request_listing_via_event.rhtml
index afacabea5..e7c378cec 100644
--- a/app/views/request/_request_listing_via_event.rhtml
+++ b/app/views/request/_request_listing_via_event.rhtml
@@ -3,7 +3,8 @@
end %>
<div class="request_listing">
- <span class="head">
+ <div class="request_left">
+ <span class="head">
<% if event.is_incoming_message? %>
<%= link_to highlight_words(info_request.title, @highlight_words), incoming_message_url(event.incoming_message) %>
<% elsif event.is_outgoing_message? and event.event_type == 'followup_sent' %>
@@ -13,18 +14,9 @@ end %>
<% else %>
<%= link_to highlight_words(info_request.title, @highlight_words), request_url(info_request) %>
<% end %>
- </span>
- <span class="desc">
- <%= highlight_and_excerpt(event.search_text_main(true), @highlight_words, 150) %>
- </span>
-
- <span class="bottomline icon_<%= info_request.calculate_status %>">
-
- <strong>
- <%= info_request.display_status %>
- </strong><br>
-
- <% if event.event_type == 'sent' %>
+ </span>
+ <div class="requester">
+ <% if event.event_type == 'sent' %>
<%= _('Request sent to {{public_body_name}} by {{info_request_user}} on {{date}}.',:public_body_name=>public_body_link_absolute(info_request.public_body),:info_request_user=>user_link_absolute(info_request.user),:date=>simple_date(event.created_at )) %>
<% elsif event.event_type == 'followup_sent' %>
<%=event.display_status %>
@@ -37,6 +29,17 @@ end %>
<% else %>
<% raise _("unknown event type indexed ") + event.event_type %>
<% end %>
+ </div>
+ <span class="bottomline icon_<%= info_request.calculate_status %>">
+ <strong>
+ <%= info_request.display_status %>
+ </strong><br>
</span>
+ </div>
+ <div class="request_right">
+ <span class="desc">
+ <%= highlight_and_excerpt(event.search_text_main(true), @highlight_words, 150) %>
+ </span>
+ </div>
</div>
diff --git a/app/views/request/_search_ahead.rhtml b/app/views/request/_search_ahead.rhtml
new file mode 100644
index 000000000..9c49680c3
--- /dev/null
+++ b/app/views/request/_search_ahead.rhtml
@@ -0,0 +1,12 @@
+<div id="request_search_ahead_results">
+ <% if @xapian_requests.results.size > 0 %>
+ <h3><%= _("Possibly related requests:") %></h3>
+ <% end %>
+ <% for result in @xapian_requests.results %>
+ <%= render :partial => 'request/request_listing_short_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
+ <% end %>
+
+ <p>
+ <a id="body-site-search-link" target="_blank"><%= _("Or search in their website for this information.") %></a>
+ </p>
+</div>
diff --git a/app/views/request/_sidebar.rhtml b/app/views/request/_sidebar.rhtml
index 2b9652d9c..2a9b5a73f 100644
--- a/app/views/request/_sidebar.rhtml
+++ b/app/views/request/_sidebar.rhtml
@@ -1,38 +1,32 @@
-<div id="request_sidebar">
- <h2><%= _('Track this request') %></h2>
+<div id="right_column">
+ <h2><%= _('Follow this request') %></h2>
+
+ <% follower_count = TrackThing.count(:all, :conditions => ["info_request_id = ?", @info_request.id]) + 1 %>
+ <p><%= n_("There is %d person following this request", "There are %d people following this request", follower_count) % follower_count %></p>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => @info_request.user == @user, :location => 'sidebar' } %>
<h2><%= _("Act on what you've learnt") %></h2>
+
<div class="act_link">
- <%= link_to '<img src="/images/helpmeinvestigate.png" alt="" class="rss">', "http://helpmeinvestigate.com/"%>
- <%= link_to 'Get help investigating', "http://helpmeinvestigate.com/"%>
- </div>
- <div class="act_link">
- <%= link_to '<img src="/images/writetothem.png" alt="" class="rss">', "http://www.writetothem.com"%>
- <%= link_to 'Write to your politician', "http://www.writetothem.com"%>
- </div>
- <div class="act_link">
- <%= link_to '<img src="/images/pledgebank.png" alt="" class="rss">', "http://www.pledgebank.com"%>
- <%= link_to 'Pledge with others', "http://www.pledgebank.com"%>
+ <% tweet_link = "http://twitter.com/share?url=#{h(request.url)}&via=#{h(MySociety::Config.get('TWITTER_USERNAME', ''))}&text='#{h(@info_request.title)}'&related=#{_('alaveteli_foi:The software that runs {{site_name}}', :site_name => h(site_name))}" %>
+ <%= link_to '<img src="/images/twitter-16.png" alt="twitter icon">', tweet_link %>
+ <%= link_to _("Tweet this request"), tweet_link %>
</div>
- <!-- <div class="act_link">
- <%= link_to '<img src="/images/petitions.png" alt="" class="rss">', "http://petitions.number10.gov.uk"%>
- <%= link_to 'Petition the PM', "http://petitions.number10.gov.uk"%>
- </div> -->
<div class="act_link">
<%= link_to '<img src="/images/wordpress.png" alt="" class="rss">', "http://wordpress.com/"%>
- <%= link_to 'Start your own blog', "http://wordpress.com/"%>
+ <%= link_to _("Start your own blog"), "http://wordpress.com/"%>
</div>
+ <%= render :partial => 'request/next_actions' %>
<% view_cache :ttl => 1.day, :tag => ['similar', @info_request.id, I18n.locale] do %>
<% if !@xapian_similar.nil? && @xapian_similar.results.size > 0 %>
- <h2><% _('Similar requests')%></h2>
+ <h2><%= _('Similar requests')%></h2>
<% for result in @xapian_similar.results %>
<%= render :partial => 'request/request_listing_short_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
<% end %>
<% if @xapian_similar_more %>
- <p><%= link_to "More similar requests", request_similar_url(@info_request) %></p>
+ <p><%= link_to _("More similar requests"), request_similar_url(@info_request) %></p>
<% end %>
<!-- Important terms: <%= @xapian_similar.important_terms.join(" ") %> -->
<% end %>
diff --git a/app/views/request/list.rhtml b/app/views/request/list.rhtml
index a434566ac..0137cb6dd 100644
--- a/app/views/request/list.rhtml
+++ b/app/views/request/list.rhtml
@@ -1,30 +1,35 @@
+<div id="header_left">
+ <h1><%=@title%></h1>
+ <%= render :partial => 'request/request_filter_form' %>
+</div>
-<h1><%=@title%></h1>
+<div id="header_right">
+ <h2><%= _("Follow these requests") %></h2>
+ <% if @track_thing %>
+ <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
+ <% end %>
+</div>
-<%= render :partial => 'request/request_filter_form' %>
+<div style="clear:both"></div>
-<% if @track_thing %>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
-<% end %>
-
-<% view_cache :ttl => 5.minutes, :tag => [@view, @page, I18n.locale] do %>
- <% if @list_results.empty? %>
- <p> <%= _('No requests of this sort yet.')%></p>
- <% else %>
- <% for result in @list_results%>
- <% if result.class.to_s == 'InfoRequestEvent' %>
- <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result, :info_request => result.info_request } %>
- <% else %>
- <p><strong><%= _('Unexpected search result type') %> <%=result.class.to_s%></strong></p>
+<div class="results_section">
+ <% view_cache :ttl => 5.minutes, :tag => [@view, @page, I18n.locale] do %>
+ <% if @list_results.empty? %>
+ <p> <%= _('No requests of this sort yet.')%></p>
+ <% else %>
+ <h2 class="foi_results"><%= _('{{count}} FOI requests found', :count => @list_results.size) %></h2>
+ <div class="results_block">
+ <% for result in @list_results%>
+ <% if result.class.to_s == 'InfoRequestEvent' %>
+ <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result, :info_request => result.info_request } %>
+ <% else %>
+ <p><strong><%= _('Unexpected search result type') %> <%=result.class.to_s%></strong></p>
+ <% end %>
<% end %>
- <% end %>
- <% end %>
-
- <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @matches_estimated) %>
-<% end %>
+ </div>
+ <% end %>
-<% if @track_thing %>
- <p></p>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
-<% end %>
+ <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @matches_estimated) %>
+ <% end %>
+</div>
diff --git a/app/views/request/new.rhtml b/app/views/request/new.rhtml
index b8625a8e6..355641b63 100644
--- a/app/views/request/new.rhtml
+++ b/app/views/request/new.rhtml
@@ -1,116 +1,118 @@
+<script type="text/javascript" src="/javascripts/ba-throttle-debounce.js"></script>
+<script type="text/javascript">
+ $(document).ready(function(){
+ // Avoid triggering too often (on each keystroke) by using the debounce jQuery plugin:
+ // http://benalman.com/projects/jquery-throttle-debounce-plugin/
+ $("#typeahead_search").keypress($.debounce( 300, function() {
+ $("#typeahead_response").load("<%=search_ahead_url%>?q="+encodeURI(this.value), function() {
+ // When following links in typeahead results, open new tab/window
+ $("#typeahead_response a").attr("target","_blank");
+
+ // Update the public body site search link
+ $("#body-site-search-link").attr("href", "http://www.google.com/#q="+encodeURI($("#typeahead_search").val())+
+ "+site:<%= @info_request.public_body.calculated_home_page %>");
+ });
+ }));
+
+ });
+</script>
+
<% @title = _("Make an {{law_used_short}} request to '{{public_body_name}}'",:law_used_short=>h(@info_request.law_used_short),:public_body_name=>h(@info_request.public_body.name)) %>
-<% if @existing_request %>
- <div class="errorExplanation" id="errorExplanation"><ul>
- <li>
- <%= _('{{existing_request_user}} already
- created the same request on {{date}}. You can either view the <a href="{{existing_request}}">existing request</a>,
- or edit the details below to make a new but similar request.',:existing_request_user=>user_or_you_capital_link(@existing_request.user), :date=>simple_date(@existing_request.created_at), :existing_request=>request_url(@existing_request)) %>
- </li>
- </ul></div>
-<% end %>
+ <h1><%= _('2. Ask for Information') %></h1>
+
+ <% if @existing_request %>
+ <div class="errorExplanation" id="errorExplanation"><ul>
+ <li>
+ <%= _('{{existing_request_user}} already
+ created the same request on {{date}}. You can either view the <a href="{{existing_request}}">existing request</a>,
+ or edit the details below to make a new but similar request.',:existing_request_user=>user_or_you_capital_link(@existing_request.user), :date=>simple_date(@existing_request.created_at), :existing_request=>request_url(@existing_request)) %>
+ </li>
+ </ul></div>
+ <% end %>
+
+ <%= foi_error_messages_for :info_request, :outgoing_message %>
-<%= foi_error_messages_for :info_request, :outgoing_message %>
+ <% form_for(:info_request, @info_request, :html => { :id => 'write_form' } ) do |f| %>
-<div id="request_advice">
- <h1><%= _('Read this before writing your {{info_request_law_used_full}} request', :info_request_law_used_full=>h(@info_request.law_used_full)) %></h1>
- <ul>
- <li>
- <% form_tag("http://www.google.co.uk/search", {:id => "search_body_website_form", :method => "get"} ) do %>
- <p>
- <%= _('First,') %>
- <% if !@info_request.public_body.publication_scheme.empty? %>
- <%= _('<strong>browse</strong> the authority\'s <a href="%s">publication scheme</a> or <strong>search</strong> their web site ...') % [@info_request.public_body.publication_scheme] %>
+ <div id="request_header">
+ <div>
+ <label class="form_label" for="info_request_public_body_id"><%= _('To:') %></label>
+ <span id="to_public_body"><%=h(@info_request.public_body.name)%></span>
+ <div class="form_item_note">
+ <% if @info_request.public_body.info_requests.size > 0 %>
+ <%= _("Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request.", :public_body_name=>h(@info_request.public_body.name), :url=>public_body_url(@info_request.public_body)) %>
<% else %>
- <%= _('<strong>search</strong> the authority\'s web site ...') %>
+ <%= _("Browse <a href='{{url}}'>other requests</a> for examples of how to word your request.", :url=>request_list_url) %>
<% end %>
- <% if !@info_request.public_body.calculated_home_page.nil? %>
- <br>
- &nbsp; &nbsp; &nbsp; &nbsp; <%= text_field_tag 'q', params[:q], { :size => 20 } %>
- <%= hidden_field_tag 'as_sitesearch', @info_request.public_body.calculated_home_page %>
- <%= submit_tag _("Search") %>
- <% end %>
- <br>
- ... <%= _('to check that the info isn\'t already published.') %>
- </p>
- <% end %>
- </li>
+ </div>
+ </div>
- <li>
- <% if @info_request.public_body.info_requests.size > 0 %>
- <%= _("Browse <a href='{{url}}'>other requests</a> to '{{public_body_name}}' for examples of how to word your request.", :public_body_name=>h(@info_request.public_body.name), :url=>public_body_url(@info_request.public_body)) %>
- <% else %>
- <%= _('Browse <a href="%s">other requests</a> for examples of how to word your request.') % [request_list_url] %>
+ <div id="request_header_text">
+ <% if @info_request.public_body.has_notes? %>
+ <h3><%= _('Special note for this authority!') %></h3>
+ <p><%= @info_request.public_body.notes_as_html %></p>
<% end %>
- </li>
- <li><%= _('Write your request in <strong>simple, precise language</strong>.') %></li>
- <li><%= _('Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries.') %></li>
- <li><%= _('Keep it <strong>focused</strong>, you\'ll be more likely to get what you want (<a href="%s">why?</a>).') % [help_requesting_path + '#focused'] %></li>
- <li><%= _('This site is <strong>public</strong>. Everything you type and any response will be published.') %></li>
- </ul>
- <% if @info_request.public_body.has_notes? %>
- <h1><%= _('Special note for this authority!') %></h1>
- <ul>
- <li><p><%= @info_request.public_body.notes_as_html %></p></li>
- </ul>
- <% end %>
+ <% if @info_request.public_body.eir_only? %>
+ <h3><%= _('Please ask for environmental information only') %></h3>
- <% if @info_request.public_body.eir_only? %>
- <h1><%= _('Please ask for environmental information only') %></h1>
-
- <p><%= _('The Freedom of Information Act <strong>does not apply</strong> to') %> <%=h(@info_request.public_body.name)%>.
- <%= _('However, you have the right to request environmental
- information under a different law') %> (<a href="/help/requesting#eir">explanation</a>).
- <%= _('This covers a very wide spectrum of information about the state of
- the <strong>natural and built environment</strong>, such as:') %>
+ <p><%= _('The Freedom of Information Act <strong>does not apply</strong> to') %> <%=h(@info_request.public_body.name)%>.
+ <%= _('However, you have the right to request environmental
+ information under a different law') %> (<a href="/help/requesting#eir">explanation</a>).
+ <%= _('This covers a very wide spectrum of information about the state of
+ the <strong>natural and built environment</strong>, such as:') %>
+ <ul>
+ <li><%= _('Air, water, soil, land, flora and fauna (including how these effect
+ human beings)') %></li>
+ <li><%= _('Information on emissions and discharges (e.g. noise, energy,
+ radiation, waste materials)') %></li>
+ <li><%= _('Human health and safety') %></li>
+ <li><%= _('Cultural sites and built structures (as they may be affected by the
+ environmental factors listed above)') %></li>
+ <li><%= _('Plans and administrative measures that affect these matters') %></li>
+ </ul>
+
+ <p><%= _('Please only request information that comes under those categories, <strong>do not waste your
+ time</strong> or the time of the public authority by requesting unrelated information.') %></p>
+ <% end %>
+ </div>
+
+ <p>
+ <label class="form_label" for="typeahead_search"><%= _('Summary:') %></label>
+ <%= f.text_field :title, :size => 50, :id =>"typeahead_search" %>
+ </p>
+ <div class="form_item_note">
+ (<%= _("a one line summary of the information you are requesting, \n\t\t\te.g.") %>
+ <% if @info_request.law_used == 'eir' %>
+ <%= _("'Pollution levels over time for the River Tyne'") %>
+ <% else %>
+ <%= _("'Crime statistics by ward level for Wales'") %>
+ <% end %>
+ )
+ </div>
+
+ <div id="typeahead_response">
+ </div>
+ </div>
+
+ <div id="request_advice">
<ul>
- <li><%= _('Air, water, soil, land, flora and fauna (including how these effect
- human beings)') %></li>
- <li><%= _('Information on emissions and discharges (e.g. noise, energy,
- radiation, waste materials)') %></li>
- <li><%= _('Human health and safety') %></li>
- <li><%= _('Cultural sites and built structures (as they may be affected by the
- environmental factors listed above)') %></li>
- <li><%= _('Plans and administrative measures that affect these matters') %></li>
+ <li><%= _('Write your request in <strong>simple, precise language</strong>.') %></li>
+ <li><%= _('Ask for <strong>specific</strong> documents or information, this site is not suitable for general enquiries.') %></li>
+ <li><%= _('Keep it <strong>focused</strong>, you\'ll be more likely to get what you want (<a href="%s">why?</a>).') % [help_requesting_path + '#focused'] %></li>
</ul>
+ </div>
- <p><%= _('Please only request information that comes under those categories, <strong>do not waste your
- time</strong> or the time of the public authority by requesting unrelated information.') %></p>
- <% end %>
-</div>
-
-<% form_for(:info_request, @info_request, :html => { :id => 'write_form' } ) do |f| %>
-
- <div id="request_form">
- <h1>
- <label class="form_label" for="info_request_public_body_id"><%= _('To:') %></label>
- <span id="to_public_body"><%=h(@info_request.public_body.name)%></span>
- </h1>
-
- <p>
- <label class="form_label" for="info_request_title"><%= _('Summary:') %></label>
- <%= f.text_field :title, :size => 50 %>
- </p>
- <div class="form_item_note">
- (<%= _('a one line summary of the information you are requesting,
- e.g.') %>
- <% if @info_request.law_used == 'eir' %>
- <%= _("'Pollution levels over time for the River Tyne'") %>
- <% else %>
- <%= _("'Crime statistics by ward level for Wales'") %>
- <% end %>
- )
- </div>
-
- <% fields_for :outgoing_message do |o| %>
- <p>
- <label class="form_label" for="outgoing_message_body"><%= _('Your request:') %></label>
- <%= o.text_area :body, :rows => 20, :cols => 60 %>
- </p>
- <% end %>
-
+ <div id="request_form">
+ <% fields_for :outgoing_message do |o| %>
+ <p>
+ <label class="form_label" for="outgoing_message_body"><%= _('Your request:') %></label>
+ <%= o.text_area :body, :rows => 20, :cols => 60 %>
+ </p>
+ <% end %>
+
<% if !@user %>
<p class="form_note">
<%= _('Everything that you enter on this page, including <strong>your name</strong>,
@@ -126,18 +128,18 @@
this website forever (<a href="%s">why?</a>).') % [help_privacy_path+"#public_request"] %>
</p>
<% end %>
-
- <p class="form_note">
- <%= _('<strong> Can I request information about myself?</strong>
- <a href="%s">No! (Click here for details)</a>') % [help_requesting_path+"#data_protection"] %>
- </p>
-
- <div class="form_button">
- <%= f.hidden_field(:public_body_id, { :value => @info_request.public_body_id } ) %>
- <%= hidden_field_tag(:submitted_new_request, 1 ) %>
- <%= hidden_field_tag(:preview, 1 ) %>
- <%= submit_tag _("Preview your public request") %>
- </div>
+
+ <p class="form_note">
+ <%= _("<strong> Can I request information about myself?</strong>\n" +
+ "\t\t\t<a href=\"%s\">No! (Click here for details)</a>") % [help_requesting_path+"#data_protection"] %>
+ </p>
+
+ <div class="form_button">
+ <%= f.hidden_field(:public_body_id, { :value => @info_request.public_body_id } ) %>
+ <%= hidden_field_tag(:submitted_new_request, 1 ) %>
+ <%= hidden_field_tag(:preview, 1 ) %>
+ <%= submit_tag _("Preview your public request") %>
+ </div>
<% if !@info_request.tag_string.empty? %>
<p class="form_note">
@@ -148,8 +150,8 @@
<strong>Tags:</strong> <%=h @info_request.tag_string %>
</p>
<% end %>
-
- </div>
+
+ </div>
<% end %>
diff --git a/app/views/request/preview.rhtml b/app/views/request/preview.rhtml
index 6f6ecb2f9..45b6a3dc1 100644
--- a/app/views/request/preview.rhtml
+++ b/app/views/request/preview.rhtml
@@ -2,7 +2,7 @@
<% form_for(:info_request, @info_request, :html => { :id => 'preview_form' } ) do |f| %>
- <h1><%= _('Now preview your request') %></h1>
+ <h1><%= _('3. Now check your request') %></h1>
<ul>
<li><%= _('Check you haven\'t included any <strong>personal information</strong>.') %></li>
<li><%= _('Your name, request and any responses will appear in <strong>search engines</strong>
@@ -37,14 +37,12 @@
<%= f.hidden_field(:tag_string) %>
<%= hidden_field_tag(:submitted_new_request, 1) %>
<%= hidden_field_tag(:preview, 0 ) %>
- <%= submit_tag _("Re-edit this request"), :name => 'reedit' %>
- <%= submit_tag _("Send public ") + h(@info_request.law_used_full) + " request", :name => 'submit' %>
+ <%= submit_tag _("Edit this request"), :name => 'reedit', :id => 'reedit_button' %>
+ <%= submit_tag _("Send request"), :name => 'submit', :id => 'submit_button' %>
</p>
<% if !@info_request.tag_string.empty? %>
<p><strong><%= _('Tags:') %></strong> <%=h @info_request.tag_string %></p>
<% end %>
-<% end %>
-
-
+<% end %> \ No newline at end of file
diff --git a/app/views/request/select_authority.rhtml b/app/views/request/select_authority.rhtml
new file mode 100644
index 000000000..55ebc40c4
--- /dev/null
+++ b/app/views/request/select_authority.rhtml
@@ -0,0 +1,68 @@
+<script type="text/javascript" src="/javascripts/ba-throttle-debounce.js"></script>
+<script type="text/javascript">
+ $(document).ready(function(){
+ $("#authority_preview").hide();
+
+ // Avoid triggering too often (on each keystroke) by using the debounce jQuery plugin:
+ // http://benalman.com/projects/jquery-throttle-debounce-plugin/
+ $("#query").keypress($.debounce( 300, function() {
+ // Do a type ahead search and display results
+ $("#typeahead_response").load("<%=search_ahead_bodies_url%>?q="+encodeURI(this.value), function() {
+ $("#authority_preview").hide(); // Hide the preview, since results have changed
+
+ });
+ }));
+ // We're using the existing body list: we intercept the clicks on the titles to
+ // display a preview on the right hand side of the screen
+ $("#typeahead_response a").live('click', function() {
+ $("#authority_preview").load(this.href+" #public_body_show", function() {
+ $("#authority_preview").show();
+ $("#authority_preview #header_right").hide();
+ });
+ return false;
+ });
+ });
+</script>
+
+<% @title = _("Select the authority to write to") %>
+
+ <h1 style="clear: left"><%= _('1. Select an authority') %></h1>
+
+ <div id="authority_selection">
+ <% form_tag({:controller => "request", :action => "select_authority"}, {:id => "search_form", :method => "get"}) do %>
+ <p>
+ <p>
+ <%= _('First, type in the <strong>name of the UK public authority</strong> you\'d
+ <br>like information from. <strong>By law, they have to respond</strong>
+ (<a href="%s">why?</a>).') % help_about_url %>
+ </p>
+ <%= text_field_tag 'query', params[:query], { :size => 30 } %>
+ <%= hidden_field_tag 'bodies', 1 %>
+ <%= submit_tag _('Search') %>
+ </p>
+ <% end %>
+ <div id="typeahead_response">
+ <% if !@xapian_requests.nil? %>
+ <% if @xapian_requests.results.size > 0 %>
+ <h3><%= _('Top search results:') %></h3>
+ <p>
+ <%= _('Select one to see more information about the authority.')%>
+ </p>
+ <% else %>
+ <h3><%= _('No results found.') %></h3>
+ <% end %>
+ <div id="authority_search_ahead_results">
+ <% for result in @xapian_requests.results %>
+ <%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
+ <% end %>
+ </div>
+ <% end %>
+
+
+
+ </div>
+ </div>
+
+ <div id="authority_preview">
+ </div>
+
diff --git a/app/views/request/show.rhtml b/app/views/request/show.rhtml
index 2897a3564..c5d040fb7 100644
--- a/app/views/request/show.rhtml
+++ b/app/views/request/show.rhtml
@@ -22,7 +22,7 @@
<%= render :partial => 'sidebar' %>
-<div id="request_main">
+<div id="left_column">
<h1><%=h(@info_request.title)%></h1>
<% if @info_request.user.profile_photo %>
diff --git a/app/views/request/simple_correspondence.rhtml b/app/views/request/simple_correspondence.rhtml
new file mode 100644
index 000000000..45b90b84b
--- /dev/null
+++ b/app/views/request/simple_correspondence.rhtml
@@ -0,0 +1,45 @@
+<%= _('This is a plain-text version of the Freedom of Information request "{{request_title}}". The latest, full version is available online at {{full_url}}', :request_title => @info_request.title, :full_url => "http://#{MySociety::Config.get('DOMAIN')}#{show_request_path(:url_title=>@info_request.url_title)}") %>.
+
+<% for info_request_event in @info_request_events %>
+<%
+ incoming_message = nil
+ if info_request_event.visible
+ if !info_request_event.nil? && info_request_event.event_type == 'response'
+ incoming_message = info_request_event.incoming_message
+ end
+
+
+ if not incoming_message.nil?
+ if !incoming_message.safe_mail_from.nil? && incoming_message.safe_mail_from.strip != @info_request.public_body.name.strip %>
+<%= _('From:') %> <%= incoming_message.safe_mail_from %><% end
+ if incoming_message.safe_mail_from.nil? || (incoming_message.mail_from_domain == @info_request.public_body.request_email_domain) %>, <%= @info_request.public_body.name %><% end %>
+<%= _('To:') %> <%= @info_request.user.name %>
+<%= _('Date:') %> <%= simple_date(incoming_message.sent_at) %>
+
+<%= incoming_message.get_body_for_quoting %>
+<% incoming_message.get_attachments_for_display.each do |a| %>
+ <%= _('Attachment:') %> <%= a.display_filename %> (<%= a.display_size %>)
+ <% end %>
+<%
+elsif [ 'sent', 'followup_sent' ].include?(info_request_event.event_type)
+ outgoing_message = info_request_event.outgoing_message
+ %>
+<%= _('From:') %> <%= @info_request.user.name %>
+<%= _('To:') %> <%= @info_request.public_body.name %>
+<%= _('Date:') %> <%= simple_date(info_request_event.created_at) %>
+<%
+ text = outgoing_message.body.strip
+ outgoing_message.remove_privacy_sensitive_things!(text) %>
+
+<%= text %>
+<% elsif [ 'resent', 'followup_resent' ].include?(info_request_event.event_type) %>
+<%= _('Date:') %> <%= simple_date(info_request_event.created_at) %>
+Sent <% if info_request_event.outgoing_message.message_type == 'initial_request' %> request <% elsif info_request_event.outgoing_message.message_type == 'followup' %> a follow up <% else %> <% raise "unknown message_type" %><% end %> to <%= public_body_link(@info_request.public_body) %> again<% if not info_request_event.same_email_as_previous_send? %>, using a new contact address<% end %>.
+
+<% elsif info_request_event.event_type == 'comment'
+ comment = info_request_event.comment
+%>
+<%= _("{{username}} left an annotation:", :username =>comment.user.name) %> (<%= simple_date(comment.created_at || Time.now) %>)
+<%= comment.body.strip %>
+<% end %>
+-------------------------------<% end %><% end %>
diff --git a/app/views/track/_tracking_links.rhtml b/app/views/track/_tracking_links.rhtml
index a08f97c08..f50a8bbbf 100644
--- a/app/views/track/_tracking_links.rhtml
+++ b/app/views/track/_tracking_links.rhtml
@@ -4,11 +4,10 @@
end
%>
-
<% if own_request %>
<p><%= _('This is your own request, so you will be automatically emailed when new responses arrive.')%></p>
<% elsif existing_track %>
- <% form_tag({:controller => 'track', :action => 'update', :track_id => existing_track.id}, :class => "feed_form_" + location) do %>
+ <% form_tag({:controller => 'track', :action => 'update', :track_id => existing_track.id}, :class => "feed_form feed_form_" + location) do %>
<p>
<%= track_thing.params[:verb_on_page_already] %>
<%= hidden_field_tag 'track_medium', "delete" %>
@@ -16,15 +15,17 @@
<%= submit_tag "unsubscribe" %>
</p>
<% end %>
-<% else %>
+<% elsif track_thing %>
<div class="feed_link feed_link_<%=location%>">
<%= link_to '<img src="/images/email-16.png" alt="">', do_track_url(track_thing) %>
- <%= link_to track_thing.params[:verb_on_page], do_track_url(track_thing) %>
+ <%= link_to _("Follow by email"), do_track_url(track_thing) %>
+ </div>
+
+ <div class="feed_link feed_link_<%=location%>">
+ <%= link_to '<img src="/images/feed-16.png" alt="">', do_track_url(track_thing, 'feed') %>
+ <%= link_to (location == 'sidebar' ? _('RSS feed of updates') : _('RSS feed')), do_track_url(track_thing, 'feed') %>
</div>
<% end %>
-<div class="feed_link feed_link_<%=location%>">
- <%= link_to '<img src="/images/feed-16.png" alt="">', do_track_url(track_thing, 'feed') %>
- <%= link_to (location == 'sidebar' ? 'RSS feed of updates' : 'RSS feed'), do_track_url(track_thing, 'feed') %>
-</div>
+
diff --git a/app/views/track_mailer/event_digest.rhtml b/app/views/track_mailer/event_digest.rhtml
index 46f230da1..089b778f8 100644
--- a/app/views/track_mailer/event_digest.rhtml
+++ b/app/views/track_mailer/event_digest.rhtml
@@ -18,17 +18,17 @@
# e.g. Julian Burgess sent a request to Royal Mail Group (15 May 2008)
if event.event_type == 'response'
url = main_url(incoming_message_url(event.incoming_message))
- main_text += event.info_request.public_body.name + " sent a response to " + event.info_request.user.name
+ main_text += _("{{public_body}} sent a response to {{user_name}}", :public_body => event.info_request.public_body.name, :user_name => event.info_request.user.name)
elsif event.event_type == 'followup_sent'
url = main_url(outgoing_message_url(event.outgoing_message))
- main_text += event.info_request.user.name + " sent a follow up message to " + event.info_request.public_body.name
+ main_text += _("{{user_name}} sent a follow up message to {{public_body}}", :user_name => event.info_request.user.name, :public_body => event.info_request.public_body.name)
elsif event.event_type == 'sent'
# this is unlikely to happen in real life, but happens in the test code
url = main_url(outgoing_message_url(event.outgoing_message))
- main_text += event.info_request.user.name + " sent a request to " + event.info_request.public_body.name
+ main_text += _("{{user_name}} sent a request to {{public_body}}", :user_name => event.info_request.user.name, :public_body => event.info_request.public_body.name)
elsif event.event_type == 'comment'
url = main_url(comment_url(event.comment))
- main_text += event.comment.user.name + " added an annotation"
+ main_text += _("{{user_name}} added an annotation", :user_name => event.comment.user.name)
else
raise "unknown type in event_digest " + event.event_type
end
@@ -57,10 +57,10 @@
main_text += "\n"
end
-%><%=main_text%>Alter your subscription
+%><%=main_text%><%= _("Alter your subscription")%>
=======================
-Please click on the link below to cancel or alter these emails.
+<% _("Please click on the link below to cancel or alter these emails.") %>
<%=@unsubscribe_url%>
-- <%= _('the {{site_name}} team', :site_name=>site_name) %>
diff --git a/app/views/user/_signin.rhtml b/app/views/user/_signin.rhtml
index 79628b3a9..4fe98ee41 100644
--- a/app/views/user/_signin.rhtml
+++ b/app/views/user/_signin.rhtml
@@ -3,9 +3,9 @@
<% form_tag({:action => "signin"}, {:id => "signin_form"}) do %>
<%= foi_error_messages_for :user_signin %>
- <% if not sign_in_as_existing_user %>
+ <!--<% if not sign_in_as_existing_user %>
<h2><%= _('If you\'ve used {{site_name}} before', :site_name=>site_name)%></h2>
- <% end %>
+ <% end %>-->
<p>
<label class="form_label" for="user_signin_email"><%= _('Your e-mail:')%></label>
@@ -27,7 +27,8 @@
do not use on a public computer) ')%></p>
<div class="form_button">
- <%= hidden_field_tag 'token', params[:token], { :id => 'signin_token' } %>
+ <%= hidden_field_tag 'token', params[:token], {:id => 'signin_token' } %>
+ <%= hidden_field_tag :modal, params[:modal], {:id => 'signin_modal' } %>
<%= submit_tag _('Sign in') %>
</div>
<% end %>
diff --git a/app/views/user/_signup.rhtml b/app/views/user/_signup.rhtml
index 210643a40..9c0132f26 100644
--- a/app/views/user/_signup.rhtml
+++ b/app/views/user/_signup.rhtml
@@ -3,7 +3,7 @@
<% form_tag({:action => "signup"}, {:id => "signup_form"}) do %>
<%= foi_error_messages_for :user_signup %>
- <h2><%= _('If you\'re new to {{site_name}}', :site_name=>site_name)%></h2>
+ <!--<h2><%= _('If you\'re new to {{site_name}}', :site_name=>site_name)%></h2>-->
<p>
<label class="form_label" for="user_signup_email"><%= _('Your e-mail:')%></label>
@@ -41,7 +41,8 @@
<% end %>
<div class="form_button">
- <%= hidden_field_tag 'token', params[:token], { :id => 'signup_token' } %>
+ <%= hidden_field_tag 'token', params[:token], {:id => 'signup_token' } %>
+ <%= hidden_field_tag :modal, params[:modal], {:id => 'signup_modal' } %>
<%= submit_tag _('Sign up') %>
</div>
diff --git a/app/views/user/set_draft_profile_photo.rhtml b/app/views/user/set_draft_profile_photo.rhtml
index 70d27074b..90be49600 100644
--- a/app/views/user/set_draft_profile_photo.rhtml
+++ b/app/views/user/set_draft_profile_photo.rhtml
@@ -2,7 +2,7 @@
<% raise "internal error" if not @user %>
-<h2>Choose your profile photo</h2>
+<h2><%= _("Choose your profile photo") %></h2>
<%= foi_error_messages_for :draft_profile_photo %>
@@ -52,7 +52,7 @@
<% end %>
<p>
- <%= link_to h("Cancel, return to your profile page"), user_url(@user) %>
+ <%= link_to _("Cancel, return to your profile page"), user_url(@user) %>
</p>
</div>
diff --git a/app/views/user/show.rhtml b/app/views/user/show.rhtml
index 8fd6c52ad..2ae6e5ed5 100644
--- a/app/views/user/show.rhtml
+++ b/app/views/user/show.rhtml
@@ -24,20 +24,20 @@
</div>
<% end %>
-
-<div id="request_sidebar">
- <h2><%= _('Track this person')%></h2>
- <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
-
- <h2><%= _('On this page')%></h2>
- <a href="#foi_requests"><%= _('FOI requests')%></a>
- <br><a href="#annotations"><%= _('Annotations')%></a>
- <% if @is_you %>
- <br><a href="#email_subscriptions"><%= _('Email subscriptions')%></a>
- <% end %>
-</div>
-
-<div class="single_user">
+<div>
+ <div id="header_right">
+ <h2><%= _('Track this person')%></h2>
+ <%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
+
+ <h2><%= _('On this page')%></h2>
+ <a href="#foi_requests"><%= _('FOI requests')%></a>
+ <br><a href="#annotations"><%= _('Annotations')%></a>
+ <% if @is_you %>
+ <br><a href="#email_subscriptions"><%= _('Email subscriptions')%></a>
+ <% end %>
+ </div>
+
+ <div class="header_left">
<p id="user_photo_on_profile">
<% if @display_user.profile_photo %>
<% if @is_you %>
@@ -113,19 +113,37 @@
<%= _('<a href="%s">Sign in</a> to change password, subscriptions and more ({{user_name}} only)',:user_name=>h(@display_user.name)) % [signin_url(:r => request.request_uri)]%>
</p>
<% end %>
+ </div>
+</div>
+<div style="clear:both"></div>
+ <% form_tag(show_user_url, :method => "get", :id=>"search_form") do %>
+ <div>
+ <%= text_field_tag(:user_query, params[:user_query]) %>
+ <% if @is_you %>
+ <%= submit_tag(_("Search your contributions")) %>
+ <% else %>
+ <%= submit_tag(_("Search contributions by this person")) %>
+ <% end %>
+ </div>
+ <% end %>
+
<% if !@xapian_requests.nil? %>
<% if @xapian_requests.results.empty? %>
<% if @page == 1 %>
- <h2 id="foi_requests"><%= @is_you ? 'Freedom of Information requests made by you' : 'Freedom of Information requests made by this person' %> </h2>
+ <h2 class="foi_results" id="foi_requests"><%= @is_you ? 'Freedom of Information requests made by you' : 'Freedom of Information requests made by this person' %> <%= @match_phrase %>
+</h2>
<p><%= @is_you ? _('You have made no Freedom of Information requests using this site.') : _('This person has made no Freedom of Information requests using this site.') %>
+ <%= @page_desc %>
<% end %>
<% else %>
- <h2 id="foi_requests">
- <%= @is_you ? n_('Your %d Freedom of Information request', 'Your %d Freedom of Information requests', @display_user.info_requests.size) % @display_user.info_requests.size : n_('This person\'s %d Freedom of Information request', 'This person\'s %d Freedom of Information requests', @display_user.info_requests.size) % @display_user.info_requests.size %>
+ <h2 class="foi_results" id="foi_requests">
+ <%= @is_you ? n_('Your %d Freedom of Information request', 'Your %d Freedom of Information requests', @xapian_requests.results.size) % @xapian_requests.results.size : n_('This person\'s %d Freedom of Information request', 'This person\'s %d Freedom of Information requests', @xapian_requests.results.size) % @xapian_requests.results.size %>
<!-- matches_estimated <%=@xapian_requests.matches_estimated%> -->
- <%= @page_desc %>
+ <%= @match_phrase %>
+ <%= @page_desc %>
</h2>
+
<% for result in @xapian_requests.results %>
<%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
@@ -134,14 +152,16 @@
<%= will_paginate WillPaginate::Collection.new(@page, @per_page, @display_user.info_requests.size) %>
<% end %>
<% else %>
- <h2 id="foi_requests"><%= @is_you ? _('Freedom of Information requests made by you') : _('Freedom of Information requests made by this person') %> </h2>
+ <h2 class="foi_results" id="foi_requests"><%= @is_you ? _('Freedom of Information requests made by you') : _('Freedom of Information requests made by this person') %> </h2>
<p><%= _('The search index is currently offline, so we can\'t show the Freedom of Information requests this person has made.')%></p>
<% end %>
<% if !@xapian_comments.nil? %>
<% if @xapian_comments.results.empty? %>
<% if @page == 1 %>
- <h2><%= @is_you ? _('Your annotations') : _('This person\'s annotations') %></h2>
+ <h2><%= @is_you ? _('Your annotations') : _('This person\'s annotations') %>
+ <%= @match_phrase %>
+ </h2>
<p><%= _('None made.')%></p>
<% end %>
<% else %>
@@ -166,7 +186,7 @@
<% else %>
<h2 id="email_subscriptions"> Your <%=pluralize(@track_things.size, _('email subscription')) %> </h2>
<% if @track_things_grouped.size == 1 %>
- <% form_tag :controller => 'track', :action => 'delete_all_type' do %>
+ <% form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
<h3>
<%=TrackThing.track_type_description(@track_things[0].track_type)%>
<%= hidden_field_tag 'track_type', @track_things[0].track_type %>
@@ -180,7 +200,7 @@
<% end %>
<% for track_type, track_things in @track_things_grouped %>
<% if @track_things_grouped.size > 1 %>
- <% form_tag :controller => 'track', :action => 'delete_all_type' do %>
+ <% form_tag({:controller => 'track', :action => 'delete_all_type'}, :class => "feed_form") do %>
<h3>
<%=TrackThing.track_type_description(track_type)%>
<%= hidden_field_tag 'track_type', track_type %>
@@ -196,7 +216,7 @@
<ul>
<% for track_thing in track_things %>
<li>
- <% form_tag :controller => 'track', :action => 'update', :track_id => track_thing.id do %>
+ <% form_tag({:controller => 'track', :action => 'update', :track_id => track_thing.id}, :class => "feed_form") do %>
<div>
<%= track_thing.params[:list_description] %>
<%= hidden_field_tag 'track_medium', "delete", { :id => 'track_medium_' + track_thing.id.to_s } %>
@@ -210,6 +230,3 @@
<% end %>
<% end %>
<% end %>
-
-</div>
-
diff --git a/app/views/user/sign.rhtml b/app/views/user/sign.rhtml
index b76edbc64..76732c09a 100644
--- a/app/views/user/sign.rhtml
+++ b/app/views/user/sign.rhtml
@@ -21,17 +21,26 @@
<div id="sign_together">
- <p id="sign_in_reason">
+ <!--<p id="sign_in_reason">
<% if @post_redirect.reason_params[:web].empty? %>
<%= _(' Please sign in or make a new account.') %>
<% else %>
<%= @post_redirect.reason_params[:web] %>, <%= _('please sign in or make a new account.') %>
<% end %>
- </p>
-
- <%= render :partial => 'signin', :locals => { :sign_in_as_existing_user => false } %>
- <%= render :partial => 'signup' %>
-
+ </p>-->
+
+ <div id="left_half">
+ <h1>Sign in</h1>
+ <%= render :partial => 'signin', :locals => { :sign_in_as_existing_user => false } %>
+ </div>
+ <div id="middle_strip">
+ - or -
+ </div>
+ <div id="right_half">
+ <h1>Sign up</h1>
+ <%= render :partial => 'signup' %>
+ </div>
+ <div style="clear:both"></div>
</div>
<% end %>
diff --git a/app/views/user/signin_successful.rhtml b/app/views/user/signin_successful.rhtml
new file mode 100644
index 000000000..8c4b2b2d4
--- /dev/null
+++ b/app/views/user/signin_successful.rhtml
@@ -0,0 +1,9 @@
+<%= _("You're in. <a href=\"#\" id=\"send-request\">Continue sending your request</a>") %>
+
+<script type="text/javascript">
+ parent.modal_signin_successful = true;
+
+ $("#send-request").click(function() {
+ parent.$.fancybox.close(); return false;
+ });
+</script>
diff --git a/app/views/user/wrong_user.rhtml b/app/views/user/wrong_user.rhtml
index 9878d08ae..30256a639 100644
--- a/app/views/user/wrong_user.rhtml
+++ b/app/views/user/wrong_user.rhtml
@@ -1,8 +1,4 @@
-
<p id="sign_in_reason">
-<%= @reason_params[:web] %>, please
-<%= link_to _('sign out'), signout_url(:r => request.request_uri) %>,
-<%= _('and sign in as ')%><%= h(@reason_params[:user_name]) %>.
+<%= _('Sorry, but only {{user_name}} is allowed to do that.', :user_name => h(@reason_params[:user_name])) %>
</p>
-