summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2024-11-10 15:49:58 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2024-11-10 15:49:58 +0000
commit2d9dcab829a46d3d894be6a01d0935f6cec5cb0b (patch)
treeaf764ad51c2397aaaf03d8f5294daf13dd797779
parentf26f9c279dc28652d1204a0fbd6bd9a1ed505491 (diff)
parent0f7e32107811195d16593db28b1d8859890b62f1 (diff)
downloadredmine-2d9dcab829a46d3d894be6a01d0935f6cec5cb0b.tar.gz
redmine-2d9dcab829a46d3d894be6a01d0935f6cec5cb0b.zip
Merged r23224 to r23226 from trunk to 6.0-stable (#23980).
git-svn-id: https://svn.redmine.org/redmine/branches/6.0-stable@23233 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/assets/stylesheets/context_menu.css5
-rw-r--r--app/helpers/context_menus_helper.rb14
-rw-r--r--test/functional/context_menus_controller_test.rb2
-rw-r--r--test/helpers/context_menus_helper_test.rb41
4 files changed, 55 insertions, 7 deletions
diff --git a/app/assets/stylesheets/context_menu.css b/app/assets/stylesheets/context_menu.css
index 1b2b749ee..875564c8f 100644
--- a/app/assets/stylesheets/context_menu.css
+++ b/app/assets/stylesheets/context_menu.css
@@ -48,11 +48,12 @@
#context-menu li a.submenu { padding-right:16px; background:url("/arrow_right.png") right no-repeat; padding-left: 28px;}
#context-menu li:hover { border:1px solid #628db6; background-color:#eef5fd; border-radius:3px; }
#context-menu a:hover {color:#2A5685;}
-#context-menu li.folder ul li a {padding-left: 20px;}
+#context-menu li.folder ul li a:not(.icon) {
+ padding-left: 28px;
+}
#context-menu li.folder:hover { z-index:40; }
#context-menu ul ul, #context-menu li:hover ul ul { display:none; }
#context-menu li:hover ul, #context-menu li:hover li:hover ul { display:block; }
-#context-menu a.icon-checked {background-position: 3px 40%;}
/* selected element */
.context-menu-selection { background-color:#507AAA !important; color:#f8f8f8 !important; }
diff --git a/app/helpers/context_menus_helper.rb b/app/helpers/context_menus_helper.rb
index 0f208397c..cb8153549 100644
--- a/app/helpers/context_menus_helper.rb
+++ b/app/helpers/context_menus_helper.rb
@@ -19,19 +19,25 @@
module ContextMenusHelper
def context_menu_link(name, url, options={})
- options[:class] ||= ''
+ label = name
+ css_classes = [options[:class]]
+
if options.delete(:selected)
- options[:class] += ' icon icon-checked disabled'
+ css_classes << 'icon disabled'
options[:disabled] = true
+ label = sprite_icon('checked', name)
end
+
if options.delete(:disabled)
options.delete(:method)
options.delete(:data)
options[:onclick] = 'return false;'
- options[:class] += ' disabled'
+ css_classes << 'disabled'
url = '#'
end
- link_to h(name), url, options
+
+ options[:class] = class_names(css_classes)
+ link_to label, url, options
end
def bulk_update_custom_field_context_menu_link(field, text, value)
diff --git a/test/functional/context_menus_controller_test.rb b/test/functional/context_menus_controller_test.rb
index c8d4f798d..e10d2309c 100644
--- a/test/functional/context_menus_controller_test.rb
+++ b/test/functional/context_menus_controller_test.rb
@@ -221,7 +221,7 @@ class ContextMenusControllerTest < Redmine::ControllerTest
assert_select 'a[href="#"]', :text => 'List'
assert_select 'ul' do
assert_select 'a', 3
- assert_select 'a.icon.icon-checked', :text => 'Bar'
+ assert_select 'a.icon', :text => 'Bar'
end
end
end
diff --git a/test/helpers/context_menus_helper_test.rb b/test/helpers/context_menus_helper_test.rb
new file mode 100644
index 000000000..20ad333a3
--- /dev/null
+++ b/test/helpers/context_menus_helper_test.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+# Redmine - project management software
+# Copyright (C) 2006- Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require_relative '../test_helper'
+
+class ContextMenusHelperTest < Redmine::HelperTest
+ include ContextMenusHelper
+
+ test '#context_menu_link' do
+ html = context_menu_link('name', 'url', class: 'class-a')
+ assert_select_in html, 'a.class-a[href=?]', 'url'
+
+ # When :selected is true
+ html = context_menu_link('name', 'url', selected: true, class: 'class-a class-b')
+ assert_select_in html, 'a.class-a.class-b.icon.disabled[href=?]', '#' do
+ assert_select 'svg.icon-svg'
+ end
+
+ # When :disabled is true
+ html = context_menu_link('name', 'url', disabled: true, method: 'patch', data: { key: 'value' })
+ assert_select_in html,
+ 'a.disabled[href=?][onclick=?]:not([method]):not([data-key])',
+ '#', 'return false;'
+ end
+end