From 13e2738fb520d255c4bac0c75961a04e011d5781 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 17 Oct 2022 17:37:03 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E6=96=B0=E5=A2=9Eonly=5Fwatched=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/queries/projects/list_my_query.rb | 2 ++ app/services/api/v1/users/projects/list_service.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index f275d63a..6c7f38d9 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -29,6 +29,8 @@ class Projects::ListMyQuery < ApplicationQuery projects = projects.where(user_id: user.id) elsif params[:category].to_s == "watched" #我关注的 projects = projects.where.not(user_id: user.id).joins(:watchers).where(watchers: {watchable_type: "Project", user_id: user.id}) + elsif params[:category].to_s == 'only_watched' + projects = projects.joins(:watchers).where(watchers: {watchable_type: "Project", user_id: user.id}) elsif params[:category].to_s == "forked" #我fork的 fork_ids = user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id) projects = projects.where(id: fork_ids) diff --git a/app/services/api/v1/users/projects/list_service.rb b/app/services/api/v1/users/projects/list_service.rb index 91e25a93..8b3bffef 100644 --- a/app/services/api/v1/users/projects/list_service.rb +++ b/app/services/api/v1/users/projects/list_service.rb @@ -53,6 +53,8 @@ class Api::V1::Users::Projects::ListService < ApplicationService projects = Project.from("( #{normal_projects} UNION #{org_projects} ) AS projects").distinct when 'watched' projects = projects.where.not(user_id: observe_user.id).joins(:watchers).where(watchers: {watchable_type: "Project", user_id: observe_user.id}) + when 'only_watched' + projects = projects.where.joins(:watchers).where(watchers: {watchable_type: "Project", user_id: observe_user.id}) when 'forked' fork_ids = observe_user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id) projects = projects.where(id: fork_ids) From fa48e3f5ca845491e90207536f2a60b2ee0e1d4d Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 11:14:35 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E8=AE=B8?= =?UTF-8?q?=E5=8F=AF=E8=AF=81=E5=92=8C=E5=BF=BD=E7=95=A5=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B8=BA=E7=A9=BA=E8=A1=A8=E5=8D=95=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admins/project_ignores/_form.html.erb | 4 ++-- app/views/admins/project_licenses/_form.html.erb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/admins/project_ignores/_form.html.erb b/app/views/admins/project_ignores/_form.html.erb index 9a6ded0b..2aa8b7ed 100644 --- a/app/views/admins/project_ignores/_form.html.erb +++ b/app/views/admins/project_ignores/_form.html.erb @@ -13,7 +13,7 @@
- <%= f.text_field :name, class: "form-control input-lg", maxlength: "60", placeholder: "请输入忽略文件的全称" %> + <%= f.text_field :name, class: "form-control input-lg", maxlength: "60", placeholder: "请输入忽略文件的全称", required: true%>
@@ -25,7 +25,7 @@
- <%= f.text_area :content,class:"form-control", rows: "10", cols: "20",placeholer: "忽略文件的简要介绍,不得超过500字" %> + <%= f.text_area :content,class:"form-control", rows: "10", cols: "20",placeholer: "忽略文件的简要介绍,不得超过500字", required: true %>
diff --git a/app/views/admins/project_licenses/_form.html.erb b/app/views/admins/project_licenses/_form.html.erb index 115b6793..c6ec5550 100644 --- a/app/views/admins/project_licenses/_form.html.erb +++ b/app/views/admins/project_licenses/_form.html.erb @@ -13,7 +13,7 @@
- <%= f.text_field :name, class: "form-control input-lg", maxlength: "60", placeholder: "请输入开源许可证的全称" %> + <%= f.text_field :name, class: "form-control input-lg", maxlength: "60", placeholder: "请输入开源许可证的全称", required: true %>
@@ -25,7 +25,7 @@
- <%= f.text_area :content,class:"form-control", rows: "10", cols: "20",placeholer: "许可证的简要介绍,不得超过500字" %> + <%= f.text_area :content,class:"form-control", rows: "10", cols: "20",placeholer: "许可证的简要介绍,不得超过500字", required: true %>
From 35965f542ab1b7bbf7bbbd73ca9a35129a5e29aa Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 13:31:12 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=AD=97=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/tags/list_name_service.rb | 23 +++++++++++++++++++ app/views/repositories/tags.json.jbuilder | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 app/services/gitea/repository/tags/list_name_service.rb diff --git a/app/services/gitea/repository/tags/list_name_service.rb b/app/services/gitea/repository/tags/list_name_service.rb new file mode 100644 index 00000000..0857ca11 --- /dev/null +++ b/app/services/gitea/repository/tags/list_name_service.rb @@ -0,0 +1,23 @@ +class Gitea::Repository::Tags::ListNameService < Gitea::ClientService + attr_reader :user, :repo, :name + + def initialize(user, repo, name=nil) + @user = user + @repo = repo + @name = name + end + + def call + response = get(url, params) + render_200_response(response) + end + + private + def params + Hash.new.merge(token: user.gitea_token, name: name) + end + + def url + "/repos/#{user.login}/#{repo}/tag_name_set".freeze + end +end diff --git a/app/views/repositories/tags.json.jbuilder b/app/views/repositories/tags.json.jbuilder index eaf11058..b6fa1c49 100644 --- a/app/views/repositories/tags.json.jbuilder +++ b/app/views/repositories/tags.json.jbuilder @@ -1,5 +1,5 @@ json.array! @tags do |tag| - if tag.present? + if tag.present? && tag.is_a?(Hash) json.name tag['name'] json.id tag['id'] json.zipball_url render_zip_url(@owner, @repository, tag['name']) @@ -22,6 +22,8 @@ json.array! @tags do |tag| json.partial! 'commit_author', user: render_cache_commit_author(tag['commit']['author']), name: tag['commit']['author']['name'] end end + else + json.name tag end end From e25231738a0b48b47aa72d449427daa4c21a7212 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 13:32:57 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=AD=97=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 5ee1fdde..9f43d1ac 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -147,9 +147,15 @@ class RepositoriesController < ApplicationController end def tags - result = Gitea::Repository::Tags::ListService.call(current_user&.gitea_token, @owner.login, @project.identifier, {page: params[:page], limit: params[:limit]}) + if params[:only_name].present? + result = Gitea::Repository::Tags::ListNameService.call(@owner, @project.identifier, params[:name]) - @tags = result.is_a?(Hash) && result.key?(:status) ? [] : result + @tags = result.is_a?(Hash) && result.key?(:status) ? [] : result + else + result = Gitea::Repository::Tags::ListService.call(current_user&.gitea_token, @owner.login, @project.identifier, {page: params[:page], limit: params[:limit]}) + + @tags = result.is_a?(Hash) && result.key?(:status) ? [] : result + end end def contributors From 58a43a8b805990e57b46a70810a0db6c94a38c9c Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 13:43:16 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AF=B7=E6=B1=82=E5=92=8Cissue=E4=BB=85=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=BC=80=E5=90=AF=E4=B8=AD=E7=9A=84=E9=87=8C=E7=A8=8B?= =?UTF-8?q?=E7=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/pull_requests_controller.rb | 2 +- app/helpers/tag_chosen_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index c1643146..a9e6ee6a 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -268,7 +268,7 @@ class PullRequestsController < ApplicationController def get_relatived @project_tags = @project.issue_tags&.select(:id,:name, :color).as_json - @project_versions = @project.versions&.select(:id,:name, :status).as_json + @project_versions = @project.versions.opening&.select(:id,:name, :status).as_json @project_members = @project.all_developers @project_priories = IssuePriority&.select(:id,:name, :position).as_json end diff --git a/app/helpers/tag_chosen_helper.rb b/app/helpers/tag_chosen_helper.rb index dcf3c457..520b868f 100644 --- a/app/helpers/tag_chosen_helper.rb +++ b/app/helpers/tag_chosen_helper.rb @@ -123,7 +123,7 @@ module TagChosenHelper cache_key = "project-#{project.id}/all_milestones/size-#{project.versions.size}/#{project.versions.maximum('updated_on')}" Rails.cache.fetch(cache_key) do - project.versions.select(:id, :name, :status).collect do |event| + project.versions.opening.select(:id, :name, :status).collect do |event| { id: event.id, name: event.name, From 3b15dd84fc7fc96d22b31c9caec00f9ccb07fb2d Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 14:52:15 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=E6=80=BB=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 4 ++++ app/views/repositories/tags.json.jbuilder | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 9f43d1ac..e32b3101 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -152,6 +152,10 @@ class RepositoriesController < ApplicationController @tags = result.is_a?(Hash) && result.key?(:status) ? [] : result else + name_result = Gitea::Repository::Tags::ListNameService.call(@owner, @project.identifier, params[:name]) + + @tag_names = result.is_a?(Hash) && result.key?(:status) ? [] : name_result + result = Gitea::Repository::Tags::ListService.call(current_user&.gitea_token, @owner.login, @project.identifier, {page: params[:page], limit: params[:limit]}) @tags = result.is_a?(Hash) && result.key?(:status) ? [] : result diff --git a/app/views/repositories/tags.json.jbuilder b/app/views/repositories/tags.json.jbuilder index b6fa1c49..4f5bb433 100644 --- a/app/views/repositories/tags.json.jbuilder +++ b/app/views/repositories/tags.json.jbuilder @@ -1,4 +1,5 @@ -json.array! @tags do |tag| +json.total_count @tag_names.present? ? @tag_names.count : @tags.count +json.tags @tags do |tag| if tag.present? && tag.is_a?(Hash) json.name tag['name'] json.id tag['id'] From cad7e242995c0701a40f3faf794f29e35fc087f4 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 18 Oct 2022 15:53:37 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=88=97=E8=A1=A8=E8=A1=A8=E5=A4=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin.scss | 4 ++++ app/views/admins/projects/shared/_list.html.erb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index b52f9370..8719d767 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -210,4 +210,8 @@ input.form-control { padding: 0.75rem 0.1rem; vertical-align: top; border-top: 1px solid #dee2e6; +} + +.table .thead-light th{ + white-space: nowrap; } \ No newline at end of file diff --git a/app/views/admins/projects/shared/_list.html.erb b/app/views/admins/projects/shared/_list.html.erb index c2d300c2..720b08da 100644 --- a/app/views/admins/projects/shared/_list.html.erb +++ b/app/views/admins/projects/shared/_list.html.erb @@ -14,7 +14,7 @@ 成员 管理员 <%= sort_tag('创建时间', name: 'created_on', path: admins_projects_path) %> - 操作 + 操作 From 64d9c334ce8ad8de842e237f84f92193666ead09 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 19 Oct 2022 15:18:15 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=AF=AD=E8=A8=80=E9=AA=8C=E8=AF=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/project_language.rb | 2 +- config/locales/zh-CN.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/project_language.rb b/app/models/project_language.rb index 09b0b80f..0770a1ef 100644 --- a/app/models/project_language.rb +++ b/app/models/project_language.rb @@ -13,5 +13,5 @@ class ProjectLanguage < ApplicationRecord include Projectable - validates :name, uniqueness: true + validates :name, uniqueness: { message: "已存在" } end diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index d1023ce2..623a4d1c 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -223,6 +223,8 @@ zh-CN: platform: '直播平台' live_time: '开播时间' duration: '直播时长' + project_language: + name: '项目语言' license: name: '许可证名称' content: '许可证内容' From e9b23d65774773aa91301e35887e470de317bf16 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 19 Oct 2022 16:17:44 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AF=B7=E6=B1=82=E4=BB=A3=E7=A0=81=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/pull_requests/merge_service.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/services/pull_requests/merge_service.rb b/app/services/pull_requests/merge_service.rb index 46341212..cffaebd8 100644 --- a/app/services/pull_requests/merge_service.rb +++ b/app/services/pull_requests/merge_service.rb @@ -24,6 +24,9 @@ class PullRequests::MergeService < ApplicationService result = Gitea::PullRequest::MergeService.call(@current_user.gitea_token, @owner.login, @repo.identifier, @pull.gitea_number, gitea_merge_pull_params) @status, @message = result + if @status.to_i == 409 + @message = "代码冲突,请重新提交合并请求" + end end def gitea_merge_pull_params From 9ee4c85b7c4b8366faae5a84ddf8afe233ff6273 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 21 Oct 2022 14:31:32 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E8=BF=94=E5=9B=9Estatus=E4=BB=A5=E5=8F=8A=E4=B8=87?= =?UTF-8?q?=E8=83=BD=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/projects_controller.rb | 1 - app/controllers/api/v1/users_controller.rb | 19 ++++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/controllers/api/v1/projects_controller.rb b/app/controllers/api/v1/projects_controller.rb index bc51362a..810c4017 100644 --- a/app/controllers/api/v1/projects_controller.rb +++ b/app/controllers/api/v1/projects_controller.rb @@ -15,6 +15,5 @@ class Api::V1::ProjectsController < Api::V1::BaseController def blame @result_object = Api::V1::Projects::BlameService.call(@project, params[:sha], params[:filepath], current_user&.gitea_token) - puts @result_object end end \ No newline at end of file diff --git a/app/controllers/api/v1/users_controller.rb b/app/controllers/api/v1/users_controller.rb index 37a41ff7..ad8e790d 100644 --- a/app/controllers/api/v1/users_controller.rb +++ b/app/controllers/api/v1/users_controller.rb @@ -16,9 +16,9 @@ class Api::V1::UsersController < Api::V1::BaseController # 60s内不能重复发送 send_email_limit_cache_key = "send_email_60_second_limit:#{mail}" - tip_exception(-1, '请勿频繁操作') if Rails.cache.exist?(send_email_limit_cache_key) + tip_exception(-2, '请勿频繁操作') if Rails.cache.exist?(send_email_limit_cache_key) send_email_control = LimitForbidControl::SendEmailCode.new(mail) - tip_exception(-1, '邮件发送太频繁,请稍后再试') if send_email_control.forbid? + tip_exception(-2, '邮件发送太频繁,请稍后再试') if send_email_control.forbid? begin UserMailer.update_email(mail, verification_code).deliver_now @@ -39,17 +39,17 @@ class Api::V1::UsersController < Api::V1::BaseController def check_password password = params[:password] - return render_error("8~16位密码,支持字母数字和符号") unless password =~ CustomRegexp::PASSWORD - return render_error("密码错误") unless @observe_user.check_password?(password) + return render_error(-5, "8~16位密码,支持字母数字和符号") unless password =~ CustomRegexp::PASSWORD + return render_error(-5, "密码错误") unless @observe_user.check_password?(password) render_ok end def check_email mail = strip(params[:email]) - return render_error("邮件格式有误") unless mail =~ CustomRegexp::EMAIL + return render_error(-2, "邮件格式有误") unless mail =~ CustomRegexp::EMAIL exist_owner = Owner.find_by(mail: mail) - return render_error('邮箱已被使用') if exist_owner + return render_error(-2, '邮箱已被使用') if exist_owner render_ok end @@ -58,12 +58,13 @@ class Api::V1::UsersController < Api::V1::BaseController mail = strip(params[:email]) code_type = params[:code_type] - return render_error("邮件格式有误") unless mail =~ CustomRegexp::EMAIL + return render_error(-2, "邮件格式有误") unless mail =~ CustomRegexp::EMAIL verifi_code = VerificationCode.where(email: mail, code: code, code_type: code_type).last + return render_ok if code == "123123" && EduSetting.get("code_debug") # 万能验证码,用于测试 # TODO 万能验证码,用于测试 - return render_error("验证码不正确") if verifi_code&.code != code - return render_error("验证码已失效") if !verifi_code&.effective? + return render_error(-6, "验证码不正确") if verifi_code&.code != code + return render_error(-6, "验证码已失效") if !verifi_code&.effective? render_ok end