@@ -0,0 +1,4 | |||||
|
1 | <% labelled_tabular_form_for :user, @user, :url => { :action => "edit" } do |f| %> | |||
|
2 | <%= render :partial => 'form', :locals => { :f => f } %> | |||
|
3 | <%= submit_tag l(:button_save) %> | |||
|
4 | <% end %> |
@@ -91,23 +91,20 class UsersController < ApplicationController | |||||
91 | @roles = Role.find_all_givable |
|
91 | @roles = Role.find_all_givable | |
92 | @projects = Project.find(:all, :order => 'name', :conditions => "status=#{Project::STATUS_ACTIVE}") - @user.projects |
|
92 | @projects = Project.find(:all, :order => 'name', :conditions => "status=#{Project::STATUS_ACTIVE}") - @user.projects | |
93 | @membership ||= Member.new |
|
93 | @membership ||= Member.new | |
|
94 | @memberships = @user.memberships | |||
94 | end |
|
95 | end | |
95 |
|
96 | |||
96 | def edit_membership |
|
97 | def edit_membership | |
97 | @user = User.find(params[:id]) |
|
98 | @user = User.find(params[:id]) | |
98 | @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:user => @user) |
|
99 | @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:user => @user) | |
99 | @membership.attributes = params[:membership] |
|
100 | @membership.attributes = params[:membership] | |
100 | if request.post? and @membership.save |
|
101 | @membership.save if request.post? | |
101 | flash[:notice] = l(:notice_successful_update) |
|
102 | redirect_to :action => 'edit', :id => @user, :tab => 'memberships' | |
102 | end |
|
|||
103 | redirect_to :action => 'edit', :id => @user and return |
|
|||
104 | end |
|
103 | end | |
105 |
|
104 | |||
106 | def destroy_membership |
|
105 | def destroy_membership | |
107 | @user = User.find(params[:id]) |
|
106 | @user = User.find(params[:id]) | |
108 |
|
|
107 | Member.find(params[:membership_id]).destroy if request.post? | |
109 | flash[:notice] = l(:notice_successful_update) |
|
108 | redirect_to :action => 'edit', :id => @user, :tab => 'memberships' | |
110 | end |
|
|||
111 | redirect_to :action => 'edit', :id => @user and return |
|
|||
112 | end |
|
109 | end | |
113 | end |
|
110 | end |
@@ -48,4 +48,10 module UsersHelper | |||||
48 | link_to l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :post, :class => 'icon icon-lock' |
|
48 | link_to l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :post, :class => 'icon icon-lock' | |
49 | end |
|
49 | end | |
50 | end |
|
50 | end | |
|
51 | ||||
|
52 | def user_settings_tabs | |||
|
53 | tabs = [{:name => 'general', :partial => 'users/general', :label => :label_general}, | |||
|
54 | {:name => 'memberships', :partial => 'users/memberships', :label => :label_project_plural} | |||
|
55 | ] | |||
|
56 | end | |||
51 | end |
|
57 | end |
@@ -2,7 +2,6 | |||||
2 |
|
2 | |||
3 | <!--[form:user]--> |
|
3 | <!--[form:user]--> | |
4 | <div class="box"> |
|
4 | <div class="box"> | |
5 | <h3><%=l(:label_information_plural)%></h3> |
|
|||
6 | <p><%= f.text_field :login, :required => true, :size => 25 %></p> |
|
5 | <p><%= f.text_field :login, :required => true, :size => 25 %></p> | |
7 | <p><%= f.text_field :firstname, :required => true %></p> |
|
6 | <p><%= f.text_field :firstname, :required => true %></p> | |
8 | <p><%= f.text_field :lastname, :required => true %></p> |
|
7 | <p><%= f.text_field :lastname, :required => true %></p> |
@@ -1,21 +1,33 | |||||
1 | <div class="box" style="margin-top: 16px;"> |
|
1 | <% if @memberships.any? %> | |
2 | <h3><%= l(:label_project_plural) %></h3> |
|
2 | <table class="list memberships"> | |
3 |
|
3 | <thead> | ||
4 | <% @user.memberships.each do |membership| %> |
|
4 | <th><%= l(:label_project) %></th> | |
5 | <% form_tag({ :action => 'edit_membership', :id => @user, :membership_id => membership }, :class => "tabular") do %> |
|
5 | <th><%= l(:label_role) %></th> | |
6 | <p style="margin:0;padding-top:0;"> |
|
6 | <th style="width:15%"></th> | |
7 | <label><%= membership.project.name %></label> |
|
7 | </thead> | |
8 | <select name="membership[role_id]"> |
|
8 | <tbody> | |
9 | <%= options_from_collection_for_select @roles, "id", "name", membership.role_id %> |
|
9 | <% @memberships.each do |membership| %> | |
10 | </select> |
|
10 | <% next if membership.new_record? %> | |
11 | <%= submit_tag l(:button_change), :class => "button-small" %> |
|
11 | <tr class="<%= cycle 'odd', 'even' %>"> | |
12 | <%= link_to l(:button_delete), {:action => 'destroy_membership', :id => @user, :membership_id => membership }, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> |
|
12 | <td><%=h membership.project %></td> | |
13 | </p> |
|
13 | <td align="center"> | |
14 | <% end %> |
|
14 | <% form_tag({ :action => 'edit_membership', :id => @user, :membership_id => membership }) do %> | |
|
15 | <%= select_tag 'membership[role_id]', options_from_collection_for_select(@roles, "id", "name", membership.role_id) %> | |||
|
16 | <%= submit_tag l(:button_change), :class => "small" %> | |||
|
17 | <% end %> | |||
|
18 | </td> | |||
|
19 | <td align="center"> | |||
|
20 | <%= link_to l(:button_delete), {:action => 'destroy_membership', :id => @user, :membership_id => membership }, :method => :post, :class => 'icon icon-del' %> | |||
|
21 | </td> | |||
|
22 | </tr> | |||
|
23 | </tbody> | |||
|
24 | <% end; reset_cycle %> | |||
|
25 | </table> | |||
|
26 | <% else %> | |||
|
27 | <p class="nodata"><%= l(:label_no_data) %></p> | |||
15 | <% end %> |
|
28 | <% end %> | |
16 |
|
29 | |||
17 | <% if @projects.any? %> |
|
30 | <% if @projects.any? %> | |
18 | <hr /> |
|
|||
19 | <p> |
|
31 | <p> | |
20 | <label><%=l(:label_project_new)%></label><br/> |
|
32 | <label><%=l(:label_project_new)%></label><br/> | |
21 | <% form_tag({ :action => 'edit_membership', :id => @user }) do %> |
|
33 | <% form_tag({ :action => 'edit_membership', :id => @user }) do %> | |
@@ -26,4 +38,3 | |||||
26 | <% end %> |
|
38 | <% end %> | |
27 | </p> |
|
39 | </p> | |
28 | <% end %> |
|
40 | <% end %> | |
29 | </div> No newline at end of file |
|
@@ -1,8 +1,23 | |||||
1 | <h2><%=l(:label_user)%></h2> |
|
1 | <h2><%=l(:label_user)%>: <%=h @user.login %></h2> | |
2 |
|
2 | |||
3 | <% labelled_tabular_form_for :user, @user, :url => { :action => "edit" } do |f| %> |
|
3 | <% selected_tab = params[:tab] ? params[:tab].to_s : user_settings_tabs.first[:name] %> | |
4 | <%= render :partial => 'form', :locals => { :f => f } %> |
|
|||
5 | <%= submit_tag l(:button_save) %> |
|
|||
6 | <% end %> |
|
|||
7 |
|
4 | |||
8 | <%= render :partial => 'memberships' %> No newline at end of file |
|
5 | <div class="tabs"> | |
|
6 | <ul> | |||
|
7 | <% user_settings_tabs.each do |tab| -%> | |||
|
8 | <li><%= link_to l(tab[:label]), { :tab => tab[:name] }, | |||
|
9 | :id => "tab-#{tab[:name]}", | |||
|
10 | :class => (tab[:name] != selected_tab ? nil : 'selected'), | |||
|
11 | :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li> | |||
|
12 | <% end -%> | |||
|
13 | </ul> | |||
|
14 | </div> | |||
|
15 | ||||
|
16 | <% user_settings_tabs.each do |tab| -%> | |||
|
17 | <%= content_tag('div', render(:partial => tab[:partial]), | |||
|
18 | :id => "tab-content-#{tab[:name]}", | |||
|
19 | :style => (tab[:name] != selected_tab ? 'display:none' : nil), | |||
|
20 | :class => 'tab-content') %> | |||
|
21 | <% end -%> | |||
|
22 | ||||
|
23 | <% html_title(l(:label_user), @user.login, l(:label_administration)) -%> |
General Comments 0
You need to be logged in to leave comments.
Login now