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,