diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index a6b5f09cf..fa2c87f8c 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -18,6 +18,8 @@ class AttachmentsController < ApplicationController layout "users_base" + before_filter :verify_authenticity_token, only: [:uploa] + before_filter :find_project, :only => [:show, :download, :thumbnail, :destroy, :delete_homework]#, :except => [:upload, :autocomplete] before_filter :file_readable, :read_authorize, :only => [:show, :thumbnail]#Modified by young before_filter :delete_authorize, :only => [:destroy] diff --git a/app/controllers/quality_analysis_controller.rb b/app/controllers/quality_analysis_controller.rb index 3c2f29c84..6b50c1788 100644 --- a/app/controllers/quality_analysis_controller.rb +++ b/app/controllers/quality_analysis_controller.rb @@ -82,8 +82,8 @@ class QualityAnalysisController < ApplicationController end end - # sonar 缓冲,取数据 - sleep(3) + # sonar 缓冲,sonar生成数据 + sleep(10) # 获取sonar output结果 console_build = @client.job.get_console_output("#{job_name}", build_num = 0, start = 0, mode = 'text')["output"] diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 4764d1cd7..6b41e39fc 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -38,7 +38,7 @@ class RepositoriesController < ApplicationController before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue] before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked, :commit_diff, :project_archive, :quality_analysis] # 链接gitlab - before_filter :connect_gitlab, :only => [:quality_analysis, :show] + before_filter :connect_gitlab, :only => [:quality_analysis, :show, :commit_diff, :find_project_repository] # 版本库新增权限 before_filter :show_rep, :only => [:show] accept_rss_auth :revisions @@ -48,7 +48,6 @@ class RepositoriesController < ApplicationController include RepositoriesHelper helper :project_score #@root_path = RepositoriesHelper::ROOT_PATH - $g=Gitlab.client require 'net/ssh' rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed @@ -548,8 +547,8 @@ update # 每次提交对应的文件差异 def commit_diff - @commit_diff = $g.commit_diff(@project.gpid, params[:changeset]) - @commit_details = $g.commit(@project.gpid, params[:changeset]) + @commit_diff = @g.commit_diff(@project.gpid, params[:changeset]) + @commit_details = @g.commit(@project.gpid, params[:changeset]) render :layout => 'base_projects' end @@ -700,7 +699,8 @@ update (render_404; return false) unless @repository @path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s # gitlab端获取默认分支 - gitlab_branchs = $g.project(@project.gpid).default_branch + g = Gitlab.client + gitlab_branchs = g.project(@project.gpid).default_branch @project.gpid.nil? ? (@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip) : (@rev = params[:rev].blank? ? gitlab_branchs : params[:rev].to_s.strip) @rev_to = params[:rev_to] unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE) diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index b525c4aed..ef637d3ee 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -47,13 +47,11 @@ module RepositoriesHelper end # 获取文件目录的最新动态 - def get_trees_last_changes(project_id, rev, ent_name) - g = Gitlab.client + def get_trees_last_changes(project_id, rev, ent_name, g) begin tree_changes = g.rep_last_changes(project_id, :rev => rev, :path => ent_name) - tree_changes - rescue - logger.error("faile to get tress activities!") + rescue Exception => e + puts e end end @@ -65,7 +63,7 @@ module RepositoriesHelper # 获取diff内容行号 def diff_line_num content - content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i + content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.nil? ? "" : content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i end # 处理内容 diff --git a/app/models/changeset.rb b/app/models/changeset.rb index e05a7d2da..f72342257 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -64,14 +64,12 @@ class Changeset < ActiveRecord::Base includes(:repository => :project).where(Project.allowed_to_condition(args.shift || User.current, :view_changesets, *args)) } - after_create :scan_for_issues,:refresh_changests#:be_user_score # user_score - after_update :be_user_score + # after_create :scan_for_issues,:refresh_changests#:be_user_score # user_score + # after_update :be_user_score after_destroy :down_user_score - before_create :before_create_cs - - # fq - # after_create :act_as_activity - # end + # before_create :before_create_cs + after_create :act_as_forge_activity + def revision=(r) write_attribute :revision, (r.nil? ? nil : r.to_s) @@ -117,6 +115,12 @@ class Changeset < ActiveRecord::Base self.user = repository.find_committer_user(self.committer) end + # 项目中提交动态,类型Changeset + # type:0 为老版本即Trsutie数据 1为gitlab中获取的动态 + def act_as_forge_activity + self.acts << ForgeActivity.new(:user_id => self.user_id, :project_id => self.project_id, :type => true) + end + def scan_for_issues scan_comment_for_issue_ids end diff --git a/app/models/forge_activity.rb b/app/models/forge_activity.rb index 44b13b315..47ebf4d0f 100644 --- a/app/models/forge_activity.rb +++ b/app/models/forge_activity.rb @@ -23,46 +23,52 @@ class ForgeActivity < ActiveRecord::Base after_create :add_user_activity, :add_org_activity before_destroy :destroy_user_activity, :destroy_org_activity - #在个人动态里面增加当前动态 + # 在个人动态里面增加当前动态 + # 版本库提交动态不显示在用户动态中 def add_user_activity - user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'").first - if user_activity - user_activity.save - else - if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil? - user_activity = UserActivity.where("act_type = 'Message' and act_id = #{self.forge_act.parent.id}").first - user_activity.created_at = self.created_at + if self.forge_act_type != "Changeset" + user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'").first + if user_activity user_activity.save else - user_activity = UserActivity.new - user_activity.act_id = self.forge_act_id - user_activity.act_type = self.forge_act_type - user_activity.container_type = "Project" - user_activity.container_id = self.project_id - user_activity.user_id = self.user_id - user_activity.save + if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil? + user_activity = UserActivity.where("act_type = 'Message' and act_id = #{self.forge_act.parent.id}").first + user_activity.created_at = self.created_at + user_activity.save + else + user_activity = UserActivity.new + user_activity.act_id = self.forge_act_id + user_activity.act_type = self.forge_act_type + user_activity.container_type = "Project" + user_activity.container_id = self.project_id + user_activity.user_id = self.user_id + user_activity.save + end end end end + # 项目提交动态不显示在组织动态中 def add_org_activity - org_activity = OrgActivity.where("org_act_type = '#{self.forge_act_type.to_s}' and org_act_id = #{self.forge_act_id}").first - if org_activity - org_activity.updated_at = self.updated_at - org_activity.save - else - if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil? - org_activity = OrgActivity.where("org_act_type = 'Message' and org_act_id = #{self.forge_act.parent.id}").first - org_activity.created_at = self.created_at + if self.forge_act_type != "Changeset" + org_activity = OrgActivity.where("org_act_type = '#{self.forge_act_type.to_s}' and org_act_id = #{self.forge_act_id}").first + if org_activity + org_activity.updated_at = self.updated_at org_activity.save else - OrgActivity.create(:user_id => self.user_id, - :org_act_id => self.forge_act_id, - :org_act_type => self.forge_act_type, - :container_id => self.project_id, - :container_type => 'Project', - :created_at => self.created_at, - :updated_at => self.updated_at) + if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil? + org_activity = OrgActivity.where("org_act_type = 'Message' and org_act_id = #{self.forge_act.parent.id}").first + org_activity.created_at = self.created_at + org_activity.save + else + OrgActivity.create(:user_id => self.user_id, + :org_act_id => self.forge_act_id, + :org_act_type => self.forge_act_type, + :container_id => self.project_id, + :container_type => 'Project', + :created_at => self.created_at, + :updated_at => self.updated_at) + end end end end diff --git a/app/views/account/about_us.html.erb b/app/views/account/about_us.html.erb index f990cd64c..a2b1c895b 100644 --- a/app/views/account/about_us.html.erb +++ b/app/views/account/about_us.html.erb @@ -1,4 +1,4 @@ -<%= stylesheet_link_tag 'new_user'%> +<%= stylesheet_link_tag 'css/public'%>