Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
ad58dec2
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ad58dec2
编写于
12月 23, 2016
作者:
J
Jose Ivan Vargas
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added groups to members section, added a members finder
上级
def6c43d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
35 addition
and
20 deletion
+35
-20
app/assets/javascripts/dispatcher.js.es6
app/assets/javascripts/dispatcher.js.es6
+2
-5
app/assets/javascripts/member_expiration_date.js
app/assets/javascripts/member_expiration_date.js
+7
-3
app/controllers/projects/group_links_controller.rb
app/controllers/projects/group_links_controller.rb
+2
-5
app/controllers/projects/settings/members_controller.rb
app/controllers/projects/settings/members_controller.rb
+8
-5
app/finders/members_finder.rb
app/finders/members_finder.rb
+13
-0
app/views/projects/group_links/_index.html.haml
app/views/projects/group_links/_index.html.haml
+1
-1
app/views/projects/settings/members/show.html.haml
app/views/projects/settings/members/show.html.haml
+2
-1
未找到文件。
app/assets/javascripts/dispatcher.js.es6
浏览文件 @
ad58dec2
...
...
@@ -215,8 +215,9 @@
new gl.Members();
new UsersSelect();
break;
case 'projects:project_members:index':
case 'projects:members:show':
new gl.MemberExpirationDate('.js-access-expiration-date-groups');
new GroupsSelect();
new gl.MemberExpirationDate();
new gl.Members();
new UsersSelect();
...
...
@@ -262,10 +263,6 @@
case 'projects:artifacts:browse':
new BuildArtifacts();
break;
case 'projects:group_links:index':
new gl.MemberExpirationDate();
new GroupsSelect();
break;
case 'search:show':
new Search();
break;
...
...
app/assets/javascripts/member_expiration_date.js
浏览文件 @
ad58dec2
...
...
@@ -5,12 +5,16 @@
// `js-clear-input` element, then show that element when there is a value in the
// datepicker, and make clicking on that element clear the field.
//
gl
.
MemberExpirationDate
=
function
()
{
gl
.
MemberExpirationDate
=
function
(
newSelector
)
{
function
toggleClearInput
()
{
$
(
this
).
closest
(
'
.clearable-input
'
).
toggleClass
(
'
has-value
'
,
$
(
this
).
val
()
!==
''
);
}
var
inputs
=
$
(
'
.js-access-expiration-date
'
);
var
selector
=
'
.js-access-expiration-date
'
;
if
(
typeof
newSelector
!==
'
undefined
'
&&
newSelector
!==
''
)
{
selector
=
newSelector
;
}
var
inputs
=
$
(
selector
);
inputs
.
datepicker
({
dateFormat
:
'
yy-mm-dd
'
,
...
...
@@ -24,7 +28,7 @@
inputs
.
next
(
'
.js-clear-input
'
).
on
(
'
click
'
,
function
(
event
)
{
event
.
preventDefault
();
var
input
=
$
(
this
).
closest
(
'
.clearable-input
'
).
find
(
'
.js-access-expiration-date
'
);
var
input
=
$
(
this
).
closest
(
'
.clearable-input
'
).
find
(
selector
);
input
.
datepicker
(
'
setDate
'
,
null
)
.
trigger
(
'
change
'
);
toggleClearInput
.
call
(
input
);
...
...
app/controllers/projects/group_links_controller.rb
浏览文件 @
ad58dec2
...
...
@@ -4,10 +4,7 @@ class Projects::GroupLinksController < Projects::ApplicationController
before_action
:authorize_admin_project_member!
,
only:
[
:update
]
def
index
@group_links
=
project
.
project_group_links
.
all
@skip_groups
=
@group_links
.
pluck
(
:group_id
)
@skip_groups
<<
project
.
namespace_id
unless
project
.
personal?
redirect_to
namespace_project_settings_members_path
end
def
create
...
...
@@ -19,7 +16,7 @@ class Projects::GroupLinksController < Projects::ApplicationController
project
.
project_group_links
.
create
(
group:
group
,
group_access:
params
[
:link_group_access
],
expires_at:
params
[
:expires_at
]
expires_at:
params
[
:expires_at
]
||
params
[
:expires_at_groups
]
)
else
flash
[
:alert
]
=
'Please select a group.'
...
...
app/controllers/projects/settings/members_controller.rb
浏览文件 @
ad58dec2
...
...
@@ -2,7 +2,7 @@ module Projects
module
Settings
class
MembersController
<
Projects
::
ApplicationController
include
SortingHelper
def
show
@sort
=
params
[
:sort
].
presence
||
sort_value_name
@group_links
=
@project
.
project_group_links
...
...
@@ -12,15 +12,18 @@ module Projects
group
=
@project
.
group
# group links
@group_links
=
@project
.
project_group_links
.
all
@skip_groups
=
@group_links
.
pluck
(
:group_id
)
@skip_groups
<<
@project
.
namespace_id
unless
project
.
personal?
if
group
# We need `.where.not(user_id: nil)` here otherwise when a group has an
# invitee, it would make the following query return 0 rows since a NULL
# user_id would be present in the subquery
# See http://stackoverflow.com/questions/129077/not-in-clause-and-null-values
# FIXME: This whole logic should be moved to a finder!
non_null_user_ids
=
@project_members
.
where
.
not
(
user_id:
nil
).
select
(
:user_id
)
group_members
=
group
.
group_members
.
where
.
not
(
user_id:
non_null_user_ids
)
group_members
=
group_members
.
non_invite
unless
can?
(
current_user
,
:admin_group
,
@group
)
group_members
=
MembersFinder
.
new
(
@project
,
@group
)
end
if
params
[
:search
].
present?
...
...
app/finders/members_finder.rb
0 → 100644
浏览文件 @
ad58dec2
class
MembersFinder
<
Projects
::
ApplicationController
def
initialize
(
project_members
,
group
)
@project_members
=
project_members
@group
=
group
end
def
execute
non_null_user_ids
=
@project_members
.
where
.
not
(
user_id:
nil
).
select
(
:user_id
)
group_members
=
@group
.
group_members
.
where
.
not
(
user_id:
non_null_user_ids
)
group_members
=
group_members
.
non_invite
unless
can?
(
current_user
,
:admin_group
,
@group
)
group_members
end
end
app/views/projects/group_links/index.html.haml
→
app/views/projects/group_links/
_
index.html.haml
浏览文件 @
ad58dec2
...
...
@@ -20,7 +20,7 @@
.form-group
=
label_tag
:expires_at
,
'Access expiration date'
,
class:
'label-light'
.clearable-input
=
text_field_tag
:expires_at
,
nil
,
class:
'form-control js-access-expiration-date
'
,
placeholder:
'Select access expiration date'
=
text_field_tag
:expires_at
_groups
,
nil
,
class:
'form-control js-access-expiration-date-groups
'
,
placeholder:
'Select access expiration date'
%i
.clear-icon.js-clear-input
.help-block
On this date, all users in the group will automatically lose access to this project.
...
...
app/views/projects/settings/members/show.html.haml
浏览文件 @
ad58dec2
-
page_title
"Members"
=
render
"projects/project_members/index"
=
render
"projects/project_members/index"
=
render
"projects/group_links/index"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录