]> source.dussan.org Git - redmine.git/commitdiff
Previous and next month links in gantt (#31373).
authorGo MAEDA <maeda@farend.jp>
Sun, 4 Aug 2019 09:42:58 +0000 (09:42 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 4 Aug 2019 09:42:58 +0000 (09:42 +0000)
Patch by Mizuki ISHIKAWA.

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

app/helpers/application_helper.rb
app/helpers/calendars_helper.rb
app/views/gantts/show.html.erb
test/functional/gantts_controller_test.rb

index 60f80ed208537d65ab0fff1d9f0a745626469d03..5fb994c19054d95242a86e08000a909ff1f69cd8 100644 (file)
@@ -298,6 +298,42 @@ module ApplicationHelper
     link_to(name, "#", :onclick => onclick)
   end
 
+  def link_to_previous_month(year, month, options={})
+    target_year, target_month = if month == 1
+                                  [year - 1, 12]
+                                else
+                                  [year, month - 1]
+                                end
+
+    name = if target_month == 12
+             "#{month_name(target_month)} #{target_year}"
+           else
+             month_name(target_month)
+           end
+
+    link_to_month(("« " + name), target_year, target_month, options)
+  end
+
+  def link_to_next_month(year, month, options={})
+    target_year, target_month = if month == 12
+                                  [year + 1, 1]
+                                else
+                                  [year, month + 1]
+                                end
+
+    name = if target_month == 1
+             "#{month_name(target_month)} #{target_year}"
+           else
+             month_name(target_month)
+           end
+
+    link_to_month((name + " »"), target_year, target_month, options)
+  end
+
+  def link_to_month(link_name, year, month, options={})
+    link_to(link_name, {:params => request.query_parameters.merge(:year => year, :month => month)}, options)
+  end
+
   # Used to format item titles on the activity view
   def format_activity_title(text)
     text
index 0cb071c34ea5dde09eced7af1f09060be25bd624..a248eab9749700c490cf441ed70d364ef408ac8b 100644 (file)
 module CalendarsHelper
   include Redmine::Utils::DateCalculation
 
-  def link_to_previous_month(year, month, options={})
-    target_year, target_month = if month == 1
-                                  [year - 1, 12]
-                                else
-                                  [year, month - 1]
-                                end
-
-    name = if target_month == 12
-             "#{month_name(target_month)} #{target_year}"
-           else
-             "#{month_name(target_month)}"
-           end
-
-    # \xc2\xab(utf-8) = &#171;
-    link_to_month(("\xc2\xab " + name), target_year, target_month, options)
-  end
-
-  def link_to_next_month(year, month, options={})
-    target_year, target_month = if month == 12
-                                  [year + 1, 1]
-                                else
-                                  [year, month + 1]
-                                end
-
-    name = if target_month == 1
-             "#{month_name(target_month)} #{target_year}"
-           else
-             "#{month_name(target_month)}"
-           end
-
-    # \xc2\xbb(utf-8) = &#187;
-    link_to_month((name + " \xc2\xbb"), target_year, target_month, options)
-  end
-
-  def link_to_month(link_name, year, month, options={})
-    link_to(link_name, {:params => request.query_parameters.merge(:year => year, :month => month)}, options)
-  end
-
   def calendar_day_css_classes(calendar, day)
     css = day.month==calendar.month ? +'even' : +'odd'
     css << " today" if User.current.today == day
index 00dd2c23010018c194b5d0fd5701880cca75b67a..348d04b699f0b29b69715051c77017e4bc76264a 100644 (file)
 </div>
 
 <p class="contextual">
-  <%= gantt_zoom_link(@gantt, :in) %>
-  <%= gantt_zoom_link(@gantt, :out) %>
+  <span>
+    <%= gantt_zoom_link(@gantt, :in) %>
+    <%= gantt_zoom_link(@gantt, :out) %>
+  </span>
+  <span>
+    <%= link_to_previous_month(@gantt.year_from, @gantt.month_from, :accesskey => accesskey(:previous)) %> | <%= link_to_next_month(@gantt.year_from, @gantt.month_from, :accesskey => accesskey(:next)) %>
+  </span>
 </p>
 
 <p class="buttons">
index 0919f56ef6f8a833712ec11cb1a45b84c7518649..427cfe07ae498e25b77078ee4e4641ed6ad97287 100644 (file)
@@ -47,7 +47,11 @@ class GanttsControllerTest < Redmine::ControllerTest
           assert_select 'fieldset#filters.collapsible'
           assert_select 'fieldset#options'
         end
-        assert_select 'p.contextual'
+        assert_select 'p.contextual' do
+          prev_month, next_month = User.current.today.prev_month, User.current.today.next_month
+          assert_select 'a[accesskey="p"][href=?]', project_gantt_path(:project_id => 1, :month => prev_month.month, :year => prev_month.year)
+          assert_select 'a[accesskey="n"][href=?]', project_gantt_path(:project_id => 1, :month => next_month.month, :year => next_month.year)
+        end
         assert_select 'p.buttons'
       end
     end