diff --git a/app/controllers/issue_tags_controller.rb b/app/controllers/issue_tags_controller.rb index d21d8ed4f..f3691f3d4 100644 --- a/app/controllers/issue_tags_controller.rb +++ b/app/controllers/issue_tags_controller.rb @@ -7,7 +7,7 @@ class IssueTagsController < ApplicationController def index - issue_tags = @project.issue_tags.order("#{order_name} #{order_type}") + issue_tags = @project.issue_tags.reorder("#{order_name} #{order_type}") @user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user)) @page = params[:page] || 1 @limit = params[:limit] || 15 diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 3af2f6536..626eb59b7 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -219,7 +219,7 @@ class IssuesController < ApplicationController change_type = change_token > 0 ? "add" : "minus" post_to_chain(change_type, change_token.abs, current_user.try(:login)) end - @issue.create_journal_detail(change_files, issue_files, issue_file_ids, current_user&.id) + @issue.create_journal_detail(change_files, issue_files, issue_file_ids, current_user&.id) if @issue.previous_changes.present? normal_status(0, "更新成功") else normal_status(-1, "更新失败") diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 67aba25f4..e835b5bd0 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -47,7 +47,7 @@ class MembersController < ApplicationController end def member_exists? - @project.members.exists?(params[:user_id]) + @project.member?(params[:user_id]) end def operate! @@ -55,10 +55,10 @@ class MembersController < ApplicationController end def check_member_exists! - return render_result(1, "user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? + return render_error("user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? end def check_member_not_exists! - return render_result(1, "user_id为#{params[:user_id]}的用户还不是项目成员") unless @project.member?(params[:user_id]) + return render_error("user_id为#{params[:user_id]}的用户还不是项目成员") unless @project.member?(params[:user_id]) end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index fee3ae759..73c511bf9 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -108,8 +108,14 @@ class ProjectsController < ApplicationController ActiveRecord::Base.transaction do # TODO: # 临时特殊处理修改website、lesson_url操作方法 - if project_params.has_key?("website") + if project_params.has_key?("website") @project.update(project_params) + elsif project_params.has_key?("default_branch") + @project.update(project_params) + gitea_params = { + default_branch: @project.default_branch + } + Gitea::Repository::UpdateService.call(@owner, @project.identifier, gitea_params) else validate_params = project_params.slice(:name, :description, :project_category_id, :project_language_id, :private) @@ -213,7 +219,7 @@ class ProjectsController < ApplicationController private def project_params - params.permit(:user_id, :name, :description, :repository_name, :website, :lesson_url, + params.permit(:user_id, :name, :description, :repository_name, :website, :lesson_url, :default_branch, :project_category_id, :project_language_id, :license_id, :ignore_id, :private) end diff --git a/app/helpers/tag_chosen_helper.rb b/app/helpers/tag_chosen_helper.rb index 5193c9ab4..593e412d9 100644 --- a/app/helpers/tag_chosen_helper.rb +++ b/app/helpers/tag_chosen_helper.rb @@ -20,10 +20,16 @@ module TagChosenHelper "done_ratio": render_complete_percentage, "issue_tag": render_issue_tags(project), "issue_type": render_issue_species, - "all_issues": all_issues + "all_issues": all_issues, + "branches": render_branches(project) } end + def render_branches(project) + branches = Gitea::Repository::Branches::ListService.call(project&.owner, project.identifier) + branches.collect{|i| i["name"] if i.is_a?(Hash)} + end + def render_cache_trackers cache_key = "all_trackers/#{Tracker.maximum('id')}" @@ -176,7 +182,7 @@ module TagChosenHelper real_name = user.try(:show_real_name) user_id = user.id is_chosen = ((user.id.to_s == issue_info[0].to_s) ? "1" : "0") - member_info = {id: user_id, name: real_name,avatar_url: url_to_avatar(user),is_chosen: is_chosen} + member_info = {id: user_id, name: real_name,avatar_url: url_to_avatar(user), permission: project.get_premission(user), is_chosen: is_chosen} project_members_info.push(member_info) end end diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb index 8ae787c52..84b80f50f 100644 --- a/app/services/projects/fork_service.rb +++ b/app/services/projects/fork_service.rb @@ -15,8 +15,11 @@ class Projects::ForkService < ApplicationService :rep_identifier, :project_category_id, :project_language_id, :license_id, :ignore_id, {repository: [:identifier, :hidden]}] + result = Gitea::Repository::ForkService.new(@project.owner, @target_owner, @project.identifier, @organization).call + clone_project.owner = @target_owner clone_project.forked_from_project_id = @project.id + clone_project.gpid = result['id'] clone_project.save! new_repository = clone_project.repository @@ -26,8 +29,6 @@ class Projects::ForkService < ApplicationService ProjectUnit.init_types(clone_project.id) - result = Gitea::Repository::ForkService.new(@project.owner, @target_owner, @project.identifier, @organization).call - @project.update_column('forked_count', @project&.forked_count.to_i + 1) new_repository.update_column('url', result['clone_url']) if result diff --git a/app/views/projects/migrate.json.jbuilder b/app/views/projects/migrate.json.jbuilder index c9ae044ee..1e8ddc4d5 100644 --- a/app/views/projects/migrate.json.jbuilder +++ b/app/views/projects/migrate.json.jbuilder @@ -1 +1,2 @@ json.extract! @project, :id, :name, :identifier +json.login @project&.owner&.login \ No newline at end of file