Feature #29285 » 0001-Add-Assign-to-me-link-to-issue-form.patch
| app/views/issues/_attributes.html.erb | ||
|---|---|---|
| 15 | 15 |
<% end %> |
| 16 | 16 | |
| 17 | 17 |
<% if @issue.safe_attribute? 'assigned_to_id' %> |
| 18 |
<p><%= f.select :assigned_to_id, principals_options_for_select(@issue.assignable_users, @issue.assigned_to), :include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %></p>
|
|
| 18 |
<p> |
|
| 19 |
<%= f.select :assigned_to_id, principals_options_for_select(@issue.assignable_users, @issue.assigned_to), :include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %>
|
|
| 20 |
<% if @issue.assignable_users.include?(User.current) %> |
|
| 21 |
<a class="assign-to-me-link<%= ' hidden' if @issue.assigned_to_id == User.current.id %>" href="#" data-id="<%= User.current.id %>"><%= l(:label_assign_to_me) %></a> |
|
| 22 |
<% end %> |
|
| 23 |
</p> |
|
| 19 | 24 |
<% end %> |
| 20 | 25 | |
| 21 | 26 |
<% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %>
|
| app/views/issues/_form.html.erb | ||
|---|---|---|
| 54 | 54 |
$("#issue_tracker_id, #issue_status_id").each(function(){
|
| 55 | 55 |
$(this).val($(this).find("option[selected=selected]").val());
|
| 56 | 56 |
}); |
| 57 |
$(".assign-to-me-link").click(function(event){
|
|
| 58 |
event.preventDefault(); |
|
| 59 |
var element = $(event.target); |
|
| 60 |
$('#issue_assigned_to_id').val(element.data('id'));
|
|
| 61 |
element.hide(); |
|
| 62 |
}); |
|
| 63 |
$('#issue_assigned_to_id').change(function(event){
|
|
| 64 |
var assign_to_me_link = $(".assign-to-me-link");
|
|
| 65 | ||
| 66 |
if (assign_to_me_link.length > 0) {
|
|
| 67 |
var user_id = $(event.target).val(); |
|
| 68 |
var current_user_id = assign_to_me_link.data('id');
|
|
| 69 | ||
| 70 |
if (user_id == current_user_id) {
|
|
| 71 |
assign_to_me_link.hide(); |
|
| 72 |
} else {
|
|
| 73 |
assign_to_me_link.show(); |
|
| 74 |
} |
|
| 75 |
} |
|
| 76 |
}); |
|
| 57 | 77 |
}); |
| 58 | 78 |
<% end %> |
| config/locales/en.yml | ||
|---|---|---|
| 1026 | 1026 |
label_font_monospace: Monospaced font |
| 1027 | 1027 |
label_font_proportional: Proportional font |
| 1028 | 1028 |
label_last_notes: Last notes |
| 1029 |
label_assign_to_me: Assign to me |
|
| 1029 | 1030 | |
| 1030 | 1031 |
button_login: Login |
| 1031 | 1032 |
button_submit: Submit |
| public/stylesheets/application.css | ||
|---|---|---|
| 120 | 120 |
.clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
| 121 | 121 | |
| 122 | 122 |
.mobile-show {display: none;}
|
| 123 | ||
| 123 |
.hidden {display: none;}
|
|
| 124 | 124 |
/***** Links *****/ |
| 125 | 125 |
a, a:link, a:visited{ color: #169; text-decoration: none; }
|
| 126 | 126 |
a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
|
| ... | ... | |
| 478 | 478 |
#issue_tree td.checkbox, #relations td.checkbox {display:none;}
|
| 479 | 479 |
#relations td.buttons, #issue_tree td.buttons {padding:0;}
|
| 480 | 480 | |
| 481 |
#issue-form .assign-to-me-link { padding-left: 5px; }
|
|
| 482 | ||
| 481 | 483 |
fieldset.collapsible {border-width: 1px 0 0 0;}
|
| 482 | 484 |
fieldset.collapsible>legend { padding-left: 18px; background: url(../images/arrow_down.png) no-repeat 4px 40%; cursor:pointer; }
|
| 483 | 485 |
fieldset.collapsible.collapsed>legend { background-image: url(../images/arrow_right.png); }
|
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 1717 | 1717 |
end |
| 1718 | 1718 |
end |
| 1719 | 1719 | |
| 1720 |
def test_update_form_should_render_assign_to_me_link_when_issue_can_be_assigned_to_the_current_user |
|
| 1721 |
@request.session[:user_id] = 1 |
|
| 1722 |
get :show, :params => {
|
|
| 1723 |
:id => 10 |
|
| 1724 |
} |
|
| 1725 | ||
| 1726 |
assert_select 'form#issue-form #attributes' do |
|
| 1727 |
assert_select 'a[class=?][data-id=?]', 'assign-to-me-link', '1', 1 |
|
| 1728 |
end |
|
| 1729 |
end |
|
| 1730 | ||
| 1731 |
def test_update_form_should_not_render_assign_to_me_link_when_issue_cannot_be_assigned_to_the_current_user |
|
| 1732 |
@request.session[:user_id] = 1 |
|
| 1733 |
get :show, :params => {
|
|
| 1734 |
:id => 2 |
|
| 1735 |
} |
|
| 1736 | ||
| 1737 |
assert_select 'form#issue-form #attributes' do |
|
| 1738 |
assert_select 'a[class=?]', 'assign-to-me-link', 0 |
|
| 1739 |
end |
|
| 1740 |
end |
|
| 1741 | ||
| 1742 |
def test_update_form_should_not_show_assign_to_me_link_when_issue_is_assigned_to_the_current_user |
|
| 1743 |
issue = Issue.find(10) |
|
| 1744 |
issue.assigned_to_id = 1 |
|
| 1745 |
issue.save! |
|
| 1746 | ||
| 1747 |
@request.session[:user_id] = 1 |
|
| 1748 |
get :show, :params => {
|
|
| 1749 |
:id => 10 |
|
| 1750 |
} |
|
| 1751 | ||
| 1752 |
assert_select 'form#issue-form #attributes' do |
|
| 1753 |
assert_select 'a[class=?]', 'assign-to-me-link hidden', 1 |
|
| 1754 |
end |
|
| 1755 |
end |
|
| 1756 | ||
| 1720 | 1757 |
def test_show_should_deny_anonymous_access_without_permission |
| 1721 | 1758 |
Role.anonymous.remove_permission!(:view_issues) |
| 1722 | 1759 |
get :show, :params => {
|