Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SkuciSe
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tim 2 - 2022
SkuciSe
Commits
42d0f3f6
Commit
42d0f3f6
authored
Sep 06, 2022
by
Milovan Samardzic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
newOglasFront
parent
20c53dbf
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
270 additions
and
7 deletions
+270
-7
SkuciSe/src/main/java/com/example/SkuciSe/configuration/WebSecurityConfig.java
+2
-1
SkuciSe/src/main/java/com/example/SkuciSe/repository/KorisnikRepository.java
+1
-0
SkuciSe/src/main/resources/application.properties
+3
-0
SkuciSe/src/main/resources/templates/index.html
+2
-1
SkuciSe/src/main/resources/templates/lista-korisnika.html
+2
-1
SkuciSe/src/main/resources/templates/login.html
+3
-2
SkuciSe/src/main/resources/templates/novi-oglas-form.html
+253
-0
SkuciSe/src/main/resources/templates/profile-edit.html
+2
-1
SkuciSe/src/main/resources/templates/profile.html
+2
-1
No files found.
SkuciSe/src/main/java/com/example/SkuciSe/configuration/WebSecurityConfig.java
View file @
42d0f3f6
...
@@ -47,6 +47,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter
...
@@ -47,6 +47,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter
.
usernameParameter
(
"email"
)
.
usernameParameter
(
"email"
)
.
defaultSuccessUrl
(
"/index"
)
.
defaultSuccessUrl
(
"/index"
)
.
permitAll
()
.
permitAll
()
.
and
().
logout
().
logoutSuccessUrl
(
"/index"
).
permitAll
();
.
and
().
logout
().
logoutSuccessUrl
(
"/index"
).
permitAll
()
.
and
().
csrf
().
disable
();;
}
}
}
}
SkuciSe/src/main/java/com/example/SkuciSe/repository/KorisnikRepository.java
View file @
42d0f3f6
...
@@ -24,6 +24,7 @@ public class KorisnikRepository
...
@@ -24,6 +24,7 @@ public class KorisnikRepository
{
{
try
{
try
{
String
slika
=
Base64
.
getEncoder
().
encodeToString
(
multipartFile
.
getBytes
());
String
slika
=
Base64
.
getEncoder
().
encodeToString
(
multipartFile
.
getBytes
());
System
.
out
.
println
(
slika
.
length
());
String
sql
=
"insert into korisnik( ime, prezime, telefon, email, sifra, tipId, slika, gradid, enabled) values('"
+
korisnik
.
getIme
()+
"','"
+
korisnik
.
getPrezime
()+
"','"
+
korisnik
.
getTelefon
()+
"','"
+
korisnik
.
getEmail
()+
"','"
+
new
BCryptPasswordEncoder
().
encode
(
korisnik
.
getSifra
())+
"',1, '"
+
slika
+
"', "
+
korisnik
.
getGradId
()+
",false)"
;
String
sql
=
"insert into korisnik( ime, prezime, telefon, email, sifra, tipId, slika, gradid, enabled) values('"
+
korisnik
.
getIme
()+
"','"
+
korisnik
.
getPrezime
()+
"','"
+
korisnik
.
getTelefon
()+
"','"
+
korisnik
.
getEmail
()+
"','"
+
new
BCryptPasswordEncoder
().
encode
(
korisnik
.
getSifra
())+
"',1, '"
+
slika
+
"', "
+
korisnik
.
getGradId
()+
",false)"
;
dataBase
.
statement
.
executeUpdate
(
sql
);
dataBase
.
statement
.
executeUpdate
(
sql
);
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
...
...
SkuciSe/src/main/resources/application.properties
View file @
42d0f3f6
spring.servlet.multipart.max-file-size
=
16MB
spring.servlet.multipart.max-file-size
=
16MB
spring.servlet.multipart.max-request-size
=
16MB
spring.servlet.multipart.max-request-size
=
16MB
spring.servlet.multipart.max-file-size
=
16MB
spring.servlet.multipart.max-request-size
=
16MB
\ No newline at end of file
SkuciSe/src/main/resources/templates/index.html
View file @
42d0f3f6
...
@@ -42,9 +42,10 @@
...
@@ -42,9 +42,10 @@
</li>
</li>
</ul>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
<
a
th:href=
"@{/novi-oglas}"
><
button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
novi oglas
</button>
</button>
</a>
</form>
</form>
<ul
class=
"navbar-nav"
>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
...
...
SkuciSe/src/main/resources/templates/lista-korisnika.html
View file @
42d0f3f6
...
@@ -41,9 +41,10 @@
...
@@ -41,9 +41,10 @@
</li>
</li>
</ul>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
<
a
th:href=
"@{/novi-oglas}"
><
button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
novi oglas
</button>
</button>
</a>
</form>
</form>
<ul
class=
"navbar-nav"
>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
...
...
SkuciSe/src/main/resources/templates/login.html
View file @
42d0f3f6
...
@@ -41,9 +41,10 @@
...
@@ -41,9 +41,10 @@
</li>
</li>
</ul>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
<
a
th:href=
"@{/novi-oglas}"
><
button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
novi oglas
</button>
</button>
</a>
</form>
</form>
<ul
class=
"navbar-nav"
>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
...
@@ -96,7 +97,7 @@
...
@@ -96,7 +97,7 @@
<div
class=
"invalid-feedback"
>
Sifra ne sme biti prazna!
</div>
<div
class=
"invalid-feedback"
>
Sifra ne sme biti prazna!
</div>
</div>
</div>
<div
class=
"invalid-feedback"
id=
"losaSifra"
>
Uneli ste pogresne podatke
!
</div>
<div
class=
"invalid-feedback"
id=
"losaSifra"
>
Nepostojeca kombinacija
!
</div>
<div
class=
"form-button mt-3"
>
<div
class=
"form-button mt-3"
>
<button
id=
"submit"
type=
"submit"
class=
"btn btn-primary"
>
Prijavi se
</button>
<button
id=
"submit"
type=
"submit"
class=
"btn btn-primary"
>
Prijavi se
</button>
...
...
SkuciSe/src/main/resources/templates/novi-oglas-form.html
0 → 100644
View file @
42d0f3f6
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"utf-8"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta
name=
"description"
content=
""
/>
<meta
name=
"author"
content=
""
/>
<title>
SkuciSe
</title>
<link
rel=
"shortcut icon"
type=
"image/x-icon"
href=
"/images/logo.ico"
/>
<link
href=
'https://fonts.googleapis.com/css?family=Jost'
rel=
'stylesheet'
>
<link
href=
"//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"
rel=
"stylesheet"
id=
"bootstrap-css"
>
<!-- Favicon-->
<link
rel=
"icon"
type=
"image/x-icon"
href=
"assets/favicon.ico"
/>
<!-- CSS only -->
<link
href=
"https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css"
rel=
"stylesheet"
integrity=
"sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx"
crossorigin=
"anonymous"
>
<!-- Core theme CSS (includes Bootstrap)-->
<link
href=
"/css/style.css"
rel=
"stylesheet"
/>
</head>
<body
th:object=
"${loggedUser}"
>
<nav
class=
"navbar navbar-icon-top navbar-expand-lg p-3"
style=
"background-color: white;"
>
<a
class=
"navbar-brand"
href=
"#"
>
</a>
<button
class=
"navbar-toggler"
type=
"button"
data-toggle=
"collapse"
data-target=
"#navbarSupportedContent"
aria-controls=
"navbarSupportedContent"
aria-expanded=
"false"
aria-label=
"Toggle navigation"
>
<span
class=
"navbar-toggler-icon"
></span>
</button>
<div
class=
"collapse navbar-collapse"
id=
"navbarSupportedContent"
>
<ul
class=
"navbar-nav mr-auto"
>
<li
class=
"nav-item active"
>
<a
class=
"nav-link"
th:href=
"@{/index}"
>
<i
class=
"fa fa-home"
></i>
Pocetna
<span
class=
"sr-only"
>
(current)
</span>
</a>
</li>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<a
th:href=
"@{/novi-oglas}"
><button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
</button>
</a>
</form>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<a
th:href=
"@{/login}"
><i
class=
"fas fa-sign-in-alt"
style=
"color:#495056"
></i><span
style=
"padding:10px;color:#495056"
>
Prijavi se
</span></a>
</li>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<a
th:href=
"@{/register}"
><i
class=
"fa-solid fa-circle-user"
style=
"color:#495056"
></i><span
style=
"padding:10px;color:#495056"
>
Registruj se
</span></a>
</li>
<li
th:if=
"${loggedUser != null}"
>
<div
class=
"dropdown mr-4"
>
<button
class=
"btn btn-secondary dropdown-toggle round"
type=
"button"
id=
"dropdownMenuButton"
data-toggle=
"dropdown"
aria-haspopup=
"true"
aria-expanded=
"false"
>
<i
class=
"fa-solid fa-circle-user"
></i><span
style=
"padding:10px;"
th:text=
"${loggedUser.getKorisnik().getIme()}"
></span>
</button>
<div
class=
"dropdown-menu"
aria-labelledby=
"dropdownMenuButton"
>
<a
class=
"dropdown-item"
th:href=
"@{/profile}"
>
Moj Profil
</a>
<a
class=
"dropdown-item"
th:href=
"@{/mojioglasi}"
>
Moji Oglasi
</a>
<a
class=
"dropdown-item"
th:href=
"@{/mojizahtevi}"
>
Moji Zahtevi
</a>
<a
th:if=
"${loggedUser.getKorisnik().getTipId() == 2}"
class=
"dropdown-item"
th:href=
"@{/lista-korisnika}"
>
Lista Profila
</a>
<form
th:action=
"@{/logout}"
method=
"post"
id=
"my_form"
class=
"dropdown-item"
>
<a
href=
"#"
onclick=
"document.getElementById('my_form').submit(); return false;"
><i
class=
"fas fa-sign-in-alt"
></i><span
style=
"padding:5px;"
>
Odjavi se
</span></a>
</form>
</div>
</div>
</li>
</ul>
</div>
</nav>
<div
class=
"form-body d-flex justify-content-center w-100 mt-5"
>
<div
class=
"row"
>
<div
class=
"form-holder"
>
<div
class=
"form-content"
style=
"bottom:50px;"
>
<div
class=
"form-items"
>
<h3>
Novi oglas
</h3>
<p>
Popunite podatke ispod.
</p>
<form
class=
"requires-validation"
novalidate
th:object=
"${newOglas}"
method=
"POST"
th:action=
"@{/novi-oglas/save}"
enctype=
"multipart/form-data"
>
<div
class=
"col-md-12"
>
<input
th:field=
"${newOglas.naslov}"
class=
"form-control"
type=
"text"
placeholder=
"Ime"
required
>
<div
class=
"invalid-feedback"
>
Naslov ne sme biti prazan!
</div>
</div>
<div
class=
"col-md-12"
>
<select
th:field=
"${newOglas.lokacijaId}"
>
<option
th:each=
"lokacija: ${lokacije}"
th:value=
"${lokacija.getLokacijaId()}"
th:text=
"${lokacija.getNaziv()}"
>
</option>
</select>
</div>
<div
class=
"col-md-12"
>
<input
th:field=
"${newOglas.lokacija}"
class=
"form-control"
type=
"text"
placeholder=
"Naselje"
required
>
<div
class=
"invalid-feedback"
>
Naselje ne sme biti prazno!
</div>
</div>
<div
class=
"col-md-12"
>
<label
class=
"form-check-label"
>
Kvadratura
</label>
<input
th:field=
"${newOglas.kvadratura}"
class=
"form-control"
type=
"number"
placeholder=
"Kvadratura"
required
>
<div
class=
"invalid-feedback"
>
Kvadratura ne sme biti prazna!
</div>
</div>
<div
class=
"col-md-12"
>
<label
class=
"form-check-label"
>
Cena po m2
</label>
<input
th:field=
"${newOglas.cena}"
class=
"form-control"
type=
"number"
placeholder=
"Cena po m2"
required
>
<div
class=
"invalid-feedback"
>
Cena ne sme biti prazan!
</div>
</div>
<div
class=
"col-md-12"
>
<label
class=
"form-check-label"
>
Broj soba
</label>
<input
th:field=
"${newOglas.brojSoba}"
class=
"form-control"
type=
"number"
placeholder=
"Broj soba"
required
>
<div
class=
"invalid-feedback"
>
Broj soba ne sme biti prazan!
</div>
</div>
<div
class=
"col-md-12"
>
<input
th:field=
"${newOglas.lift}"
class=
"form-check-input"
type=
"checkbox"
value=
""
>
<label
class=
"form-check-label"
>
Lift
</label>
</div>
<div
class=
"col-md-12"
>
<input
th:field=
"${newOglas.namesten}"
class=
"form-check-input"
type=
"checkbox"
value=
""
>
<label
class=
"form-check-label"
>
Namesten
</label>
</div>
<div
class=
"col-md-12"
>
<input
th:field=
"${newOglas.grejanje}"
class=
"form-check-input"
type=
"checkbox"
value=
""
>
<label
class=
"form-check-label"
>
Grejanje
</label>
</div>
<div
class=
"col-md-12"
>
<input
class=
"form-check-input"
type=
"radio"
name=
"flexRadioDefault"
id=
"flexRadioDefault1"
value=
"1"
checked
>
<label
class=
"form-check-label"
for=
"flexRadioDefault1"
>
Prodaja
</label>
<input
class=
"form-check-input"
type=
"radio"
name=
"flexRadioDefault"
id=
"flexRadioDefault2"
value=
"2"
>
<label
class=
"form-check-label"
for=
"flexRadioDefault2"
>
Izdavanje
</label>
</div>
<div
class=
"col-md-12"
>
<textarea
th:field=
"${newOglas.opis}"
class=
"form-control"
placeholder=
"Opis"
required
></textarea>
<div
class=
"invalid-feedback"
>
Opis ne sme biti prazan!
</div>
</div>
<div
class=
"form-check"
>
<input
class=
"form-check-input"
type=
"checkbox"
value=
""
id=
"invalidCheck"
required
>
<label
class=
"form-check-label"
>
Potvrdjujem da su svi podaci tacni
</label>
<div
class=
"invalid-feedback"
>
Molim vas da potvrdite da su svi podaci tacni!
</div>
</div>
<div
class=
"form-button mt-3"
>
<button
id=
"submit"
type=
"submit"
class=
"btn btn-primary"
>
Registruj se
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div
class=
"container-fluid pb-0 mb-0 justify-content-center text-light "
>
<footer>
<div
class=
"row my-5 justify-content-center py-5"
>
<div
class=
"col-11"
>
<div
class=
"row "
>
<div
class=
"col-xl-8 col-md-4 col-sm-4 col-12 my-auto mx-auto a"
><h3
class=
"text-muted mb-md-0 mb-5 bold-text"
>
SkuciSe
</h3></div>
<div
class=
"col-xl-2 col-md-4 col-sm-4 col-12"
><h6
class=
"mb-3 mb-lg-4 bold-text "
><b>
MENI
</b></h6>
<ul
class=
"list-unstyled"
>
<li>
Pocetna
</li>
<li>
O nama
</li>
<li>
Blog
</li>
<li>
Portfolio
</li>
</ul>
</div>
<div
class=
"col-xl-2 col-md-4 col-sm-4 col-12"
><h6
class=
"mb-3 mb-lg-4 text-muted bold-text mt-sm-0 mt-5"
><b>
ADRESA
</b></h6>
<p
class=
"mb-1"
>
Radoja Domanovića 12
</p>
<p>
Kragujevac 34000
</p></div>
</div>
<div
class=
"row "
>
<div
class=
"col-xl-8 col-md-4 col-sm-4 col-auto my-md-0 mt-5 order-sm-1 order-3 align-self-end"
><p
class=
"social text-muted mb-0 pb-0 bold-text"
><span
class=
"mx-2"
><i
class=
"fa fa-facebook"
aria-hidden=
"true"
></i></span>
<span
class=
"mx-2"
><i
class=
"fa fa-linkedin-square"
aria-hidden=
"true"
></i></span>
<span
class=
"mx-2"
><i
class=
"fa fa-twitter"
aria-hidden=
"true"
></i></span>
<span
class=
"mx-2"
><i
class=
"fa fa-instagram"
aria-hidden=
"true"
></i></span></p><small
class=
"rights"
><span>
®
</span>
SkuciSe All Rights Reserved.
</small></div>
<div
class=
"col-xl-2 col-md-4 col-sm-4 col-auto order-1 align-self-end "
><h6
class=
"mt-55 mt-2 text-muted bold-text"
><b>
PERA PERIC
</b></h6><small>
<span><i
class=
"fa fa-envelope"
aria-hidden=
"true"
></i></span>
pera@gmail.com
</small></div>
<div
class=
"col-xl-2 col-md-4 col-sm-4 col-auto order-2 align-self-end mt-3 "
><h6
class=
"text-muted bold-text"
><b>
ACA ACIC
</b></h6><small><span><i
class=
"fa fa-envelope"
aria-hidden=
"true"
></i></span>
aca@gmail.com
</small></div>
</div>
</div>
</div>
</footer>
</div>
<!-- JavaScript Bundle with Popper -->
<script
src=
"//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"
></script>
<script
src=
"//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"
></script>
<script
src=
"https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity=
"sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin=
"anonymous"
></script>
<script
src=
"https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js"
integrity=
"sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin=
"anonymous"
></script>
<script
src=
"https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
integrity=
"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin=
"anonymous"
></script>
<script
src=
"https://kit.fontawesome.com/51d1fadef3.js"
crossorigin=
"anonymous"
></script>
<script
src=
"/js/main.js"
></script>
</body>
</html>
SkuciSe/src/main/resources/templates/profile-edit.html
View file @
42d0f3f6
...
@@ -39,9 +39,10 @@
...
@@ -39,9 +39,10 @@
</li>
</li>
</ul>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
<
a
th:href=
"@{/novi-oglas}"
><
button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
novi oglas
</button>
</button>
</a>
</form>
</form>
<ul
class=
"navbar-nav"
>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
...
...
SkuciSe/src/main/resources/templates/profile.html
View file @
42d0f3f6
...
@@ -41,9 +41,10 @@
...
@@ -41,9 +41,10 @@
</li>
</li>
</ul>
</ul>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<form
class=
"form-inline my-2 my-lg-0"
th:if=
"${loggedUser != null}"
>
<button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
<
a
th:href=
"@{/novi-oglas}"
><
button
type=
"button"
class=
"btn btn-primary btn-md mr-2"
><i
class=
"fa-solid fa-plus"
></i>
Postavite
novi oglas
novi oglas
</button>
</button>
</a>
</form>
</form>
<ul
class=
"navbar-nav"
>
<ul
class=
"navbar-nav"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
<li
class=
"nav-item"
th:if=
"${loggedUser == null}"
>
...
...
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