##// END OF EJS Templates
Moves password param to user hash param so that it can be set using the User API....
Moves password param to user hash param so that it can be set using the User API. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4493 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r4240:db2ecd30103b
r4379:cde02954c845
Show More
versions_controller.rb
159 lines | 6.1 KiB | text/x-ruby | RubyLexer
/ app / controllers / versions_controller.rb
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # redMine - project management software
# Copyright (C) 2006 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class VersionsController < ApplicationController
Jean-Philippe Lang
Highlight the current item of the main menu....
r1062 menu_item :roadmap
Eric Davis
Refactor: Change the different find_object filters to share a common method....
r3483 model_object Version
Eric Davis
Refactor: split VersionsController#new into #new and #create...
r3976 before_filter :find_model_object, :except => [:index, :new, :create, :close_completed]
before_filter :find_project_from_association, :except => [:index, :new, :create, :close_completed]
before_filter :find_project, :only => [:index, :new, :create, :close_completed]
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909 before_filter :authorize
Jean-Philippe Lang
notice messages translation...
r15
Jean-Philippe Lang
Adds custom fields for versions (#4219)....
r2950 helper :custom_fields
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 helper :projects
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936
def index
@trackers = @project.trackers.find(:all, :order => 'position')
retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?})
@with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1')
project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id]
@versions = @project.shared_versions || []
@versions += @project.rolled_up_versions.visible if @with_subprojects
@versions = @versions.uniq.sort
@versions.reject! {|version| version.closed? || version.completed? } unless params[:completed]
@issues_by_version = {}
unless @selected_tracker_ids.empty?
@versions.each do |version|
issues = version.fixed_issues.visible.find(:all,
:include => [:project, :status, :tracker, :priority],
:conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids},
:order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id")
@issues_by_version[version] = issues
end
end
@versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?}
end
Jean-Philippe Lang
Adds custom fields for versions (#4219)....
r2950
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 def show
Jean-Philippe Lang
Adds missing visibility scope....
r3752 @issues = @version.fixed_issues.visible.find(:all,
Jean-Philippe Lang
Moves code to controller....
r3751 :include => [:status, :tracker, :priority],
:order => "#{Tracker.table_name}.position, #{Issue.table_name}.id")
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 end
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 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
Eric Davis
Refactor: split VersionsController#new into #new and #create...
r3976 end
def create
# TODO: refactor with code above in #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
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 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|
Eric Davis
Refactor: split VersionsController#new into #new and #create...
r3976 format.html { render :action => 'new' }
Jean-Philippe Lang
Moves ProjectsController#add_version to VersionsController#new....
r3434 format.js do
render(:update) {|page| page.alert(@version.errors.full_messages.join('\n')) }
end
end
end
end
end
Eric Davis
Refactor: Split VersionsController#edit into #edit and #update...
r3974
Jean-Philippe Lang
notice messages translation...
r15 def edit
Eric Davis
Refactor: Split VersionsController#edit into #edit and #update...
r3974 end
def update
Eric Davis
Refactor: convert VersionsController to a REST resource....
r3983 if request.put? && params[:version]
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 attributes = params[:version].dup
attributes.delete('sharing') unless @version.allowed_sharings.include?(attributes['sharing'])
if @version.update_attributes(attributes)
flash[:notice] = l(:notice_successful_update)
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
Jean-Philippe Lang
Fixed: "Template is missing" error when validation fails on version edit (#6766)....
r4240 else
respond_to do |format|
format.html { render :action => 'edit' }
end
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 end
Jean-Philippe Lang
notice messages translation...
r15 end
end
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909
def close_completed
Eric Davis
Refactor: convert VersionsController to a REST resource....
r3983 if request.put?
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909 @project.close_completed_versions
end
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
end
Jean-Philippe Lang
notice messages translation...
r15
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 def destroy
Jean-Philippe Lang
Do not raise an error when destroying a Version with assigned issues....
r3554 if @version.fixed_issues.empty?
@version.destroy
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
else
flash[:error] = l(:notice_unable_delete_version)
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Jean-Philippe Lang
Added version details view accessible from the roadmap....
r942 def status_by
respond_to do |format|
format.html { render :action => 'show' }
format.js { render(:update) {|page| page.replace_html 'status_by', render_issue_status_by(@version, params[:status_by])} }
end
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
private
Jean-Philippe Lang
Adds a link to automatically close completed versions in project settings (#1245)....
r2909 def find_project
@project = Project.find(params[:project_id])
rescue ActiveRecord::RecordNotFound
render_404
end
Eric Davis
Refactor: move method, ProjectsController#roadmap to VersionsController#index....
r3936
def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil)
if ids = params[:tracker_ids]
@selected_tracker_ids = (ids.is_a? Array) ? ids.collect { |id| id.to_i.to_s } : ids.split('/').collect { |id| id.to_i.to_s }
else
@selected_tracker_ids = (default_trackers || selectable_trackers).collect {|t| t.id.to_s }
end
end
Jean-Philippe Lang
Initial commit...
r2 end