From 803a9db6ae8f68bbc9b7e16230c4e3afce350521 Mon Sep 17 00:00:00 2001 From: bsag Date: Sun, 23 Jul 2006 13:33:52 +0000 Subject: [PATCH] Added a META HTTP-EQUIV=REFRESH value to the standard layout template. The refresh value is taken from user preferences, and defaults to zero so that the page doesn't refresh automatically. If you're using the trunk, you'll need to run rake db:migrate to update your user preferences. Fixes #295 git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@290 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/app/controllers/application.rb | 3 ++- tracks/app/controllers/user_controller.rb | 3 ++- tracks/app/views/layouts/standard.rhtml | 1 + .../app/views/user/preference_edit_form.rhtml | 1 + tracks/app/views/user/preferences.rhtml | 1 + tracks/db/migrate/009_add_user_pref_refresh.rb | 12 ++++++++++++ tracks/db/schema.rb | 2 +- tracks/test/fixtures/notes.yml | 12 +++++++----- tracks/test/fixtures/todos.yml | 9 +++------ tracks/test/fixtures/users.yml | 18 ++++++++++++++++-- tracks/test/functional/user_controller_test.rb | 4 ++-- 11 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 tracks/db/migrate/009_add_user_pref_refresh.rb diff --git a/tracks/app/controllers/application.rb b/tracks/app/controllers/application.rb index 36f938fe..38ac8fc4 100644 --- a/tracks/app/controllers/application.rb +++ b/tracks/app/controllers/application.rb @@ -64,7 +64,8 @@ class ApplicationController < ActionController::Base private def get_current_user - @user = User.find(session['user_id']) if session['user_id'] + @user = User.find(session['user_id']) if session['user_id'] + @prefs = @user.preferences unless @user.nil? end def get_admin_user diff --git a/tracks/app/controllers/user_controller.rb b/tracks/app/controllers/user_controller.rb index 11ce5719..23137e9a 100644 --- a/tracks/app/controllers/user_controller.rb +++ b/tracks/app/controllers/user_controller.rb @@ -28,7 +28,8 @@ class UserController < ApplicationController "no_completed" => "#{params['prefs']['no_completed']}", "staleness_starts" => "#{params['prefs']['staleness_starts']}", "due_style" => "#{params['prefs']['due_style']}", - "admin_email" => "#{params['prefs']['admin_email']}" + "admin_email" => "#{params['prefs']['admin_email']}", + "refresh" => "#{params['prefs']['refresh']}" } if @user.save redirect_to :action => 'preferences' diff --git a/tracks/app/views/layouts/standard.rhtml b/tracks/app/views/layouts/standard.rhtml index 1fc2901a..9071de91 100644 --- a/tracks/app/views/layouts/standard.rhtml +++ b/tracks/app/views/layouts/standard.rhtml @@ -2,6 +2,7 @@ + ;url=<%= request.request_uri %>"> <%= stylesheet_link_tag "standard" %> <%= stylesheet_link_tag "print", :media => "print" %> <%= javascript_include_tag "toggle_notes" %> diff --git a/tracks/app/views/user/preference_edit_form.rhtml b/tracks/app/views/user/preference_edit_form.rhtml index b6f59135..32422e79 100644 --- a/tracks/app/views/user/preference_edit_form.rhtml +++ b/tracks/app/views/user/preference_edit_form.rhtml @@ -10,6 +10,7 @@ <% end %>
  • week_starts: day of the week shown as the start of the week on the popup calendar.
  • due_style: style in which due dates are shown, e.g. "Due in 3 days", "Due on Wednesday"
  • +
  • refresh: automatic refresh interval for each of the pages (in minutes)
  • diff --git a/tracks/app/views/user/preferences.rhtml b/tracks/app/views/user/preferences.rhtml index 26068288..3ed2ac1e 100644 --- a/tracks/app/views/user/preferences.rhtml +++ b/tracks/app/views/user/preferences.rhtml @@ -41,6 +41,7 @@ <% if @user.is_admin? %>
  • Admin email: <%= @prefs["admin_email"] %>
  • <% end %> +
  • Refresh interval (in minutes): <%= @prefs["refresh"] %>
  • <%= link_to "Edit preferences", :controller => 'user', :action => 'edit_preferences' %> | <%= link_to 'Change password', :controller => 'user', :action => 'change_password' %> diff --git a/tracks/db/migrate/009_add_user_pref_refresh.rb b/tracks/db/migrate/009_add_user_pref_refresh.rb new file mode 100644 index 00000000..235f5673 --- /dev/null +++ b/tracks/db/migrate/009_add_user_pref_refresh.rb @@ -0,0 +1,12 @@ +class AddUserPrefRefresh < ActiveRecord::Migration + def self.up + @users = User.find(:all) + @users.each do |user| + user.preferences.merge!({"refresh" => "0"}) + user.save + end + end + + def self.down + end +end diff --git a/tracks/db/schema.rb b/tracks/db/schema.rb index bbadce91..f830859a 100644 --- a/tracks/db/schema.rb +++ b/tracks/db/schema.rb @@ -2,7 +2,7 @@ # migrations feature of ActiveRecord to incrementally modify your database, and # then regenerate this schema definition. -ActiveRecord::Schema.define(:version => 8) do +ActiveRecord::Schema.define(:version => 9) do create_table "contexts", :force => true do |t| t.column "name", :string, :default => "", :null => false diff --git a/tracks/test/fixtures/notes.yml b/tracks/test/fixtures/notes.yml index 84052a6b..ad914f3f 100644 --- a/tracks/test/fixtures/notes.yml +++ b/tracks/test/fixtures/notes.yml @@ -1,13 +1,15 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html <% def today -Time.now.to_s(:db) -end + Time.now.to_s(:db) +end + def next_week -1.week.from_now.to_s(:db) -end + 1.week.from_now.to_s(:db) +end + def last_week -1.week.ago.to_s(:db) + 1.week.ago.to_s(:db) end %> diff --git a/tracks/test/fixtures/todos.yml b/tracks/test/fixtures/todos.yml index f4f0ea62..79c5656f 100644 --- a/tracks/test/fixtures/todos.yml +++ b/tracks/test/fixtures/todos.yml @@ -1,5 +1,6 @@ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html <% + def today Time.now.to_s(:db) end @@ -16,10 +17,6 @@ def two_weeks_hence 2.week.from_now.to_s(:db) end -# This writes the fixture boolean columns appropriately -# depending on the database adapter -# - %> 1: @@ -138,7 +135,7 @@ end notes: ~ done: 1 created_at: <%= today %> - due: 2005-01-05 + due: <%= two_weeks_hence %> completed: <%= today %> user_id: 1 @@ -150,7 +147,7 @@ end notes: ~ done: false created_at: <%= today %> - due: 2005-02-01 + due: <%= next_week %> completed: ~ user_id: 1 diff --git a/tracks/test/fixtures/users.yml b/tracks/test/fixtures/users.yml index 0cb8e0dc..32403a2e 100644 --- a/tracks/test/fixtures/users.yml +++ b/tracks/test/fixtures/users.yml @@ -5,7 +5,14 @@ admin_user: password: <%= Digest::SHA1.hexdigest("#{SALT}--abracadabra--") %> word: <%= Digest::SHA1.hexdigest("adminSat Feb 25 17:14:00 GMT 20060.236961325863376") %> is_admin: true - preferences: "---\nstaleness_starts: \"7\"\ndate_format: \"%d/%m/%Y\"\nno_completed: \"5\"\nadmin_email: butshesagirl@rousette.org.uk\nweek_starts: \"1\"\ndue_style: \"0\"" + preferences: + staleness_starts: "7" + date_format: "%d/%m/%Y" + no_completed: "5" + admin_email: butshesagirl@rousette.org.uk + weeks_starts: "1" + due_style: "0" + refresh: "0" other_user: id: 2 @@ -13,4 +20,11 @@ other_user: password: <%= Digest::SHA1.hexdigest("#{SALT}--sesame--") %> word: <%= Digest::SHA1.hexdigest("janeSun Feb 19 14:42:45 GMT 20060.408173979260027") %> is_admin: false - preferences: "---\nstaleness_starts: \"7\"\ndate_format: \"%d/%m/%Y\"\nno_completed: \"5\"\nadmin_email: butshesagirl@rousette.org.uk\nweek_starts: \"1\"\ndue_style: \"0\"" + preferences: + staleness_starts: "7" + date_format: "%d/%m/%Y" + no_completed: "5" + admin_email: butshesagirl@rousette.org.uk + weeks_starts: "1" + due_style: "0" + refresh: "0" diff --git a/tracks/test/functional/user_controller_test.rb b/tracks/test/functional/user_controller_test.rb index 06d65ccc..07c67b63 100644 --- a/tracks/test/functional/user_controller_test.rb +++ b/tracks/test/functional/user_controller_test.rb @@ -44,7 +44,7 @@ class UserControllerTest < Test::Unit::TestCase assert_success assert_equal assigns['page_title'], "TRACKS::Preferences" assert_not_nil assigns['prefs'] - assert_equal assigns['prefs'].length, 6 + assert_equal assigns['prefs'].length, 7 end def test_edit_preferences @@ -55,7 +55,7 @@ class UserControllerTest < Test::Unit::TestCase assert_success assert_equal assigns['page_title'], "TRACKS::Edit Preferences" assert_not_nil assigns['prefs'] - assert_equal assigns['prefs'].length, 6 + assert_equal assigns['prefs'].length, 7 assert_template 'user/preference_edit_form' end