Project

General

Profile

Feature #29285 » 29285-v2.patch

Go MAEDA, 2020-02-18 09:50

View differences:

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),
19
                :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),
20
                  :include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %>
21
  <% if @issue.assignable_users.include?(User.current) %>
22
    <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>
23
  <% end %>
24
</p>
20 25
<% end %>
21 26

  
22 27
<% if @issue.safe_attribute?('category_id') && @issue.project.issue_categories.any? %>
app/views/issues/_form.html.erb
60 60
  $("#issue_tracker_id, #issue_status_id").each(function(){
61 61
    $(this).val($(this).find("option[selected=selected]").val());
62 62
  });
63
  $(".assign-to-me-link").click(function(event){
64
    event.preventDefault();
65
    var element = $(event.target);
66
    $('#issue_assigned_to_id').val(element.data('id'));
67
    element.hide();
68
  });
69
  $('#issue_assigned_to_id').change(function(event){
70
    var assign_to_me_link = $(".assign-to-me-link");
71

  
72
    if (assign_to_me_link.length > 0) {
73
      var user_id = $(event.target).val();
74
      var current_user_id = assign_to_me_link.data('id');
75

  
76
      if (user_id == current_user_id) {
77
        assign_to_me_link.hide();
78
      } else {
79
        assign_to_me_link.show();
80
      }
81
    }
82
  });
63 83
});
64 84
<% end %>
config/locales/en.yml
1079 1079
  label_display_type_list: List
1080 1080
  label_display_type_board: Board
1081 1081
  label_my_bookmarks: My bookmarks
1082
  label_assign_to_me: Assign to me
1082 1083

  
1083 1084
  button_login: Login
1084 1085
  button_submit: Submit
public/stylesheets/application.css
539 539
#trackers_description dt {font-weight: bold; text-decoration: underline;}
540 540
#trackers_description dd {margin: 0; padding: 0 0 1em 0;}
541 541

  
542
#issue-form .assign-to-me-link { padding-left: 5px; }
543

  
542 544
fieldset.collapsible {border-width: 1px 0 0 0;}
543 545
fieldset.collapsible>legend { cursor:pointer; padding-left: 18px; background-position: 4px;}
544 546

  
test/functional/issues_controller_test.rb
2105 2105
    end
2106 2106
  end
2107 2107

  
2108
  def test_update_form_should_render_assign_to_me_link_when_issue_can_be_assigned_to_the_current_user
2109
    @request.session[:user_id] = 1
2110
    get :show, :params => {
2111
        :id => 10
2112
      }
2113

  
2114
    assert_select 'form#issue-form #attributes' do
2115
      assert_select 'a[class=?][data-id=?]', 'assign-to-me-link', '1', 1
2116
    end
2117
  end
2118

  
2119
  def test_update_form_should_not_render_assign_to_me_link_when_issue_cannot_be_assigned_to_the_current_user
2120
    @request.session[:user_id] = 1
2121
    get :show, :params => {
2122
        :id => 2
2123
      }
2124

  
2125
    assert_select 'form#issue-form #attributes' do
2126
      assert_select 'a[class=?]', 'assign-to-me-link', 0
2127
    end
2128
  end
2129

  
2130
  def test_update_form_should_not_show_assign_to_me_link_when_issue_is_assigned_to_the_current_user
2131
    issue = Issue.find(10)
2132
    issue.assigned_to_id = 1
2133
    issue.save!
2134

  
2135
    @request.session[:user_id] = 1
2136
    get :show, :params => {
2137
        :id => 10
2138
      }
2139

  
2140
    assert_select 'form#issue-form #attributes' do
2141
      assert_select 'a[class=?]', 'assign-to-me-link hidden', 1
2142
    end
2143
  end
2144

  
2108 2145
  def test_show_should_deny_anonymous_access_without_permission
2109 2146
    Role.anonymous.remove_permission!(:view_issues)
2110 2147
    get(:show, :params => {:id => 1})
(5-5/6)