summaryrefslogtreecommitdiffstats
path: root/app/controllers/versions_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/versions_controller.rb')
-rw-r--r--app/controllers/versions_controller.rb36
1 files changed, 34 insertions, 2 deletions
diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb
index 69b253c68..0ea440e12 100644
--- a/app/controllers/versions_controller.rb
+++ b/app/controllers/versions_controller.rb
@@ -17,8 +17,8 @@
class VersionsController < ApplicationController
menu_item :roadmap
- before_filter :find_version, :except => :close_completed
- before_filter :find_project, :only => :close_completed
+ before_filter :find_version, :except => [:new, :close_completed]
+ before_filter :find_project, :only => [:new, :close_completed]
before_filter :authorize
helper :custom_fields
@@ -27,6 +27,38 @@ class VersionsController < ApplicationController
def show
end
+ def new
+ @version = @project.versions.build
+ if params[:version]
+ attributes = params[:version].dup
+ attributes.delete('sharing') unless attributes.nil? || @version.allowed_sharings.include?(attributes['sharing'])
+ @version.attributes = attributes
+ end
+ if request.post?
+ if @version.save
+ respond_to do |format|
+ format.html do
+ flash[:notice] = l(:notice_successful_create)
+ redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
+ end
+ format.js do
+ # IE doesn't support the replace_html rjs method for select box options
+ render(:update) {|page| page.replace "issue_fixed_version_id",
+ content_tag('select', '<option></option>' + version_options_for_select(@project.shared_versions.open, @version), :id => 'issue_fixed_version_id', :name => 'issue[fixed_version_id]')
+ }
+ end
+ end
+ else
+ respond_to do |format|
+ format.html
+ format.js do
+ render(:update) {|page| page.alert(@version.errors.full_messages.join('\n')) }
+ end
+ end
+ end
+ end
+ end
+
def edit
if request.post? && params[:version]
attributes = params[:version].dup