diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index 4e515db71..589791a48 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -13,9 +13,8 @@ class VersionsController < ApplicationController @open_versions_size = versions.where(status: "open")&.size @closed_versions_size = versions.where(status: "closed")&.size - if status.present? - versions = versions.where(status: status.to_s.strip) - end + versions = versions.where(status: status.to_s.strip) if status.present? + versions = versions.search(params[:keyword]) versions = versions.reorder("#{order_name} #{order_type}") @@ -32,7 +31,7 @@ class VersionsController < ApplicationController # @close_issues_size = version_issues.where(status_id: 5).size # @open_issues_size = version_issues.size - @close_issues_size - + version_issues = version_issues.where(author_id: params[:author_id]) if params[:author_id].present? && params[:author_id].to_s != "all" version_issues = version_issues.where(assigned_to_id: params[:assigned_to_id]) if params[:assigned_to_id].present? && params[:assigned_to_id].to_s != "all" version_issues = version_issues.where(tracker_id: params[:tracker_id]) if params[:tracker_id].present? && params[:tracker_id].to_s != "all" @@ -47,11 +46,11 @@ class VersionsController < ApplicationController has_filter_params = (params[:author_id].present? && params[:author_id].to_s != "all") || (params[:assigned_to_id].present? && params[:assigned_to_id].to_s != "all") || (params[:tracker_id].present? && params[:tracker_id].to_s != "all") || - (params[:status_id].present? && params[:status_id].to_s != "all") || - (params[:priority_id].present? && params[:priority_id].to_s != "all") || - (params[:fixed_version_id].present? && params[:fixed_version_id].to_s != "all") || - (params[:done_ratio].present? && params[:done_ratio].to_s != "all") || - (params[:issue_type].present? && params[:issue_type].to_s != "all") || + (params[:status_id].present? && params[:status_id].to_s != "all") || + (params[:priority_id].present? && params[:priority_id].to_s != "all") || + (params[:fixed_version_id].present? && params[:fixed_version_id].to_s != "all") || + (params[:done_ratio].present? && params[:done_ratio].to_s != "all") || + (params[:issue_type].present? && params[:issue_type].to_s != "all") || (params[:issue_tag_id].present? && params[:issue_tag_id].to_s != "all") @version_close_issues_size = has_filter_params ? version_issues.closed.size : @version.issues.issue_issue.issue_includes.closed.size @version_issues_size = has_filter_params ? version_issues.size : @version.issues.issue_issue.issue_includes.size diff --git a/app/models/version.rb b/app/models/version.rb index e6937a42f..b06075dd5 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -35,6 +35,7 @@ class Version < ApplicationRecord scope :version_includes, ->{includes(:issues, :user)} scope :closed, ->{where(status: 'closed')} scope :opening, ->{where(status: 'open')} + scope :search, -> (keyword) { where("name like ? or description like ? ", "%#{keyword}%", "%#{keyword}%") unless keyword.blank? } # def open_issues_count # issues.select(:id,:status_id).where(status_id: [1,2,3,4,6]).size