Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
疯人忠
Cvat
提交
356bb8c5
C
Cvat
项目概览
疯人忠
/
Cvat
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cvat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
356bb8c5
编写于
12月 11, 2019
作者:
B
Boris Sekachev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ability to show hidden task
上级
68e7b528
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
77 addition
and
8 deletion
+77
-8
cvat-ui/src/actions/tasks-actions.ts
cvat-ui/src/actions/tasks-actions.ts
+13
-3
cvat-ui/src/components/tasks-page/task-item.tsx
cvat-ui/src/components/tasks-page/task-item.tsx
+9
-1
cvat-ui/src/components/tasks-page/tasks-page.tsx
cvat-ui/src/components/tasks-page/tasks-page.tsx
+29
-0
cvat-ui/src/containers/tasks-page/task-item.tsx
cvat-ui/src/containers/tasks-page/task-item.tsx
+2
-0
cvat-ui/src/containers/tasks-page/tasks-page.tsx
cvat-ui/src/containers/tasks-page/tasks-page.tsx
+12
-1
cvat-ui/src/reducers/interfaces.ts
cvat-ui/src/reducers/interfaces.ts
+1
-0
cvat-ui/src/reducers/tasks-reducer.ts
cvat-ui/src/reducers/tasks-reducer.ts
+11
-3
未找到文件。
cvat-ui/src/actions/tasks-actions.ts
浏览文件 @
356bb8c5
...
...
@@ -30,7 +30,7 @@ export enum TasksActionTypes {
UPDATE_TASK
=
'
UPDATE_TASK
'
,
UPDATE_TASK_SUCCESS
=
'
UPDATE_TASK_SUCCESS
'
,
UPDATE_TASK_FAILED
=
'
UPDATE_TASK_FAILED
'
,
RESET_ERROR
=
'
RESET_ERROR
'
,
HIDE_EMPTY_TASKS
=
'
HIDE_EMPTY_TASKS
'
,
}
function
getTasks
():
AnyAction
{
...
...
@@ -90,8 +90,7 @@ ThunkAction<Promise<void>, {}, {}, AnyAction> {
return
;
}
const
array
=
Array
.
from
(
result
)
.
filter
((
task
:
any
)
=>
task
.
jobs
.
length
>
0
);
const
array
=
Array
.
from
(
result
);
const
previews
=
[];
const
promises
=
array
.
map
((
task
):
string
=>
(
task
as
any
).
frames
.
preview
());
...
...
@@ -513,3 +512,14 @@ ThunkAction<Promise<void>, {}, {}, AnyAction> {
}
};
}
export
function
hideEmptyTasks
(
hideEmpty
:
boolean
):
AnyAction
{
const
action
=
{
type
:
TasksActionTypes
.
HIDE_EMPTY_TASKS
,
payload
:
{
hideEmpty
,
},
};
return
action
;
}
cvat-ui/src/components/tasks-page/task-item.tsx
浏览文件 @
356bb8c5
...
...
@@ -21,6 +21,7 @@ export interface TaskItemProps {
taskInstance
:
any
;
previewImage
:
string
;
deleted
:
boolean
;
hidden
:
boolean
;
activeInference
:
ActiveInference
|
null
;
}
...
...
@@ -181,13 +182,20 @@ class TaskItemComponent extends React.PureComponent<TaskItemProps & RouteCompone
}
public
render
():
JSX
.
Element
{
const
{
deleted
}
=
this
.
props
;
const
{
deleted
,
hidden
,
}
=
this
.
props
;
const
style
=
{};
if
(
deleted
)
{
(
style
as
any
).
pointerEvents
=
'
none
'
;
(
style
as
any
).
opacity
=
0.5
;
}
if
(
hidden
)
{
(
style
as
any
).
display
=
'
none
'
;
}
return
(
<
Row
className
=
'cvat-tasks-list-item'
type
=
'flex'
justify
=
'center'
align
=
'top'
style
=
{
{
...
style
}
}
>
{
this
.
renderPreview
()
}
...
...
cvat-ui/src/components/tasks-page/tasks-page.tsx
浏览文件 @
356bb8c5
...
...
@@ -4,8 +4,12 @@ import { withRouter } from 'react-router-dom';
import
{
Spin
,
Button
,
message
,
}
from
'
antd
'
;
import
Text
from
'
antd/lib/typography/Text
'
;
import
{
TasksQuery
,
}
from
'
../../reducers/interfaces
'
;
...
...
@@ -19,7 +23,9 @@ interface TasksPageProps {
gettingQuery
:
TasksQuery
;
numberOfTasks
:
number
;
numberOfVisibleTasks
:
number
;
numberOfHiddenTasks
:
number
;
onGetTasks
:
(
gettingQuery
:
TasksQuery
)
=>
void
;
hideEmptyTasks
:
(
hideEmpty
:
boolean
)
=>
void
;
}
function
getSearchField
(
gettingQuery
:
TasksQuery
):
string
{
...
...
@@ -85,12 +91,35 @@ class TasksPageComponent extends React.PureComponent<TasksPageProps & RouteCompo
location
,
gettingQuery
,
onGetTasks
,
numberOfHiddenTasks
,
hideEmptyTasks
,
}
=
this
.
props
;
if
(
prevProps
.
location
.
search
!==
location
.
search
)
{
// get new tasks if any query changes
const
query
=
updateQuery
(
gettingQuery
,
location
.
search
);
onGetTasks
(
query
);
return
;
}
if
(
numberOfHiddenTasks
)
{
message
.
destroy
();
message
.
info
(
<>
<
Text
>
Some tasks have not been showed because they do not have any data.
</
Text
>
<
Button
type
=
'link'
onClick
=
{
():
void
=>
{
hideEmptyTasks
(
false
);
message
.
destroy
();
}
}
>
Show all
</
Button
>
</>,
7
,
);
}
}
...
...
cvat-ui/src/containers/tasks-page/task-item.tsx
浏览文件 @
356bb8c5
...
...
@@ -15,6 +15,7 @@ import {
interface
StateToProps
{
deleted
:
boolean
;
hidden
:
boolean
;
previewImage
:
string
;
taskInstance
:
any
;
activeInference
:
ActiveInference
|
null
;
...
...
@@ -35,6 +36,7 @@ function mapStateToProps(state: CombinedState, own: OwnProps): StateToProps {
const
id
=
own
.
taskID
;
return
{
hidden
:
state
.
tasks
.
hideEmpty
&&
task
.
instance
.
jobs
.
length
===
0
,
deleted
:
deletes
.
byTask
[
id
]
?
deletes
.
byTask
[
id
]
===
true
:
false
,
previewImage
:
task
.
preview
,
taskInstance
:
task
.
instance
,
...
...
cvat-ui/src/containers/tasks-page/tasks-page.tsx
浏览文件 @
356bb8c5
...
...
@@ -2,23 +2,29 @@ import React from 'react';
import
{
connect
}
from
'
react-redux
'
;
import
{
Task
,
TasksQuery
,
CombinedState
,
}
from
'
../../reducers/interfaces
'
;
import
TasksPageComponent
from
'
../../components/tasks-page/tasks-page
'
;
import
{
getTasksAsync
}
from
'
../../actions/tasks-actions
'
;
import
{
getTasksAsync
,
hideEmptyTasks
,
}
from
'
../../actions/tasks-actions
'
;
interface
StateToProps
{
tasksFetching
:
boolean
;
gettingQuery
:
TasksQuery
;
numberOfTasks
:
number
;
numberOfVisibleTasks
:
number
;
numberOfHiddenTasks
:
number
;
}
interface
DispatchToProps
{
onGetTasks
:
(
gettingQuery
:
TasksQuery
)
=>
void
;
hideEmptyTasks
:
(
hideEmpty
:
boolean
)
=>
void
;
}
function
mapStateToProps
(
state
:
CombinedState
):
StateToProps
{
...
...
@@ -29,6 +35,8 @@ function mapStateToProps(state: CombinedState): StateToProps {
gettingQuery
:
tasks
.
gettingQuery
,
numberOfTasks
:
state
.
tasks
.
count
,
numberOfVisibleTasks
:
state
.
tasks
.
current
.
length
,
numberOfHiddenTasks
:
tasks
.
hideEmpty
?
tasks
.
current
.
filter
((
task
:
Task
)
=>
!
task
.
instance
.
jobs
.
length
).
length
:
0
,
};
}
...
...
@@ -37,6 +45,9 @@ function mapDispatchToProps(dispatch: any): DispatchToProps {
onGetTasks
:
(
query
:
TasksQuery
):
void
=>
{
dispatch
(
getTasksAsync
(
query
));
},
hideEmptyTasks
:
(
hideEmpty
:
boolean
):
void
=>
{
dispatch
(
hideEmptyTasks
(
hideEmpty
));
},
};
}
...
...
cvat-ui/src/reducers/interfaces.ts
浏览文件 @
356bb8c5
...
...
@@ -24,6 +24,7 @@ export interface Task {
export
interface
TasksState
{
initialized
:
boolean
;
fetching
:
boolean
;
hideEmpty
:
boolean
;
gettingQuery
:
TasksQuery
;
count
:
number
;
current
:
Task
[];
...
...
cvat-ui/src/reducers/tasks-reducer.ts
浏览文件 @
356bb8c5
...
...
@@ -7,6 +7,7 @@ import { TasksState, Task } from './interfaces';
const
defaultState
:
TasksState
=
{
initialized
:
false
,
fetching
:
false
,
hideEmpty
:
false
,
count
:
0
,
current
:
[],
gettingQuery
:
{
...
...
@@ -51,6 +52,10 @@ export default (state: TasksState = defaultState, action: AnyAction): TasksState
},
initialized
:
false
,
fetching
:
true
,
hideEmpty
:
true
,
count
:
0
,
current
:
[],
gettingQuery
:
{
...
action
.
payload
.
query
},
};
case
TasksActionTypes
.
GET_TASKS_SUCCESS
:
{
const
combinedWithPreviews
=
action
.
payload
.
array
...
...
@@ -73,9 +78,6 @@ export default (state: TasksState = defaultState, action: AnyAction): TasksState
...
state
,
initialized
:
true
,
fetching
:
false
,
count
:
0
,
current
:
[],
gettingQuery
:
{
...
action
.
payload
.
query
},
};
case
TasksActionTypes
.
DUMP_ANNOTATIONS
:
{
const
{
task
}
=
action
.
payload
;
...
...
@@ -405,6 +407,12 @@ export default (state: TasksState = defaultState, action: AnyAction): TasksState
}),
};
}
case
TasksActionTypes
.
HIDE_EMPTY_TASKS
:
{
return
{
...
state
,
hideEmpty
:
action
.
payload
.
hideEmpty
,
};
}
case
AuthActionTypes
.
LOGOUT_SUCCESS
:
{
return
{
...
defaultState
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录