Experimenting with request state in local errors.
Move the sheet and style declarations after the initial error on the profiles. Use a global URL ID error message for the profiles. Updates #51
This commit is contained in:
parent
a465850adb
commit
e9e527e76a
@ -212,16 +212,32 @@ func PreErrorJSQ(errmsg string, w http.ResponseWriter, r *http.Request, isJs boo
|
||||
|
||||
// LocalError is an error shown to the end-user when something goes wrong and it's not the software's fault
|
||||
// TODO: Pass header in for this and similar errors instead of having to pass in both user and w? Would also allow for more stateful things, although this could be a problem
|
||||
func LocalError(errmsg string, w http.ResponseWriter, r *http.Request, user User) RouteError {
|
||||
/*func LocalError(errmsg string, w http.ResponseWriter, r *http.Request, user User) RouteError {
|
||||
w.WriteHeader(500)
|
||||
pi := ErrorPage{errorHeader(w, user, phrases.GetErrorPhrase("local_error_title")), errmsg}
|
||||
handleErrorTemplate(w, r, pi)
|
||||
return HandledRouteError()
|
||||
}*/
|
||||
|
||||
func LocalError(errmsg string, w http.ResponseWriter, r *http.Request, user User) RouteError {
|
||||
return SimpleError(errmsg, w, r, errorHeader(w, user, ""))
|
||||
}
|
||||
|
||||
func SimpleError(errmsg string, w http.ResponseWriter, r *http.Request, header *Header) RouteError {
|
||||
if header == nil {
|
||||
header = errorHeader(w, GuestUser, phrases.GetErrorPhrase("local_error_title"))
|
||||
} else {
|
||||
header.Title = phrases.GetErrorPhrase("local_error_title")
|
||||
}
|
||||
w.WriteHeader(500)
|
||||
pi := ErrorPage{header, errmsg}
|
||||
handleErrorTemplate(w, r, pi)
|
||||
return HandledRouteError()
|
||||
}
|
||||
|
||||
func LocalErrorJSQ(errmsg string, w http.ResponseWriter, r *http.Request, user User, isJs bool) RouteError {
|
||||
if !isJs {
|
||||
return LocalError(errmsg, w, r, user)
|
||||
return SimpleError(errmsg, w, r, errorHeader(w, user, ""))
|
||||
}
|
||||
return LocalErrorJS(errmsg, w, r)
|
||||
}
|
||||
|
@ -28,12 +28,6 @@ func init() {
|
||||
|
||||
// TODO: Remove the View part of the name?
|
||||
func ViewProfile(w http.ResponseWriter, r *http.Request, user c.User, header *c.Header) c.RouteError {
|
||||
// TODO: Preload this?
|
||||
header.AddSheet(header.Theme.Name + "/profile.css")
|
||||
if user.Loggedin {
|
||||
header.AddScriptAsync("profile_member.js")
|
||||
}
|
||||
|
||||
var err error
|
||||
var replyCreatedAt time.Time
|
||||
var replyContent, replyCreatedByName, replyAvatar string
|
||||
@ -43,7 +37,13 @@ func ViewProfile(w http.ResponseWriter, r *http.Request, user c.User, header *c.
|
||||
// TODO: Do a 301 if it's the wrong username? Do a canonical too?
|
||||
_, pid, err := ParseSEOURL(r.URL.Path[len("/user/"):])
|
||||
if err != nil {
|
||||
return c.LocalError("The provided UserID is not a valid number.", w, r, user)
|
||||
return c.SimpleError(phrases.GetErrorPhrase("url_id_must_be_integer"),w,r,header)
|
||||
}
|
||||
|
||||
// TODO: Preload this?
|
||||
header.AddSheet(header.Theme.Name + "/profile.css")
|
||||
if user.Loggedin {
|
||||
header.AddScriptAsync("profile_member.js")
|
||||
}
|
||||
|
||||
var puser *c.User
|
||||
|
@ -44,7 +44,7 @@ func ViewTopic(w http.ResponseWriter, r *http.Request, user c.User, header *c.He
|
||||
page, _ := strconv.Atoi(r.FormValue("page"))
|
||||
_, tid, err := ParseSEOURL(urlBit)
|
||||
if err != nil {
|
||||
return c.PreError(phrases.GetErrorPhrase("url_id_must_be_integer"), w, r)
|
||||
return c.SimpleError(phrases.GetErrorPhrase("url_id_must_be_integer"),w,r,header)
|
||||
}
|
||||
|
||||
// Get the topic...
|
||||
|
Loading…
Reference in New Issue
Block a user