back_end e front_end, registro, dados etc. '-'
This commit is contained in:
Binary file not shown.
@@ -39,6 +39,11 @@ func main() {
|
|||||||
Addr: "127.0.0.1:6379",
|
Addr: "127.0.0.1:6379",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
|
||||||
|
AllowOrigins: []string{"http://192.168.1.102"},
|
||||||
|
AllowCredentials: true,
|
||||||
|
}))
|
||||||
|
|
||||||
log.Println("Definindo configurações de Rate Limit")
|
log.Println("Definindo configurações de Rate Limit")
|
||||||
rateLimiterStore := middleware.NewRateLimiterMemoryStoreWithConfig(
|
rateLimiterStore := middleware.NewRateLimiterMemoryStoreWithConfig(
|
||||||
middleware.RateLimiterMemoryStoreConfig{
|
middleware.RateLimiterMemoryStoreConfig{
|
||||||
@@ -82,6 +87,7 @@ func main() {
|
|||||||
|
|
||||||
e.GET("/", online)
|
e.GET("/", online)
|
||||||
e.GET("roll", roll_get)
|
e.GET("roll", roll_get)
|
||||||
|
e.POST("roll", roll)
|
||||||
e.GET("register", badreq)
|
e.GET("register", badreq)
|
||||||
e.POST("register", registrar)
|
e.POST("register", registrar)
|
||||||
e.POST("login", login, timeoutMiddleware, rateLimit)
|
e.POST("login", login, timeoutMiddleware, rateLimit)
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
@@ -32,7 +34,7 @@ func badreq(c echo.Context) error {
|
|||||||
func registrar(c echo.Context) error {
|
func registrar(c echo.Context) error {
|
||||||
player := c.FormValue("player")
|
player := c.FormValue("player")
|
||||||
password := c.FormValue("password")
|
password := c.FormValue("password")
|
||||||
confpass := c.FormValue("confirmpassowrd")
|
confpass := c.FormValue("confirmpassword")
|
||||||
playerlore := c.FormValue("playerlore")
|
playerlore := c.FormValue("playerlore")
|
||||||
|
|
||||||
if !regexp.MustCompile(`^[a-zA-Z0-9_]+$`).MatchString(player) {
|
if !regexp.MustCompile(`^[a-zA-Z0-9_]+$`).MatchString(player) {
|
||||||
@@ -198,6 +200,56 @@ func login(c echo.Context) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func roll(c echo.Context) error {
|
||||||
|
userSession, err := ValidSession(c)
|
||||||
|
if err != nil {
|
||||||
|
return c.JSON(http.StatusUnauthorized, resp_json{
|
||||||
|
Status: "Error",
|
||||||
|
Message: err.Error(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
roll, err := strconv.Atoi(c.FormValue("roll"))
|
||||||
|
if err != nil {
|
||||||
|
return c.JSON(http.StatusBadRequest, resp_json{
|
||||||
|
Status: "Error",
|
||||||
|
Message: "algo deu errado ao rola seu dado, tente novamente",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
var dado int
|
||||||
|
switch roll {
|
||||||
|
case 6:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
case 10:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
case 20:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
case 40:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
case 50:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
case 100:
|
||||||
|
dado = rand.Intn(roll) + 1
|
||||||
|
default:
|
||||||
|
return c.JSON(http.StatusBadRequest, resp_json{
|
||||||
|
Status: "Error",
|
||||||
|
Message: "você so pode rodar dados de 6, 10, 20, 40, 50 ou 100",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
var value string = fmt.Sprintf("%s rolou 1d%v e o resultado é %v", userSession["playerName"], roll, dado)
|
||||||
|
|
||||||
|
_, err = db.Exec("INSERT INTO roll_logs (id, log) VALUES (NULL, ?);", value)
|
||||||
|
if err != nil {
|
||||||
|
return c.JSON(http.StatusInternalServerError, resp_json{
|
||||||
|
Status: "Error",
|
||||||
|
Message: "não foi possivel inserir o log do da rolagem no banco de dados",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return c.JSON(http.StatusOK, resp_json{
|
||||||
|
Status: "Success",
|
||||||
|
Message: value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func roll_get(c echo.Context) error {
|
func roll_get(c echo.Context) error {
|
||||||
row, err := db.Query("SELECT * FROM roll_logs ORDER BY id DESC LIMIT 5;")
|
row, err := db.Query("SELECT * FROM roll_logs ORDER BY id DESC LIMIT 5;")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -60,3 +60,7 @@ body {
|
|||||||
#loginBtn:hover {
|
#loginBtn:hover {
|
||||||
background-color: var(--lines);
|
background-color: var(--lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a span {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,21 +1,28 @@
|
|||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
#playerDATA {
|
#playerDATA {
|
||||||
background-color: var(--subbgcolor);
|
background-color: var(--subbgcolor);
|
||||||
padding: 1dvw;
|
padding: 1dvw;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 1vw;
|
||||||
|
|
||||||
#hero {
|
#hero {
|
||||||
width: 15%;
|
width: 15%;
|
||||||
height: 30%;
|
height: auto;
|
||||||
|
max-height: 30dvh;
|
||||||
border: solid 3px var(--backredcolor);
|
border: solid 3px var(--backredcolor);
|
||||||
border-radius: 100dvh;
|
border-radius: 100dvh;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
padding: 0 0 0 1vw;
|
padding-left: 1vw;
|
||||||
width: 100%;
|
width: 80%;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -23,9 +30,10 @@
|
|||||||
padding: 1dvh;
|
padding: 1dvh;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
border-bottom: dotted 2px var(--lines);
|
border-bottom: dotted 2px var(--lines);
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0 0 0 1dvh;
|
margin-left: 1dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@@ -38,7 +46,6 @@
|
|||||||
border-radius: 1dvh;
|
border-radius: 1dvh;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
@@ -50,27 +57,34 @@
|
|||||||
|
|
||||||
#box_1 {
|
#box_1 {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
border-bottom: solid 0.5dvh var(--backredcolor);
|
border-bottom: solid 0.5dvh var(--backredcolor);
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
min-height: 4dvh;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: var(--btncolor);
|
background: var(--btncolor);
|
||||||
font-family: "Share Tech Mono", monospace;
|
font-family: "Share Tech Mono", monospace;
|
||||||
padding: 0 0 0 1dvh;
|
padding-left: 1dvh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#status,
|
||||||
|
#dados,
|
||||||
|
#inv,
|
||||||
|
#powers {
|
||||||
|
min-height: 40dvh;
|
||||||
|
max-height: 40dvh;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: var(--subbgcolor);
|
||||||
|
}
|
||||||
|
|
||||||
#status {
|
#status {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
min-height: 40dvh;
|
|
||||||
max-height: 40dvh;
|
|
||||||
border-right: solid 1px var(--lines);
|
border-right: solid 1px var(--lines);
|
||||||
overflow: hidden;
|
|
||||||
background-color: var(--subbgcolor);
|
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
padding: 3vw 0 3vw 0;
|
padding: 3vw 0;
|
||||||
max-height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -82,13 +96,13 @@
|
|||||||
border-radius: 1dvw;
|
border-radius: 1dvw;
|
||||||
|
|
||||||
label {
|
label {
|
||||||
padding: 0 0 0 1dvh;
|
padding-left: 1dvh;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0 0.2dvh 0 0.2dvh;
|
margin: 0 0.2dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
@@ -121,17 +135,14 @@
|
|||||||
|
|
||||||
#dados {
|
#dados {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
min-height: 40dvh;
|
display: flex;
|
||||||
max-height: 40dvh;
|
flex-direction: column;
|
||||||
border-right: solid 1px var(--lines);
|
border-right: solid 1px var(--lines);
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
#list {
|
#list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 50%;
|
min-height: 20dvh;
|
||||||
overflow: hidden;
|
overflow-y: auto;
|
||||||
overflow-y: scroll;
|
|
||||||
background-color: var(--subbgcolor);
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -140,57 +151,55 @@
|
|||||||
|
|
||||||
li {
|
li {
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
border-radius: 1dvh;
|
border-radius: 1vh;
|
||||||
margin: 0 0 0 1dvh;
|
margin: 1vh;
|
||||||
background: var(--btncolor);
|
background: var(--btncolor);
|
||||||
width: 45%;
|
width: 45%;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
padding: 1dvh;
|
padding: 1vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
margin: 0 1dvw 0 0;
|
margin-right: 1vw;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
li:hover {
|
&:hover {
|
||||||
background-color: var(--lines);
|
background-color: var(--lines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#log {
|
#log {
|
||||||
width: 100%;
|
flex-grow: 1;
|
||||||
height: calc(40dvh - 12dvw);
|
overflow-y: auto;
|
||||||
overflow-y: scroll;
|
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
cursor: pointer;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
padding: 0.5dvh 0 0.5dvh 2dvh;
|
padding: 0.5vh 2vh;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--lines);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#inv {
|
#inv {
|
||||||
position: relative;
|
|
||||||
width: 30%;
|
width: 30%;
|
||||||
overflow: hidden;
|
position: relative;
|
||||||
min-height: 40dvh;
|
|
||||||
max-height: 40dvh;
|
|
||||||
border-right: solid 1px var(--lines);
|
border-right: solid 1px var(--lines);
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
overflow: hidden;
|
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
width: 100%;
|
|
||||||
max-height: 80%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
|
max-height: 80%;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
width: calc(100% / 4 - 2px);
|
width: calc(100% / 4 - 2px);
|
||||||
@@ -202,7 +211,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
cursor: pointer;
|
||||||
a {
|
a {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1dvh;
|
right: 1dvh;
|
||||||
@@ -210,18 +219,22 @@
|
|||||||
background-color: var(--backredcolor);
|
background-color: var(--backredcolor);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--subbgcolor);
|
||||||
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
background-color: var(--backdarkredcolor);
|
background-color: var(--backdarkredcolor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
li:hover {
|
li:hover {
|
||||||
background-color: var(--subbgcolor);
|
background-color: var(--lines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,33 +248,26 @@
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
background-color: var(--subbgcolor);
|
background-color: var(--subbgcolor);
|
||||||
|
|
||||||
select {
|
select,
|
||||||
|
input,
|
||||||
|
#btn {
|
||||||
background-color: var(--btncolor);
|
background-color: var(--btncolor);
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
border: none;
|
border: none;
|
||||||
|
margin: 0 0.5dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
#btn {
|
#btn {
|
||||||
transition: 0.3s;
|
transition: 0.3s;
|
||||||
background-color: var(--btncolor);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin: 0 1dvh 0 1dvh;
|
|
||||||
padding: 5px;
|
|
||||||
border-radius: 1dvh;
|
border-radius: 1dvh;
|
||||||
}
|
|
||||||
|
|
||||||
#btn:hover {
|
&:hover {
|
||||||
background-color: var(--lines);
|
background-color: var(--lines);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
margin: 0 0.5dvh 0 0.5dvh;
|
|
||||||
background-color: var(--lines);
|
|
||||||
color: var(--fontcolor);
|
color: var(--fontcolor);
|
||||||
border: none;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="number"] {
|
input[type="number"] {
|
||||||
@@ -270,11 +276,11 @@
|
|||||||
|
|
||||||
label {
|
label {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
border-radius: 1dvh 0 1dvh 0;
|
border-radius: 1dvh 0 1dvh 0;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
@@ -285,20 +291,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#powers {
|
#powers {
|
||||||
width: calc(100% - (30% + 25% + 30% - 3px));
|
width: calc(100% - (30% + 25% + 30%));
|
||||||
overflow: hidden;
|
|
||||||
min-height: 40dvh;
|
|
||||||
max-height: 40dvh;
|
|
||||||
background-color: var(--subbgcolor);
|
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
overflow: hidden;
|
|
||||||
overflow-y: scroll;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow-y: scroll;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
width: 100%;
|
|
||||||
padding: 1dvh;
|
padding: 1dvh;
|
||||||
border-top: dotted 2px var(--lines);
|
border-top: dotted 2px var(--lines);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -307,22 +306,20 @@
|
|||||||
a {
|
a {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
li:hover {
|
&:hover {
|
||||||
background-color: var(--btncolor);
|
background-color: var(--btncolor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#FloatInput {
|
#FloatInput {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 10%;
|
width: 10%;
|
||||||
display: flex;
|
z-index: 100;
|
||||||
z-index: 100px;
|
|
||||||
|
|
||||||
input[type="text"] {
|
input[type="text"] {
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border: solid 1px var(--backredcolor);
|
border: solid 1px var(--backredcolor);
|
||||||
border-radius: 10dvh;
|
border-radius: 10dvh;
|
||||||
@@ -333,20 +330,23 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Responsividade */
|
||||||
@media only screen and (max-width: 1080px) {
|
@media only screen and (max-width: 1080px) {
|
||||||
#playerDATA {
|
#playerDATA {
|
||||||
height: 40dvh;
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
#hero {
|
#hero {
|
||||||
width: 40vh;
|
width: 40vw;
|
||||||
height: 25vh;
|
height: 40vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul li {
|
||||||
li {
|
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#box_1 {
|
#box_1 {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
#dados,
|
#dados,
|
||||||
@@ -354,21 +354,43 @@
|
|||||||
#inv,
|
#inv,
|
||||||
#powers {
|
#powers {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 100dvw;
|
min-height: 43vh;
|
||||||
#list {
|
hgroup input[type="text"] {
|
||||||
height: 30dvh;
|
width: 20dvw;
|
||||||
|
}
|
||||||
|
hgroup input[type="number"] {
|
||||||
|
width: 8dvw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#status li {
|
||||||
|
border-top-right-radius: 2dvh;
|
||||||
|
border-bottom-right-radius: 2dvh;
|
||||||
|
label {
|
||||||
|
a {
|
||||||
|
display: flex;
|
||||||
|
align-content: center;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#inv {
|
#dados #list {
|
||||||
ul {
|
height: 30dvh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#inv ul {
|
||||||
max-height: 43vh;
|
max-height: 43vh;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
height: calc(100dvh / 6 - 2px);
|
min-width: calc(100% / 4);
|
||||||
}
|
max-width: calc(100% / 4);
|
||||||
|
min-height: calc(100% / 4);
|
||||||
|
mix-height: calc(100% / 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#FloatInput {
|
#FloatInput {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
transform: translateY(50px) translateX(-50px);
|
transform: translateY(50px) translateX(-50px);
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
<link rel="stylesheet" href="css/base.css" />
|
<link rel="stylesheet" href="css/base.css" />
|
||||||
<link rel="stylesheet" href="css/style.css" />
|
<link rel="stylesheet" href="css/style.css" />
|
||||||
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/libs/tata.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/globais.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="playerDATA">
|
<div id="playerDATA">
|
||||||
@@ -129,13 +131,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul id="log">
|
<ul id="log"></ul>
|
||||||
<li>
|
|
||||||
<label
|
|
||||||
>{user} rolou {dado} e o resultado é {valor}</label
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="status">
|
<div id="status">
|
||||||
<h1>Player Status</h1>
|
<h1>Player Status</h1>
|
||||||
@@ -338,5 +334,6 @@
|
|||||||
|
|
||||||
<!-- scripts -->
|
<!-- scripts -->
|
||||||
<script type="text/javascript" src="javascript/script.js"></script>
|
<script type="text/javascript" src="javascript/script.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/load_ficha.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
11
rpg/javascript/globais.js
Normal file
11
rpg/javascript/globais.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
window.api = "http://192.168.1.102:8085/";
|
||||||
|
|
||||||
|
window.msg = (status, msg) => {
|
||||||
|
tata.text(status, msg, {
|
||||||
|
position: "br",
|
||||||
|
duration: 3000,
|
||||||
|
progress: true,
|
||||||
|
closeBtn: true,
|
||||||
|
animate: "slide",
|
||||||
|
});
|
||||||
|
};
|
||||||
1
rpg/javascript/libs/tata.js
Normal file
1
rpg/javascript/libs/tata.js
Normal file
File diff suppressed because one or more lines are too long
41
rpg/javascript/load_ficha.js
Normal file
41
rpg/javascript/load_ficha.js
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
let update;
|
||||||
|
function roll_load() {
|
||||||
|
$.ajax({
|
||||||
|
url: window.api + "roll",
|
||||||
|
type: "GET",
|
||||||
|
xhrFields: {
|
||||||
|
withCredentials: true,
|
||||||
|
},
|
||||||
|
success: function (resp) {
|
||||||
|
switch (update) {
|
||||||
|
case undefined:
|
||||||
|
resp.Logs.forEach(function (item) {
|
||||||
|
$("#log").append(`<li><label>${item.log}</label></li>`);
|
||||||
|
update = item.id;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
resp.Logs.forEach(function (item) {
|
||||||
|
if (item.id > update) {
|
||||||
|
$("#log").append(`<li><label>${item.log}</label></li>`);
|
||||||
|
update = item.id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$("#log").scrollTop($("#log")[0].scrollHeight);
|
||||||
|
},
|
||||||
|
error: function (resp, status, jqXHR) {
|
||||||
|
/*msg(
|
||||||
|
resp.responseJSON?.Status || "Erro",
|
||||||
|
resp.responseJSON?.Message || "Algo deu errado.",
|
||||||
|
);*/
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
setInterval(function () {
|
||||||
|
roll_load();
|
||||||
|
}, 1000);
|
||||||
|
});
|
||||||
@@ -1,3 +1,18 @@
|
|||||||
|
function verifyInputs(player, passwd, confpasswd, lore) {
|
||||||
|
if (
|
||||||
|
player &&
|
||||||
|
!player.includes(" ") &&
|
||||||
|
passwd &&
|
||||||
|
!passwd.includes(" ") &&
|
||||||
|
confpasswd &&
|
||||||
|
!confpasswd.includes(" ") &&
|
||||||
|
lore
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$("#imgClick").on("click", () => $("#inputImagem").click());
|
$("#imgClick").on("click", () => $("#inputImagem").click());
|
||||||
|
|
||||||
$("#inputImagem").on("change", function () {
|
$("#inputImagem").on("change", function () {
|
||||||
@@ -8,3 +23,60 @@ $("#inputImagem").on("change", function () {
|
|||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#loginBtn").on("click", function () {
|
||||||
|
const $btn = $(this);
|
||||||
|
$btn.prop("disabled", true).val("Criando conta...");
|
||||||
|
|
||||||
|
const fileInput = $("#inputImagem")[0];
|
||||||
|
const file = fileInput.files[0];
|
||||||
|
|
||||||
|
const player = $("#loginInput[name='player']").val();
|
||||||
|
const password = $("#loginInput[name='password']").val();
|
||||||
|
const confPassword = $("#loginInput[name='confirmpassword']").val();
|
||||||
|
const lore = $("#playerlore[name='playerlore']").val();
|
||||||
|
|
||||||
|
if (!file) {
|
||||||
|
msg("Error", "Você é obrigado a colocar uma imagem.");
|
||||||
|
return finalizarErro($btn, "Registrar");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!verifyInputs(player, password, confPassword, lore)) {
|
||||||
|
msg("Error", "Por favor, preencha todos os dados corretamente.");
|
||||||
|
return finalizarErro($btn, "Registrar");
|
||||||
|
}
|
||||||
|
|
||||||
|
const form = new FormData();
|
||||||
|
form.append("PlayerImage", fileInput.files[0]);
|
||||||
|
form.append("player", player);
|
||||||
|
form.append("password", password);
|
||||||
|
form.append("confirmpassword", confPassword);
|
||||||
|
form.append("playerlore", lore);
|
||||||
|
console.log(form);
|
||||||
|
$.ajax({
|
||||||
|
url: window.api + "register",
|
||||||
|
type: "POST",
|
||||||
|
data: form,
|
||||||
|
contentType: false,
|
||||||
|
processData: false,
|
||||||
|
xhrFields: { withCredentials: true },
|
||||||
|
success: function (resp) {
|
||||||
|
msg(resp.Status, resp.Message);
|
||||||
|
$btn.val("Concluído");
|
||||||
|
window.location.href = "index.html";
|
||||||
|
},
|
||||||
|
error: function (resp) {
|
||||||
|
msg(
|
||||||
|
resp.responseJSON?.Status || "Erro",
|
||||||
|
resp.responseJSON?.Message || "Algo deu errado.",
|
||||||
|
);
|
||||||
|
finalizarErro($btn, "Registrar");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function finalizarErro($btn, texto = "Registrar") {
|
||||||
|
$btn.prop("disabled", false).val(texto);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -11,18 +11,20 @@ function editInput(name, x, y) {
|
|||||||
`;
|
`;
|
||||||
$inp = $(input).appendTo("body").focus();
|
$inp = $(input).appendTo("body").focus();
|
||||||
|
|
||||||
$inp.on("keypress keydown", function (e) {
|
$inp.on("keydown", function (e) {
|
||||||
if (e.which === 13) {
|
if (e.which === 13) {
|
||||||
switch ($(this).find("input").val().length > 0) {
|
switch ($(this).find("input").val().length > 0) {
|
||||||
case true:
|
case true:
|
||||||
console.log($(this).find("input").val());
|
console.log($(this).find("input").val());
|
||||||
// aqui vai enviar a request, não esqueça zk
|
alert($(this).find("input").val());
|
||||||
break;
|
break;
|
||||||
case false:
|
case false:
|
||||||
$(this).remove();
|
$(this).remove();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
$inp.on("keypress keydown", function (e) {
|
||||||
switch (e.key) {
|
switch (e.key) {
|
||||||
case "Delete":
|
case "Delete":
|
||||||
$(this).remove();
|
$(this).remove();
|
||||||
@@ -46,6 +48,6 @@ $(document).ready(function () {
|
|||||||
let nameclass =
|
let nameclass =
|
||||||
reqbtn.length > 1
|
reqbtn.length > 1
|
||||||
? editInput(reqbtn[1], cordX, cordY)
|
? editInput(reqbtn[1], cordX, cordY)
|
||||||
: console.error("erro,coloque uma seunda cleass");
|
: msg("Error", "erro, ainda não foi definido a classe desse botão");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
<link rel="stylesheet" href="css/base.css" />
|
<link rel="stylesheet" href="css/base.css" />
|
||||||
<link rel="stylesheet" href="css/login.css" />
|
<link rel="stylesheet" href="css/login.css" />
|
||||||
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/libs/tata.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/globais.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="login_form">
|
<div id="login_form">
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
<link rel="stylesheet" href="css/base.css" />
|
<link rel="stylesheet" href="css/base.css" />
|
||||||
<link rel="stylesheet" href="css/register.css" />
|
<link rel="stylesheet" href="css/register.css" />
|
||||||
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
<script type="text/javascript" src="javascript/libs/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/libs/tata.js"></script>
|
||||||
|
<script type="text/javascript" src="javascript/globais.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="register_form">
|
<div id="register_form">
|
||||||
@@ -33,7 +35,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
name="passowrd"
|
name="password"
|
||||||
placeholder="senha"
|
placeholder="senha"
|
||||||
id="loginInput"
|
id="loginInput"
|
||||||
/>
|
/>
|
||||||
@@ -41,13 +43,14 @@
|
|||||||
<li>
|
<li>
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
name="confirmpassowrd"
|
name="confirmpassword"
|
||||||
placeholder="confirme senha"
|
placeholder="confirme senha"
|
||||||
id="loginInput"
|
id="loginInput"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<textarea
|
<textarea
|
||||||
|
id="playerlore"
|
||||||
name="playerlore"
|
name="playerlore"
|
||||||
placeholder="escreva a historia do seu personagem"
|
placeholder="escreva a historia do seu personagem"
|
||||||
></textarea>
|
></textarea>
|
||||||
|
|||||||
Reference in New Issue
Block a user