From f8b94343d4c877c9ad1d5f24c7ee79a4d405715a Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 15:25:51 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=BA=93=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=BC=96=E8=BE=91=E4=BF=9D=E5=AD=98=E5=90=8E=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/_link_to_functions.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/repositories/_link_to_functions.html.erb b/app/views/repositories/_link_to_functions.html.erb index 5f0c80292..8e92cb14f 100644 --- a/app/views/repositories/_link_to_functions.html.erb +++ b/app/views/repositories/_link_to_functions.html.erb @@ -27,7 +27,7 @@ <% else %> <% if params[:controller] == "shixuns" && params[:action] == "entry_edit" %> 保存 - <% elsif params[:action] == "shixun_entry" %> + <% elsif params[:action] == "shixun_entry" || params[:action] == "entry_update" %> <%= link_to "编辑", entry_edit_shixun_path(@shixun, :path => @path, :rev => @rev), :class => "fl mr5", :remote => true %> <% end %> <% end %> From bf0b3c10311f86aa850af6b378683b990da1de9c Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 16:15:46 +0800 Subject: [PATCH 2/6] =?UTF-8?q?TPM=E7=89=88=E6=9C=AC=E5=BA=93=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repositories/shixun_commit_diff.html.erb | 24 +++++++++++++++++++ config/routes.rb | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 app/views/repositories/shixun_commit_diff.html.erb diff --git a/app/views/repositories/shixun_commit_diff.html.erb b/app/views/repositories/shixun_commit_diff.html.erb new file mode 100644 index 000000000..1570978b9 --- /dev/null +++ b/app/views/repositories/shixun_commit_diff.html.erb @@ -0,0 +1,24 @@ +
+
+
+ <%=link_to "返回提交历史".html_safe, + {:action => 'commits', :path => to_path_param(@path), :id => @shixun, :repository_id => @repository.identifier_param, + :rev => @rev, :page => 1 ,:commit_count =>"#{@changesets_all_count}"}, :class => "fl linkBlue2 mt3" %> +
+
+ <% unless @commit_diff.blank? %> + <% @commit_diff.each do |commit_diff| %> + +
+ <%= render :partial => 'repositories/change_diff', :locals => {:change => commit_diff} %> +
+ <% end %> + <% else %> + <%= render "welcome/no_data" %> + <% end %> + +
diff --git a/config/routes.rb b/config/routes.rb index 1d2717517..11c3e87b1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1332,7 +1332,7 @@ RedmineApp::Application.routes.draw do get 'projects/:id/repository/:repository_id/changes(/*path(.:ext))', :to => 'repositories#changes' # shixun get 'shixuns/:id/repository/:repository_id/commits(/*path(.:ext))', :to => 'repositories#commits' - get 'shixuns/:id/repository/:repository_id/commits/:changeset_id', :to => 'repositories#commits' + get 'shixuns/:id/repository/:repository_id/shixun_commit_diff/:changeset_id', :to => 'repositories#shixun_commit_diff' get 'projects/:id/repository/:repository_id/revisions/:rev', :to => 'repositories#revision' get 'projects/:id/repository/:repository_id/revision', :to => 'repositories#revision' From b1e3f14050a42db0499bf17da6c3479f8587b2eb Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 16:16:12 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=BA=93500=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 17 ++++++++++++++--- app/views/repositories/commits.html.erb | 4 ++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index b081230d1..e629f4a25 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -36,17 +36,17 @@ class RepositoriesController < ApplicationController before_filter :find_repository, :only => [:edit, :update, :destroy, :committers] before_filter :find_project_repository, :except => [:commits, :shixun_show, :new, :create, :newcreate, :edit, :update, :destroy, :committers, - :newrepo, :to_gitlab, :forked, :export_rep_static, :training_project_extend, :shixun_entry] + :newrepo, :to_gitlab, :forked, :export_rep_static, :training_project_extend, :shixun_entry, :shixun_commit_diff] # 实训项目新增 - before_filter :find_project_and_repository, :only => [:commits, :shixun_show, :shixun_entry] + before_filter :find_project_and_repository, :only => [:commits, :shixun_show, :shixun_entry, :shixun_commit_diff] # 连接gitlab # before_filter :connect_gitlab, :only => [:quality_analysis, :commit_diff] before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue] # before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked, :project_archive, :quality_analysis, :commit_diff] - before_filter :authorize_visible , :except => [:shixun_show, :newrepo,:newcreate,:fork, :to_gitlab, :forked, :project_archive, :quality_analysis, :commit_diff] + before_filter :authorize_visible , :except => [:shixun_show, :newrepo,:newcreate,:fork, :to_gitlab, :forked, :project_archive, :quality_analysis, :commit_diff, :shixun_commit_diff] # 版本库新增权限 # before_filter :show_rep, :only => [:show, :stats, :revisions, :revision, :diff, :commit_diff ] accept_rss_auth :revisions @@ -798,6 +798,17 @@ update render :layout => 'base_projects' end + def shixun_commit_diff + @commit_diff = @g.commit_diff(@shixun.gpid, params[:changeset_id]) + diff = ActiveSupport::JSON.decode(@commit_diff.to_json).first + diff = OpenStruct.new(diff) + @diff_file = Trustie::Gitlab::Diff::File.new(diff) + + + # @commit_details = @g.commit(@project.gpid, params[:changeset]) + render :layout => 'base_shixun' + end + # 实训项目 # 每次提交对应的文件差异 def commit diff --git a/app/views/repositories/commits.html.erb b/app/views/repositories/commits.html.erb index ef58abfa6..9c79e2a2c 100644 --- a/app/views/repositories/commits.html.erb +++ b/app/views/repositories/commits.html.erb @@ -16,12 +16,12 @@ <%= time_tag(commit.created_at) %>前 <%= link_to_user_mail(commit.author_email, "pullreques_pull_name fl ml10") %>

<%= commit.title %>

- <%= link_to truncate(commit.short_id, :length => 20), {:controller => 'repositories', :action => 'commits', :id => @shixun.id, :changeset_id => commit.id}, :target => "_blank", :class => "fr mr15 c_grey" %> + <%= link_to truncate(commit.short_id, :length => 20), {:controller => 'repositories', :action => 'shixun_commit_diff', :id => @shixun, :changeset_id => commit.id}, :target => "_blank", :class => "fr mr15 c_grey" %> <% unless get_commit_issues(commit.short_id, @shixun.id, 0).nil? %> <% get_commit_issues(commit.short_id, @shixun.id, 0).each do |issue_id| %>
<% if issue_id == "more" %> - <%= link_to "更多", {:controller => 'repositories', :action => 'commit_diff', :id => @shixun.id, :changeset => commit.id}, :target => "_blank", :class => "commit_id_value mr5" %> + <%= link_to "更多", {:controller => 'repositories', :action => 'commit_diff', :id => @shixun, :changeset => commit.id}, :target => "_blank", :class => "commit_id_value mr5" %> <% else %> <%= link_to "##{issue_id}", issue_path(issue_id), :target => "_blank", :class => "commit_id_value mr5" %> <% end %> From d93bd9388e086a11cc8c587152ef036cad29746f Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 16:41:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=BA=93=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=88=86=E9=A1=B5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index e629f4a25..ef1796531 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -620,7 +620,7 @@ update @project_menu_type = 5 @entry = @repository.entry(@path, @rev) (show_error_not_found; return) unless @entry - limit = 10 + limit = 20 # 每次页面的换回值从1开始,但是gitlab的页面查询是从0开始,所以先改变page的类型减一在改回来 @commits = @g.commits(@shixun.gpid, page:(params[:page].to_i - 1).to_s, ref_name:@rev) @commits_count = params[:commit_count].nil? ? @g.user_static(@shixun.gpid, :rev => @rev).count : params[:commit_count].to_i From c5ebdbde41421d25f178907010424007c5a04edd Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 17:20:16 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=BA=93=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=88=86=E9=A1=B5?= =?UTF-8?q?bug=EF=BC=88gitlab=E6=95=B0=E6=8D=AE=E5=88=86=E9=A1=B5=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E4=BC=9A?= =?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 16 +++++++++++++++- app/controllers/repositories_controller.rb | 8 ++++++-- app/views/repositories/commits.html.erb | 4 ++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e0cbc2524..185aee8fc 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -943,7 +943,7 @@ class ApplicationController < ActionController::Base if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation obj.limit(@obj_pages.per_page).offset(@obj_pages.offset) elsif obj.kind_of? Array - obj[@obj_pages.offset, @obj_pages.per_page] + obj[@obj_pages.item_count, @obj_pages.per_page] else logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}" raise RuntimeError, 'unknow type, Please input you type into this helper.' @@ -963,6 +963,20 @@ class ApplicationController < ActionController::Base end end + # gitlab分页定制 + def paginateHelperForGitlab obj, pre_size=15 + @obj_count = obj.count + @obj_pages = Paginator.new @obj_count, pre_size, params['page'] + if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation + obj.limit(@obj_pages.per_page).offset(@obj_pages.offset) + elsif obj.kind_of? Array + obj[0, @obj_pages.per_page] + else + logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}" + raise RuntimeError, 'unknow type, Please input you type into this helper.' + end + end + #查找首页相关信息 def find_first_page @first_page = FirstPage.find_by_page_type('project') diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index ef1796531..0a139e648 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -620,11 +620,15 @@ update @project_menu_type = 5 @entry = @repository.entry(@path, @rev) (show_error_not_found; return) unless @entry - limit = 20 + limit = 15 # 每次页面的换回值从1开始,但是gitlab的页面查询是从0开始,所以先改变page的类型减一在改回来 @commits = @g.commits(@shixun.gpid, page:(params[:page].to_i - 1).to_s, ref_name:@rev) @commits_count = params[:commit_count].nil? ? @g.user_static(@shixun.gpid, :rev => @rev).count : params[:commit_count].to_i - @commits_pages = Paginator.new @commits_count, limit, params[:page] + # @commits_pages = Paginator.new @commits_count, limit, params[:page] + + @commits_pages = Paginator.new @commits_count, limit, params['page'] || 1 + @offset ||= @commits_pages.offset + @commits = paginateHelperForGitlab @commits, limit render :layout => 'base_shixun' end diff --git a/app/views/repositories/commits.html.erb b/app/views/repositories/commits.html.erb index 9c79e2a2c..0502b6235 100644 --- a/app/views/repositories/commits.html.erb +++ b/app/views/repositories/commits.html.erb @@ -35,15 +35,15 @@
<% end %> +
-
+
    <%= pagination_links_full @commits_pages, @commits_count, :per_page_links => false, :remote => false, :flag => true, :is_new => true %>
-
<%= call_hook(:view_repositories_show_contextual, { :repository => @repository, :project => @shixun }) %> <% html_title(l(:label_change_plural)) -%> From e4dec24e9030c5259700b1a189061da325ae963c Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 13 Jul 2017 17:32:29 +0800 Subject: [PATCH 6/6] 0 --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 185aee8fc..1e8ae7f1e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -943,7 +943,7 @@ class ApplicationController < ActionController::Base if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation obj.limit(@obj_pages.per_page).offset(@obj_pages.offset) elsif obj.kind_of? Array - obj[@obj_pages.item_count, @obj_pages.per_page] + obj[@obj_pages.offset, @obj_pages.per_page] else logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}" raise RuntimeError, 'unknow type, Please input you type into this helper.'