Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
疯人忠
Cvat
提交
68e7b528
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,发现更多精彩内容 >>
提交
68e7b528
编写于
12月 11, 2019
作者:
B
Boris Sekachev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improved tasks routing
上级
5bea353a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
31 deletion
+55
-31
cvat-ui/src/components/header/header.tsx
cvat-ui/src/components/header/header.tsx
+1
-1
cvat-ui/src/components/tasks-page/tasks-page.tsx
cvat-ui/src/components/tasks-page/tasks-page.tsx
+54
-30
未找到文件。
cvat-ui/src/components/header/header.tsx
浏览文件 @
68e7b528
...
...
@@ -57,7 +57,7 @@ function HeaderContainer(props: Props): JSX.Element {
type
=
'link'
value
=
'tasks'
onClick
=
{
():
void
=>
props
.
history
.
push
(
'
/tasks
'
)
():
void
=>
props
.
history
.
push
(
'
/tasks
?page=1
'
)
}
>
Tasks
...
...
cvat-ui/src/components/tasks-page/tasks-page.tsx
浏览文件 @
68e7b528
...
...
@@ -43,6 +43,31 @@ function getSearchField(gettingQuery: TasksQuery): string {
return
searchString
.
slice
(
0
,
-
5
);
}
function
updateQuery
(
previousQuery
:
TasksQuery
,
searchString
:
string
):
TasksQuery
{
const
params
=
new
URLSearchParams
(
searchString
);
const
query
=
{
...
previousQuery
};
for
(
const
field
of
Object
.
keys
(
query
))
{
if
(
params
.
has
(
field
))
{
const
value
=
params
.
get
(
field
);
if
(
value
)
{
if
(
field
===
'
id
'
||
field
===
'
page
'
)
{
if
(
Number
.
isInteger
(
+
value
))
{
query
[
field
]
=
+
value
;
}
}
else
{
query
[
field
]
=
value
;
}
}
}
else
if
(
field
===
'
page
'
)
{
query
[
field
]
=
1
;
}
else
{
query
[
field
]
=
null
;
}
}
return
query
;
}
class
TasksPageComponent
extends
React
.
PureComponent
<
TasksPageProps
&
RouteComponentProps
>
{
public
componentDidMount
():
void
{
const
{
...
...
@@ -50,38 +75,30 @@ class TasksPageComponent extends React.PureComponent<TasksPageProps & RouteCompo
location
,
onGetTasks
,
}
=
this
.
props
;
const
params
=
new
URLSearchParams
(
location
.
search
);
const
query
=
{
...
gettingQuery
};
for
(
const
field
of
Object
.
keys
(
query
))
{
if
(
params
.
has
(
field
))
{
const
value
=
params
.
get
(
field
);
if
(
value
)
{
if
(
field
===
'
id
'
||
field
===
'
page
'
)
{
if
(
Number
.
isInteger
(
+
value
))
{
query
[
field
]
=
+
value
;
}
}
else
{
query
[
field
]
=
value
;
}
}
}
else
if
(
field
===
'
page
'
)
{
query
[
field
]
=
1
;
}
else
{
query
[
field
]
=
null
;
}
}
this
.
updateURL
(
query
);
const
query
=
updateQuery
(
gettingQuery
,
location
.
search
);
onGetTasks
(
query
);
}
p
rivate
handleSearch
=
(
value
:
string
):
void
=>
{
p
ublic
componentDidUpdate
(
prevProps
:
TasksPageProps
&
RouteComponentProps
):
void
{
const
{
location
,
gettingQuery
,
onGetTasks
,
}
=
this
.
props
;
if
(
prevProps
.
location
.
search
!==
location
.
search
)
{
// get new tasks if any query changes
const
query
=
updateQuery
(
gettingQuery
,
location
.
search
);
onGetTasks
(
query
);
}
}
private
handleSearch
=
(
value
:
string
):
void
=>
{
const
{
gettingQuery
,
}
=
this
.
props
;
const
query
=
{
...
gettingQuery
};
const
search
=
value
.
replace
(
/
\s
+/g
,
'
'
).
replace
(
/
\s
*:+
\s
*/g
,
'
:
'
).
trim
();
...
...
@@ -114,19 +131,19 @@ class TasksPageComponent extends React.PureComponent<TasksPageProps & RouteCompo
}
this
.
updateURL
(
query
);
onGetTasks
(
query
);
};
private
handlePagination
=
(
page
:
number
):
void
=>
{
const
{
gettingQuery
,
onGetTasks
,
}
=
this
.
props
;
const
query
=
{
...
gettingQuery
};
// modify query object
const
query
=
{
...
gettingQuery
};
query
.
page
=
page
;
// update url according to new query object
this
.
updateURL
(
query
);
onGetTasks
(
query
);
};
private
updateURL
(
gettingQuery
:
TasksQuery
):
void
{
...
...
@@ -137,9 +154,16 @@ class TasksPageComponent extends React.PureComponent<TasksPageProps & RouteCompo
queryString
+=
`
${
field
}
=
${
gettingQuery
[
field
]}
&`
;
}
}
history
.
replace
({
search
:
queryString
.
slice
(
0
,
-
1
),
});
const
oldQueryString
=
history
.
location
.
search
;
if
(
oldQueryString
!==
queryString
)
{
history
.
push
({
search
:
queryString
.
slice
(
0
,
-
1
),
});
// force update if any changes
this
.
forceUpdate
();
}
}
public
render
():
JSX
.
Element
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录