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 => {
   |