現状
プロジェクトメニューは下記画像のように Overview (概要) や Activity (活動) などのこと。
通常は「新しいチケット」 (New issue) のページを開いて、そこで目的のトラッカーを選択することになる。
調査
トラッカーを指定して「新しいチケット」のページを開く方法 (URL) は、下記リンク先を参考にした。
"URL to new issue with a specific tracker??"
https://www.redmine.org/boards/2/topics/14264
ただし Redmine 3.1.2 では下記
http://www.mysite.org/projects/{project}/issues/new?tracker_id={trackerid}
ではダメで、下記
http://www.mysite.org/projects/{project}/issues/new?issue[tracker_id]={trackerid}
とする必要があった。
改造の内容
プロジェクトメニューは下記で作成される。
- http://www.redmine.org/projects/redmine/repository/entry/tags/3.1.2/app/views/layouts/base.html.erb#L49
- http://www.redmine.org/projects/redmine/repository/entry/tags/3.1.2/lib/redmine/menu_manager.rb
- http://www.redmine.org/projects/redmine/repository/entry/tags/3.1.2/lib/redmine.rb#L224
メニューアイテムを追加する。お作法に従っているのか自信がない。
--- a/redmine-3.1.2/lib/redmine.rb 2015-11-14 18:03:27.000000000 +0900
+++ b/redmine-3.1.2/lib/redmine.rb 2016-01-16 01:32:21.541000000 +0900
@@ -230,7 +230,19 @@
menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new,
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) },
:if => Proc.new { |p| p.trackers.any? },
- :permission => :add_issues
+ :permission => :add_issues,
+ :children => Proc.new { |p|
+ p.trackers.map do |t|
+ Redmine::MenuManager::MenuItem.new(
+ :new_issue_with_specific_tracker,
+ {
+ :controller => 'issues', :action => 'new', :project_id => p,
+ :copy_from => nil, :issue => { :tracker_id => t.id }
+ },
+ :caption => t.name
+ )
+ end
+ }
menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
menu.push :news, { :controller => 'news', :action => 'index' }, :param => :project_id, :caption => :label_news_plural
見た目を整えるために CSS を修正する。マウスオーバーで表示するようにする。CSS はよく分かっていなくておかしな書き方かもしれない。
--- a/redmine-3.1.2/public/stylesheets/application.css 2015-11-14 18:03:29.000000000 +0900
+++ b/redmine-3.1.2/public/stylesheets/application.css 2016-01-16 01:32:37.221000000 +0900
@@ -39,6 +39,7 @@
margin: 0px 2px 0px 0px;
padding: 0px 0px 0px 0px;
white-space:nowrap;
+ position: relative;
}
#main-menu li a {
display: block;
@@ -51,6 +52,15 @@
#main-menu li a:hover {background:#759FCF; color:#fff;}
#main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
+#main-menu ul.menu-children {
+ position: absolute;
+ background-color: #628DB6; /* equals #header bg color */
+ min-width: 100%;
+ display: none;
+}
+#main-menu ul.menu-children li {float: none; margin: 0px;}
+#main-menu li a:hover + ul.menu-children, #main-menu ul.menu-children:hover {display: block; z-index: 1;}
+
#admin-menu ul {margin: 0; padding: 0;}
#admin-menu li {margin: 0; padding: 0 0 6px 0; list-style-type:none;}
改造後の見た目
下記は追加した後のスクリーンショット。
下記スクリーンショットのように、名称の長いトラッカーでも幅が広がって表示できている。