diff --git a/app/controllers/api/v1/issues/milestones_controller.rb b/app/controllers/api/v1/issues/milestones_controller.rb index 3bbbbdefa..4de6dffbf 100644 --- a/app/controllers/api/v1/issues/milestones_controller.rb +++ b/app/controllers/api/v1/issues/milestones_controller.rb @@ -5,14 +5,16 @@ class Api::V1::Issues::MilestonesController < Api::V1::BaseController # 里程碑列表 def index + @milestones = @project.versions + @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @closed_milestone_count = @milestones.closed.size + @opening_milestone_count = @milestones.opening.size + @milestones = params[:category] == "closed" ? @milestones.closed : @milestones.opening if params[:only_name] - @milestones = @project.versions.select(:id, :name) - @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @milestones = @milestones.select(:id, :name) @milestones = kaminary_select_paginate(@milestones) else - @milestones = @project.versions.includes(:issues, :closed_issues, :opened_issues) - @milestones = params[:category] == "closed" ? @milestones.closed : @milestones.opening - @milestones = @milestones.ransack(name_or_description_cont: params[:keyword]).result if params[:keyword].present? + @milestones = @milestones.includes(:issues, :closed_issues, :opened_issues) @milestones = kaminari_paginate(@milestones) end end @@ -65,4 +67,12 @@ class Api::V1::Issues::MilestonesController < Api::V1::BaseController return render_not_found('里程碑不存在!') unless @milestone.present? end + def sort_by + Version.columns.include?(params.fetch(:sort_by, "created_on")) ? params.fetch(:sort_by, "created_on") : "created_on" + end + + def sort_direction + %w(desc asc).include?(params.fetch(:sort_direction, "updated_on")) ? params.fetch(:sort_direction, "updated_on") : "updated_on" + end + end \ No newline at end of file diff --git a/app/views/api/v1/issues/milestones/_detail.json.jbuilder b/app/views/api/v1/issues/milestones/_detail.json.jbuilder index a7d66ae28..b71f41c7e 100644 --- a/app/views/api/v1/issues/milestones/_detail.json.jbuilder +++ b/app/views/api/v1/issues/milestones/_detail.json.jbuilder @@ -1,5 +1,6 @@ json.(milestone, :id, :name, :description, :effective_date, :status) json.issues_count milestone.opened_issues.size + milestone.closed_issues.size +json.opened_issues_count milestone.opened_issues.size json.close_issues_count milestone.closed_issues.size json.percent milestone.issue_percent json.created_at milestone.created_on.strftime("%Y-%m-%d %H:%M") diff --git a/app/views/api/v1/issues/milestones/index.json.jbuilder b/app/views/api/v1/issues/milestones/index.json.jbuilder index cea2b43b7..38623d2b4 100644 --- a/app/views/api/v1/issues/milestones/index.json.jbuilder +++ b/app/views/api/v1/issues/milestones/index.json.jbuilder @@ -1,3 +1,5 @@ +json.closed_milestone_count @closed_milestone_count +json.opening_milestone_count @opening_milestone_count json.total_count @milestones.total_count json.milestones @milestones.each do |milestone| if params[:only_name]