From e9be92ec69ae292bc6038d46cd9a04672049cdaf Mon Sep 17 00:00:00 2001 From: MAEDA Go Date: Sun, 15 Feb 2026 23:55:16 +0900 Subject: [PATCH] Use Remove label and link-break icon for relation-removal actions --- app/helpers/application_helper.rb | 10 ++++++++++ app/helpers/watchers_helper.rb | 6 +++--- app/views/groups/_users.html.erb | 2 +- app/views/principal_memberships/_index.html.erb | 2 +- app/views/projects/settings/_members.html.erb | 2 +- config/locales/en.yml | 5 +++-- test/functional/groups_controller_test.rb | 2 ++ test/functional/projects_controller_test.rb | 1 + test/helpers/issues_helper_test.rb | 3 +++ test/helpers/watchers_helper_test.rb | 5 +++++ 10 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d6591f202..4e5c585c5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1552,6 +1552,16 @@ module ApplicationHelper link_to sprite_icon('del', button_name), url, options end + def remove_link(url, options={}) + options = { + :method => :delete, + :data => {:confirm => l(:text_are_you_sure)}, + :class => 'icon icon-link-break' + }.merge(options) + + link_to sprite_icon('link-break', l(:button_remove)), url, options + end + def link_to_function(name, function, html_options={}) content_tag(:a, name, {:href => '#', :onclick => "#{function}; return false;"}.merge(html_options)) end diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index bfed8adf2..4db1c31c7 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -64,10 +64,10 @@ module WatchersHelper :object_id => object.id, :user_id => user} s << ' ' - s << link_to(sprite_icon('del', l(:button_delete)), url, + s << link_to(sprite_icon('link-break', l(:button_remove)), url, :remote => true, :method => 'delete', - :class => "delete icon-only icon-del", - :title => l(:button_delete)) + :class => "delete icon-only icon-link-break", + :title => l(:button_remove)) end content << content_tag('li', s, :class => "user-#{user.id}") end diff --git a/app/views/groups/_users.html.erb b/app/views/groups/_users.html.erb index 76d3ab95c..e581437e5 100644 --- a/app/views/groups/_users.html.erb +++ b/app/views/groups/_users.html.erb @@ -11,7 +11,7 @@ <%= link_to_user user %> - <%= delete_link group_user_path(@group, :user_id => user), :remote => true %> + <%= remove_link group_user_path(@group, :user_id => user), :remote => true %> <% end %> diff --git a/app/views/principal_memberships/_index.html.erb b/app/views/principal_memberships/_index.html.erb index 6afe16184..aef765d97 100644 --- a/app/views/principal_memberships/_index.html.erb +++ b/app/views/principal_memberships/_index.html.erb @@ -27,7 +27,7 @@ :remote => true, :class => 'icon icon-edit' %> - <%= delete_link principal_membership_path(principal, membership), :remote => true if membership.deletable? %> + <%= remove_link principal_membership_path(principal, membership), :remote => true if membership.deletable? %> <%= call_table_row_hook principal, membership %> diff --git a/app/views/projects/settings/_members.html.erb b/app/views/projects/settings/_members.html.erb index 0514baca0..51485ae9c 100644 --- a/app/views/projects/settings/_members.html.erb +++ b/app/views/projects/settings/_members.html.erb @@ -36,7 +36,7 @@ edit_membership_path(member), :remote => true, :class => 'icon icon-edit' %> - <%= delete_link membership_path(member), + <%= remove_link membership_path(member), :remote => true, :data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_delete_confirmation)} : {}) if member.deletable? %> diff --git a/config/locales/en.yml b/config/locales/en.yml index e99f01f74..18b0299d0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -914,9 +914,9 @@ en: label_applied_status: Applied status label_loading: Loading... label_relation_new: New relation - label_relation_delete: Delete relation + label_relation_delete: Remove relation label_relates_to: Related to - label_delete_link_to_subtask: Delete link to subtask + label_delete_link_to_subtask: Remove subtask label_duplicates: Is duplicate of label_duplicated_by: Has duplicate label_blocks: Blocks @@ -1200,6 +1200,7 @@ en: button_collapse_all: Collapse all button_expand_all: Expand all button_delete: Delete + button_remove: Remove button_create: Create button_create_and_continue: Create and add another button_test: Test diff --git a/test/functional/groups_controller_test.rb b/test/functional/groups_controller_test.rb index 77b730227..a8407e8e8 100644 --- a/test/functional/groups_controller_test.rb +++ b/test/functional/groups_controller_test.rb @@ -162,6 +162,8 @@ class GroupsControllerTest < Redmine::ControllerTest assert_select 'div#tab-content-memberships' do assert_select 'a', :text => 'Private child of eCookbook' end + assert_select 'div#tab-content-users a.icon-link-break', :text => 'Remove' + assert_select 'div#tab-content-memberships a.icon-link-break', :text => 'Remove' end def test_update diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 6680811f7..a6d637f5d 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -1010,6 +1010,7 @@ class ProjectsControllerTest < Redmine::ControllerTest ) assert_response :success assert_select "tr#member-#{member.id}" + assert_select 'div#tab-content-members a.icon-link-break', :text => 'Remove' end def test_settings_should_show_tabs_depending_on_permission diff --git a/test/helpers/issues_helper_test.rb b/test/helpers/issues_helper_test.rb index 9745459ce..69679a5fb 100644 --- a/test/helpers/issues_helper_test.rb +++ b/test/helpers/issues_helper_test.rb @@ -395,6 +395,7 @@ class IssuesHelperTest < Redmine::HelperTest end def test_render_issue_relations + User.current = User.find(1) issue = Issue.generate!(:status_id => 1) closed_issue = Issue.generate!(:status_id => 5) relation = IssueRelation.create!(:issue_from => closed_issue, @@ -411,6 +412,7 @@ class IssuesHelperTest < Redmine::HelperTest " closed rel-follows\">", html ) + assert_include 'title="Remove relation"', html html = render_issue_relations(closed_issue, [relation]) assert_include( @@ -422,6 +424,7 @@ class IssuesHelperTest < Redmine::HelperTest " rel-precedes\">", html ) + assert_include 'title="Remove relation"', html end def test_render_descendants_stats diff --git a/test/helpers/watchers_helper_test.rb b/test/helpers/watchers_helper_test.rb index 6f8dbde21..acdb87d3a 100644 --- a/test/helpers/watchers_helper_test.rb +++ b/test/helpers/watchers_helper_test.rb @@ -67,6 +67,7 @@ class WatchersHelperTest < Redmine::HelperTest end def test_watchers_list_should_be_sorted_by_user_name + User.current = User.find(1) issue = Issue.find(1) [1, 2, 3].shuffle.each do |user_id| Watcher.create!(:watchable => issue, :user => User.find(user_id)) @@ -79,6 +80,8 @@ class WatchersHelperTest < Redmine::HelperTest assert_select 'li:nth-of-type(1)>a[href=?]', '/users/3', text: 'Dave Lopper' assert_select 'li:nth-of-type(2)>a[href=?]', '/users/2', text: 'John Smith' assert_select 'li:nth-of-type(3)>a[href=?]', '/users/1', text: 'Redmine Admin' + assert_select 'a.delete[title=?]', 'Remove', 3 + assert_select 'a.delete.icon-link-break', 3 end end @@ -89,6 +92,8 @@ class WatchersHelperTest < Redmine::HelperTest assert_select 'li:nth-of-type(1)>a[href=?]', '/users/1', text: 'Admin Redmine' assert_select 'li:nth-of-type(2)>a[href=?]', '/users/3', text: 'Lopper Dave' assert_select 'li:nth-of-type(3)>a[href=?]', '/users/2', text: 'Smith John' + assert_select 'a.delete[title=?]', 'Remove', 3 + assert_select 'a.delete.icon-link-break', 3 end end end -- 2.50.1