# HG changeset patch # User Toshi MARUYAMA # Date 1368184960 -32400 # Node ID fe0ce8da025c9b1c947753e69145379dd3bbf650 # Parent ff9511dc0a41bc0368a1d15a495800d30cd2ea2c [mq]: start_date_area-02.diff diff --git a/app/views/issues/_attributes.html.erb b/app/views/issues/_attributes.html.erb --- a/app/views/issues/_attributes.html.erb +++ b/app/views/issues/_attributes.html.erb @@ -47,7 +47,7 @@ <% end %> <% if @issue.safe_attribute? 'start_date' %> -

+

<%= f.text_field(:start_date, :size => 10, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('start_date')) %> <%= calendar_for('issue_start_date') if @issue.leaf? %> @@ -55,7 +55,7 @@ <% end %> <% if @issue.safe_attribute? 'due_date' %> -

+

<%= f.text_field(:due_date, :size => 10, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('due_date')) %> <%= calendar_for('issue_due_date') if @issue.leaf? %> # HG changeset patch # User Toshi MARUYAMA # Date 1368184960 -32400 # Node ID 099743e779ab7919f03728189a056032c6d52d06 # Parent fe0ce8da025c9b1c947753e69145379dd3bbf650 [mq]: test_create_issue_start_due_date-01.diff diff --git a/test/ui/issues_test.rb b/test/ui/issues_test.rb --- a/test/ui/issues_test.rb +++ b/test/ui/issues_test.rb @@ -132,6 +132,21 @@ class Redmine::UiTest::IssuesTest < Redm assert_equal ['Dave Lopper', 'Some Watcher'], issue.watcher_users.map(&:name).sort end + def test_create_issue_start_due_date + with_settings :default_issue_start_date_to_creation_date => 0 do + log_user('jsmith', 'jsmith') + visit '/projects/ecookbook/issues/new' + assert_equal "", page.find('input#issue_start_date').value + assert_equal "", page.find('input#issue_due_date').value + page.first('p#start_date_area').first('img').click + page.first("td.ui-datepicker-days-cell-over a").click + assert_equal Date.today.to_s, page.find('input#issue_start_date').value + page.first('p#due_date_area').first('img').click + page.first("td.ui-datepicker-days-cell-over a").click + assert_equal Date.today.to_s, page.find('input#issue_due_date').value + end + end + def test_preview_issue_description log_user('jsmith', 'jsmith') visit '/projects/ecookbook/issues/new' # HG changeset patch # User Toshi MARUYAMA # Date 1366874366 -32400 # Node ID a0cb0ca211cb25eee3dde294f78d385fe264ab0a # Parent 099743e779ab7919f03728189a056032c6d52d06 [mq]: beforeShowDatePicker-02.diff diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb --- 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 --- /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); +} # HG changeset patch # User Toshi MARUYAMA # Date 1368184960 -32400 # Node ID a55a34af03369ae5b7e0c65c8723b493d38e6a25 # Parent a0cb0ca211cb25eee3dde294f78d385fe264ab0a imported patch datepicker/i-test-01.diff diff --git a/test/ui/issues_test.rb b/test/ui/issues_test.rb --- a/test/ui/issues_test.rb +++ b/test/ui/issues_test.rb @@ -144,6 +144,19 @@ class Redmine::UiTest::IssuesTest < Redm page.first('p#due_date_area').first('img').click page.first("td.ui-datepicker-days-cell-over a").click assert_equal Date.today.to_s, page.find('input#issue_due_date').value + + fill_in 'Start date', :with => '2012-05-01' + fill_in 'Due date', :with => '' + page.first('p#due_date_area').first('img').click + assert page.has_css?('td.ui-datepicker-days-cell-over') + page.first("td.ui-datepicker-days-cell-over a").click + assert_equal '2012-05-01', page.find('input#issue_due_date').value + + fill_in 'Start date', :with => '' + fill_in 'Due date', :with => '2012-05-01' + page.first('p#start_date_area').first('img').click + page.first("td.ui-datepicker-days-cell-over a").click + assert_equal '2012-05-01', page.find('input#issue_start_date').value end end