diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-06-12 05:50:26 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-06-12 05:50:26 +0000 |
commit | 748fd108936d8d318562614ee989ad6bbe403d17 (patch) | |
tree | b84108a214eba7a35f11491354e89ac4bac3b4a5 | |
parent | 8516e1c88dfe3ac2532cb40a539084f194c265b9 (diff) | |
download | redmine-748fd108936d8d318562614ee989ad6bbe403d17.tar.gz redmine-748fd108936d8d318562614ee989ad6bbe403d17.zip |
Merged r15501 to r15508 (#15880).
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15513 e93f8b46-1217-0410-a6f0-8f06a7374b81
60 files changed, 272 insertions, 61 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 67956667a..95c58674c 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -362,7 +362,7 @@ class IssuesController < ApplicationController # Overrides Redmine::MenuManager::MenuController::ClassMethods for # when the "New issue" tab is enabled def current_menu_item - if Setting.new_project_issue_tab_enabled? && [:new, :create].include?(action_name.to_sym) + if Setting.new_item_menu_tab == '1' && [:new, :create].include?(action_name.to_sym) :new_issue else super diff --git a/app/views/settings/_display.html.erb b/app/views/settings/_display.html.erb index 1185a7cae..be3e70e34 100644 --- a/app/views/settings/_display.html.erb +++ b/app/views/settings/_display.html.erb @@ -25,7 +25,7 @@ <p><%= setting_text_field :thumbnails_size, :size => 6 %></p> -<p><%= setting_check_box :new_project_issue_tab_enabled %></p> +<p><%= setting_select :new_item_menu_tab, [[l(:label_none), '0'], [l(:label_new_project_issue_tab_enabled), '1'], [l(:label_new_object_tab_enabled), '2']] %></p> </div> <%= submit_tag l(:button_save) %> diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e13172192..a265f6243 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1201,7 +1201,9 @@ ar: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/az.yml b/config/locales/az.yml index 7a5cdb924..649a55e42 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -1296,7 +1296,9 @@ az: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/bg.yml b/config/locales/bg.yml index b6412c92b..e505068a3 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -447,7 +447,6 @@ bg: setting_search_results_per_page: Резултати от търсене на страница setting_attachment_extensions_allowed: Позволени типове на файлове setting_attachment_extensions_denied: Разрешени типове на файлове - setting_new_project_issue_tab_enabled: Показване на меню-елемент "Нова задача" permission_add_project: Създаване на проект permission_add_subprojects: Създаване на подпроекти @@ -1193,3 +1192,6 @@ bg: description_date_from: Въведете начална дата description_date_to: Въведете крайна дата text_repository_identifier_info: 'Позволени са малки букви (a-z), цифри, тирета и _.<br />Промяна след създаването му не е възможна.' + label_new_project_issue_tab_enabled: Показване на меню-елемент "Нова задача" + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/bs.yml b/config/locales/bs.yml index aa47a22e9..d65fc1099 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -1214,7 +1214,9 @@ bs: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/ca.yml b/config/locales/ca.yml index ec0b3ca5a..8ab7b0f4b 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1194,7 +1194,9 @@ ca: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/cs.yml b/config/locales/cs.yml index f0ef5a476..c09b6d013 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1202,7 +1202,9 @@ cs: button_filter: Filtr mail_body_password_updated: Vaše heslo bylo změněno. label_no_preview: Náhled není k dispozici - setting_new_project_issue_tab_enabled: Zobraz záložku "Nový úkol" error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Zobraz záložku "Nový úkol" + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/da.yml b/config/locales/da.yml index 9b2020b33..77756968f 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1218,7 +1218,9 @@ da: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/de.yml b/config/locales/de.yml index bf6a11c48..59ce6e6a8 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1204,7 +1204,9 @@ de: label_relations: Beziehungen button_filter: Filter mail_body_password_updated: Ihr Passwort wurde geändert. - setting_new_project_issue_tab_enabled: Tab "Neues Ticket" anzeigen error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Tab "Neues Ticket" anzeigen + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/el.yml b/config/locales/el.yml index 66f96bfdc..63c6a774a 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1201,7 +1201,9 @@ el: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index cf6f9770a..0617b2227 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1203,7 +1203,9 @@ en-GB: label_relations: Relations button_filter: Filter mail_body_password_updated: Your password has been changed. - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/en.yml b/config/locales/en.yml index 522cb5227..908aa119a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -444,7 +444,7 @@ en: setting_search_results_per_page: Search results per page setting_attachment_extensions_allowed: Allowed extensions setting_attachment_extensions_denied: Disallowed extensions - setting_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects permission_add_project: Create project permission_add_subprojects: Create subprojects @@ -995,6 +995,8 @@ en: label_field_format_enumeration: Key/value list label_default_values_for_new_users: Default values for new users label_relations: Relations + label_new_project_issue_tab_enabled: Display the "New issue" tab + label_new_object_tab_enabled: Display the "+" drop-down button_login: Login button_submit: Submit diff --git a/config/locales/es-PA.yml b/config/locales/es-PA.yml index 0b76bdada..e7072a7cd 100644 --- a/config/locales/es-PA.yml +++ b/config/locales/es-PA.yml @@ -1235,7 +1235,9 @@ es-PA: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/es.yml b/config/locales/es.yml index d9e781495..6cef342f5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1233,7 +1233,9 @@ es: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/et.yml b/config/locales/et.yml index f8ae0fbd9..510c9236c 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1205,7 +1205,9 @@ et: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 1dbfed25c..ebece4218 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1202,7 +1202,9 @@ eu: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/fa.yml b/config/locales/fa.yml index b9e7377e6..c9d527f67 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1202,7 +1202,9 @@ fa: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 14aa38cc8..c2449b0f1 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1222,7 +1222,9 @@ fi: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 760c84c95..49803506b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -456,7 +456,7 @@ fr: setting_attachment_extensions_denied: Extensions non autorisées setting_sys_api_key: Clé de protection de l'API setting_lost_password: Autoriser la réinitialisation par email de mot de passe perdu - setting_new_project_issue_tab_enabled: Afficher l'onglet "Nouvelle demande" + setting_new_item_menu_tab: Onglet de création d'objets dans le menu du project permission_add_project: Créer un projet permission_add_subprojects: Créer des sous-projets @@ -1004,6 +1004,8 @@ fr: label_field_format_enumeration: Liste clé/valeur label_default_values_for_new_users: Valeurs par défaut pour les nouveaux utilisateurs label_relations: Relations + label_new_project_issue_tab_enabled: Afficher l'onglet "Nouvelle demande" + label_new_object_tab_enabled: Afficher le menu déroulant "+" button_login: Connexion button_submit: Soumettre diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 437bf4b3f..d0069b243 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1209,7 +1209,9 @@ gl: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/he.yml b/config/locales/he.yml index aad81c4a0..b17742433 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1206,7 +1206,9 @@ he: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/hr.yml b/config/locales/hr.yml index a09064a5f..9e37b7a2e 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -1200,7 +1200,9 @@ hr: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 6f7f075a8..b8e9058f8 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1220,7 +1220,9 @@ button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/id.yml b/config/locales/id.yml index dfa63dc8e..750eb2e44 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1205,7 +1205,9 @@ id: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/it.yml b/config/locales/it.yml index b5310caad..57afce9f0 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1196,7 +1196,9 @@ it: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 2c5a63514..e10e1bd14 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1212,6 +1212,8 @@ ja: button_filter: フィルタ mail_body_password_updated: パスワードが変更されました。 label_no_preview: このファイルはプレビューできません - setting_new_project_issue_tab_enabled: '"新しいチケット" タブを表示' error_no_tracker_allowed_for_new_issue_in_project: このプロジェクトにはチケットの追加が許可されているトラッカーがありません label_tracker_all: すべてのトラッカー + label_new_project_issue_tab_enabled: '"新しいチケット" タブを表示' + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 5f9fd63da..2fee6dc19 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1240,7 +1240,9 @@ ko: button_filter: 필터 mail_body_password_updated: 암호가 변경되었습니다. label_no_preview: 미리보기 없음 - setting_new_project_issue_tab_enabled: '"새 일감" 탭 표시' error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: '"새 일감" 탭 표시' + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 6aa63dcac..2a8b0b5d2 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1190,7 +1190,9 @@ lt: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 2a7dc3c1d..81184dfac 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1195,7 +1195,9 @@ lv: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 02757abe0..e7dc7ee3e 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -1201,7 +1201,9 @@ mk: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/mn.yml b/config/locales/mn.yml index 6176c97e5..eb63b988f 100644 --- a/config/locales/mn.yml +++ b/config/locales/mn.yml @@ -1202,7 +1202,9 @@ mn: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/nl.yml b/config/locales/nl.yml index e356bab91..23630b28e 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1180,7 +1180,9 @@ nl: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/no.yml b/config/locales/no.yml index 083a956ac..ce5aef038 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1191,7 +1191,9 @@ button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/pl.yml b/config/locales/pl.yml index a183a2130..0534b6bee 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1216,7 +1216,9 @@ pl: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index b8c360141..28c5f2303 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1219,7 +1219,9 @@ pt-BR: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 38b4b882d..6656b7944 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -1203,7 +1203,9 @@ pt: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 34e5405e3..03e937afa 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -1196,7 +1196,9 @@ ro: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/ru.yml b/config/locales/ru.yml index fdce0f253..363d1804c 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1302,7 +1302,9 @@ ru: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sk.yml b/config/locales/sk.yml index b6c843947..276c8ff2c 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1191,7 +1191,9 @@ sk: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 7d2d755fe..d8f493a55 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1201,7 +1201,9 @@ sl: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 98d1f5e8a..658183886 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1197,7 +1197,9 @@ sq: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sr-YU.yml b/config/locales/sr-YU.yml index bf35302d2..0ae915f25 100644 --- a/config/locales/sr-YU.yml +++ b/config/locales/sr-YU.yml @@ -1203,7 +1203,9 @@ sr-YU: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 9d12a7d60..5c27ec2be 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1202,7 +1202,9 @@ sr: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 4bdf72a51..059852400 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1234,7 +1234,9 @@ sv: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/th.yml b/config/locales/th.yml index bfdc38490..c25b780bf 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1198,7 +1198,9 @@ th: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 8eeb40698..7eb5f05e8 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1208,7 +1208,9 @@ tr: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/uk.yml b/config/locales/uk.yml index cb2447159..8ea60d4a9 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1196,7 +1196,9 @@ uk: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 04a4b45b7..73405c154 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1254,7 +1254,9 @@ vi: button_filter: Filter mail_body_password_updated: Your password has been changed. label_no_preview: No preview available - setting_new_project_issue_tab_enabled: Display the "New issue" tab error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: Display the "New issue" tab + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 7ce98871c..6722bb072 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -528,7 +528,6 @@ setting_search_results_per_page: 每一頁的搜尋結果數目 setting_attachment_extensions_allowed: 允許使用的附檔名 setting_attachment_extensions_denied: 禁止使用的副檔名 - setting_new_project_issue_tab_enabled: 顯示「建立新議題」標籤頁面 permission_add_project: 建立專案 permission_add_subprojects: 建立子專案 @@ -1275,3 +1274,6 @@ description_date_from: 輸入起始日期 description_date_to: 輸入結束日期 text_repository_identifier_info: '僅允許使用小寫英文字母 (a-z), 阿拉伯數字, 虛線與底線。<br />一旦儲存之後, 代碼便無法再次被更改。' + label_new_project_issue_tab_enabled: 顯示「建立新議題」標籤頁面 + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/locales/zh.yml b/config/locales/zh.yml index d66b2954c..983730734 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1194,7 +1194,9 @@ zh: button_filter: 设置为过滤条件 mail_body_password_updated: 您的密码已经变更。 label_no_preview: 没有可以显示的预览内容 - setting_new_project_issue_tab_enabled: 显示“新建问题”标签 error_no_tracker_allowed_for_new_issue_in_project: The project doesn't have any trackers for which you can create an issue label_tracker_all: All trackers + label_new_project_issue_tab_enabled: 显示“新建问题”标签 + setting_new_item_menu_tab: Project menu tab for creating new objects + label_new_object_tab_enabled: Display the "+" drop-down diff --git a/config/settings.yml b/config/settings.yml index fd807c8a1..807f9b7a7 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -275,5 +275,5 @@ non_working_week_days: default: - '6' - '7' -new_project_issue_tab_enabled: - default: 0 +new_item_menu_tab: + default: 2 diff --git a/lib/redmine.rb b/lib/redmine.rb index 6dfc880ff..71722cc8e 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -226,6 +226,26 @@ Redmine::MenuManager.map :admin_menu do |menu| end Redmine::MenuManager.map :project_menu do |menu| + menu.push :new_object, nil, :caption => ' + ', + :if => Proc.new { |p| Setting.new_item_menu_tab == '2' }, + :html => { :id => 'new-object', :onclick => 'toggleNewObjectDropdown(); return false;' } + menu.push :new_issue_sub, { :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| Issue.allowed_target_trackers(p).any? }, + :permission => :add_issues, + :parent => :new_object + menu.push :new_issue_category, {:controller => 'issue_categories', :action => 'new'}, :param => :project_id, :caption => :label_issue_category_new, + :parent => :new_object + menu.push :new_version, {:controller => 'versions', :action => 'new'}, :param => :project_id, :caption => :label_version_new, + :parent => :new_object + menu.push :new_news, {:controller => 'news', :action => 'new'}, :param => :project_id, :caption => :label_news_new, + :parent => :new_object + menu.push :new_document, {:controller => 'documents', :action => 'new'}, :param => :project_id, :caption => :label_document_new, + :parent => :new_object + menu.push :new_wiki_page, {:controller => 'wiki', :action => 'new'}, :param => :project_id, :caption => :label_wiki_page_new, + :parent => :new_object + menu.push :new_file, {:controller => 'files', :action => 'new'}, :param => :project_id, :caption => :label_attachment_new, + :parent => :new_object menu.push :overview, { :controller => 'projects', :action => 'show' } menu.push :activity, { :controller => 'activities', :action => 'index' } menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id, @@ -233,7 +253,7 @@ Redmine::MenuManager.map :project_menu do |menu| menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural 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| Setting.new_project_issue_tab_enabled? && Issue.allowed_target_trackers(p).any? }, + :if => Proc.new { |p| Setting.new_item_menu_tab == '1' && Issue.allowed_target_trackers(p).any? }, :permission => :add_issues 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 diff --git a/lib/redmine/menu_manager.rb b/lib/redmine/menu_manager.rb index fa7777065..3d19edce7 100644 --- a/lib/redmine/menu_manager.rb +++ b/lib/redmine/menu_manager.rb @@ -147,7 +147,15 @@ module Redmine end def render_single_menu_node(item, caption, url, selected) - link_to(h(caption), url, item.html_options(:selected => selected)) + options = item.html_options(:selected => selected) + + # virtual nodes are only there for their children to be displayed in the menu + # and should not do anything on click, except if otherwise defined elsewhere + if url.blank? + url = '#' + options.reverse_merge!(:onclick => 'return false;') + end + link_to(h(caption), url, options) end def render_unattached_menu_item(menu_item, project) @@ -433,7 +441,13 @@ module Redmine # * Checking the permission or the url target (project only) # * Checking the conditions of the item def allowed?(user, project) - if user && project + if url.blank? + # this is a virtual node that is only there for its children to be diplayed in the menu + # it is considered an allowed node if at least one of the children is allowed + all_children = children + all_children += child_menus.call(project) if child_menus + return false unless all_children.detect{|child| child.allowed?(user, project) } + elsif user && project if permission unless user.allowed_to?(permission, project) return false diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 347611bb2..eedeae08b 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -725,6 +725,15 @@ function toggleDisabledInit() { $('input[data-disables], input[data-enables], input[data-shows]').each(toggleDisabledOnChange); } +function toggleNewObjectDropdown() { + var dropdown = $('#new-object + ul.menu-children'); + if(dropdown.hasClass('visible')){ + dropdown.removeClass('visible'); + }else{ + dropdown.addClass('visible'); + } +} + (function ( $ ) { // detect if native date input is supported diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 021cb822d..3ab2eccf2 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -51,7 +51,24 @@ pre, code {font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace;} padding: 4px 10px 4px 10px; } #main-menu li a:hover {background:#759FCF; color:#fff;} +#main-menu li:hover ul.menu-children, #main-menu li ul.menu-children.visible {display: block;} #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;} +#main-menu li a.new-object { background-color:#759FCF; } + +#main-menu .menu-children { + display: none; + position:absolute; + width: inherit; + z-index:1; + background-color:#fff; + border-right: 1px solid #759FCF; + border-bottom: 1px solid #759FCF; + border-left: 1px solid #759FCF; +} +#main-menu .menu-children li {float:left; clear:both; width:100%;} +#main-menu .menu-children li a {color: #555; background-color:#fff; font-weight:normal;} +#main-menu .menu-children li a:hover {color: #fff; background-color: #759FCF;} + #main-menu .tabs-buttons { right: 6px; background-color: transparent; diff --git a/public/themes/alternate/stylesheets/application.css b/public/themes/alternate/stylesheets/application.css index efa1129ed..4ad6b7923 100644 --- a/public/themes/alternate/stylesheets/application.css +++ b/public/themes/alternate/stylesheets/application.css @@ -13,6 +13,15 @@ h2, h3, h4, .wiki h1, .wiki h2, .wiki h3 {border-bottom: 0px;} #main-menu li a { background-color: #507AAA; font-weight: bold;} #main-menu li a:hover { background: #507AAA; text-decoration: underline; } #main-menu li a.selected, #main-menu li a.selected:hover { background-color:#EEEEEE; } +#main-menu li a.new-object { background-color:#507AAA; text-decoration: none; } + +#main-menu .menu-children { + border-right: 1px solid #507AAA; + border-bottom: 1px solid #507AAA; + border-left: 1px solid #507AAA; +} +#main-menu .menu-children li a:hover { background-color: #507AAA;} + /* Tables */ table.list tbody td, table.list tbody tr:hover td { border: solid 1px #d7d7d7; } diff --git a/public/themes/classic/stylesheets/application.css b/public/themes/classic/stylesheets/application.css index 3f855fe96..523104dcb 100644 --- a/public/themes/classic/stylesheets/application.css +++ b/public/themes/classic/stylesheets/application.css @@ -12,6 +12,15 @@ body{ color:#303030; background:#e8eaec; } #main-menu li a { background-color: #578bb8; border-right: 1px solid #fff; font-size: 90%; padding: 4px 8px 4px 8px; font-weight: bold; } #main-menu li a:hover { background-color: #80b0da; color: #ffffff; } #main-menu li a.selected, #main-menu li a.selected:hover { background-color: #80b0da; color: #ffffff; } +#main-menu li a.new-object { background-color:#80b0da; } + +#main-menu .menu-children { + border-right: 1px solid #80b0da; + border-bottom: 1px solid #80b0da; + border-left: 1px solid #80b0da; +} +#main-menu .menu-children li a { border-right: none; } +#main-menu .menu-children li a:hover { background-color: #80b0da } #footer { background-color: #578bb8; border: 0; color: #fff;} #footer a { color: #fff; font-weight: bold; } diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index dc50d1331..046efb856 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -1104,7 +1104,7 @@ class IssuesControllerTest < ActionController::TestCase end def test_index_should_not_include_new_issue_tab_when_disabled - with_settings :new_project_issue_tab_enabled => '0' do + with_settings :new_item_menu_tab => '0' do @request.session[:user_id] = 2 get :index, :project_id => 1 assert_select '#main-menu a.new-issue', 0 @@ -1112,7 +1112,7 @@ class IssuesControllerTest < ActionController::TestCase end def test_index_should_include_new_issue_tab_when_enabled - with_settings :new_project_issue_tab_enabled => '1' do + with_settings :new_item_menu_tab => '1' do @request.session[:user_id] = 2 get :index, :project_id => 1 assert_select '#main-menu a.new-issue[href="/projects/ecookbook/issues/new"]', :text => 'New issue' @@ -1120,7 +1120,7 @@ class IssuesControllerTest < ActionController::TestCase end def test_new_should_have_new_issue_tab_as_current_menu_item - with_settings :new_project_issue_tab_enabled => '1' do + with_settings :new_item_menu_tab => '1' do @request.session[:user_id] = 2 get :new, :project_id => 1 assert_select '#main-menu a.new-issue.selected' @@ -1128,7 +1128,7 @@ class IssuesControllerTest < ActionController::TestCase end def test_index_should_not_include_new_issue_tab_for_project_without_trackers - with_settings :new_project_issue_tab_enabled => '1' do + with_settings :new_item_menu_tab => '1' do Project.find(1).trackers.clear @request.session[:user_id] = 2 @@ -1138,7 +1138,7 @@ class IssuesControllerTest < ActionController::TestCase end def test_index_should_not_include_new_issue_tab_for_users_with_copy_issues_permission_only - with_settings :new_project_issue_tab_enabled => '1' do + with_settings :new_item_menu_tab => '1' do role = Role.find(1) role.remove_permission! :add_issues role.add_permission! :copy_issues diff --git a/test/unit/lib/redmine/menu_manager/menu_helper_test.rb b/test/unit/lib/redmine/menu_manager/menu_helper_test.rb index 404ec6406..e19f066e0 100644 --- a/test/unit/lib/redmine/menu_manager/menu_helper_test.rb +++ b/test/unit/lib/redmine/menu_manager/menu_helper_test.rb @@ -208,6 +208,41 @@ class Redmine::MenuManager::MenuHelperTest < ActionView::TestCase end end end + + def test_render_empty_virtual_menu_node_with_children + + # only empty item with no click target + Redmine::MenuManager.map :menu1 do |menu| + menu.push(:parent_node, nil, { }) + end + + # parent with unallowed unattached child + Redmine::MenuManager.map :menu2 do |menu| + menu.push(:parent_node, nil, {:children => Proc.new {|p| + [Redmine::MenuManager::MenuItem.new("test_child_unallowed", {:controller => 'issues', :action => 'new'}, {})] + } }) + end + + # parent with unallowed standard child + Redmine::MenuManager.map :menu3 do |menu| + menu.push(:parent_node, nil, {}) + menu.push(:test_child_unallowed, {:controller =>'issues', :action => 'new'}, {:parent => :parent_node}) + end + + # should not be displayed to anonymous + User.current = User.find(6) + assert_nil render_menu(:menu1, Project.find(1)) + assert_nil render_menu(:menu2, Project.find(1)) + assert_nil render_menu(:menu3, Project.find(1)) + + # should be displayed to an admin + User.current = User.find(1) + @output_buffer = render_menu(:menu2, Project.find(1)) + assert_select("ul li a.parent-node", "Parent node") + @output_buffer = render_menu(:menu3, Project.find(1)) + assert_select("ul li a.parent-node", "Parent node") + + end def test_render_menu_node_with_children_without_an_array parent_node = Redmine::MenuManager::MenuItem.new(:parent_node, |