Patch #25491 » 25491-list-of-role-members-v3.diff
app/controllers/roles_controller.rb (working copy) | ||
---|---|---|
100 | 100 |
redirect_to roles_path |
101 | 101 |
end |
102 | 102 | |
103 |
def members |
|
104 |
@role = Role.find(params[:id]) |
|
105 |
@projects_members = Member.joins(:roles, :user).where( |
|
106 |
:roles => {:id => @role} |
|
107 |
).group(:users, :id).group_by(&:project) |
|
108 |
end |
|
109 | ||
103 | 110 |
def permissions |
104 | 111 |
@roles = Role.sorted.to_a |
105 | 112 |
@permissions = Redmine::AccessControl.permissions.select { |p| !p.public? } |
app/models/time_entry_query.rb (working copy) | ||
---|---|---|
107 | 107 |
def default_totalable_names |
108 | 108 |
[:hours] |
109 | 109 |
end |
110 |
|
|
110 | ||
111 | 111 |
def default_sort_criteria |
112 | 112 |
[['spent_on', 'desc']] |
113 | 113 |
end |
app/models/user.rb (working copy) | ||
---|---|---|
430 | 430 |
def delete_autologin_token(value) |
431 | 431 |
Token.where(:user_id => id, :action => 'autologin', :value => value).delete_all |
432 | 432 |
end |
433 |
|
|
433 | ||
434 | 434 |
# Returns true if token is a valid session token for the user whose id is user_id |
435 | 435 |
def self.verify_session_token(user_id, token) |
436 | 436 |
return false if user_id.blank? || token.blank? |
app/views/roles/index.html.erb (working copy) | ||
---|---|---|
16 | 16 |
<td class="name"><%= content_tag(role.builtin? ? 'em' : 'span', link_to(role.name, edit_role_path(role))) %></td> |
17 | 17 |
<td class="buttons"> |
18 | 18 |
<%= reorder_handle(role) unless role.builtin? %> |
19 |
<%= link_to l(:label_member_plural), {:controller => 'roles', :action => 'members', :id => role.id}, :class => 'icon icon-user' unless role.builtin? %> |
|
19 | 20 |
<%= link_to l(:button_copy), new_role_path(:copy => role), :class => 'icon icon-copy' %> |
20 | 21 |
<%= delete_link role_path(role) unless role.builtin? %> |
21 | 22 |
</td> |
... | ... | |
28 | 29 | |
29 | 30 |
<%= javascript_tag do %> |
30 | 31 |
$(function() { $("table.roles tbody").positionedItems({items: ".givable"}); }); |
31 |
<% end %> |
|
32 |
<% end %> |
app/views/roles/members.html.erb (working copy) | ||
---|---|---|
1 |
<%= title [l(:label_role_plural), roles_path], @role.name, l(:label_member_plural) %> |
|
2 | ||
3 |
<% if @projects_members.empty? %> |
|
4 | ||
5 |
<p class="nodata"><%= l(:label_no_data) %></p> |
|
6 | ||
7 |
<% else %> |
|
8 | ||
9 |
<% @projects_members.each do |project, members| next if members.count == 0 %> |
|
10 | ||
11 |
<h3><%= project.name %></h3> |
|
12 |
<div class="box tabular" id="members_list"> |
|
13 |
<div class="splitcontent"> |
|
14 |
<ul> |
|
15 |
<% members.each do |member| next if member.nil? or member.user.nil? %> |
|
16 |
<li><%= link_to_user(member.user) %></li> |
|
17 |
<% end %> |
|
18 |
</ul> |
|
19 |
</div> |
|
20 |
</div> |
|
21 |
<% end %> |
|
22 |
<% end %> |
config/locales/ja.yml (working copy) | ||
---|---|---|
291 | 291 |
field_port: ポート |
292 | 292 |
field_account: アカウント |
293 | 293 |
field_base_dn: ベースDN |
294 |
field_attr_login: ログイン名属性
|
|
295 |
field_attr_firstname: 名前属性
|
|
296 |
field_attr_lastname: 苗字属性
|
|
297 |
field_attr_mail: メール属性 |
|
294 |
field_attr_login: ログインIDの属性
|
|
295 |
field_attr_firstname: 名の属性
|
|
296 |
field_attr_lastname: 姓の属性
|
|
297 |
field_attr_mail: メールアドレスの属性
|
|
298 | 298 |
field_onthefly: あわせてユーザーを作成 |
299 | 299 |
field_start_date: 開始日 |
300 | 300 |
field_done_ratio: 進捗率 |
config/routes.rb (working copy) | ||
---|---|---|
332 | 332 |
match 'permissions', :via => [:get, :post] |
333 | 333 |
end |
334 | 334 |
end |
335 |
get '/roles/:id/members', :to => 'roles#members' |
|
336 | ||
335 | 337 |
resources :enumerations, :except => :show |
336 | 338 |
match 'enumerations/:type', :to => 'enumerations#index', :via => :get |
337 | 339 |
public/stylesheets/application.css (working copy) | ||
---|---|---|
1303 | 1303 | |
1304 | 1304 |
.contextual>*:not(:first-child), .buttons>.icon:not(:first-child) { margin-left: 5px; } |
1305 | 1305 | |
1306 |
#members_list ul { |
|
1307 |
-moz-column-count: 3; |
|
1308 |
-webkit-column-count: 3; |
|
1309 |
column-count: 3; |
|
1310 |
list-style-position: inside; |
|
1311 |
} |
|
1312 | ||
1306 | 1313 |
img.gravatar { |
1307 | 1314 |
vertical-align: middle; |
1308 | 1315 |
border-radius: 20%; |
- « Previous
- 1
- …
- 5
- 6
- 7
- Next »