diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 45a8530a3..96e186b42 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -125,9 +125,15 @@ class IssuesController < ApplicationController end end if params[:issue_tag_ids].present? - params[:issue_tag_ids].each do |tag| - IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) - end + if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size > 1 + return normal_status(-1, "最多只能创建一个标记。") + elsif params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size == 1 + params[:issue_tag_ids].each do |tag| + IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + end + else + return normal_status(-1, "请输入正确的标记。") + end end if params[:assigned_to_id].present? Tiding.create!(user_id: params[:assigned_to_id], trigger_user_id: current_user.id, @@ -146,7 +152,7 @@ class IssuesController < ApplicationController Rails.logger.info "[ATME] maybe to at such users: #{@atme_receivers.pluck(:login)}" AtmeService.call(current_user, @atme_receivers, @issue) if @atme_receivers.size > 0 - render json: {status: 0, message: "创建成", id: @issue.id} + render json: {status: 0, message: "创建成功", id: @issue.id} else normal_status(-1, "创建失败") end @@ -165,11 +171,17 @@ class IssuesController < ApplicationController last_token = @issue.token last_status_id = @issue.status_id @issue&.issue_tags_relates&.destroy_all if params[:issue_tag_ids].blank? - if params[:issue_tag_ids].present? && !@issue&.issue_tags_relates.where(issue_tag_id: params[:issue_tag_ids]).exists? - @issue&.issue_tags_relates&.destroy_all - params[:issue_tag_ids].each do |tag| - IssueTagsRelate.create(issue_id: @issue.id, issue_tag_id: tag) - end + if params[:issue_tag_ids].present? + if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size > 1 + return normal_status(-1, "最多只能创建一个标记。") + elsif params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size == 1 + @issue&.issue_tags_relates&.destroy_all + params[:issue_tag_ids].each do |tag| + IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + end + else + return normal_status(-1, "请输入正确的标记。") + end end issue_files = params[:attachment_ids] diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index 86b877170..39bfadb40 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -91,10 +91,16 @@ class PullRequestsController < ApplicationController @issue&.issue_tags_relates&.destroy_all if params[:issue_tag_ids].blank? if params[:issue_tag_ids].present? && !@issue&.issue_tags_relates.where(issue_tag_id: params[:issue_tag_ids]).exists? - @issue&.issue_tags_relates&.destroy_all - params[:issue_tag_ids].each do |tag| - IssueTagsRelate.create(issue_id: @issue.id, issue_tag_id: tag) - end + if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size > 1 + return normal_status(-1, "最多只能创建一个标记。") + elsif params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size == 1 + @issue&.issue_tags_relates&.destroy_all + params[:issue_tag_ids].each do |tag| + IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + end + else + return normal_status(-1, "请输入正确的标记。") + end end if @issue.update_attributes(@issue_params) @@ -104,9 +110,16 @@ class PullRequestsController < ApplicationController if gitea_pull[:status] === :success if params[:issue_tag_ids].present? - params[:issue_tag_ids].each do |tag| - IssueTagsRelate.create(issue_id: @issue.id, issue_tag_id: tag) - end + if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size > 1 + return normal_status(-1, "最多只能创建一个标记。") + elsif params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size == 1 + @issue&.issue_tags_relates&.destroy_all + params[:issue_tag_ids].each do |tag| + IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + end + else + return normal_status(-1, "请输入正确的标记。") + end end if params[:status_id].to_i == 5 @issue.issue_times.update_all(end_time: Time.now) diff --git a/app/services/pull_requests/create_service.rb b/app/services/pull_requests/create_service.rb index 67766be64..6789f904b 100644 --- a/app/services/pull_requests/create_service.rb +++ b/app/services/pull_requests/create_service.rb @@ -58,8 +58,12 @@ class PullRequests::CreateService < ApplicationService end def save_issue_tags_relates! - issue_tag_ids.each do |tag| - IssueTagsRelate.create!(issue_id: pull_issue.id, issue_tag_id: tag) + if issue_tag_ids.size > 1 + raise "最多只能创建一个标记。" + else + issue_tag_ids.each do |tag| + IssueTagsRelate.create!(issue_id: pull_issue.id, issue_tag_id: tag) + end end end diff --git a/app/views/pull_requests/_detail.json.jbuilder b/app/views/pull_requests/_detail.json.jbuilder index 06c6377a9..5c9347420 100644 --- a/app/views/pull_requests/_detail.json.jbuilder +++ b/app/views/pull_requests/_detail.json.jbuilder @@ -1,5 +1,6 @@ pr = issue.pull_request json.pull_request_id pr.id +json.pull_request_number pr.gitea_number json.pull_request_status pr.status json.pull_request_head pr.head json.pull_request_base pr.base