diff options
Diffstat (limited to 'app/views')
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 “<%=request_link(@info_request)%>”</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"> </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> - <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 »") %></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") %> + <%= 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"> 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 ‘{{user_search_query}}’", :user_search_query => h(@query)) %></h1> - <% else %> - <h1><%= _("People {{start_count}} to {{end_count}} of {{total_count}} for ‘{{user_search_query}}’", :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 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> --> - -<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> --> + + <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><link rel="alternate" type="application/atom+xml"></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><link rel="alternate" type="application/json"></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><link rel="alternate" type="application/atom+xml"></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><link rel="alternate" type="application/json"></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&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&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&number=1&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&number=1&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> --> -<br><strong>Otherwise</strong>, the <a href="/help/credits">credits</a> or the <a href="/help/api">programmers API</a> --> - -<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> --> + <br><strong>Otherwise</strong>, the <a href="/help/credits">credits</a> or the <a href="/help/api">programmers API</a> --> + + <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> --> -<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&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> --> + </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&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> --> + + <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"> </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 %> + <%= _('<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"> </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}) %> + <%= 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> - <%= 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> - |