]> source.dussan.org Git - redmine.git/commitdiff
Display the last 30 days on the activity view rather than the current month.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 5 Mar 2008 13:44:08 +0000 (13:44 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 5 Mar 2008 13:44:08 +0000 (13:44 +0000)
Number of days can be configured in the application settings.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1196 e93f8b46-1217-0410-a6f0-8f06a7374b81

29 files changed:
app/controllers/projects_controller.rb
app/helpers/projects_helper.rb
app/views/projects/activity.rhtml
app/views/settings/_general.rhtml
config/settings.yml
lang/bg.yml
lang/cs.yml
lang/de.yml
lang/en.yml
lang/es.yml
lang/fi.yml
lang/fr.yml
lang/he.yml
lang/it.yml
lang/ja.yml
lang/ko.yml
lang/lt.yml
lang/nl.yml
lang/pl.yml
lang/pt-br.yml
lang/pt.yml
lang/ro.yml
lang/ru.yml
lang/sr.yml
lang/sv.yml
lang/uk.yml
lang/zh-tw.yml
lang/zh.yml
test/functional/projects_controller_test.rb

index f9d6d0f0b3361114e698042e0401e5e049560c51..b9758c8109091078629bf5d3afe581ea937b11f0 100644 (file)
@@ -218,25 +218,14 @@ class ProjectsController < ApplicationController
   end
   
   def activity
-    if params[:year] and params[:year].to_i > 1900
-      @year = params[:year].to_i
-      if params[:month] and params[:month].to_i > 0 and params[:month].to_i < 13
-        @month = params[:month].to_i
-      end    
+    @days = Setting.activity_days_default.to_i
+    
+    if params[:from]
+      begin; @date_to = params[:from].to_date; rescue; end
     end
-    @year ||= Date.today.year
-    @month ||= Date.today.month
 
-    case params[:format]
-    when 'atom'
-      # 30 last days
-      @date_from = Date.today - 30
-      @date_to = Date.today + 1
-    else
-      # current month
-      @date_from = Date.civil(@year, @month, 1)
-      @date_to = @date_from >> 1
-    end
+    @date_to ||= Date.today + 1
+    @date_from = @date_to - @days
     
     @event_types = %w(issues news files documents changesets wiki_pages messages)
     @event_types.delete('wiki_pages') unless @project.wiki
index c07bbd2c2a0796bc6b6a46e054d6aeafd7058a91..a163774126ed95ae203fcb35d12d495ebdd8c7bc 100644 (file)
@@ -26,6 +26,10 @@ module ProjectsHelper
                           }, options
   end
   
+  def format_activity_day(date)
+    date == Date.today ? l(:label_today).titleize : format_date(date)
+  end
+  
   def format_activity_description(text)
     h(truncate(text, 250))
   end
index aca08fd6f5583d51dcb70027abb4534afeab63a2..95c8d485fa3b8d61601a76ac2b3f6f0ce0583c51 100644 (file)
@@ -1,8 +1,8 @@
-<h2><%= "#{month_name(@month)} #{@year}" %></h2>
+<h2><%= l(:label_activity) %></h2>
 
 <div id="activity">
-<% @events_by_day.keys.sort {|x,y| y <=> x }.each do |day| %>
-<h3><%= day_name(day.cwday) %> <%= day.day %></h3>
+<% @events_by_day.keys.sort.reverse.each do |day| %>
+<h3><%= format_activity_day(day) %></h3>
 <dl>
 <% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
   <dt class="<%= e.class.name.downcase %>"><span class="time"><%= format_time(e.event_datetime, false) %></span>
 <%= content_tag('p', l(:label_no_data), :class => 'nodata') if @events_by_day.empty? %>
 
 <div style="float:left;">
-<% prev_params = params.clone.update :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1) %>
-<%= link_to_remote ('&#171; ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")), 
-                    {:update => "content", :url => prev_params}, {:href => url_for(prev_params)} %>
+<%= link_to_remote(('&#171; ' + l(:label_previous)), 
+                   {:update => "content", :url => params.merge(:from => @date_to - @days), :complete => 'window.scrollTo(0,0)'},
+                   {:href => url_for(params.merge(:from => @date_to - @days))}) %>
 </div>
 <div style="float:right;">
-<% next_params = params.clone.update :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1) %>
-<%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' &#187;'), 
-                    {:update => "content", :url => next_params}, {:href => url_for(next_params)} %>
+<%= link_to_remote((l(:label_next) + ' &#187;'), 
+                   {:update => "content", :url => params.merge(:from => @date_to + @days), :complete => 'window.scrollTo(0,0)'},
+                   {:href => url_for(params.merge(:from => @date_to + @days))}) unless @date_to >= Date.today %>
 </div>
 &nbsp;
 <p class="other-formats">
index 548ebbfacbf03c8eb3375f9293914296db39ecb4..bb56c43dbcf916ed55cbd39679ac54ba4d58e567 100644 (file)
@@ -29,6 +29,9 @@
 <p><label><%= l(:setting_per_page_options) %></label>
 <%= text_field_tag 'settings[per_page_options]', Setting.per_page_options_array.join(', '), :size => 20 %><br /><em><%= l(:text_comma_separated) %></em></p>
 
+<p><label><%= l(:setting_activity_days_default) %></label>
+<%= text_field_tag 'settings[activity_days_default]', Setting.activity_days_default, :size => 6 %> <%= l(:label_day_plural) %></p>
+
 <p><label><%= l(:setting_host_name) %></label>
 <%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %></p>
 
index 590ebee6a4bc8fb95a650b86a98c3c37cfbb4a75..bb8c1f60384f63287a535b596a72c61e9b66cc72 100644 (file)
@@ -37,6 +37,9 @@ attachment_max_size:
 issues_export_limit:
   format: int
   default: 500
+activity_days_default:
+  format: int
+  default: 30
 per_page_options:
   default: '25,50,100'
 mail_from:
index 12d5dfa5f75efa4a4fd8a81227e4ae80abcbfc6c..a99a8888a288adb304a0048a6fea4ba789a374a9 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 56b77d87b90d8a94e10b144bfc7f326c4ed30b61..5036b6b45845faf251a43ad5fecc8139c1080435 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 6cde2d9d47e39c0b59704af89a37c4cd9e7e42c6..3d0db927c166e9fc11ceae6b934a3cbf27d1f675 100644 (file)
@@ -608,3 +608,4 @@ default_activity_development: Entwicklung
 enumeration_issue_priorities: Ticket-Prioritäten
 enumeration_doc_categories: Dokumentenkategorien
 enumeration_activities: Aktivitäten (Zeiterfassung)
+setting_activity_days_default: Days displayed on project activity
index a5da5a855386552aa7534d1a7597c297ae21752e..a23d1b025b9874db0872258049c96f02f4b316e4 100644 (file)
@@ -206,6 +206,7 @@ setting_emails_footer: Emails footer
 setting_protocol: Protocol
 setting_per_page_options: Objects per page options
 setting_user_format: Users display format
+setting_activity_days_default: Days displayed on project activity
 
 project_module_issue_tracking: Issue tracking
 project_module_time_tracking: Time tracking
index 9032d3599e42b1e2437d1b1c5b78dba3911af7cc..66238934d926a1f0d2ee269a9c5f2ddaf071d7cd 100644 (file)
@@ -610,3 +610,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index a0f165e56081e9fb14625c47e024f5a40e682abf..d85629e1f0a01e32d19832e5ef929d6bcc261f81 100644 (file)
@@ -611,3 +611,4 @@ label_last_month: last month
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
 label_on: 'on'
+setting_activity_days_default: Days displayed on project activity
index 30c9f6ccac74849a53d498ad3a41fc5bc863175f..85e699c3cf613bdd1708218971c2684ed14200a5 100644 (file)
@@ -206,6 +206,7 @@ setting_emails_footer: Pied-de-page des emails
 setting_protocol: Protocole
 setting_per_page_options: Options d'objets affichés par page
 setting_user_format: Format d'affichage des utilisateurs
+setting_activity_days_default: Nombre de jours affichés sur l'activité des projets
 
 project_module_issue_tracking: Suivi des demandes
 project_module_time_tracking: Suivi du temps passé
index a43f1c02235b61f1005046e00aa2331ecd7bda4b..fe31e860b90a53633e609db166fd129979b34495 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 80ffc5f6c66e68e3763b8967f27dc63ef6bbbca5..f207c2e193eab44d1e7d03f92031fc195d70fb68 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 1c25b1a3f755af7293d9bc1d1bfa54dd59966656..f00fc4d815c8b1c8920c508de0c0b0b1156f0477 100644 (file)
@@ -608,3 +608,4 @@ text_assign_time_entries_to_project: Assign reported hours to the project
 label_optional_description: Optional description
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 267560a6dc3074c31fc45004a7319127793bea06..cf25e23ef5109da57a84c5cf17303253c8d3e7ea 100644 (file)
@@ -607,3 +607,4 @@ label_optional_description: Optional description
 label_last_month: last month
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 5d26c7ea9cb31b22b0c9d1c618dee9315823fd18..b50120764d48308f95593757d799c547fb2dfc77 100644 (file)
@@ -608,3 +608,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 12563f2e4da32e1a4ffcd05b1001631b8e289ea3..2d8a6aa00c9ea8bc9721ef7c8e4f02b2137a7da7 100644 (file)
@@ -608,3 +608,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 575c8262aae673646bf33bb8278633afba9d3881..57559aedbc2d2a683c0df46cd6c2871ea8d1fe95 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index d128617dad2f60109471480881ab49d596c4c0b4..35f490b836e3918f8129a2d2a953178739a9b549 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project\r
 text_destroy_time_entries: Delete reported hours\r
 text_reassign_time_entries: 'Reassign reported hours to this issue:'\r
+setting_activity_days_default: Days displayed on project activity\r
index 33b76892b8a0d65660d109e1fc0879489b42ad80..c07364f72c67a15b853e5b45603bcd23a6195ea7 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index b8b737e429c9df7796d78b91799f7dc4f94b1506..68de767a9738abc2e9e59c86623d0831654bbdd1 100644 (file)
@@ -607,3 +607,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index a92105ca4321f03ea20b1742e30035ad854cb120..39a30fd3be467556cd1a67db735b6d51908e5a65 100644 (file)
@@ -611,3 +611,4 @@ error_issue_not_found_in_project: Задача не была найдена ил
 text_assign_time_entries_to_project: Прикрепить зарегистрированное время к проекту
 text_destroy_time_entries: Удалить зарегистрированное время
 text_reassign_time_entries: 'Перенести зарегистрированное время на следующую задачу:'
+setting_activity_days_default: Days displayed on project activity
index 16e870b7670f65252ae4af2a047318fb909ca49e..5e693c09e2e2ff1bb4a084ed87ec6f239fb05246 100644 (file)
@@ -608,3 +608,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 3375a6850007ca0d6954ee49499ce8d825b2d9b9..1b4698f35ada2d934f3bdc333765c0a8a61a1769 100644 (file)
@@ -608,3 +608,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 2fd3589f52cbea927f4b0f5a3fb0134296bd85b4..c264541899fa9360e3e649aa6812df06a5774c94 100644 (file)
@@ -609,3 +609,4 @@ error_issue_not_found_in_project: 'The issue was not found or does not belong to
 text_assign_time_entries_to_project: Assign reported hours to the project
 text_destroy_time_entries: Delete reported hours
 text_reassign_time_entries: 'Reassign reported hours to this issue:'
+setting_activity_days_default: Days displayed on project activity
index 58088d84f8b7f9c92bb9fdd1129c9710b2c03508..5d504081130ae2bf27a784941d878c550d10a02a 100644 (file)
@@ -608,3 +608,4 @@ default_activity_development: 開發
 enumeration_issue_priorities: 項目優先權
 enumeration_doc_categories: 文件分類
 enumeration_activities: 活動 (time tracking)
+setting_activity_days_default: Days displayed on project activity
index 3d88c8565e930fcf428f27fee013cff97272d814..8646d47cd181afadde21d33270cf1e45c791a824 100644 (file)
@@ -608,3 +608,4 @@ default_activity_development: 开发
 enumeration_issue_priorities: 问题优先级
 enumeration_doc_categories: 文档类别
 enumeration_activities: 活动(时间跟踪)
+setting_activity_days_default: Days displayed on project activity
index 92ac6f09a03235f2f5c3896b8837e9808faca7f9..f610469df084e0f8ed5c7b7857803e59fd464402 100644 (file)
@@ -130,7 +130,7 @@ class ProjectsControllerTest < Test::Unit::TestCase
   end
 
   def test_activity
-    get :activity, :id => 1, :year => 2.days.ago.to_date.year, :month => 2.days.ago.to_date.month
+    get :activity, :id => 1
     assert_response :success
     assert_template 'activity'
     assert_not_nil assigns(:events_by_day)
@@ -146,7 +146,7 @@ class ProjectsControllerTest < Test::Unit::TestCase
                  }
                }
                
-    get :activity, :id => 1, :year => 3.days.ago.to_date.year, :month => 3.days.ago.to_date.month
+    get :activity, :id => 1, :from => 3.days.ago.to_date
     assert_response :success
     assert_template 'activity'
     assert_not_nil assigns(:events_by_day)