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
This commit is contained in:
Toshi MARUYAMA 2013-05-19 01:06:25 +00:00
parent cbb8b12ba4
commit 0e20ec697b
3 changed files with 37 additions and 3 deletions

View File

@ -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")

View File

@ -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);
}

View File

@ -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'