Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hnxtbaboot
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨亮
hnxtbaboot
Commits
12139aa2
Commit
12139aa2
authored
Jun 22, 2020
by
焦荣
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
90b8ea2f
3d80c672
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
152 additions
and
13 deletions
+152
-13
src/main/java/com/founder/config/DefaultViewConfig.java
+3
-3
src/main/java/com/founder/controller/TbXwRycjController.java
+33
-3
src/main/java/com/founder/model/AutoTbStRy.java
+34
-0
src/main/resources/application-prod.properties
+1
-1
src/main/resources/templates/rygl/addryxx.html
+25
-1
src/main/resources/templates/rygl/ryxxlist.html
+46
-3
src/main/resources/templates/sswp/sswpcxlist.html
+2
-1
src/main/resources/templates/swcj/swcj.html
+4
-1
src/main/resources/templates/yhkcj/yhkcxlist.html
+4
-0
No files found.
src/main/java/com/founder/config/DefaultViewConfig.java
View file @
12139aa2
...
...
@@ -14,7 +14,7 @@ public class DefaultViewConfig implements WebMvcConfigurer {
@Override
public
void
addViewControllers
(
ViewControllerRegistry
registry
)
{
registry
.
addViewController
(
"/toLogin"
).
setViewName
(
"login/login
_dongguan
"
);
registry
.
addViewController
(
"/toLogin"
).
setViewName
(
"login/login"
);
registry
.
addViewController
(
"/hncsLogin"
).
setViewName
(
"login/login_hncs"
);
registry
.
addViewController
(
"/hnzzLogin"
).
setViewName
(
"login/login_hnzz"
);
registry
.
addViewController
(
"/hnxtLogin"
).
setViewName
(
"login/login_hnxt"
);
...
...
@@ -33,8 +33,8 @@ public class DefaultViewConfig implements WebMvcConfigurer {
registry
.
addViewController
(
"/neimengLogin"
).
setViewName
(
"login/login_neimeng"
);
registry
.
addViewController
(
"/dongguanLogin"
).
setViewName
(
"login/login_dongguan"
);
registry
.
addViewController
(
"/noLogin"
).
setViewName
(
"login/login
_dongguan
"
);
registry
.
addViewController
(
"/"
).
setViewName
(
"login/login_dongguan"
);
registry
.
addViewController
(
"/noLogin"
).
setViewName
(
"login/login"
);
//
registry.addViewController("/").setViewName("login/login_dongguan");
registry
.
addViewController
(
"/toFjxz"
).
setViewName
(
"login/fjxz/common_fjxz"
);
registry
.
addViewController
(
"/toCzsmxz"
).
setViewName
(
"login/fjxz/common_czsm"
);
registry
.
addViewController
(
"/toObjectKJ"
).
setViewName
(
"rygl/objectKJ"
);
...
...
src/main/java/com/founder/controller/TbXwRycjController.java
View file @
12139aa2
...
...
@@ -252,6 +252,12 @@ public class TbXwRycjController {
User
user
=
(
User
)
request
.
getSession
().
getAttribute
(
"User"
);
model
.
addAttribute
(
"username"
,
user
.
getUsername
());
model
.
addAttribute
(
"unitcode"
,
user
.
getUnitcode
());
model
.
addAttribute
(
"hmzt"
,
"0"
);
model
.
addAttribute
(
"zjzt"
,
"0"
);
model
.
addAttribute
(
"swzt"
,
"0"
);
model
.
addAttribute
(
"sjzt"
,
"0"
);
model
.
addAttribute
(
"yhkzt"
,
"0"
);
model
.
addAttribute
(
"sswpzt"
,
"0"
);
model
.
addAttribute
(
"ryxx"
,
xyrC
);
model
.
addAttribute
(
"saveflag"
,
"0"
);
return
"ryswtz/ryccxx"
;
...
...
@@ -412,13 +418,19 @@ public class TbXwRycjController {
}
@RequestMapping
(
"/toEditRyxx"
)
public
String
toEditYsseryxx
(
String
asjxgrybh
,
String
cjsb
,
String
perurl
,
Model
model
,
HttpServletRequest
request
){
public
String
toEditYsseryxx
(
String
asjxgrybh
,
String
cjsb
,
String
perurl
,
String
hmzt
,
String
zjzt
,
String
swzt
,
String
sjzt
,
String
yhkzt
,
String
sswpzt
,
Model
model
,
HttpServletRequest
request
){
User
user
=
(
User
)
request
.
getSession
().
getAttribute
(
"User"
);
if
(
asjxgrybh
==
null
||
""
.
equals
(
asjxgrybh
)){
AutoTbStRy
xyrC
=
new
AutoTbStRy
();
model
.
addAttribute
(
"ryxx"
,
xyrC
);
model
.
addAttribute
(
"saveflag"
,
"0"
);
model
.
addAttribute
(
"perurl"
,
perurl
);
model
.
addAttribute
(
"hmzt"
,
hmzt
);
model
.
addAttribute
(
"zjzt"
,
zjzt
);
model
.
addAttribute
(
"swzt"
,
swzt
);
model
.
addAttribute
(
"sjzt"
,
sjzt
);
model
.
addAttribute
(
"yhkzt"
,
yhkzt
);
model
.
addAttribute
(
"sswpzt"
,
sswpzt
);
}
else
{
AutoTbStRy
xyrC
=
rycjService
.
getRyxxByRybh
(
asjxgrybh
);
if
(
xyrC
.
getLrr
()!=
null
&&!
""
.
equals
(
xyrC
.
getLrr
())){
...
...
@@ -573,6 +585,12 @@ public class TbXwRycjController {
model
.
addAttribute
(
"saveflag"
,
"0"
);
model
.
addAttribute
(
"cjsb"
,
cjsb
);
model
.
addAttribute
(
"perurl"
,
perurl
);
model
.
addAttribute
(
"hmzt"
,
hmzt
);
model
.
addAttribute
(
"zjzt"
,
zjzt
);
model
.
addAttribute
(
"swzt"
,
swzt
);
model
.
addAttribute
(
"sjzt"
,
sjzt
);
model
.
addAttribute
(
"yhkzt"
,
yhkzt
);
model
.
addAttribute
(
"sswpzt"
,
sswpzt
);
}
String
ips
=
""
;
try
{
...
...
@@ -585,7 +603,7 @@ public class TbXwRycjController {
}
@RequestMapping
(
"/doAddRyxx"
)
public
String
doAddYsseryxx
(
AutoTbStRy
zbfzxyr
,
String
cjsb
,
Model
model
,
HttpServletRequest
request
,
@RequestParam
(
"R_EDZZP_File"
)
MultipartFile
R_EDZZP_File
,
@RequestParam
(
"R_ZMZP_File"
)
MultipartFile
R_ZMZP_File
,
MultipartFile
R_CMZP_File
,
MultipartFile
R_YCMZP_File
){
public
String
doAddYsseryxx
(
AutoTbStRy
zbfzxyr
,
String
cjsb
,
String
hmzt
,
String
zjzt
,
String
swzt
,
String
sjzt
,
String
yhkzt
,
String
sswpzt
,
Model
model
,
HttpServletRequest
request
,
@RequestParam
(
"R_EDZZP_File"
)
MultipartFile
R_EDZZP_File
,
@RequestParam
(
"R_ZMZP_File"
)
MultipartFile
R_ZMZP_File
,
MultipartFile
R_CMZP_File
,
MultipartFile
R_YCMZP_File
){
DateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
DateFormat
df1
=
new
SimpleDateFormat
(
"MM/dd/yyyy"
);
try
{
...
...
@@ -938,12 +956,18 @@ public class TbXwRycjController {
model
.
addAttribute
(
"ryxx"
,
xyrC
);
model
.
addAttribute
(
"saveflag"
,
"1"
);
model
.
addAttribute
(
"cjsb"
,
cjsb
);
model
.
addAttribute
(
"hmzt"
,
hmzt
);
model
.
addAttribute
(
"zjzt"
,
zjzt
);
model
.
addAttribute
(
"swzt"
,
swzt
);
model
.
addAttribute
(
"sjzt"
,
sjzt
);
model
.
addAttribute
(
"yhkzt"
,
yhkzt
);
model
.
addAttribute
(
"sswpzt"
,
sswpzt
);
model
.
addAttribute
(
"clent"
,
ips
);
return
"rygl/addryxx.html"
;
}
@RequestMapping
(
"/doEditRyxx"
)
public
String
doEditYsseryxx
(
AutoTbStRy
zbfzxyr
,
String
cjsb
,
Model
model
,
HttpServletRequest
request
,
@RequestParam
(
"R_EDZZP_File"
)
MultipartFile
R_EDZZP_File
,
@RequestParam
(
"R_ZMZP_File"
)
MultipartFile
R_ZMZP_File
,
MultipartFile
R_CMZP_File
,
MultipartFile
R_YCMZP_File
){
public
String
doEditYsseryxx
(
AutoTbStRy
zbfzxyr
,
String
cjsb
,
String
hmzt
,
String
zjzt
,
String
swzt
,
String
sjzt
,
String
yhkzt
,
String
sswpzt
,
Model
model
,
HttpServletRequest
request
,
@RequestParam
(
"R_EDZZP_File"
)
MultipartFile
R_EDZZP_File
,
@RequestParam
(
"R_ZMZP_File"
)
MultipartFile
R_ZMZP_File
,
MultipartFile
R_CMZP_File
,
MultipartFile
R_YCMZP_File
){
String
ips
=
""
;
try
{
ips
=
SysUitl
.
getIp
(
request
);
...
...
@@ -1352,6 +1376,12 @@ public class TbXwRycjController {
model
.
addAttribute
(
"ryxx"
,
xyrC
);
model
.
addAttribute
(
"saveflag"
,
"1"
);
model
.
addAttribute
(
"cjsb"
,
cjsb
);
model
.
addAttribute
(
"hmzt"
,
hmzt
);
model
.
addAttribute
(
"zjzt"
,
zjzt
);
model
.
addAttribute
(
"swzt"
,
swzt
);
model
.
addAttribute
(
"sjzt"
,
sjzt
);
model
.
addAttribute
(
"yhkzt"
,
yhkzt
);
model
.
addAttribute
(
"sswpzt"
,
sswpzt
);
model
.
addAttribute
(
"clent"
,
ips
);
return
"rygl/addryxx.html"
;
}
...
...
src/main/java/com/founder/model/AutoTbStRy.java
View file @
12139aa2
...
...
@@ -209,6 +209,7 @@ public class AutoTbStRy implements Serializable {
private
String
sjjbxx
;
//是否采集手机基本信息
private
String
sjlxrxx
;
//是否采集手机联系人信息
private
String
yhk
;
//是否采集银行卡
private
String
sswp
;
//是否采集随身物品
private
String
thjl
;
//是否采集手机通话记录信息
private
String
dxjl
;
//是否采集手机短信信息
private
String
xnsf
;
//是否采集手机虚拟身份信息
...
...
@@ -1728,4 +1729,36 @@ public class AutoTbStRy implements Serializable {
public
void
setTssfdmStr
(
String
tssfdmStr
)
{
this
.
tssfdmStr
=
tssfdmStr
;
}
public
String
getSswp
()
{
return
sswp
;
}
public
void
setSswp
(
String
sswp
)
{
this
.
sswp
=
sswp
;
}
public
String
getThjl
()
{
return
thjl
;
}
public
void
setThjl
(
String
thjl
)
{
this
.
thjl
=
thjl
;
}
public
String
getDxjl
()
{
return
dxjl
;
}
public
void
setDxjl
(
String
dxjl
)
{
this
.
dxjl
=
dxjl
;
}
public
String
getXnsf
()
{
return
xnsf
;
}
public
void
setXnsf
(
String
xnsf
)
{
this
.
xnsf
=
xnsf
;
}
}
\ No newline at end of file
src/main/resources/application-prod.properties
View file @
12139aa2
...
...
@@ -13,7 +13,7 @@ mybatis.type-aliases-package=com.founder.model
mybatis.mapperLocations
=
classpath:mapper/*.xml
#刑专数据源配置
spring.datasource.xzxtdb.url
=
jdbc:oracle:thin:@1
0.143.242.45:1521:XZXT
spring.datasource.xzxtdb.url
=
jdbc:oracle:thin:@1
27.0.0.1:1521:orcl
spring.datasource.xzxtdb.username
=
XZXT
spring.datasource.xzxtdb.password
=
XZXT
spring.datasource.xzxtdb.driver-class-name
=
oracle.jdbc.driver.OracleDriver
...
...
src/main/resources/templates/rygl/addryxx.html
View file @
12139aa2
...
...
@@ -538,6 +538,24 @@
if
(
$
(
"#sgsx"
).
val
()
!=
null
&&
$
(
"#sgsx"
).
val
()
!=
""
&&
$
(
"#tzsx"
).
val
()
!=
null
&&
$
(
"#tzsx"
).
val
()
!=
""
){
$
(
"#sgtzifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#hmzt"
).
val
()
==
"1"
){
$
(
"#hmifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#zjzt"
).
val
()
==
"1"
){
$
(
"#zjifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#swzt"
).
val
()
==
"1"
){
$
(
"#swifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#sjzt"
).
val
()
==
"1"
){
$
(
"#sjifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#yhkzt"
).
val
()
==
"1"
){
$
(
"#yhkifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
if
(
$
(
"#sswpzt"
).
val
()
==
"1"
){
$
(
"#sswpifcj"
).
attr
(
"src"
,
"/static/rygl/img/yes.png"
);
}
setCodeTexts
();
//$("#zw").find("a").append("
<
img
src
=
\
"/static/rygl/img/yes.png
\"
style='width: 20px;height: 20px;' title=
\"
已采集
\"
/>"
);
...
...
@@ -1614,6 +1632,12 @@
<input
type=
"hidden"
id=
"username"
th:value=
"${username}"
/>
<input
type=
"hidden"
id=
"unitcode"
th:value=
"${unitcode}"
/>
<input
type=
"hidden"
id=
"cjsb"
name=
"cjsb"
th:value=
"${cjsb}"
/>
<input
type=
"hidden"
id=
"hmzt"
name=
"hmzt"
th:value=
"${hmzt}"
/>
<input
type=
"hidden"
id=
"zjzt"
name=
"zjzt"
th:value=
"${zjzt}"
/>
<input
type=
"hidden"
id=
"swzt"
name=
"swzt"
th:value=
"${swzt}"
/>
<input
type=
"hidden"
id=
"sjzt"
name=
"sjzt"
th:value=
"${sjzt}"
/>
<input
type=
"hidden"
id=
"yhkzt"
name=
"yhkzt"
th:value=
"${yhkzt}"
/>
<input
type=
"hidden"
id=
"sswpzt"
name=
"sswpzt"
th:value=
"${sswpzt}"
/>
<input
type=
"hidden"
id=
"ifsfz"
name=
"ifsfz"
value=
"1"
/>
<input
type=
"hidden"
id=
"clentip"
name=
"clentip"
th:value=
"${clent}"
/>
<input
type=
"hidden"
id=
"saveflag"
name=
"saveflag"
th:value=
"${saveflag}"
/>
...
...
@@ -2222,9 +2246,9 @@
<li
id=
"hm"
><a
onclick=
"hmcj()"
><i
class=
"fa fa-barcode"
></i>
虹膜信息采集
<img
id=
"hmifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"zj"
><a
onclick=
"zjcj(0)"
><i
class=
"fa fa-barcode"
></i>
足迹信息采集
<img
id=
"zjifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"sw"
><a
onclick=
"swcj()"
><i
class=
"fa fa-barcode"
></i>
声纹信息采集
<img
id=
"swifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"wp"
><a
onclick=
"sswpcj()"
><i
class=
"fa fa-barcode"
></i>
随身物品信息采集
<img
id=
"sswpifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"sj"
><a
href=
"javascript:sjcj()"
><i
class=
"fa fa-barcode"
></i>
随身手机信息采集
<img
id=
"sjifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"yhk"
><a
onclick=
"yhkcj()"
><i
class=
"fa fa-barcode"
></i>
银行卡信息采集
<img
id=
"yhkifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"wp"
><a
onclick=
"sswpcj()"
><i
class=
"fa fa-barcode"
></i>
随身物品信息采集
<img
id=
"sswpifcj"
src=
"/static/rygl/img/no.png"
/></li></a>
<li
id=
"dna"
><a
onclick=
"openDialog_DNADY()"
><i
class=
"fa fa-print"
></i>
打印DNA标签
</a></li>
<li><a
href=
"javascript:prtzw()"
><i
class=
"fa fa-print"
></i>
打印指纹卡
</a></li>
<li><a
href=
"javascript:openDialog_bz()"
><i
class=
"fa fa-barcode"
></i>
人员信息无法采集说明
</a></li>
...
...
src/main/resources/templates/rygl/ryxxlist.html
View file @
12139aa2
...
...
@@ -323,8 +323,51 @@
{
title
:
"操作"
,
field
:
"scbz"
,
align
:
'center'
,
color
:
'gree'
,
width
:
110
,
formatter
:
function
(
val
,
row
,
index
){
var
rybh
=
row
.
rybh
;
var
xm
=
row
.
xm
;
var
hm
=
row
.
hm
;
var
hmzt
;
if
(
hm
==
null
||
hm
==
""
||
hm
<=
0
){
hmzt
=
"0"
;
}
else
{
hmzt
=
"1"
;
}
var
zj
=
row
.
zj
;
var
zjzt
;
if
(
zj
==
null
||
zj
==
""
||
zj
<=
0
){
zjzt
=
"0"
;
}
else
{
zjzt
=
"1"
;
}
var
sw
=
row
.
sw
;
var
swzt
;
if
(
sw
==
null
||
sw
==
""
||
sw
<=
0
){
swzt
=
"0"
;
}
else
{
swzt
=
"1"
;
}
var
sjjbxx
=
row
.
sjjbxx
;
var
sjlxrxx
=
row
.
sjlxrxx
;
var
sjzt
;
if
(
sjjbxx
==
null
||
sjjbxx
==
""
||
sjjbxx
<=
0
||
sjlxrxx
==
null
||
sjlxrxx
==
""
||
sjlxrxx
<=
0
){
sjzt
=
"0"
;
}
else
{
sjzt
=
"1"
;
}
var
yhk
=
row
.
yhk
;
var
yhkzt
;
if
(
yhk
==
null
||
yhk
==
""
||
yhk
<=
0
){
yhkzt
=
"0"
;
}
else
{
yhkzt
=
"1"
;
}
var
sswp
=
row
.
sswp
;
var
sswpzt
;
if
(
sswp
==
null
||
sswp
==
""
||
sswp
<=
0
){
sswpzt
=
"0"
;
}
else
{
sswpzt
=
"1"
;
}
//return "
<
span
class
=
'hg-btn'
onclick
=
\
"modify('"
+
rybh
+
"')
\"
>修改</span> <span style='color: red;' onclick=
\"
cut('"
+
rybh
+
"','"
+
xm
+
"')
\"
>删除</span>"
;
return
"<span class='hg-btn' onclick=
\"
modify('"
+
rybh
+
"')
\"
>修改</span>"
;
return
"<span class='hg-btn' onclick=
\"
modify('"
+
rybh
+
"'
,'"
+
hmzt
+
"','"
+
zjzt
+
"','"
+
swzt
+
"','"
+
sjzt
+
"','"
+
yhkzt
+
"','"
+
sswpzt
+
"'
)
\"
>修改</span>"
;
}},
{
title
:
"人员编号"
,
field
:
"rybh"
,
align
:
'left'
,
width
:
240
,
formatter
:
function
(
val
,
row
,
index
){
var
rybh
=
row
.
rybh
;
...
...
@@ -666,7 +709,7 @@
doQuery
();
}
//修改
function
modify
(
rybh
){
function
modify
(
rybh
,
hmzt
,
zjzt
,
swzt
,
sjzt
,
yhkzt
,
sswpzt
){
//判断用户是否具有设备采集权限
debugger
;
var
perurl
=
$
(
"#perurl"
).
html
();
...
...
@@ -676,7 +719,7 @@
perurl
=
1
}
//window.open("openIE:"+$("#webappurl").val()+"/toHome?asjxgrybh="+rybh+","+$("#username").val()+","+perurl);
window
.
open
(
"/toEditRyxx?asjxgrybh="
+
rybh
+
"&perurl="
+
perurl
);
window
.
open
(
"/toEditRyxx?asjxgrybh="
+
rybh
+
"&perurl="
+
perurl
+
"&hmzt="
+
hmzt
+
"&zjzt="
+
zjzt
+
"&swzt="
+
swzt
+
"&sjzt="
+
sjzt
+
"&yhkzt="
+
yhkzt
+
"&sswpzt="
+
sswpzt
);
}
function
editZljcZwjg
(
name
,
gdzw
,
gdzws
){
...
...
src/main/resources/templates/sswp/sswpcxlist.html
View file @
12139aa2
...
...
@@ -172,8 +172,9 @@
pageNumber
:
1
,
loadFilter
:
function
(
data
){
debugger
;
if
(
data
!=
null
){
if
(
data
!=
null
&&
data
.
total
>
0
){
window
.
opener
.
document
.
getElementById
(
"sswpifcj"
).
src
=
"/static/rygl/img/yes.png"
;
window
.
opener
.
document
.
getElementById
(
"sswpzt"
).
value
=
"1"
;
}
return
data
;
}
...
...
src/main/resources/templates/swcj/swcj.html
View file @
12139aa2
...
...
@@ -103,7 +103,6 @@
};
function
saveRecord
(){
window
.
opener
.
document
.
getElementById
(
"swifcj"
).
src
=
"/static/rygl/img/yes.png"
;
var
record
=
recorder
.
getBlob
();
var
file
=
new
File
([
record
],
"voicefile"
,
{
type
:
'audio/wav'
});
var
formFile
=
new
FormData
();
...
...
@@ -213,6 +212,10 @@
pageList
:
[
10
,
20
,
50
,
100
,
200
],
//rows
pageNumber
:
1
,
loadFilter
:
function
(
data
){
if
(
data
!=
null
&&
data
.
total
>
0
){
window
.
opener
.
document
.
getElementById
(
"swifcj"
).
src
=
"/static/rygl/img/yes.png"
;
window
.
opener
.
document
.
getElementById
(
"swzt"
).
value
=
"1"
;
}
return
data
;
}
});
...
...
src/main/resources/templates/yhkcj/yhkcxlist.html
View file @
12139aa2
...
...
@@ -173,6 +173,10 @@
pageList
:
[
10
,
20
,
50
,
100
,
200
],
//rows
pageNumber
:
1
,
loadFilter
:
function
(
data
){
if
(
data
!=
null
&&
data
.
total
>
0
){
window
.
opener
.
document
.
getElementById
(
"yhkifcj"
).
src
=
"/static/rygl/img/yes.png"
;
window
.
opener
.
document
.
getElementById
(
"yhkzt"
).
value
=
"1"
;
}
return
data
;
}
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment