diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5224388..ba7483c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -155,6 +155,10 @@ class ProjectsController < ApplicationController @issue_category ||= IssueCategory.new @member ||= @project.members.new @trackers = Tracker.sorted.to_a + + @version_status = params[:version_status] || 'open' + @version_name = params[:version_name] + @versions = @project.shared_versions.status(@version_status).like(@version_name) @wiki ||= @project.wiki || Wiki.new(:project => @project) end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 6a47b1e..a56fe73 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -22,7 +22,8 @@ module ProjectsHelper tabs = [{:name => 'info', :action => :edit_project, :partial => 'projects/edit', :label => :label_information_plural}, {:name => 'modules', :action => :select_project_modules, :partial => 'projects/settings/modules', :label => :label_module_plural}, {:name => 'members', :action => :manage_members, :partial => 'projects/settings/members', :label => :label_member_plural}, - {:name => 'versions', :action => :manage_versions, :partial => 'projects/settings/versions', :label => :label_version_plural}, + {:name => 'versions', :action => :manage_versions, :partial => 'projects/settings/versions', :label => :label_version_plural, + :url => {:tab => 'versions', :version_status => params[:version_status], :version_name => params[:version_name]}}, {:name => 'categories', :action => :manage_categories, :partial => 'projects/settings/issue_categories', :label => :label_issue_category_plural}, {:name => 'wiki', :action => :manage_wiki, :partial => 'projects/settings/wiki', :label => :label_wiki}, {:name => 'repositories', :action => :manage_repository, :partial => 'projects/settings/repositories', :label => :label_repository_plural}, diff --git a/app/models/version.rb b/app/models/version.rb index dc02f27..98d1c6a 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -41,7 +41,18 @@ class Version < ActiveRecord::Base attr_protected :id scope :named, lambda {|arg| where("LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip)} + scope :like, lambda {|arg| + if arg.present? + pattern = "%#{arg.to_s.strip}%" + where("LOWER(#{Version.table_name}.name) LIKE :p", :p => pattern) + end + } scope :open, lambda { where(:status => 'open') } + scope :status, lambda {|status| + if status.present? + where(:status => status.to_s) + end + } scope :visible, lambda {|*args| joins(:project). where(Project.allowed_to_condition(args.first || User.current, :view_issues)) diff --git a/app/views/common/_tabs.html.erb b/app/views/common/_tabs.html.erb index 705ecc7..26a1c08 100644 --- a/app/views/common/_tabs.html.erb +++ b/app/views/common/_tabs.html.erb @@ -1,7 +1,7 @@