diff --git a/login.go b/login.go
index aed2bb9..fb95bfd 100644
--- a/login.go
+++ b/login.go
@@ -127,7 +127,7 @@ func Login(ctxt ui.AmContext) (string, any, error) {
if user.VerifyEMail {
return "redirect", target, nil
} else {
- return "redirect", "/verify?tgt=" + url.PathEscape(target), nil
+ return "redirect", "/verify?tgt=" + url.QueryEscape(target), nil
}
}
return dlg.RenderError(ctxt, "No known button click on POST to login function.")
@@ -393,7 +393,7 @@ func NewAccount(ctxt ui.AmContext) (string, any, error) {
if err == nil {
// user is now logged in! redirect to E-mail verification
ctxt.ReplaceUser(user)
- return "redirect", "/verify?tgt=" + url.PathEscape(target), nil
+ return "redirect", "/verify?tgt=" + url.QueryEscape(target), nil
}
}
}
diff --git a/main.go b/main.go
index 858005f..72cef4e 100644
--- a/main.go
+++ b/main.go
@@ -54,6 +54,7 @@ func setupEcho() *echo.Echo {
e.GET("/passrecovery/:uid/:auth", ui.AmWrap(PasswordRecovery))
e.GET("/profile", ui.AmWrap(EditProfileForm))
e.POST("/profile", ui.AmWrap(EditProfile))
+ e.GET("/profile_photo", ui.AmWrap(ProfilePhotoForm))
return e
}
diff --git a/ui/render_wrap.go b/ui/render_wrap.go
index 2a47e94..4f553e3 100644
--- a/ui/render_wrap.go
+++ b/ui/render_wrap.go
@@ -106,7 +106,7 @@ func AmWrap(myfunc func(AmContext) (string, any, error)) echo.HandlerFunc {
if !user.VerifyEMail {
// bounce to E-mail verification before we go anywhere
return sendPageData(ctxt, amctxt, "redirect",
- "/verify?tgt="+url.PathEscape(ctxt.Request().URL.Path))
+ "/verify?tgt="+url.QueryEscape(ctxt.Request().URL.Path))
}
} else {
log.Errorf("login cookie bogus, do not use: %v", cerr)
diff --git a/ui/views/dialog.jet b/ui/views/dialog.jet
index bb73682..a50cc14 100644
--- a/ui/views/dialog.jet
+++ b/ui/views/dialog.jet
@@ -186,7 +186,8 @@
-
+
diff --git a/ui/views/photo_upload.jet b/ui/views/photo_upload.jet
new file mode 100644
index 0000000..7efa93d
--- /dev/null
+++ b/ui/views/photo_upload.jet
@@ -0,0 +1,76 @@
+{*
+ * Amsterdam Web Communities System
+ * Copyright (c) 2025 Erbosoft Metaverse Design Solutions, All Rights Reserved
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *}
+
+