Project

General

Profile

« Previous | Next » 

Revision 12673

Don't display default watchers checkboxes on the new issue form when there are more than 20 members (#8562).

View differences:

trunk/app/controllers/issues_controller.rb
428 428

  
429 429
    @priorities = IssuePriority.active
430 430
    @allowed_statuses = @issue.new_statuses_allowed_to(User.current, @issue.new_record?)
431
    @available_watchers = (@issue.project.users.sort + @issue.watcher_users).uniq
431
    @available_watchers = @issue.watcher_users
432
    if @issue.project.users.count <= 20
433
      @available_watchers = (@available_watchers + @issue.project.users.sort).uniq
434
    end
432 435
  end
433 436

  
434 437
  def check_for_default_issue_status
trunk/app/controllers/watchers_controller.rb
30 30
  accept_api_auth :create, :destroy
31 31

  
32 32
  def new
33
    @users = users_for_new_watcher
33 34
  end
34 35

  
35 36
  def create
......
44 45
    end
45 46
    respond_to do |format|
46 47
      format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}}
47
      format.js
48
      format.js { @users = users_for_new_watcher }
48 49
      format.api { render_api_ok }
49 50
    end
50 51
  end
......
66 67
  end
67 68

  
68 69
  def autocomplete_for_user
69
    @users = User.active.sorted.like(params[:q]).limit(100).all
70
    if @watched
71
      @users -= @watched.watcher_users
72
    end
70
    @users = users_for_new_watcher
73 71
    render :layout => false
74 72
  end
75 73

  
......
106 104
      format.js { render :partial => 'set_watcher', :locals => {:user => user, :watched => watchables} }
107 105
    end
108 106
  end
107

  
108
  def users_for_new_watcher
109
    users = []
110
    if params[:q].blank? && @project.present?
111
      users = @project.users.sorted
112
    else
113
      users = User.active.sorted.like(params[:q]).limit(100)
114
    end
115
    if @watched
116
      users -= @watched.watcher_users
117
    end
118
    users
119
  end
109 120
end
trunk/app/views/watchers/_new.html.erb
17 17
                 :project_id => @project) }')" %>
18 18

  
19 19
  <div id="users_for_watcher">
20
    <%= principals_check_box_tags(
21
            'watcher[user_ids][]',
22
            (watched ?
23
               watched.addable_watcher_users : User.active.limit(100).all)
24
           ) %>
20
    <%= principals_check_box_tags('watcher[user_ids][]', users) %>
25 21
  </div>
26 22

  
27 23
  <p class="buttons">
trunk/app/views/watchers/create.js.erb
1
$('#ajax-modal').html('<%= escape_javascript(render(:partial => 'watchers/new', :locals => {:watched => @watched})) %>');
1
$('#ajax-modal').html('<%= escape_javascript(render(:partial => 'watchers/new', :locals => {:watched => @watched, :users => @users})) %>');
2 2
$('#watchers').html('<%= escape_javascript(render(:partial => 'watchers/watchers', :locals => {:watched => @watched})) %>');
trunk/app/views/watchers/new.js.erb
1
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'watchers/new', :locals => {:watched => @watched}) %>');
1
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'watchers/new', :locals => {:watched => @watched, :users => @users}) %>');
2 2
showModal('ajax-modal', '400px');
3 3
$('#ajax-modal').addClass('new-watcher');

Also available in: Unified diff