aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock8
-rw-r--r--app/controllers/services_controller.rb6
-rw-r--r--app/views/general/frontpage.rhtml11
-rw-r--r--config/deploy.rb1
-rw-r--r--config/environments/development.rb2
-rw-r--r--config/newrelic.yml-example216
-rw-r--r--lib/world_foi_websites.rb6
-rw-r--r--public/stylesheets/main.css6
9 files changed, 246 insertions, 11 deletions
diff --git a/Gemfile b/Gemfile
index 92f9ac172..334c9aa07 100644
--- a/Gemfile
+++ b/Gemfile
@@ -39,6 +39,7 @@ gem 'xml-simple'
gem 'zip'
gem 'capistrano'
gem 'syslog_protocol'
+gem 'newrelic_rpm'
group :test do
gem 'fakeweb'
diff --git a/Gemfile.lock b/Gemfile.lock
index b3fa61708..58c5bcbe0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -19,13 +19,13 @@ GEM
activesupport (= 2.3.14)
activesupport (2.3.14)
annotate (2.4.0)
+ archive-tar-minitar (0.5.2)
capistrano (2.13.3)
highline
net-scp (>= 1.0.0)
net-sftp (>= 2.0.0)
net-ssh (>= 2.0.14)
net-ssh-gateway (>= 1.1.0)
- archive-tar-minitar (0.5.2)
columnize (0.3.6)
fakeweb (1.3.0)
fast_gettext (0.6.8)
@@ -52,6 +52,7 @@ GEM
net-ssh (2.5.2)
net-ssh-gateway (1.1.0)
net-ssh (>= 1.99.1)
+ newrelic_rpm (3.4.1)
pg (0.13.2)
rack (1.1.3)
rails (2.3.14)
@@ -91,9 +92,9 @@ GEM
ruby-ole (1.2.11.3)
ruby_core_source (0.1.5)
archive-tar-minitar (>= 0.5.2)
+ syslog_protocol (0.9.2)
test-unit (1.2.3)
hoe (>= 1.5.1)
- syslog_protocol (0.9.2)
vpim (0.695)
will_paginate (2.3.16)
xapian-full-alaveteli (1.2.9.5)
@@ -117,6 +118,7 @@ DEPENDENCIES
memcache-client
net-http-local
net-purge
+ newrelic_rpm
pg
rack (~> 1.1.0)
rails (= 2.3.14)
@@ -130,8 +132,8 @@ DEPENDENCIES
ruby-debug
ruby-debug19
ruby-msg (~> 1.5.0)
- test-unit (~> 1.2.3)
syslog_protocol
+ test-unit (~> 1.2.3)
vpim
will_paginate (~> 2.3.11)
xapian-full-alaveteli (~> 1.2.9.5)
diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb
index ead5d73b7..38bf51772 100644
--- a/app/controllers/services_controller.rb
+++ b/app/controllers/services_controller.rb
@@ -9,13 +9,13 @@ class ServicesController < ApplicationController
iso_country_code = Configuration::iso_country_code.downcase
if country_from_ip.downcase != iso_country_code
found_country = WorldFOIWebsites.by_code(country_from_ip)
- found_country_name = !found_country.nil? && found_country[:country_name]
old_fgt_locale = FastGettext.locale
begin
FastGettext.locale = FastGettext.best_locale_in(request.env['HTTP_ACCEPT_LANGUAGE'])
- if found_country_name
- text = _("Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}", :country_name => found_country_name, :link_to_website => "<a href=\"#{found_country[:url]}\">#{found_country[:name]}</a>")
+ if found_country && found_country[:country_name] && found_country[:url] && found_country[:name]
+ text = _("Hello! You can make Freedom of Information requests within {{country_name}} at {{link_to_website}}",
+ :country_name => found_country[:country_name], :link_to_website => "<a href=\"#{found_country[:url]}\">#{found_country[:name]}</a>")
else
current_country = WorldFOIWebsites.by_code(iso_country_code)[:country_name]
text = _("Hello! We have an <a href=\"/help/alaveteli?country_name=#{CGI.escape(current_country)}\">important message</a> for visitors outside {{country_name}}", :country_name => current_country)
diff --git a/app/views/general/frontpage.rhtml b/app/views/general/frontpage.rhtml
index 7f25cdd14..ec7b9bd8f 100644
--- a/app/views/general/frontpage.rhtml
+++ b/app/views/general/frontpage.rhtml
@@ -63,11 +63,18 @@
<ul>
<% for event in @request_events %>
<li>
- <%= public_body_link(event.info_request.public_body) %> <%= _('answered a request about') %>
+ <% if @request_events_all_successful %>
+ <%= _("{{public_body_link}} answered a request about",
+ :public_body_link => public_body_link(event.info_request.public_body)) %>
+ <% else %>
+ <%= _("{{public_body_link}} was sent a request about",
+ :public_body_link => public_body_link(event.info_request.public_body)) %>
+ <% end %>
+
<%=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.search_text_main(true), "", 200) %></p>
- </li>
+ </li>
<% end %>
</ul>
<p><strong>
diff --git a/config/deploy.rb b/config/deploy.rb
index f95c93b3d..8f0f2c32d 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -50,6 +50,7 @@ namespace :deploy do
"#{release_path}/config/general.yml" => "#{shared_path}/general.yml",
"#{release_path}/config/memcached.yml" => "#{shared_path}/memcached.yml",
"#{release_path}/config/rails_env.rb" => "#{shared_path}/rails_env.rb",
+ "#{release_path}/config/newrelic.yml" => "#{shared_path}/newrelic.yml",
"#{release_path}/public/foi-live-creation.png" => "#{shared_path}/foi-live-creation.png",
"#{release_path}/public/foi-user-use.png" => "#{shared_path}/foi-user-use.png",
"#{release_path}/files" => "#{shared_path}/files",
diff --git a/config/environments/development.rb b/config/environments/development.rb
index f21f27ab6..aba937da8 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -12,7 +12,7 @@ config.whiny_nils = true
# Show full error reports and disable caching
config.action_controller.consider_all_requests_local = true
-config.action_controller.perform_caching = true
+config.action_controller.perform_caching = false
config.action_view.debug_rjs = true
# Don't care if the mailer can't send
diff --git a/config/newrelic.yml-example b/config/newrelic.yml-example
new file mode 100644
index 000000000..8da7e26bd
--- /dev/null
+++ b/config/newrelic.yml-example
@@ -0,0 +1,216 @@
+#
+# This file configures the New Relic Agent. New Relic monitors
+# Ruby, Java, .NET, PHP, and Python applications with deep visibility and low overhead.
+# For more information, visit www.newrelic.com.
+#
+# Generated October 17, 2012
+#
+# This configuration file is custom generated for OpenAustralia Foundation
+
+# Here are the settings that are common to all environments:
+common: &default_settings
+ # ============================== LICENSE KEY ===============================
+
+ # You must specify the license key associated with your New Relic
+ # account. This key binds your Agent's data to your account in the
+ # New Relic service.
+ #license_key: ''
+
+ # Agent Enabled (Ruby/Rails Only)
+ # Use this setting to force the agent to run or not run.
+ # Default is 'auto' which means the agent will install and run only
+ # if a valid dispatcher such as Mongrel is running. This prevents
+ # it from running with Rake or the console. Set to false to
+ # completely turn the agent off regardless of the other settings.
+ # Valid values are true, false and auto.
+ # agent_enabled: auto
+
+ # Application Name
+ # Set this to be the name of your application as you'd like it show
+ # up in New Relic. New Relic will then auto-map instances of your application
+ # into a New Relic "application" on your home dashboard page. If you want
+ # to map this instance into multiple apps, like "AJAX Requests" and
+ # "All UI" then specify a semicolon-separated list of up to three
+ # distinct names. If you comment this out, it defaults to the
+ # capitalized RAILS_ENV (i.e., Production, Staging, etc)
+ app_name: My Application
+
+ # When "true", the agent collects performance data about your
+ # application and reports this data to the New Relic service at
+ # newrelic.com. This global switch is normally overridden for each
+ # environment below. (formerly called 'enabled')
+ monitor_mode: true
+
+ # Developer mode should be off in every environment but
+ # development as it has very high overhead in memory.
+ developer_mode: false
+
+ # The newrelic agent generates its own log file to keep its logging
+ # information separate from that of your application. Specify its
+ # log level here.
+ log_level: info
+
+ # The newrelic agent communicates with the New Relic service via http by
+ # default. If you want to communicate via https to increase
+ # security, then turn on SSL by setting this value to true. Note,
+ # this will result in increased CPU overhead to perform the
+ # encryption involved in SSL communication, but this work is done
+ # asynchronously to the threads that process your application code,
+ # so it should not impact response times.
+ ssl: false
+
+ # EXPERIMENTAL: enable verification of the SSL certificate sent by
+ # the server. This setting has no effect unless SSL is enabled
+ # above. This may block your application. Only enable it if the data
+ # you send us needs end-to-end verified certificates.
+ #
+ # This means we cannot cache the DNS lookup, so each request to the
+ # New Relic service will perform a lookup. It also means that we cannot
+ # use a non-blocking lookup, so in a worst case, if you have DNS
+ # problems, your app may block indefinitely.
+ # verify_certificate: true
+
+ # Proxy settings for connecting to the New Relic server.
+ #
+ # If a proxy is used, the host setting is required. Other settings
+ # are optional. Default port is 8080.
+ #
+ # proxy_host: hostname
+ # proxy_port: 8080
+ # proxy_user:
+ # proxy_pass:
+
+ # Tells transaction tracer and error collector (when enabled)
+ # whether or not to capture HTTP params. When true, frameworks can
+ # exclude HTTP parameters from being captured.
+ # Rails: the RoR filter_parameter_logging excludes parameters
+ # Java: create a config setting called "ignored_params" and set it to
+ # a comma separated list of HTTP parameter names.
+ # ex: ignored_params: credit_card, ssn, password
+ capture_params: false
+
+ # Transaction tracer captures deep information about slow
+ # transactions and sends this to the New Relic service once a
+ # minute. Included in the transaction is the exact call sequence of
+ # the transactions including any SQL statements issued.
+ transaction_tracer:
+
+ # Transaction tracer is enabled by default. Set this to false to
+ # turn it off. This feature is only available at the Professional
+ # product level.
+ enabled: true
+
+ # Threshold in seconds for when to collect a transaction
+ # trace. When the response time of a controller action exceeds
+ # this threshold, a transaction trace will be recorded and sent to
+ # New Relic. Valid values are any float value, or (default) "apdex_f",
+ # which will use the threshold for an dissatisfying Apdex
+ # controller action - four times the Apdex T value.
+ transaction_threshold: apdex_f
+
+ # When transaction tracer is on, SQL statements can optionally be
+ # recorded. The recorder has three modes, "off" which sends no
+ # SQL, "raw" which sends the SQL statement in its original form,
+ # and "obfuscated", which strips out numeric and string literals.
+ record_sql: obfuscated
+
+ # Threshold in seconds for when to collect stack trace for a SQL
+ # call. In other words, when SQL statements exceed this threshold,
+ # then capture and send to New Relic the current stack trace. This is
+ # helpful for pinpointing where long SQL calls originate from.
+ stack_trace_threshold: 0.500
+
+ # Determines whether the agent will capture query plans for slow
+ # SQL queries. Only supported in mysql and postgres. Should be
+ # set to false when using other adapters.
+ # explain_enabled: true
+
+ # Threshold for query execution time below which query plans will not
+ # not be captured. Relevant only when `explain_enabled` is true.
+ # explain_threshold: 0.5
+
+ # Error collector captures information about uncaught exceptions and
+ # sends them to New Relic for viewing
+ error_collector:
+
+ # Error collector is enabled by default. Set this to false to turn
+ # it off. This feature is only available at the Professional
+ # product level.
+ enabled: true
+
+ # Rails Only - tells error collector whether or not to capture a
+ # source snippet around the place of the error when errors are View
+ # related.
+ capture_source: true
+
+ # To stop specific errors from reporting to New Relic, set this property
+ # to comma-separated values. Default is to ignore routing errors,
+ # which are how 404's get triggered.
+ ignore_errors: ActionController::RoutingError
+
+ # (Advanced) Uncomment this to ensure the CPU and memory samplers
+ # won't run. Useful when you are using the agent to monitor an
+ # external resource
+ # disable_samplers: true
+
+ # If you aren't interested in visibility in these areas, you can
+ # disable the instrumentation to reduce overhead.
+ #
+ # disable_view_instrumentation: true
+ # disable_activerecord_instrumentation: true
+ # disable_memcache_instrumentation: true
+ # disable_dj: true
+
+ # Certain types of instrumentation such as GC stats will not work if
+ # you are running multi-threaded. Please let us know.
+ # multi_threaded = false
+
+# Application Environments
+# ------------------------------------------
+# Environment-specific settings are in this section.
+# For Rails applications, RAILS_ENV is used to determine the environment.
+# For Java applications, pass -Dnewrelic.environment <environment> to set
+# the environment.
+
+# NOTE if your application has other named environments, you should
+# provide newrelic configuration settings for these environments here.
+
+development:
+ <<: *default_settings
+ # Turn off communication to New Relic service in development mode (also
+ # 'enabled').
+ # NOTE: for initial evaluation purposes, you may want to temporarily
+ # turn agent communication on in development mode.
+ monitor_mode: false
+
+ # Rails Only - when running in Developer Mode, the New Relic Agent will
+ # present performance information on the last 100 transactions you have
+ # executed since starting the app server.
+ # NOTE: There is substantial overhead when running in developer mode.
+ # Do not use for production or load testing.
+ developer_mode: true
+
+ # Enable textmate links
+ # textmate: true
+
+test:
+ <<: *default_settings
+ # It almost never makes sense to turn on the agent when running
+ # unit, functional or integration tests or the like.
+ monitor_mode: false
+
+# Turn on the agent in production for 24x7 monitoring. New Relic
+# testing shows an average performance impact of < 5 ms per
+# transaction, so you can leave this on all the time without
+# incurring any user-visible performance degradation.
+production:
+ <<: *default_settings
+ monitor_mode: true
+
+# Many applications have a staging environment which behaves
+# identically to production. Support for that environment is provided
+# here. By default, the staging environment has the agent turned on.
+staging:
+ <<: *default_settings
+ monitor_mode: true
+ app_name: My Application (Staging)
diff --git a/lib/world_foi_websites.rb b/lib/world_foi_websites.rb
index f175afd3d..8cfd0dfae 100644
--- a/lib/world_foi_websites.rb
+++ b/lib/world_foi_websites.rb
@@ -45,7 +45,11 @@ class WorldFOIWebsites
{:name => "Acceso Intelligente",
:country_name => "Chile",
:country_iso_code => "CL",
- :url => "http://accesointeligente.org"}]
+ :url => "http://accesointeligente.org"},
+ {:country_name => "Australia",
+ :country_iso_code => "AU",
+ # The Australian site is not yet live. So, not including name & url yet.
+ }]
return world_foi_websites
end
diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css
index decce951d..54420f04f 100644
--- a/public/stylesheets/main.css
+++ b/public/stylesheets/main.css
@@ -670,6 +670,10 @@ margin-top:20px;
width:auto;
}
+#signup .errorExplanation, #signin .errorExplanation {
+ width: inherit;
+}
+
#signup h2,#signin h2 {
font-size:1.1em;
}
@@ -685,7 +689,7 @@ margin-left:25%;
#signup .form_item_note,#signin .form_note {
font-size:0.9em;
margin-left:11.5em;
-width:24em;
+width:inherit;
}
div.controller_help dt a,div.controller_help h1 a,div#help_unhappy h1 a.hover_a {