| @@ -7,7 +7,7 @@ class IssueTagsController < ApplicationController | |||||
| def index | 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)) | @user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user)) | ||||
| @page = params[:page] || 1 | @page = params[:page] || 1 | ||||
| @limit = params[:limit] || 15 | @limit = params[:limit] || 15 | ||||
| @@ -219,7 +219,7 @@ class IssuesController < ApplicationController | |||||
| change_type = change_token > 0 ? "add" : "minus" | change_type = change_token > 0 ? "add" : "minus" | ||||
| post_to_chain(change_type, change_token.abs, current_user.try(:login)) | post_to_chain(change_type, change_token.abs, current_user.try(:login)) | ||||
| end | 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, "更新成功") | normal_status(0, "更新成功") | ||||
| else | else | ||||
| normal_status(-1, "更新失败") | normal_status(-1, "更新失败") | ||||
| @@ -47,7 +47,7 @@ class MembersController < ApplicationController | |||||
| end | end | ||||
| def member_exists? | def member_exists? | ||||
| @project.members.exists?(params[:user_id]) | |||||
| @project.member?(params[:user_id]) | |||||
| end | end | ||||
| def operate! | def operate! | ||||
| @@ -55,10 +55,10 @@ class MembersController < ApplicationController | |||||
| end | end | ||||
| def check_member_exists! | 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 | end | ||||
| def check_member_not_exists! | 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 | ||||
| end | end | ||||
| @@ -108,8 +108,14 @@ class ProjectsController < ApplicationController | |||||
| ActiveRecord::Base.transaction do | ActiveRecord::Base.transaction do | ||||
| # TODO: | # TODO: | ||||
| # 临时特殊处理修改website、lesson_url操作方法 | # 临时特殊处理修改website、lesson_url操作方法 | ||||
| if project_params.has_key?("website") | |||||
| if project_params.has_key?("website") | |||||
| @project.update(project_params) | @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 | else | ||||
| validate_params = project_params.slice(:name, :description, | validate_params = project_params.slice(:name, :description, | ||||
| :project_category_id, :project_language_id, :private) | :project_category_id, :project_language_id, :private) | ||||
| @@ -213,7 +219,7 @@ class ProjectsController < ApplicationController | |||||
| private | private | ||||
| def project_params | 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) | :project_category_id, :project_language_id, :license_id, :ignore_id, :private) | ||||
| end | end | ||||
| @@ -20,10 +20,16 @@ module TagChosenHelper | |||||
| "done_ratio": render_complete_percentage, | "done_ratio": render_complete_percentage, | ||||
| "issue_tag": render_issue_tags(project), | "issue_tag": render_issue_tags(project), | ||||
| "issue_type": render_issue_species, | "issue_type": render_issue_species, | ||||
| "all_issues": all_issues | |||||
| "all_issues": all_issues, | |||||
| "branches": render_branches(project) | |||||
| } | } | ||||
| end | 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 | def render_cache_trackers | ||||
| cache_key = "all_trackers/#{Tracker.maximum('id')}" | cache_key = "all_trackers/#{Tracker.maximum('id')}" | ||||
| @@ -176,7 +182,7 @@ module TagChosenHelper | |||||
| real_name = user.try(:show_real_name) | real_name = user.try(:show_real_name) | ||||
| user_id = user.id | user_id = user.id | ||||
| is_chosen = ((user.id.to_s == issue_info[0].to_s) ? "1" : "0") | 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) | project_members_info.push(member_info) | ||||
| end | end | ||||
| end | end | ||||
| @@ -15,8 +15,11 @@ class Projects::ForkService < ApplicationService | |||||
| :rep_identifier, :project_category_id, :project_language_id, | :rep_identifier, :project_category_id, :project_language_id, | ||||
| :license_id, :ignore_id, {repository: [:identifier, :hidden]}] | :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.owner = @target_owner | ||||
| clone_project.forked_from_project_id = @project.id | clone_project.forked_from_project_id = @project.id | ||||
| clone_project.gpid = result['id'] | |||||
| clone_project.save! | clone_project.save! | ||||
| new_repository = clone_project.repository | new_repository = clone_project.repository | ||||
| @@ -26,8 +29,6 @@ class Projects::ForkService < ApplicationService | |||||
| ProjectUnit.init_types(clone_project.id) | 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) | @project.update_column('forked_count', @project&.forked_count.to_i + 1) | ||||
| new_repository.update_column('url', result['clone_url']) if result | new_repository.update_column('url', result['clone_url']) if result | ||||
| @@ -1 +1,2 @@ | |||||
| json.extract! @project, :id, :name, :identifier | json.extract! @project, :id, :name, :identifier | ||||
| json.login @project&.owner&.login | |||||