Merge branch 'dev_trustie' of http://gitea.trustie.net/jasder/forgeplus into dev_trustie

This commit is contained in:
Jasder 2020-07-03 16:23:21 +08:00
commit 385abd53b7
7 changed files with 32 additions and 14 deletions

View File

@ -7,8 +7,9 @@ class RepositoriesController < ApplicationController
before_action :authorizate!, except: [:sync_mirror, :tags, :commit]
before_action :find_repository_by_id, only: %i[commit sync_mirror tags]
before_action :authorizate_user_can_edit_repo!, only: %i[sync_mirror]
before_action :get_ref, only: %i[entries sub_entries]
before_action :get_statistics, only: %i[entries sub_entries]
before_action :get_ref, only: %i[entries sub_entries top_counts]
before_action :get_latest_commit, only: %i[entries sub_entries top_counts]
before_action :get_statistics, only: %i[top_counts]
def show
@user = current_user
@ -32,6 +33,10 @@ class RepositoriesController < ApplicationController
@path = Gitea.gitea_config[:domain]+"/#{@project.owner.login}/#{@project.identifier}/raw/branch/#{@ref}/"
end
def top_counts
@result = Gitea::Repository::GetService.new(@project.owner, @project.identifier).call
end
def sub_entries
file_path_uri = URI.parse(URI.encode(params[:filepath].to_s.strip))
interactor = Repositories::EntriesInteractor.call(@project.owner, @project.identifier, file_path_uri, ref: @ref)
@ -122,7 +127,7 @@ class RepositoriesController < ApplicationController
end
# TODO 获取最新commit信息
def get_latest_commit
def project_commits
Gitea::Repository::Commits::ListService.new(@project.owner.login, @project.identifier,
sha: get_ref, page: 1, limit: 1, token: current_user&.gitea_token).call
end
@ -130,16 +135,18 @@ class RepositoriesController < ApplicationController
def get_statistics
@branches_count = Gitea::Repository::Branches::ListService.new(@project.owner, @project.identifier).call&.size
@tags_count = Gitea::Repository::Tags::ListService.new(current_user&.gitea_token, @project.owner.login, @project.identifier).call&.size
latest_commit = get_latest_commit
@latest_commit = latest_commit[:body][0] if latest_commit.present?
@commits_count = latest_commit[:total_count] if latest_commit.present?
end
def get_ref
@ref = params[:ref] || "master"
end
def get_latest_commit
latest_commit = project_commits
@latest_commit = latest_commit[:body][0] if latest_commit.present?
@commits_count = latest_commit[:total_count] if latest_commit.present?
end
def content_params
{
filepath: params[:filepath],

View File

@ -38,6 +38,9 @@ class Project < ApplicationRecord
scope :no_anomory_projects, -> {where("projects.user_id is not null and projects.user_id != ?", 2)}
def self.search_project(search)
ransack(name_or_identifier_cont: search)
end
# 创建者
def creator
User.find(user_id).full_name

View File

@ -10,7 +10,7 @@ class Projects::ListQuery < ApplicationQuery
end
def call
q = Project.visible.ransack(name_or_identifier_cont: params[:search])
q = Project.visible.search_project(params[:search])
scope = q.result(distinct: true)
.includes(:project_category, :project_language, :repository, owner: :user_extension)

View File

@ -5,9 +5,9 @@ json.last_commit do
json.nil!
end
end
json.tags_count @tags_count
json.branches_count @branches_count
json.commits_count @commits_count
#json.tags_count @tags_count
#json.branches_count @branches_count
#json.commits_count @commits_count
json.zip_url render_zip_url(@project, @ref)
json.tar_url render_tar_url(@project, @ref)
json.entries do

View File

@ -6,9 +6,9 @@ json.last_commit do
json.nil!
end
end
json.tags_count @tags_count
json.branches_count @branches_count
json.commits_count @commits_count
#json.tags_count @tags_count
#json.branches_count @branches_count
#json.commits_count @commits_count
json.entries do
json.array! @sub_entries do |entry|
json.partial! 'repositories/simple_entry', locals: { entry: entry }

View File

@ -0,0 +1,7 @@
json.tags_count @tags_count
json.branches_count @branches_count
json.commits_count @commits_count
json.version_releasesed_count @project.releases_size(current_user.try(:id), "released") #已发行的版本
if @result
json.size replace_bytes_to_b(number_to_human_size(@result['size'].to_i*1024))
end

View File

@ -214,6 +214,7 @@ Rails.application.routes.draw do
delete :delete_file
post :repo_hook
post :sync_mirror
get :top_counts
get 'commits/:sha', to: 'repositories#commit', as: 'commit'
end
end