Added the ability to move issues (to another project) without changing their trackers.
Added length validation for homepage project attribute. git-svn-id: http://redmine.rubyforge.org/svn/trunk@687 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
c68dac7e9a
commit
1281d99f30
|
@ -387,22 +387,23 @@ class ProjectsController < ApplicationController
|
||||||
# issue can be moved to any tracker
|
# issue can be moved to any tracker
|
||||||
@trackers = Tracker.find(:all)
|
@trackers = Tracker.find(:all)
|
||||||
if request.post? and params[:new_project_id] and params[:new_tracker_id]
|
if request.post? and params[:new_project_id] and params[:new_tracker_id]
|
||||||
new_project = Project.find(params[:new_project_id])
|
new_project = Project.find_by_id(params[:new_project_id])
|
||||||
new_tracker = Tracker.find(params[:new_tracker_id])
|
new_tracker = Tracker.find_by_id(params[:new_tracker_id])
|
||||||
@issues.each { |i|
|
@issues.each do |i|
|
||||||
# project dependent properties
|
if new_project && i.project_id != new_project.id
|
||||||
unless i.project_id == new_project.id
|
# issue is moved to another project
|
||||||
i.category = nil
|
i.category = nil
|
||||||
i.fixed_version = nil
|
i.fixed_version = nil
|
||||||
# delete issue relations
|
# delete issue relations
|
||||||
i.relations_from.clear
|
i.relations_from.clear
|
||||||
i.relations_to.clear
|
i.relations_to.clear
|
||||||
|
i.project = new_project
|
||||||
|
end
|
||||||
|
if new_tracker
|
||||||
|
i.tracker = new_tracker
|
||||||
end
|
end
|
||||||
# move the issue
|
|
||||||
i.project = new_project
|
|
||||||
i.tracker = new_tracker
|
|
||||||
i.save
|
i.save
|
||||||
}
|
end
|
||||||
flash[:notice] = l(:notice_successful_update)
|
flash[:notice] = l(:notice_successful_update)
|
||||||
redirect_to :action => 'list_issues', :id => @project
|
redirect_to :action => 'list_issues', :id => @project
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,6 +46,7 @@ class Project < ActiveRecord::Base
|
||||||
validates_length_of :name, :maximum => 30
|
validates_length_of :name, :maximum => 30
|
||||||
validates_format_of :name, :with => /^[\w\s\'\-]*$/i
|
validates_format_of :name, :with => /^[\w\s\'\-]*$/i
|
||||||
validates_length_of :description, :maximum => 255
|
validates_length_of :description, :maximum => 255
|
||||||
|
validates_length_of :homepage, :maximum => 30
|
||||||
validates_length_of :identifier, :in => 3..12
|
validates_length_of :identifier, :in => 3..12
|
||||||
validates_format_of :identifier, :with => /^[a-z0-9\-]*$/
|
validates_format_of :identifier, :with => /^[a-z0-9\-]*$/
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<% form_tag({:action => 'move_issues', :id => @project}, :class => "tabular") do %>
|
<% form_tag({:action => 'move_issues', :id => @project}, :class => "tabular") do %>
|
||||||
|
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<p><label><%= l(:label_issue_plural) %>:</label>
|
<p><label><%= l(:label_issue_plural) %> :</label>
|
||||||
<% for issue in @issues %>
|
<% for issue in @issues %>
|
||||||
<%= link_to_issue issue %>: <%=h issue.subject %>
|
<%= link_to_issue issue %>: <%=h issue.subject %>
|
||||||
<%= hidden_field_tag "issue_ids[]", issue.id %><br />
|
<%= hidden_field_tag "issue_ids[]", issue.id %><br />
|
||||||
|
@ -14,11 +14,11 @@
|
||||||
|
|
||||||
|
|
||||||
<!--[form:issue]-->
|
<!--[form:issue]-->
|
||||||
<p><label for="new_project_id"><%=l(:field_project)%></label>
|
<p><label for="new_project_id"><%=l(:field_project)%> :</label>
|
||||||
<%= select_tag "new_project_id", options_from_collection_for_select(@projects, "id", "name", @project.id) %></p>
|
<%= select_tag "new_project_id", options_from_collection_for_select(@projects, "id", "name", @project.id) %></p>
|
||||||
|
|
||||||
<p><label for="new_tracker_id"><%=l(:field_tracker)%></label>
|
<p><label for="new_tracker_id"><%=l(:field_tracker)%> :</label>
|
||||||
<%= select_tag "new_tracker_id", options_from_collection_for_select(@trackers, "id", "name") %></p>
|
<%= select_tag "new_tracker_id", '<option></option>' + options_from_collection_for_select(@trackers, "id", "name") %></p>
|
||||||
</div>
|
</div>
|
||||||
<%= submit_tag l(:button_move) %>
|
<%= submit_tag l(:button_move) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
Loading…
Reference in New Issue