修改拒绝项目成员加入后,页面不会刷新的BUG

This commit is contained in:
sw 2015-01-30 14:16:32 +08:00
parent 87fdd840ec
commit 36c07f9664
3 changed files with 60 additions and 32 deletions

View File

@ -114,8 +114,8 @@ class Project < ActiveRecord::Base
validates_presence_of :name, :identifier validates_presence_of :name, :identifier
validates_uniqueness_of :identifier validates_uniqueness_of :identifier
validates_uniqueness_of :name validates_uniqueness_of :name
validates_associated :repository, :wiki validates_associated :wiki#, :repository
# validates_length_of :description, :maximum => 255 # validates_length_of :description, :maximum => 255
validates_length_of :name, :maximum => 255 validates_length_of :name, :maximum => 255
validates_length_of :homepage, :maximum => 255 validates_length_of :homepage, :maximum => 255
validates_length_of :identifier, :in => 1..IDENTIFIER_MAX_LENGTH validates_length_of :identifier, :in => 1..IDENTIFIER_MAX_LENGTH

View File

@ -12,7 +12,11 @@ hideOnLoad();
$("#member-<%= member.id %>").effect("highlight"); $("#member-<%= member.id %>").effect("highlight");
<% end %> <% end %>
<% else %> <% else %>
<% errors = @members.collect {|m| m.errors.full_messages}.flatten.uniq.join(', ') %> <% if @members %>
alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => errors))) %>'); <% errors = @members.collect {|m| m.errors.full_messages}.flatten.uniq.join(', ')%>
alert('<%= raw(escape_javascript(l(:notice_failed_to_save_members, :errors => errors || ''))) %>');
<% else%>
// alert('');
<% end%>
<% end %> <% end %>
<% end %> <% end %>

View File

@ -14,8 +14,12 @@
<table class="list members"> <table class="list members">
<thead> <thead>
<tr> <tr>
<th><%= l(:label_user) %></th> <th>
<th><%= l(:label_role_plural) %></th> <%= l(:label_user) %>
</th>
<th>
<%= l(:label_role_plural) %>
</th>
<th style="width:15%"></th> <th style="width:15%"></th>
<%= call_hook(:view_projects_settings_members_table_header, :project => @project) %> <%= call_hook(:view_projects_settings_members_table_header, :project => @project) %>
</tr> </tr>
@ -24,26 +28,30 @@
<% members.each do |member| %> <% members.each do |member| %>
<% next if member.new_record? %> <% next if member.new_record? %>
<tr id="member-<%= member.id %>" class="<%= cycle 'odd', 'even' %> member"> <tr id="member-<%= member.id %>" class="<%= cycle 'odd', 'even' %> member">
<td class="<%= member.principal.class.name.downcase %>"><%= link_to_user member.principal %></td> <td class="<%= member.principal.class.name.downcase %>">
<%= link_to_user member.principal %>
</td>
<td class="roles"> <td class="roles">
<span id="member-<%= member.id %>-roles"> <span id="member-<%= member.id %>-roles">
<%= h member.roles.sort.collect(&:to_s).join(', ') %> <%= h member.roles.sort.collect(&:to_s).join(', ') %>
</span> </span>
<%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member), <%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member),
:method => :put, :method => :put,
:html => {:id => "member-#{member.id}-roles-form", :class => 'hol'}} :html => {:id => "member-#{member.id}-roles-form", :class => 'hol'}}
) do |f| %> ) do |f| %>
<p> <p>
<% roles.each do |role| %> <% roles.each do |role| %>
<label><%= check_box_tag 'membership[role_ids][]', role.id, member.roles.include?(role), <label><%= check_box_tag 'membership[role_ids][]', role.id, member.roles.include?(role),
:disabled => member.member_roles.detect { |mr| mr.role_id == role.id && !mr.inherited_from.nil? } %> <%= h role %></label><br/> :disabled => member.member_roles.detect { |mr| mr.role_id == role.id && !mr.inherited_from.nil? } %> <%= h role %></label><br/>
<% end %></p> <% end %>
</p>
<%= hidden_field_tag 'membership[role_ids][]', '' %> <%= hidden_field_tag 'membership[role_ids][]', '' %>
<p><%= submit_tag l(:button_change), :class => "small" %> <p>
<%= submit_tag l(:button_change), :class => "small" %>
<%= link_to_function l(:button_cancel), <%= link_to_function l(:button_cancel),
"$('#member-#{member.id}-roles').show(); $('#member-#{member.id}-roles-form').hide(); return false;" "$('#member-#{member.id}-roles').show(); $('#member-#{member.id}-roles-form').hide(); return false;"
%></p> %>
</p>
<% end %> <% end %>
</td> </td>
<!--modified by huang for: if the user'roles is Manager that he will can't modified himself--> <!--modified by huang for: if the user'roles is Manager that he will can't modified himself-->
@ -77,7 +85,9 @@
</tbody> </tbody>
</table> </table>
<% else %> <% else %>
<p class="nodata"><%= l(:label_no_data) %></p> <p class="nodata">
<%= l(:label_no_data) %>
</p>
<% end %> <% end %>
</div> </div>
@ -87,20 +97,25 @@
<div id="applied_project_block"> <div id="applied_project_block">
<%= form_for(@applied_members, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %> <%= form_for(@applied_members, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
<fieldset> <fieldset>
<legend><%= l(:label_apply_project) %></legend> <legend>
<%= l(:label_apply_project) %>
</legend>
<div id="principals_for_applied_member"> <div id="principals_for_applied_member">
<%= render_principals_for_applied_members(@project) %> <%= render_principals_for_applied_members(@project) %>
</div> </div>
<br/> <br/>
<!--show the roles which will select--> <!--show the roles which will select-->
<p style="padding-top: 5px"><%= l(:label_role_plural) %>: <p style="padding-top: 5px">
<%= l(:label_role_plural) %>:
<% roles.each do |role| %> <% roles.each do |role| %>
<label>
<label><%= check_box_tag 'membership[role_ids][]', role.id %> <%= h role %></label> <%= check_box_tag 'membership[role_ids][]', role.id %>
<% end %></p> <%= h role %>
</label>
<p><%= submit_tag l(:label_approve), :id => 'member-add-submit' %> <% end %>
</p>
<p>
<%= submit_tag l(:label_approve), :id => 'member-add-submit' %>
<%= submit_tag l(:label_refusal), :name => "refusal_button", :id => 'member-refusal-submit' %> <%= submit_tag l(:label_refusal), :name => "refusal_button", :id => 'member-refusal-submit' %>
</p> </p>
</fieldset> </fieldset>
@ -110,9 +125,13 @@
<%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %> <%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
<fieldset> <fieldset>
<legend><%= l(:label_member_new) %></legend> <legend>
<%= l(:label_member_new) %>
<p><%= label_tag "principal_search", l(:label_principal_search) %><%= text_field_tag 'principal_search', nil %></p> </legend>
<p>
<%= label_tag "principal_search", l(:label_principal_search) %>
<%= text_field_tag 'principal_search', nil %>
</p>
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %> <%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
<div id="principals_for_new_member"> <div id="principals_for_new_member">
@ -120,13 +139,18 @@
</div> </div>
<br /> <br />
<!--show the roles which will select--> <!--show the roles which will select-->
<p style="padding-top: 5px"><%= l(:label_role_plural) %>: <p style="padding-top: 5px">
<%= l(:label_role_plural) %>:
<% roles.each do |role| %> <% roles.each do |role| %>
<label>
<label><%= check_box_tag 'membership[role_ids][]', role.id %> <%= h role %></label> <%= check_box_tag 'membership[role_ids][]', role.id %>
<% end %></p> <%= h role %>
</label>
<p><%= submit_tag l(:button_add), :id => 'member-add-submit' %></p> <% end %>
</p>
<p>
<%= submit_tag l(:button_add), :id => 'member-add-submit' %>
</p>
</fieldset> </fieldset>
<% end %> <% end %>
<% end %> <% end %>