diff --git a/errors.go b/errors.go index 3b3c79e6..52aa61e6 100644 --- a/errors.go +++ b/errors.go @@ -36,14 +36,14 @@ func InternalErrorJSQ(err error, w http.ResponseWriter, r *http.Request, is_js s if is_js == "0" { w.Write(error_internal) } else { - w.Write([]byte(`{'errmsg': 'A problem has occured in the system.'}`)) + w.Write([]byte(`{"errmsg":"A problem has occured in the system."}`)) } log.Fatal(err) } func InternalErrorJS(err error, w http.ResponseWriter, r *http.Request) { w.WriteHeader(500) - w.Write([]byte(`{'errmsg': 'A problem has occured in the system.'}`)) + w.Write([]byte(`{"errmsg":"A problem has occured in the system."}`)) log.Fatal(err) } @@ -81,7 +81,7 @@ func PreErrorJSQ(errmsg string, w http.ResponseWriter, r *http.Request, is_js st templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte(`{'errmsg': '` + errmsg + `'}`)) + w.Write([]byte(`{"errmsg":"` + errmsg + `"}`)) } } @@ -93,7 +93,7 @@ func LocalErrorJSQ(errmsg string, w http.ResponseWriter, r *http.Request, user U templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte(`{'errmsg': '` + errmsg + `'}`)) + w.Write([]byte(`{"errmsg":"` + errmsg + `"}`)) } } @@ -119,7 +119,7 @@ func NoPermissionsJSQ(w http.ResponseWriter, r *http.Request, user User, is_js s templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte("{'errmsg': 'You don't have permission to do that.'}")) + w.Write([]byte(`{"errmsg":"You don't have permission to do that."}`)) } } @@ -139,7 +139,7 @@ func BannedJSQ(w http.ResponseWriter, r *http.Request, user User, is_js string) templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte("{'errmsg': 'You have been banned from this site.'}")) + w.Write([]byte(`{"errmsg":"You have been banned from this site."}`)) } } @@ -151,7 +151,7 @@ func LoginRequiredJSQ(w http.ResponseWriter, r *http.Request, user User, is_js s templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte("{'errmsg': 'You need to login to do that.'}")) + w.Write([]byte(`{"errmsg":"You need to login to do that."}`)) } } @@ -184,6 +184,6 @@ func CustomErrorJSQ(errmsg string, errcode int, errtitle string, w http.Response templates.ExecuteTemplate(&b,"error.html", pi) fmt.Fprintln(w,b.String()) } else { - w.Write([]byte(`{'errmsg': '` + errmsg + `'}`)) + w.Write([]byte(`{"errmsg":"` + errmsg + `"}`)) } } diff --git a/general_test.go b/general_test.go index b2900fd3..7ec9ec4e 100644 --- a/general_test.go +++ b/general_test.go @@ -1387,7 +1387,7 @@ func TestForumGuestRoute(t *testing.T) { } db = db_test alert_w := httptest.NewRecorder() - alert_req := httptest.NewRequest("get","/api/?action=get&module=alerts",bytes.NewReader(nil)) + alert_req := httptest.NewRequest("get","/api/?action=get&module=alerts&format=json",bytes.NewReader(nil)) alert_handler := http.HandlerFunc(route_api) //testdb.StubQuery() testdb.SetQueryFunc(func(query string) (result sql.Rows, err error) { diff --git a/mod_routes.go b/mod_routes.go index b1a74d99..fe6692d6 100644 --- a/mod_routes.go +++ b/mod_routes.go @@ -66,7 +66,7 @@ func route_edit_topic(w http.ResponseWriter, r *http.Request) { if is_js == "0" { http.Redirect(w,r,"/topic/" + strconv.Itoa(tid),http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } } @@ -255,7 +255,7 @@ func route_reply_edit_submit(w http.ResponseWriter, r *http.Request) { if is_js == "0" { http.Redirect(w,r, "/topic/" + strconv.Itoa(tid) + "#reply-" + strconv.Itoa(rid), http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } } @@ -316,7 +316,7 @@ func route_reply_delete_submit(w http.ResponseWriter, r *http.Request) { if is_js == "0" { //http.Redirect(w,r, "/topic/" + strconv.Itoa(tid), http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } wcount := word_count(content) @@ -382,7 +382,7 @@ func route_profile_reply_edit_submit(w http.ResponseWriter, r *http.Request) { if is_js == "0" { http.Redirect(w,r, "/user/" + strconv.Itoa(uid) + "#reply-" + strconv.Itoa(rid), http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } } @@ -433,7 +433,7 @@ func route_profile_reply_delete_submit(w http.ResponseWriter, r *http.Request) { if is_js == "0" { //http.Redirect(w,r, "/user/" + strconv.Itoa(uid), http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } } @@ -878,7 +878,7 @@ func route_panel_forums_edit_submit(w http.ResponseWriter, r *http.Request) { if is_js == "0" { http.Redirect(w,r,"/panel/forums/",http.StatusSeeOther) } else { - fmt.Fprintf(w,"{'success': '1'}") + fmt.Fprintf(w,`{"success":"1"}`) } } diff --git a/mysql.go b/mysql.go index 922a8ef8..1c970743 100644 --- a/mysql.go +++ b/mysql.go @@ -19,7 +19,7 @@ var get_topic_stmt *sql.Stmt var get_topic_by_reply_stmt *sql.Stmt var get_topic_replies_stmt *sql.Stmt var get_topic_replies_offset_stmt *sql.Stmt -var get_post_stmt *sql.Stmt +var get_reply_stmt *sql.Stmt var get_forum_topics_stmt *sql.Stmt var get_forum_topics_offset_stmt *sql.Stmt var create_topic_stmt *sql.Stmt @@ -154,8 +154,8 @@ func init_database(err error) { log.Fatal(err) } - log.Print("Preparing get_post statement.") - get_post_stmt, err = db.Prepare("select content, createdBy, createdAt, lastEdit, lastEditBy, ipaddress, likeCount from replies where rid = ?") + log.Print("Preparing get_reply statement.") + get_reply_stmt, err = db.Prepare("select content, createdBy, createdAt, lastEdit, lastEditBy, ipaddress, likeCount from replies where rid = ?") if err != nil { log.Fatal(err) } diff --git a/public/global.js b/public/global.js index 1fea6ecf..3638e1c0 100644 --- a/public/global.js +++ b/public/global.js @@ -5,7 +5,7 @@ function post_link(event) event.preventDefault(); var form_action = $(event.target).closest('a').attr("href"); //console.log("Form Action: " + form_action); - $.ajax({ url: form_action, type: "POST", dataType: "json", data: { js: "1" } }); + $.ajax({ url: form_action, type: "POST", dataType: "json", data: {js: "1"} }); } $(document).ready(function(){ @@ -162,6 +162,65 @@ $(document).ready(function(){ } }); + $(".menu_alerts").click(function(event) { + if($(this).hasClass("selectedAlert")) return; + var menu_alerts = $(this); + + this.className += " selectedAlert"; + $.ajax({ + type: 'get', + dataType: 'json', + url:'/api/?action=get&module=alerts&format=json', + success: function(data) { + if("errmsg" in data) { + console.log(data.errmsg); + menu_alerts.find(".alertList").html("