@@ -13,12 +13,9 @@ fill-rule="evenodd" d="M2 12.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 | |||||
<menu v-if="!mobile || toggled" class="sidebar"> | <menu v-if="!mobile || toggled" class="sidebar"> | ||||
<svg v-if="mobile" @click="() => toggled = !toggled" | <svg v-if="mobile" @click="() => toggled = !toggled" | ||||
width="1em" height="60" viewBox="0 0 16 16" class="bi bi-justify-left close" | |||||
fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <path | |||||
fill-rule="evenodd" d="M2 12.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 | |||||
1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 | |||||
0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 | |||||
0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/> </svg> | |||||
width="16" height="16" fill="currentColor" class="bi bi-x close" viewBox="0 0 16 16"> | |||||
<path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/> | |||||
</svg> | |||||
<img v-if="avatar" | <img v-if="avatar" | ||||
:src="avatarUrl"> | :src="avatarUrl"> | ||||
@@ -62,15 +62,19 @@ section.form label { | |||||
margin: 10px 0 10px 30px; | margin: 10px 0 10px 30px; | ||||
} | } | ||||
#app { | |||||
width: 100%; | |||||
height: 100%; | |||||
} | |||||
.app-panel { | .app-panel { | ||||
height: 100%; | |||||
width: 100%; | |||||
position: absolute; | |||||
width: 100%; | |||||
position: relative; | |||||
display: flex; | display: flex; | ||||
justify-content: space-between; | |||||
} | } | ||||
menu.sidebar { | menu.sidebar { | ||||
height: calc(100% - 70px); | |||||
position: relative; | position: relative; | ||||
margin: 0; | margin: 0; | ||||
padding: 35px 0px; | padding: 35px 0px; | ||||
@@ -276,6 +280,11 @@ svg.close { | |||||
color: var(--text); | color: var(--text); | ||||
} | } | ||||
.sidebar svg.close { | |||||
width: 34px; | |||||
height: 34px; | |||||
} | |||||
.close-btn { | .close-btn { | ||||
width: 30px; | width: 30px; | ||||
height: 30px; | height: 30px; | ||||
@@ -3187,8 +3187,7 @@ func subscribe(w http.ResponseWriter, db *sql.DB, r *http.Request) { | |||||
// easier testing of the endpoint. | // easier testing of the endpoint. | ||||
err = user.Sub.insertSub(db) | err = user.Sub.insertSub(db) | ||||
if err != nil { | if err != nil { | ||||
// http.Error(w, err.Error(), 500) | |||||
json.NewEncoder(w).Encode(s) | |||||
http.Error(w, err.Error(), 500) | |||||
return | return | ||||
} | } | ||||
} else { | } else { | ||||
@@ -3539,16 +3538,16 @@ func (user *User) sendVerificationEmail() { | |||||
AddTo(user.Email). | AddTo(user.Email). | ||||
SetSubject("Email Verification") | SetSubject("Email Verification") | ||||
message := `To: %s | |||||
Subject: Email Verification | |||||
Welcome %s, | |||||
Click the link below to verify your email address | |||||
https://skouter.net?verification_token=%s` | |||||
message := `Welcome %s, | |||||
Click the link below to verify your email address | |||||
https://%s?verification_token=%s` | |||||
t, err := verificationToken(user.Id) | t, err := verificationToken(user.Id) | ||||
message = fmt.Sprintf(message, user.Email, user.FirstName, t) | |||||
message = fmt.Sprintf(message, | |||||
user.FirstName, | |||||
os.Getenv("SKOUTER_DOMAIN"), | |||||
t) | |||||
email.SetBody(mailer.TextPlain, message) | email.SetBody(mailer.TextPlain, message) | ||||
@@ -4080,9 +4079,6 @@ func dev(args []string) { | |||||
} | } | ||||
func check(args []string) { | func check(args []string) { | ||||
os.Setenv("DB_NAME", "skouter_dev") | |||||
os.Setenv("DB_USER", "tester") | |||||
os.Setenv("DB_PASSWORD", "test123") | |||||
files := http.FileServer(http.Dir("")) | files := http.FileServer(http.Dir("")) | ||||
http.Handle("/assets/", files) | http.Handle("/assets/", files) | ||||