diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index aa06fcaf5..fe77a99f7 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -650,15 +650,15 @@ class ApplicationController < ActionController::Base
end
def find_project
- if params[:project_id].present?
- @project = Project.find_by_identifier!(params[:project_id]) || (Project.find params[:project_id])
+ project_id = params[:project_id] ? params[:project_id] : params[:id]
+ project = Project.where(identifier: project_id)
+ if project.exists?
+ @project = project.first
else
- @project = Project.find_by_identifier!(params[:id]) || (Project.find params[:id])
+ @project = Project.find project_id
end
- # @project = Project.find_by_identifier!(params[:id] || params[:project_id]) || (Project.find params[:project_id]) || (Project.find params[:id])
-
- render_not_found("未找到’#{params[:id]}’相关的项目") unless @project
+ render_not_found("未找到’#{project}’相关的项目") unless @project
end
def find_project_with_identifier
diff --git a/app/controllers/project_trends_controller.rb b/app/controllers/project_trends_controller.rb
index dcd2d4706..516c16450 100644
--- a/app/controllers/project_trends_controller.rb
+++ b/app/controllers/project_trends_controller.rb
@@ -6,7 +6,8 @@ class ProjectTrendsController < ApplicationController
@project_issues_count = @project.get_issues_count(nil)
@project_open_issues_count = @project.get_issues_count([1,2,3,4,6])
@project_close_issues_count = @project.get_issues_count(5)
-
+ @project_pr_count = @project.get_pull_requests_count(nil)
+ @project_new_pr_count = @project.get_pull_requests_count(0)
project_trends = @project.project_trends.includes(:user, trend: :user)
check_time = params[:time] #时间的筛选
check_type = params[:type] #动态类型的筛选,目前已知的有 Issue, PullRequest, Version
diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb
index a521ff4c5..d5eb2f78b 100644
--- a/app/helpers/repositories_helper.rb
+++ b/app/helpers/repositories_helper.rb
@@ -3,4 +3,9 @@ module RepositoriesHelper
return nil if str.blank?
Base64.decode64(str)
end
+
+ def download_type(str)
+ default_type = %w(xlsx xls csv ppt pptx pdf zip 7z rar exe)
+ default_type.include?(str)
+ end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 97d4aca94..323f33f22 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -56,6 +56,14 @@ class Project < ApplicationRecord
end
end
+ def get_pull_requests_count(status_id)
+ if status_id.present?
+ self&.pull_requests.select(:id, :status).where(status: status_id)&.pluck(:id).size
+ else
+ self&.pull_requests.select(:id)&.pluck(:id).size
+ end
+ end
+
#创建项目管理员
def check_project_members
unless members.present? && members.exists(user_id: self.user_id)
diff --git a/app/views/project_trends/index.json.jbuilder b/app/views/project_trends/index.json.jbuilder
index e6aefa2f7..a8fa5132b 100644
--- a/app/views/project_trends/index.json.jbuilder
+++ b/app/views/project_trends/index.json.jbuilder
@@ -2,6 +2,8 @@ json.partial! "commons/success"
json.issues_count @project_issues_count
json.open_issues_count @project_open_issues_count
json.close_issues_count @project_close_issues_count
+json.pr_count @project_pr_count
+json.new_pr_count @project_new_pr_count
json.limit @limit
json.project_trends_size @project_trends_size
json.project_trends do
diff --git a/app/views/repositories/_simple_entry.json.jbuilder b/app/views/repositories/_simple_entry.json.jbuilder
index 5298e94ce..836e30443 100644
--- a/app/views/repositories/_simple_entry.json.jbuilder
+++ b/app/views/repositories/_simple_entry.json.jbuilder
@@ -1,7 +1,12 @@
-json.name entry['name']
+file_name = entry['name']
+file_type = file_name.to_s.split(".").last
+direct_download = download_type(file_type)
+json.name file_name
json.sha entry['sha']
json.path entry['path']
json.type entry['type']
json.size entry['size']
-json.content entry['content'].present? ? render_decode64_content(entry['content']).force_encoding('UTF-8') : ""
+json.content entry['content'].present? && !direct_download ? render_decode64_content(entry['content']).force_encoding('UTF-8') : ""
json.target entry['target']
+json.download_url entry['download_url']
+json.direct_download direct_download
diff --git a/app/views/repositories/entries.json.jbuilder b/app/views/repositories/entries.json.jbuilder
index 182376c1b..54886a965 100644
--- a/app/views/repositories/entries.json.jbuilder
+++ b/app/views/repositories/entries.json.jbuilder
@@ -1,4 +1,5 @@
json.array! @entries do |entry|
+ Rails.logger.info("#########_____________########{entry}")
# json.name entry['name']
# json.path entry['path']
# json.sha entry['sha']
diff --git a/public/react/build/asset-manifest.json b/public/react/build/asset-manifest.json
index 30c942f38..71c6932b7 100644
--- a/public/react/build/asset-manifest.json
+++ b/public/react/build/asset-manifest.json
@@ -15,7 +15,7 @@
"./static/js/11.f407fca8.chunk.js": "./static/js/11.f407fca8.chunk.js",
"./static/js/110.977f5788.chunk.js": "./static/js/110.977f5788.chunk.js",
"./static/js/111.4ecbf9ba.chunk.js": "./static/js/111.4ecbf9ba.chunk.js",
- "./static/js/112.6fe0b986.chunk.js": "./static/js/112.6fe0b986.chunk.js",
+ "./static/js/112.b40ce0dd.chunk.js": "./static/js/112.b40ce0dd.chunk.js",
"./static/js/113.5f545c1f.chunk.js": "./static/js/113.5f545c1f.chunk.js",
"./static/js/114.5a2551e9.chunk.js": "./static/js/114.5a2551e9.chunk.js",
"./static/js/115.7d1c18b8.chunk.js": "./static/js/115.7d1c18b8.chunk.js",
@@ -59,7 +59,7 @@
"./static/js/15.6b37ea85.chunk.js": "./static/js/15.6b37ea85.chunk.js",
"./static/js/150.60766331.chunk.js": "./static/js/150.60766331.chunk.js",
"./static/js/151.4890fd6d.chunk.js": "./static/js/151.4890fd6d.chunk.js",
- "./static/js/152.5eaaad45.chunk.js": "./static/js/152.5eaaad45.chunk.js",
+ "./static/js/152.f616a370.chunk.js": "./static/js/152.f616a370.chunk.js",
"./static/js/153.f658e019.chunk.js": "./static/js/153.f658e019.chunk.js",
"./static/js/154.b56da9d6.chunk.js": "./static/js/154.b56da9d6.chunk.js",
"./static/js/155.09dd2e1f.chunk.js": "./static/js/155.09dd2e1f.chunk.js",
@@ -72,7 +72,7 @@
"./static/js/161.79d5ff55.chunk.js": "./static/js/161.79d5ff55.chunk.js",
"./static/js/162.129313c1.chunk.js": "./static/js/162.129313c1.chunk.js",
"./static/js/163.dff8e727.chunk.js": "./static/js/163.dff8e727.chunk.js",
- "./static/js/164.f11364f1.chunk.js": "./static/js/164.f11364f1.chunk.js",
+ "./static/js/164.ce808205.chunk.js": "./static/js/164.ce808205.chunk.js",
"./static/js/165.9039db33.chunk.js": "./static/js/165.9039db33.chunk.js",
"./static/js/166.aec6ecca.chunk.js": "./static/js/166.aec6ecca.chunk.js",
"./static/js/167.af42d3b4.chunk.js": "./static/js/167.af42d3b4.chunk.js",
@@ -107,7 +107,7 @@
"./static/js/193.e10e4b5a.chunk.js": "./static/js/193.e10e4b5a.chunk.js",
"./static/js/194.aeb59670.chunk.js": "./static/js/194.aeb59670.chunk.js",
"./static/js/195.fba85439.chunk.js": "./static/js/195.fba85439.chunk.js",
- "./static/js/196.4a0b5264.chunk.js": "./static/js/196.4a0b5264.chunk.js",
+ "./static/js/196.bc9f557e.chunk.js": "./static/js/196.bc9f557e.chunk.js",
"./static/js/197.8c03c322.chunk.js": "./static/js/197.8c03c322.chunk.js",
"./static/js/198.43858e28.chunk.js": "./static/js/198.43858e28.chunk.js",
"./static/js/199.f3ab5e18.chunk.js": "./static/js/199.f3ab5e18.chunk.js",
@@ -205,7 +205,7 @@
"./static/js/50.441a0e9b.chunk.js": "./static/js/50.441a0e9b.chunk.js",
"./static/js/51.0da51704.chunk.js": "./static/js/51.0da51704.chunk.js",
"./static/js/52.7a099ee8.chunk.js": "./static/js/52.7a099ee8.chunk.js",
- "./static/js/53.152b0083.chunk.js": "./static/js/53.152b0083.chunk.js",
+ "./static/js/53.a5f0ded3.chunk.js": "./static/js/53.a5f0ded3.chunk.js",
"./static/js/54.a0c86166.chunk.js": "./static/js/54.a0c86166.chunk.js",
"./static/js/55.4ac768d3.chunk.js": "./static/js/55.4ac768d3.chunk.js",
"./static/js/56.82b509c7.chunk.js": "./static/js/56.82b509c7.chunk.js",
@@ -218,7 +218,7 @@
"./static/js/62.4ccbf8f1.chunk.js": "./static/js/62.4ccbf8f1.chunk.js",
"./static/js/63.df594394.chunk.js": "./static/js/63.df594394.chunk.js",
"./static/js/64.2e02b223.chunk.js": "./static/js/64.2e02b223.chunk.js",
- "./static/js/65.ab280f3d.chunk.js": "./static/js/65.ab280f3d.chunk.js",
+ "./static/js/65.5aba4f05.chunk.js": "./static/js/65.5aba4f05.chunk.js",
"./static/js/66.3d775e2d.chunk.js": "./static/js/66.3d775e2d.chunk.js",
"./static/js/67.b8718531.chunk.js": "./static/js/67.b8718531.chunk.js",
"./static/js/68.d8cba66c.chunk.js": "./static/js/68.d8cba66c.chunk.js",
@@ -257,7 +257,7 @@
"./static/js/98.7354b03a.chunk.js": "./static/js/98.7354b03a.chunk.js",
"./static/js/99.491b7204.chunk.js": "./static/js/99.491b7204.chunk.js",
"main.css": "./static/css/main.c0718fb6.css",
- "main.js": "./static/js/main.ae31e8ff.js",
+ "main.js": "./static/js/main.ed7c3f5f.js",
"static/media/KaTeX_AMS-Regular.ttf": "static/media/KaTeX_AMS-Regular.aaf4eee9.ttf",
"static/media/KaTeX_AMS-Regular.woff": "static/media/KaTeX_AMS-Regular.7f06b4e3.woff",
"static/media/KaTeX_AMS-Regular.woff2": "static/media/KaTeX_AMS-Regular.e78e28b4.woff2",
diff --git a/public/react/build/index.html b/public/react/build/index.html
index b89934dc4..82200e76f 100644
--- a/public/react/build/index.html
+++ b/public/react/build/index.html
@@ -24,7 +24,7 @@
_host = 'https://ali-cdn.educoder.net/react/build/'
}
document.write('