diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 65c2f404c..3b5952459 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -7,8 +7,8 @@ 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_statistics, only: %i[top_counts] def show @user = current_user @@ -32,6 +32,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) diff --git a/app/models/project.rb b/app/models/project.rb index 1d6fd0327..e70c932bd 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -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 diff --git a/app/queries/projects/list_query.rb b/app/queries/projects/list_query.rb index 6b145c81a..91a2a7627 100644 --- a/app/queries/projects/list_query.rb +++ b/app/queries/projects/list_query.rb @@ -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) diff --git a/app/views/repositories/entries.json.jbuilder b/app/views/repositories/entries.json.jbuilder index 7b2c7c6e6..636845efd 100644 --- a/app/views/repositories/entries.json.jbuilder +++ b/app/views/repositories/entries.json.jbuilder @@ -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 diff --git a/app/views/repositories/sub_entries.json.jbuilder b/app/views/repositories/sub_entries.json.jbuilder index 43dbf764e..2032df857 100644 --- a/app/views/repositories/sub_entries.json.jbuilder +++ b/app/views/repositories/sub_entries.json.jbuilder @@ -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 } diff --git a/app/views/repositories/top_counts.json.jbuilder b/app/views/repositories/top_counts.json.jbuilder new file mode 100644 index 000000000..a5f5b9938 --- /dev/null +++ b/app/views/repositories/top_counts.json.jbuilder @@ -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 diff --git a/config/routes.rb b/config/routes.rb index ffda83821..ba9efd909 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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