diff --git a/public/utils.js b/public/utils.js index 6f8f0a4..458610a 100644 --- a/public/utils.js +++ b/public/utils.js @@ -1,8 +1,9 @@ -function request(url, params, callback) { +function request(url, params, callback, errorcallback) { var xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) - callback(xmlHttp.responseText); + return callback(xmlHttp.responseText); + errorcallback(xmlHttp.responseText); } var method = "GET" if (params) method = "POST" @@ -45,9 +46,13 @@ function commentClick(e) { params += "&" + e.target.name + "=" + e.target.value params += "&xhr=1" e.target.disabled = "disabled" - request(targ.target, params, function(res){ - targ.outerHTML = res - }) + request(targ.target || "", params, + function(res){ + targ.outerHTML = res + }, + function(res){ + e.target.disabled = "" + }) } return false } @@ -100,19 +105,24 @@ function loadMore(e) { var urlParams = new URLSearchParams(window.location.search); urlParams.set("xhr", "1") urlParams.set("page", page) - request(window.location.origin+window.location.pathname+"?"+urlParams.toString(), "", function(res){ - if (res.trim()) { - e.target.outerHTML = res + '' - if (showimages = document.getElementById("showimages")) { - if (showimages.className == "selected") { - toggle_images(true) + request(window.location.origin+window.location.pathname+"?"+urlParams.toString(), "", + function(res){ + if (res.trim()) { + e.target.outerHTML = res + '' + if (showimages = document.getElementById("showimages")) { + if (showimages.className == "selected") { + toggle_images(true) + } } } + else { + e.target.outerHTML = '' + } + }, + function(res) { + e.target.outerHTML = '' } - else { - e.target.outerHTML = '' - } - }) + ) return false; } function hideAllChildComments(e) { @@ -146,9 +156,14 @@ function formSubmit(e) { params += "&" + e.submitter.name + "=" + e.submitter.value params += "&xhr=1" e.submitter.disabled = "disabled" - request(targ.target, params, function(res){ - targ.outerHTML = res - }) + request(targ.target, params, + function(res){ + targ.outerHTML = res + }, + function(res){ + e.submitter.disabled = "" + } + ) return false } diff --git a/routes.go b/routes.go index 9d47470..71c388e 100644 --- a/routes.go +++ b/routes.go @@ -1061,6 +1061,7 @@ func GetRouter() *httprouter.Router { router.GET("/:host/search", middleware(Search)) router.POST("/:host/search", middleware(UserOp)) router.GET("/:host/inbox", middleware(Inbox)) + router.POST("/:host/inbox", middleware(UserOp)) router.GET("/:host/login", middleware(GetLogin)) router.POST("/:host/login", middleware(SignUpOrLogin)) router.GET("/:host/settings", middleware(Settings)) @@ -1091,6 +1092,7 @@ func GetRouter() *httprouter.Router { router.GET("/search", middleware(Search)) router.POST("/search", middleware(UserOp)) router.GET("/inbox", middleware(Inbox)) + router.POST("/inbox", middleware(UserOp)) router.GET("/login", middleware(GetLogin)) router.POST("/login", middleware(SignUpOrLogin)) router.GET("/settings", middleware(Settings)) diff --git a/state.go b/state.go index 1692c56..ed13e37 100644 --- a/state.go +++ b/state.go @@ -349,6 +349,7 @@ func (state *State) GetMessages() { Post: m.Post, Creator: m.Creator, Community: m.Community, + Counts: m.Counts, }, Op: unread, State: state,