Use "Remove" instead of "Delete" for non-destructive unlink/removal action labels (#34917).

Patch by Go MAEDA (user:maeda).


git-svn-id: https://svn.redmine.org/redmine/trunk@24453 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA
2026-02-24 02:37:25 +00:00
parent 8eb2ed07ce
commit 5b88579d45
12 changed files with 36 additions and 14 deletions

View File

@@ -1556,6 +1556,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

View File

@@ -122,14 +122,14 @@ module IssuesHelper
buttons =
if manage_relations
link_to(
sprite_icon('link-break', l(:label_delete_link_to_subtask)),
sprite_icon('link-break', l(:label_subtask_remove)),
issue_path(
{:id => child.id, :issue => {:parent_issue_id => ''},
:back_url => issue_path(issue.id), :no_flash => '1'}
),
:method => :put,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:label_delete_link_to_subtask),
:title => l(:label_subtask_remove),
:class => 'icon-only icon-link-break'
)
else
@@ -225,12 +225,12 @@ module IssuesHelper
buttons =
if manage_relations
link_to(
sprite_icon('link-break', l(:label_relation_delete)),
sprite_icon('link-break', l(:label_relation_remove)),
relation_path(relation, issue_id: issue.id),
:remote => true,
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:label_relation_delete),
:title => l(:label_relation_remove),
:class => 'icon-only icon-link-break'
)
else

View File

@@ -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

View File

@@ -11,7 +11,7 @@
<tr id="user-<%= user.id %>">
<td class="name"><%= link_to_user user %></td>
<td class="buttons">
<%= delete_link group_user_path(@group, :user_id => user), :remote => true %>
<%= remove_link group_user_path(@group, :user_id => user), :remote => true %>
</td>
</tr>
<% end %>

View File

@@ -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? %>
</td>
<%= call_table_row_hook principal, membership %>
</tr>

View File

@@ -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? %>
</td>

View File

@@ -11,14 +11,14 @@
<ul>
<% @changeset.issues.visible.each do |issue| %>
<li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %>
<%= link_to(sprite_icon('link-break', l(:label_relation_delete)),
<%= link_to(sprite_icon('link-break', l(:label_relation_remove)),
{:controller => 'repositories', :action => 'remove_related_issue',
:id => @project, :repository_id => @repository.identifier_param,
:rev => @changeset.identifier, :issue_id => issue},
:remote => true,
:method => :delete,
:data => {:confirm => l(:text_are_you_sure)},
:title => l(:label_relation_delete),
:title => l(:label_relation_remove),
:class => 'icon-only icon-link-break'
) if manage_allowed %>
</li>

View File

@@ -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_remove: Remove relation
label_relates_to: Related to
label_delete_link_to_subtask: Delete link to subtask
label_subtask_remove: 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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