diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4967505a3..27c927ed8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -479,6 +479,15 @@ module ApplicationHelper s.html_safe end + #扩展的checkbox生成 + def principals_check_box_tags_style_ex(name, principals) + s = '' + principals.each do |principal| + s << "\n" + end + s.html_safe + end + #扩展的checkbox生成 def principals_radio_box_tags_ex(name, principals) s = '' diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 3c7123435..14ddfa74a 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -46,6 +46,23 @@ module RepositoriesHelper end end + # 项目成员列表 + def render_principals_for_project(project) + scope = Principal.active.sorted.member_of(project).like(params[:q]) + principal_count = scope.count + principal_pages = Redmine::Pagination::Paginator.new principal_count, 10, params['page'] #by young + principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).all + + s = content_tag('div', principals_check_box_tags_style_ex('membership[user_ids][]', principals), :id => 'principals') + + links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options| + link_to text, autocomplete_project_memberships_path(project, parameters.merge(:q => params[:q], :format => 'js')), :remote => true + } + + s + content_tag('div', content_tag('ul', links), :class => 'pagination_new') + end + + def render_changeset_changes changes = @changeset.filechanges.limit(1000).reorder('path').all.collect do |change| case change.action diff --git a/app/views/repositories/_gitlab_user_manage.html.erb b/app/views/repositories/_gitlab_user_manage.html.erb index 30cf76f8a..7fda90173 100644 --- a/app/views/repositories/_gitlab_user_manage.html.erb +++ b/app/views/repositories/_gitlab_user_manage.html.erb @@ -1,126 +1,103 @@ <%= error_messages_for 'member' %> <% + roles = Hash.new + roles[:GUEST] = GitlabHelper::GUEST + roles[:REPORTER] = GitlabHelper::REPORTER + roles[:DEVELOPER] = GitlabHelper::DEVELOPER + roles[:MASTER] = GitlabHelper::MASTER members = @project.members %>
<%= l(:label_user) %> | -<%= l(:label_role_plural) %> | -- <%= call_hook(:view_projects_settings_members_table_header, :project => @project) %> - | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<%= link_to_user member.principal %> | -
+
<%= l(:label_no_data) %> + <% end %> + + |
+
+
+ <% if roles.any? %>
+ <%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
+ |
+
<%= l(:label_role_plural) %>: - <% roles.each do |role| %> - - <% end %>
-<%= submit_tag l(:button_add), :id => 'member-add-submit' %>
- - <% end %> - <% end %> -<%= l(:label_no_data) %>
diff --git a/config/locales/en.yml b/config/locales/en.yml index accb88591..633dd3e6d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1371,6 +1371,7 @@ en: label_gitlab_email: The email user to login gitlab label_gitlab_account: The account user to login gitlab label_gitlab_password: The password user to login gitlab + label_gitlab_user_manage: Gitlab user manage label_are_you_sure: Are you sure? label_how_commit_code: How to commit code: label_how_commit_code_chinese: Chinese diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 258895b1b..920cb9fce 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1572,6 +1572,7 @@ zh: label_gitlab_account: 用户登录Gitlab的账号,推荐使用当前用户。注意:若当前用户已创建过版本库,则会使用老账号 label_gitlab_email: 用户登录Gitlab的邮件,推荐使用当前用户邮件 label_gitlab_password: 用户登录Gitlab的密码,推荐使用当前用户密码。注意:若当前用户已创建过版本库,则会使用老密码 + label_gitlab_user_manage: Gitlab用户管理 label_are_you_sure: 您确定要删除版本库吗?如果这是系统创建的Git库,将同时删除所有版本数据。 label_how_commit_code: 查看如何提交代码: label_how_commit_code_chinese: 中文 diff --git a/lib/redmine.rb b/lib/redmine.rb index 6215a04ba..bd60efe61 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -172,6 +172,8 @@ Redmine::AccessControl.map do |map| map.permission :view_issue_watchers, {}, :read => true map.permission :add_issue_watchers, {:watchers => [:new, :create, :append, :autocomplete_for_user]} map.permission :delete_issue_watchers, {:watchers => :destroy} + + map.permission :add_gitlab_user, {:repositories => :committers}, :require => :loggedin end map.project_module :time_tracking do |map|