Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
3b6ff7fc
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,发现更多精彩内容 >>
提交
3b6ff7fc
编写于
5月 10, 2017
作者:
A
Alfredo Sumaran
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add support to filter by name to Group list
上级
4c375338
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
52 addition
and
56 deletion
+52
-56
app/assets/javascripts/dispatcher.js
app/assets/javascripts/dispatcher.js
+0
-6
app/assets/javascripts/filterable_list.js
app/assets/javascripts/filterable_list.js
+3
-2
app/assets/javascripts/groups/components/group_folder.vue
app/assets/javascripts/groups/components/group_folder.vue
+0
-2
app/assets/javascripts/groups/components/groups.vue
app/assets/javascripts/groups/components/groups.vue
+5
-37
app/assets/javascripts/groups/index.js
app/assets/javascripts/groups/index.js
+38
-1
app/assets/javascripts/groups_list.js
app/assets/javascripts/groups_list.js
+3
-7
app/views/dashboard/groups/_groups.html.haml
app/views/dashboard/groups/_groups.html.haml
+3
-1
未找到文件。
app/assets/javascripts/dispatcher.js
浏览文件 @
3b6ff7fc
...
...
@@ -40,7 +40,6 @@ import Issue from './issue';
import
BindInOut
from
'
./behaviors/bind_in_out
'
;
import
Group
from
'
./group
'
;
import
GroupName
from
'
./group_name
'
;
import
GroupsList
from
'
./groups_list
'
;
import
ProjectsList
from
'
./projects_list
'
;
import
MiniPipelineGraph
from
'
./mini_pipeline_graph_dropdown
'
;
import
BlobLinePermalinkUpdater
from
'
./blob/blob_line_permalink_updater
'
;
...
...
@@ -148,12 +147,7 @@ const ShortcutsBlob = require('./shortcuts_blob');
case
'
admin:projects:index
'
:
new
ProjectsList
();
break
;
case
'
dashboard:groups:index
'
:
new
GroupsList
();
break
;
case
'
explore:groups:index
'
:
new
GroupsList
();
const
landingElement
=
document
.
querySelector
(
'
.js-explore-groups-landing
'
);
if
(
!
landingElement
)
break
;
const
exploreGroupsLanding
=
new
Landing
(
...
...
app/assets/javascripts/filterable_list.js
浏览文件 @
3b6ff7fc
...
...
@@ -4,7 +4,8 @@
*/
export
default
class
FilterableList
{
constructor
(
form
,
filter
,
holder
)
{
constructor
(
form
,
filter
,
holder
,
store
)
{
this
.
store
=
store
;
this
.
filterForm
=
form
;
this
.
listFilterElement
=
filter
;
this
.
listHolderElement
=
holder
;
...
...
@@ -33,7 +34,7 @@ export default class FilterableList {
$
(
this
.
listHolderElement
).
fadeTo
(
250
,
1
);
},
success
(
data
)
{
this
.
listHolderElement
.
innerHTML
=
data
.
html
;
this
.
store
.
setGroups
(
data
)
;
// Change url so if user reload a page - search results are saved
return
window
.
history
.
replaceState
({
...
...
app/assets/javascripts/groups/components/group_folder.vue
浏览文件 @
3b6ff7fc
<
script
>
import
eventHub
from
'
../event_hub
'
;
export
default
{
props
:
{
groups
:
{
...
...
app/assets/javascripts/groups/components/groups.vue
浏览文件 @
3b6ff7fc
<
script
>
import
GroupsStore
from
'
../stores/groups_store
'
;
import
GroupsService
from
'
../services/groups_service
'
;
import
eventHub
from
'
../event_hub
'
;
export
default
{
data
()
{
const
store
=
new
GroupsStore
();
return
{
store
,
state
:
store
.
state
,
};
},
created
()
{
const
appEl
=
document
.
querySelector
(
'
#dashboard-group-app
'
);
this
.
service
=
new
GroupsService
(
appEl
.
dataset
.
endpoint
);
this
.
fetchGroups
();
eventHub
.
$on
(
'
toggleSubGroups
'
,
this
.
toggleSubGroups
);
},
methods
:
{
fetchGroups
()
{
this
.
service
.
getGroups
()
.
then
((
response
)
=>
{
this
.
store
.
setGroups
(
response
.
json
());
})
.
catch
(()
=>
{
// TODO: Handler error
});
},
toggleSubGroups
(
group
)
{
GroupsStore
.
toggleSubGroups
(
group
);
this
.
fetchGroups
();
props
:
{
groups
:
{
type
:
Array
,
required
:
true
,
},
},
};
...
...
@@ -43,6 +11,6 @@ export default {
<
template
>
<div>
<group-folder
:groups=
"
state.
groups"
/>
<group-folder
:groups=
"groups"
/>
</div>
</
template
>
app/assets/javascripts/groups/index.js
浏览文件 @
3b6ff7fc
/* eslint-disable no-unused-vars */
import
Vue
from
'
vue
'
;
import
GroupsList
from
'
~/groups_list
'
;
import
GroupsComponent
from
'
./components/groups.vue
'
;
import
GroupFolder
from
'
./components/group_folder.vue
'
;
import
GroupItem
from
'
./components/group_item.vue
'
;
import
GroupsStore
from
'
./stores/groups_store
'
;
import
GroupsService
from
'
./services/groups_service
'
;
import
eventHub
from
'
./event_hub
'
;
$
(()
=>
{
const
appEl
=
document
.
querySelector
(
'
#dashboard-group-app
'
);
const
form
=
document
.
querySelector
(
'
form#group-filter-form
'
);
const
filter
=
document
.
querySelector
(
'
.js-groups-list-filter
'
);
const
holder
=
document
.
querySelector
(
'
.js-groups-list-holder
'
);
const
store
=
new
GroupsStore
();
const
service
=
new
GroupsService
(
appEl
.
dataset
.
endpoint
);
Vue
.
component
(
'
groups-component
'
,
GroupsComponent
);
Vue
.
component
(
'
group-folder
'
,
GroupFolder
);
...
...
@@ -14,6 +24,33 @@ $(() => {
const
GroupsApp
=
new
Vue
({
el
:
appEl
,
render
:
createElement
=>
createElement
(
'
groups-component
'
),
data
()
{
return
{
store
,
state
:
store
.
state
,
};
},
methods
:
{
fetchGroups
()
{
service
.
getGroups
()
.
then
((
response
)
=>
{
store
.
setGroups
(
response
.
json
());
})
.
catch
(()
=>
{
// TODO: Handler error
});
},
toggleSubGroups
(
group
)
{
GroupsStore
.
toggleSubGroups
(
group
);
this
.
fetchGroups
();
},
},
created
()
{
const
groupFilterList
=
new
GroupsList
(
form
,
filter
,
holder
,
store
);
this
.
fetchGroups
();
eventHub
.
$on
(
'
toggleSubGroups
'
,
this
.
toggleSubGroups
);
},
});
});
app/assets/javascripts/groups_list.js
浏览文件 @
3b6ff7fc
...
...
@@ -5,13 +5,9 @@ import FilterableList from './filterable_list';
* Updates the html content of the page with the received one.
*/
export
default
class
GroupsList
{
constructor
()
{
const
form
=
document
.
querySelector
(
'
form#group-filter-form
'
);
const
filter
=
document
.
querySelector
(
'
.js-groups-list-filter
'
);
const
holder
=
document
.
querySelector
(
'
.js-groups-list-holder
'
);
if
(
form
&&
filter
&&
holder
)
{
const
list
=
new
FilterableList
(
form
,
filter
,
holder
);
constructor
(
form
,
filter
,
holder
,
store
)
{
if
(
form
&&
filter
&&
holder
&&
store
)
{
const
list
=
new
FilterableList
(
form
,
filter
,
holder
,
store
);
list
.
initSearch
();
}
}
...
...
app/views/dashboard/groups/_groups.html.haml
浏览文件 @
3b6ff7fc
.js-groups-list-holder
#dashboard-group-app
{
data:
{
endpoint:
dashboard_groups_path
(
format: :json
)
}
}
.js-groups-list-holder
#dashboard-group-app
{
data:
{
endpoint:
dashboard_groups_path
(
format: :json
)
}
}
%groups-component
{
':groups'
=>
'state.groups'
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录