summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2013-05-19 01:06:25 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2013-05-19 01:06:25 +0000
commit0e20ec697b828fd3fd2e1987fff66d28df134365 (patch)
tree6e0f912859333c986c1c051a4cc033fc3e9c3fad
parentcbb8b12ba44b39d42b1e2de3bfb415c7487c7b5b (diff)
downloadredmine-0e20ec697b828fd3fd2e1987fff66d28df134365.tar.gz
redmine-0e20ec697b828fd3fd2e1987fff66d28df134365.zip
set default issue start/due datepicker from due/start date (#14024)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11883 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/application_helper.rb8
-rw-r--r--public/javascripts/datepicker.js16
-rw-r--r--test/ui/issues_test.rb16
3 files changed, 37 insertions, 3 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 751550118..fbf14b3d1 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1075,6 +1075,7 @@ module ApplicationHelper
def include_calendar_headers_tags
unless @calendar_headers_tags_included
+ tags = javascript_include_tag("datepicker")
@calendar_headers_tags_included = true
content_for :header_tags do
start_of_week = Setting.start_of_week
@@ -1082,12 +1083,13 @@ module ApplicationHelper
# Redmine uses 1..7 (monday..sunday) in settings and locales
# JQuery uses 0..6 (sunday..saturday), 7 needs to be changed to 0
start_of_week = start_of_week.to_i % 7
-
- tags = javascript_tag(
+ tags << javascript_tag(
"var datepickerOptions={dateFormat: 'yy-mm-dd', firstDay: #{start_of_week}, " +
"showOn: 'button', buttonImageOnly: true, buttonImage: '" +
path_to_image('/images/calendar.png') +
- "', showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true};")
+ "', showButtonPanel: true, showWeek: true, showOtherMonths: true, " +
+ "selectOtherMonths: true, changeMonth: true, changeYear: true, " +
+ "beforeShow: beforeShowDatePicker};")
jquery_locale = l('jquery.locale', :default => current_language.to_s)
unless jquery_locale == 'en'
tags << javascript_include_tag("i18n/jquery.ui.datepicker-#{jquery_locale}.js")
diff --git a/public/javascripts/datepicker.js b/public/javascripts/datepicker.js
new file mode 100644
index 000000000..9acae0cd4
--- /dev/null
+++ b/public/javascripts/datepicker.js
@@ -0,0 +1,16 @@
+function beforeShowDatePicker(input, inst) {
+ var default_date = null;
+ switch ($(input).attr("id")) {
+ case "issue_start_date" :
+ if ($("#issue_due_date").size() > 0) {
+ default_date = $("#issue_due_date").val();
+ }
+ break;
+ case "issue_due_date" :
+ if ($("#issue_start_date").size() > 0) {
+ default_date = $("#issue_start_date").val();
+ }
+ break;
+ }
+ $(input).datepicker("option", "defaultDate", default_date);
+}
diff --git a/test/ui/issues_test.rb b/test/ui/issues_test.rb
index df25f8b9c..1f9ba457b 100644
--- a/test/ui/issues_test.rb
+++ b/test/ui/issues_test.rb
@@ -147,6 +147,22 @@ class Redmine::UiTest::IssuesTest < Redmine::UiTest::Base
end
end
+ def test_create_issue_start_due_date_default
+ log_user('jsmith', 'jsmith')
+ visit '/projects/ecookbook/issues/new'
+ fill_in 'Start date', :with => '2012-04-01'
+ fill_in 'Due date', :with => ''
+ page.first('p#due_date_area img').click
+ page.first("td.ui-datepicker-days-cell-over a").click
+ assert_equal '2012-04-01', page.find('input#issue_due_date').value
+
+ fill_in 'Start date', :with => ''
+ fill_in 'Due date', :with => '2012-04-01'
+ page.first('p#start_date_area img').click
+ page.first("td.ui-datepicker-days-cell-over a").click
+ assert_equal '2012-04-01', page.find('input#issue_start_date').value
+ end
+
def test_preview_issue_description
log_user('jsmith', 'jsmith')
visit '/projects/ecookbook/issues/new'