From 15f9004f63989acc247b238d09804e20b94d72b7 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 10:50:47 +0800 Subject: [PATCH 1/5] add: edit permit website --- app/views/repositories/edit.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/repositories/edit.json.jbuilder b/app/views/repositories/edit.json.jbuilder index aea21f7b..328bc490 100644 --- a/app/views/repositories/edit.json.jbuilder +++ b/app/views/repositories/edit.json.jbuilder @@ -5,4 +5,5 @@ json.project_description @project.description json.project_category_id @project.project_category_id json.project_language_id @project.project_language_id json.private !@project.is_public +json.website @project.website json.project_units @project.project_units.pluck(:unit_type) \ No newline at end of file From 9ee42e805bf6f1e99420c21e231c3877c5878c7b Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 13:50:17 +0800 Subject: [PATCH 2/5] fix: update error --- app/controllers/projects_controller.rb | 11 ++++++----- app/views/projects/update.json.jbuilder | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 1fd858be..c073d584 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -85,18 +85,19 @@ class ProjectsController < ApplicationController def update ActiveRecord::Base.transaction do # Projects::CreateForm.new(project_params).validate! - private = params[:private] + private = params[:private] || false + + new_project_params = project_params.except(:private).merge(is_public: !private) + @project.update_attributes!(new_project_params) gitea_params = { private: private, - default_branch: params[:default_branch], - website: params[:website] + default_branch: @project.default_branch, + website: @project.website } if [true, false].include? private - new_project_params = project_params.except(:private).merge(is_public: !private) Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) @project.repository.update_column(:hidden, private) end - @project.update_attributes!(new_project_params) end rescue Exception => e uid_logger_error(e.message) diff --git a/app/views/projects/update.json.jbuilder b/app/views/projects/update.json.jbuilder index 20fa3e07..ef09d5d8 100644 --- a/app/views/projects/update.json.jbuilder +++ b/app/views/projects/update.json.jbuilder @@ -5,3 +5,4 @@ json.description @project.description json.project_category_id @project.project_category_id json.project_language_id @project.project_language_id json.is_public @project.is_public +json.website @project.website \ No newline at end of file From 66608b3baac32d05e7584d84067210c70f06c8b6 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 13:59:24 +0800 Subject: [PATCH 3/5] add: detail project description --- app/views/repositories/detail.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/repositories/detail.json.jbuilder b/app/views/repositories/detail.json.jbuilder index e06ccdd8..366a2f40 100644 --- a/app/views/repositories/detail.json.jbuilder +++ b/app/views/repositories/detail.json.jbuilder @@ -7,6 +7,7 @@ else end json.identifier render_identifier(@project) json.name @project.name +json.description @project.description json.project_id @project.id json.repo_id @repository.id json.issues_count @project.issues_count.to_i - @project.pull_requests_count.to_i From 70c7b1da0c51fd8e1ae188390d1e4446675a8166 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Wed, 24 Mar 2021 15:42:57 +0800 Subject: [PATCH 4/5] add: auto counter rake --- lib/tasks/sync_count_cache.rake | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lib/tasks/sync_count_cache.rake diff --git a/lib/tasks/sync_count_cache.rake b/lib/tasks/sync_count_cache.rake new file mode 100644 index 00000000..b32496b9 --- /dev/null +++ b/lib/tasks/sync_count_cache.rake @@ -0,0 +1,15 @@ +namespace :sync_count_cache do + desc "更新项目自动计数字段" + task projects: :environment do + Project.includes(:praise_treads, :fork_users, :issues, :watchers, :issues, :pull_requests, :versions, :issue_tags).find_each do |project| + project.update(forked_count: project.fork_users.size, closed_issues_count: project.issues.where(status_id: 5).size) + + Project.reset_counters(project.id, :praise_treads) + Project.reset_counters(project.id, :watchers) + Project.reset_counters(project.id, :issues) + Project.reset_counters(project.id, :pull_requests) + Project.reset_counters(project.id, :versions) + Project.reset_counters(project.id, :issue_tags) + end + end +end \ No newline at end of file From 7f28f07665f943a9ae574b7f3c879850c85ca43d Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Thu, 25 Mar 2021 11:31:15 +0800 Subject: [PATCH 5/5] fix: readme error --- app/helpers/repositories_helper.rb | 52 +++++++++++---------- app/views/repositories/detail.json.jbuilder | 2 +- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 07646c07..2889b6fc 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -33,34 +33,38 @@ module RepositoriesHelper def readme_render_decode64_content(str, path) return nil if str.blank? - content = Base64.decode64(str).force_encoding('UTF-8') + begin + content = Base64.decode64(str).force_encoding('UTF-8') - c_regex = /\!\[.*?\]\((.*?)\)/ - src_regex = /src=\"(.*?)\"/ - ss = content.to_s.scan(c_regex) - ss_src = content.to_s.scan(src_regex) - total_images = ss + ss_src - if total_images.length > 0 - total_images.each do |s| - image_title = /\"(.*?)\"/ - r_content = s[0] - remove_title = r_content.to_s.scan(image_title) - if remove_title.length > 0 - r_content = r_content.gsub(/#{remove_title[0]}/, "").strip + c_regex = /\!\[.*?\]\((.*?)\)/ + src_regex = /src=\"(.*?)\"/ + ss = content.to_s.scan(c_regex) + ss_src = content.to_s.scan(src_regex) + total_images = ss + ss_src + if total_images.length > 0 + total_images.each do |s| + image_title = /\"(.*?)\"/ + r_content = s[0] + remove_title = r_content.to_s.scan(image_title) + if remove_title.length > 0 + r_content = r_content.gsub(/#{remove_title[0]}/, "").strip + end + if r_content.include?("?") + new_r_content = r_content + "&raw=true" + else + new_r_content = r_content + "?raw=true" + end + unless r_content.include?("http://") || r_content.include?("https://") || r_content.include?("mailto:") + new_r_content = "#{path}" + new_r_content + end + content = content.gsub(/#{r_content}/, new_r_content) end - if r_content.include?("?") - new_r_content = r_content + "&raw=true" - else - new_r_content = r_content + "?raw=true" - end - unless r_content.include?("http://") || r_content.include?("https://") || r_content.include?("mailto:") - new_r_content = "#{path}" + new_r_content - end - content = content.gsub(/#{r_content}/, new_r_content) end + + return content + rescue + return str end - - return content end # unix_time values for example: 1604382982 diff --git a/app/views/repositories/detail.json.jbuilder b/app/views/repositories/detail.json.jbuilder index 366a2f40..58bc9abc 100644 --- a/app/views/repositories/detail.json.jbuilder +++ b/app/views/repositories/detail.json.jbuilder @@ -1,7 +1,7 @@ json.content @project.content json.website @project.website if @result[:readme].blank? - json.readme nil! + json.readme nil else json.readme @result[:readme].merge(content: readme_render_decode64_content(@result[:readme]["content"], nil)) end