summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects_controller.rb32
-rw-r--r--app/controllers/versions_controller.rb39
-rw-r--r--app/views/versions/index.html.erb (renamed from app/views/projects/roadmap.rhtml)0
3 files changed, 36 insertions, 35 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 6bb766386..845ab3c15 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -287,30 +287,6 @@ class ProjectsController < ApplicationController
render :layout => !request.xhr?
end
- def roadmap
- @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
-
private
def find_optional_project
return true unless params[:id]
@@ -320,14 +296,6 @@ private
render_404
end
- 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
-
# Validates parent_id param according to user's permissions
# TODO: move it to Project model in a validation that depends on User.current
def validate_parent_id
diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb
index 46b4778d4..dd01da95b 100644
--- a/app/controllers/versions_controller.rb
+++ b/app/controllers/versions_controller.rb
@@ -18,13 +18,37 @@
class VersionsController < ApplicationController
menu_item :roadmap
model_object Version
- before_filter :find_model_object, :except => [:new, :close_completed]
- before_filter :find_project_from_association, :except => [:new, :close_completed]
- before_filter :find_project, :only => [:new, :close_completed]
+ before_filter :find_model_object, :except => [:index, :new, :close_completed]
+ before_filter :find_project_from_association, :except => [:index, :new, :close_completed]
+ before_filter :find_project, :only => [:index, :new, :close_completed]
before_filter :authorize
helper :custom_fields
helper :projects
+
+ 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
def show
@issues = @version.fixed_issues.visible.find(:all,
@@ -105,4 +129,13 @@ private
rescue ActiveRecord::RecordNotFound
render_404
end
+
+ 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
+
end
diff --git a/app/views/projects/roadmap.rhtml b/app/views/versions/index.html.erb
index 100282a7a..100282a7a 100644
--- a/app/views/projects/roadmap.rhtml
+++ b/app/views/versions/index.html.erb