You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

_memberships.rhtml 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <% roles = Role.find_all_givable %>
  2. <% projects = Project.active.find(:all, :order => 'lft') %>
  3. <div class="splitcontentleft">
  4. <% if @user.memberships.any? %>
  5. <table class="list memberships">
  6. <thead><tr>
  7. <th><%= l(:label_project) %></th>
  8. <th><%= l(:label_role_plural) %></th>
  9. <th style="width:15%"></th>
  10. <%= call_hook(:view_users_memberships_table_header, :user => @user )%>
  11. </tr></thead>
  12. <tbody>
  13. <% @user.memberships.each do |membership| %>
  14. <% next if membership.new_record? %>
  15. <tr id="member-<%= membership.id %>" class="<%= cycle 'odd', 'even' %> class">
  16. <td class="project">
  17. <%= link_to_project membership.project %>
  18. </td>
  19. <td class="roles">
  20. <span id="member-<%= membership.id %>-roles"><%=h membership.roles.sort.collect(&:to_s).join(', ') %></span>
  21. <% remote_form_for(:membership, :url => { :action => 'edit_membership', :id => @user, :membership_id => membership },
  22. :html => { :id => "member-#{membership.id}-roles-form", :style => 'display:none;'}) do %>
  23. <p><% roles.each do |role| %>
  24. <label><%= check_box_tag 'membership[role_ids][]', role.id, membership.roles.include?(role),
  25. :disabled => membership.member_roles.detect {|mr| mr.role_id == role.id && !mr.inherited_from.nil?} %> <%=h role %></label><br />
  26. <% end %></p>
  27. <%= hidden_field_tag 'membership[role_ids][]', '' %>
  28. <p><%= submit_tag l(:button_change) %>
  29. <%= link_to_function l(:button_cancel), "$('member-#{membership.id}-roles').show(); $('member-#{membership.id}-roles-form').hide(); return false;" %></p>
  30. <% end %>
  31. </td>
  32. <td class="buttons">
  33. <%= link_to_function l(:button_edit), "$('member-#{membership.id}-roles').hide(); $('member-#{membership.id}-roles-form').show(); return false;", :class => 'icon icon-edit' %>
  34. <%= link_to_remote(l(:button_delete), { :url => { :controller => 'users', :action => 'destroy_membership', :id => @user, :membership_id => membership },
  35. :method => :post },
  36. :class => 'icon icon-del') if membership.deletable? %>
  37. </td>
  38. <%= call_hook(:view_users_memberships_table_row, :user => @user, :membership => membership, :roles => roles, :projects => projects )%>
  39. </tr>
  40. <% end; reset_cycle %>
  41. </tbody>
  42. </table>
  43. <% else %>
  44. <p class="nodata"><%= l(:label_no_data) %></p>
  45. <% end %>
  46. </div>
  47. <div class="splitcontentright">
  48. <% if projects.any? %>
  49. <fieldset><legend><%=l(:label_project_new)%></legend>
  50. <% remote_form_for(:membership, :url => { :action => 'edit_membership', :id => @user }) do %>
  51. <%= select_tag 'membership[project_id]', options_for_membership_project_select(@user, projects) %>
  52. <p><%= l(:label_role_plural) %>:
  53. <% roles.each do |role| %>
  54. <label><%= check_box_tag 'membership[role_ids][]', role.id %> <%=h role %></label>
  55. <% end %></p>
  56. <p><%= submit_tag l(:button_add) %></p>
  57. <% end %>
  58. </fieldset>
  59. <% end %>
  60. </div>