diff --git a/web/server/handlers.go b/web/server/handlers.go index 5e8a543..e868454 100644 --- a/web/server/handlers.go +++ b/web/server/handlers.go @@ -18,3 +18,7 @@ func root(c *gin.Context) { func quotes(c *gin.Context) { c.HTML(http.StatusOK, "quotes.html", nil) } + +func settings(c *gin.Context) { + c.HTML(http.StatusOK, "settings.html", nil) +} diff --git a/web/server/server.go b/web/server/server.go index 45597b4..1518c1b 100644 --- a/web/server/server.go +++ b/web/server/server.go @@ -21,6 +21,7 @@ func Serve(addr string) { r.Static("/static", "./static") r.GET("/", api.MiddlewareAuth, root) r.GET("/quotes", api.MiddlewareAuth, middlewareAuth, quotes) + r.GET("/settings", api.MiddlewareAuth, middlewareAuth, settings) r.Run(addr) } diff --git a/web/static/js/settings.js b/web/static/js/settings.js new file mode 100644 index 0000000..a4f2b95 --- /dev/null +++ b/web/static/js/settings.js @@ -0,0 +1,58 @@ +$(window).on("load", function (e) { + $.ajax({ + url: "/api/auth", + type: "GET", + dataType: "json", + success: function (resp) { + $("#input-name").val(resp.name); + $("#input-login").val(resp.login); + $("#input-tgid").val(resp.telegram_id); + }, + error: function (err) { + $("#error-message").text(err.responseJSON.error); + $("#error").removeClass("hidden"); + }, + }); +}); + +$(document).on("click", "#btn-logout", function (e) { + $.ajax({ + url: "/api/auth", + type: "DELETE", + success: function () { + location.reload(); + }, + error: function (err) { + $("#error-message").text(err.responseJSON.error); + $("#error").removeClass("hidden"); + }, + }); +}); + +$(document).on("submit", "#user-update", function (e) { + e.preventDefault(); + formdata = $("#user-update").serializeArray(); + data = {}; + $(formdata).each(function (index, obj) { + data[obj.name] = obj.value; + }); + console.log(data); + $.ajax({ + url: "/api/auth", + type: "PATCH", + contentType: "application/json", + data: JSON.stringify(data), + processData: false, + dataType: "json", + success: function () { + $("#error").addClass("hidden"); + $("#success").removeClass("hidden"); + $("#input-password").val(""); + }, + error: function (err) { + $("#success").addClass("hidden"); + $("#error-message").text(err.responseJSON.error); + $("#error").removeClass("hidden"); + }, + }); +}); diff --git a/web/templates/quotes.html b/web/templates/quotes.html index 8d66d88..c37af5f 100644 --- a/web/templates/quotes.html +++ b/web/templates/quotes.html @@ -50,6 +50,7 @@ + Настройки

diff --git a/web/templates/settings.html b/web/templates/settings.html new file mode 100644 index 0000000..a9fdcda --- /dev/null +++ b/web/templates/settings.html @@ -0,0 +1,100 @@ + + + + + {{ template "head" . }} + Настройки | SkazaNull + + + +

+
+ +

+ Настройки юзверя +

+

+ Изменяй и властвуй +

+
+ + +
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+
+
+
+ + +
+
+
+
+ К цитатам +
+

+ + © Masahiko AMANO (H1K0), 2025—present + +

+
+
+ + + +