OSDN Git Service

Added the ability to move issues (to another project) without changing their trackers.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 31 Aug 2007 20:56:14 +0000 (20:56 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 31 Aug 2007 20:56:14 +0000 (20:56 +0000)
Added length validation for homepage project attribute.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@687 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/projects_controller.rb
app/models/project.rb
app/views/projects/move_issues.rhtml

index 8d8250d..63cf8a0 100644 (file)
@@ -387,22 +387,23 @@ class ProjectsController < ApplicationController
     # issue can be moved to any tracker
     @trackers = Tracker.find(:all)
     if request.post? and params[:new_project_id] and params[:new_tracker_id]    
-      new_project = Project.find(params[:new_project_id])
-      new_tracker = Tracker.find(params[:new_tracker_id])
-      @issues.each { |i|
-        # project dependent properties
-        unless i.project_id == new_project.id
+      new_project = Project.find_by_id(params[:new_project_id])
+      new_tracker = Tracker.find_by_id(params[:new_tracker_id])
+      @issues.each do |i|
+        if new_project && i.project_id != new_project.id
+          # issue is moved to another project
           i.category = nil 
           i.fixed_version = nil
           # delete issue relations
           i.relations_from.clear
           i.relations_to.clear
+          i.project = new_project
+        end
+        if new_tracker        
+          i.tracker = new_tracker
         end
-        # move the issue
-        i.project = new_project
-        i.tracker = new_tracker
         i.save
-      }
+      end
       flash[:notice] = l(:notice_successful_update)
       redirect_to :action => 'list_issues', :id => @project
     end
index f994ed6..eeeaa9f 100644 (file)
@@ -46,6 +46,7 @@ class Project < ActiveRecord::Base
   validates_length_of :name, :maximum => 30
   validates_format_of :name, :with => /^[\w\s\'\-]*$/i
   validates_length_of :description, :maximum => 255
+  validates_length_of :homepage, :maximum => 30
   validates_length_of :identifier, :in => 3..12
   validates_format_of :identifier, :with => /^[a-z0-9\-]*$/
   
index fd8edb2..e9e4bb7 100644 (file)
@@ -4,7 +4,7 @@
 <% form_tag({:action => 'move_issues', :id => @project}, :class => "tabular") do %>
 
 <div class="box">
-<p><label><%= l(:label_issue_plural) %>:</label>
+<p><label><%= l(:label_issue_plural) %> :</label>
 <% for issue in @issues %>
     <%= link_to_issue issue %>: <%=h issue.subject %>
     <%= hidden_field_tag "issue_ids[]", issue.id %><br />
 &nbsp;
 
 <!--[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>
 
-<p><label for="new_tracker_id"><%=l(:field_tracker)%></label>
-<%= select_tag "new_tracker_id", options_from_collection_for_select(@trackers, "id", "name") %></p>
+<p><label for="new_tracker_id"><%=l(:field_tracker)%> :</label>
+<%= select_tag "new_tracker_id", '<option></option>' + options_from_collection_for_select(@trackers, "id", "name") %></p>
 </div>
 <%= submit_tag l(:button_move) %>
 <% end %>