From e4ce95c3a18496e8bc20787331d8f11c6b6b6e25 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang
Date: Fri, 16 Nov 2007 20:26:36 +0000
Subject: Added a couple of new formats for the 'date format' setting. Added a
'time format' setting.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@905 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
app/helpers/application_helper.rb | 10 ++++++----
app/models/setting.rb | 17 +++++++++++++++++
app/views/projects/activity.rhtml | 2 +-
app/views/settings/edit.rhtml | 5 ++++-
4 files changed, 28 insertions(+), 6 deletions(-)
(limited to 'app')
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index c03f073c1..e9ea74e2d 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -71,15 +71,17 @@ module ApplicationHelper
def format_date(date)
return nil unless date
- @date_format ||= (Setting.date_format.to_i == 0 ? l(:general_fmt_date) : "%Y-%m-%d")
+ # "Setting.date_format.size < 2" is a temporary fix (content of date_format setting changed)
+ @date_format ||= (Setting.date_format.blank? || Setting.date_format.size < 2 ? l(:general_fmt_date) : Setting.date_format)
date.strftime(@date_format)
end
- def format_time(time)
+ def format_time(time, include_date = true)
return nil unless time
- @date_format_setting ||= Setting.date_format.to_i
time = time.to_time if time.is_a?(String)
- @date_format_setting == 0 ? l_datetime(time) : (time.strftime("%Y-%m-%d") + ' ' + l_time(time))
+ @date_format ||= (Setting.date_format.blank? || Setting.date_format.size < 2 ? l(:general_fmt_date) : Setting.date_format)
+ @time_format ||= (Setting.time_format.blank? ? l(:general_fmt_time) : Setting.time_format)
+ include_date ? time.strftime("#{@date_format} #{@time_format}") : time.strftime(@time_format)
end
def authoring(created, author)
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 1c953f4c8..4d4cf0045 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -17,6 +17,23 @@
class Setting < ActiveRecord::Base
+ DATE_FORMATS = [
+ '%Y-%m-%d',
+ '%d/%m/%Y',
+ '%d.%m.%Y',
+ '%d-%m-%Y',
+ '%m/%d/%Y',
+ '%d %b %Y',
+ '%d %B %Y',
+ '%b %d, %Y',
+ '%B %d, %Y'
+ ]
+
+ TIME_FORMATS = [
+ '%H:%M',
+ '%I:%M %p'
+ ]
+
cattr_accessor :available_settings
@@available_settings = YAML::load(File.open("#{RAILS_ROOT}/config/settings.yml"))
Redmine::Plugin.registered_plugins.each do |id, plugin|
diff --git a/app/views/projects/activity.rhtml b/app/views/projects/activity.rhtml
index cc54eac95..c902d60a3 100644
--- a/app/views/projects/activity.rhtml
+++ b/app/views/projects/activity.rhtml
@@ -4,7 +4,7 @@
<%= day_name(day.cwday) %> <%= day.day %>
<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| %>
- <%= e.event_datetime.strftime("%H:%M") %> <%= link_to truncate(e.event_title, 100), e.event_url %>
+
<%= format_time(e.event_datetime, false) %> <%= link_to truncate(e.event_title, 100), e.event_url %>
<% unless e.event_description.blank? %><%= truncate(e.event_description, 500) %>
<% end %>
<%= e.event_author if e.respond_to?(:event_author) %>
<% end %>
diff --git a/app/views/settings/edit.rhtml b/app/views/settings/edit.rhtml
index b08b707bf..62aa7974c 100644
--- a/app/views/settings/edit.rhtml
+++ b/app/views/settings/edit.rhtml
@@ -20,7 +20,10 @@
<%= select_tag 'settings[default_language]', options_for_select( lang_options_for_select(false), Setting.default_language) %>
-<%= select_tag 'settings[date_format]', options_for_select( [[l(:label_language_based), '0'], ['ISO 8601 (YYYY-MM-DD)', '1']], Setting.date_format) %>
+<%= select_tag 'settings[date_format]', options_for_select( [[l(:label_language_based), '']] + Setting::DATE_FORMATS.collect {|f| [Date.today.strftime(f), f]}, Setting.date_format) %>
+
+
+<%= select_tag 'settings[time_format]', options_for_select( [[l(:label_language_based), '']] + Setting::TIME_FORMATS.collect {|f| [Time.now.strftime(f), f]}, Setting.time_format) %>
<%= text_field_tag 'settings[attachment_max_size]', Setting.attachment_max_size, :size => 6 %> KB
--
cgit v1.2.3