Cosora shouldn't warp on large screens now. Control Panel looks a little off over a thousand now, this is going to be fixed in the following commit.
Added the poll column to the replies table. Renamed *Reply.SetBody() to *Reply.SetPost() Moved routeAccountEditCritical into /routes/account.go
This commit is contained in:
parent
a7fec11170
commit
1959741c00
@ -76,7 +76,7 @@ func init() {
|
|||||||
replyStmts = ReplyStmts{
|
replyStmts = ReplyStmts{
|
||||||
isLiked: acc.Select("likes").Columns("targetItem").Where("sentBy = ? and targetItem = ? and targetType = 'replies'").Prepare(),
|
isLiked: acc.Select("likes").Columns("targetItem").Where("sentBy = ? and targetItem = ? and targetType = 'replies'").Prepare(),
|
||||||
createLike: acc.Insert("likes").Columns("weight, targetItem, targetType, sentBy").Fields("?,?,?,?").Prepare(),
|
createLike: acc.Insert("likes").Columns("weight, targetItem, targetType, sentBy").Fields("?,?,?,?").Prepare(),
|
||||||
edit: acc.Update("replies").Set("content = ?, parsed_content = ?").Where("rid = ?").Prepare(),
|
edit: acc.Update("replies").Set("content = ?, parsed_content = ?, poll = ?").Where("rid = ?").Prepare(),
|
||||||
delete: acc.Delete("replies").Where("rid = ?").Prepare(),
|
delete: acc.Delete("replies").Where("rid = ?").Prepare(),
|
||||||
addLikesToReply: acc.Update("replies").Set("likeCount = likeCount + ?").Where("rid = ?").Prepare(),
|
addLikesToReply: acc.Update("replies").Set("likeCount = likeCount + ?").Where("rid = ?").Prepare(),
|
||||||
removeRepliesFromTopic: acc.Update("topics").Set("postCount = postCount - ?").Where("tid = ?").Prepare(),
|
removeRepliesFromTopic: acc.Update("topics").Set("postCount = postCount - ?").Where("tid = ?").Prepare(),
|
||||||
@ -120,17 +120,21 @@ func (reply *Reply) Delete() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (reply *Reply) SetBody(content string) error {
|
func (reply *Reply) SetPost(content string) error {
|
||||||
topic, err := reply.Topic()
|
topic, err := reply.Topic()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
content = PreparseMessage(html.UnescapeString(content))
|
content = PreparseMessage(html.UnescapeString(content))
|
||||||
parsedContent := ParseMessage(content, topic.ParentID, "forums")
|
parsedContent := ParseMessage(content, topic.ParentID, "forums")
|
||||||
_, err = replyStmts.edit.Exec(content, parsedContent, reply.ID)
|
_, err = replyStmts.edit.Exec(content, parsedContent, 0, reply.ID)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (reply *Reply) SetPoll(content string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (reply *Reply) Topic() (*Topic, error) {
|
func (reply *Reply) Topic() (*Topic, error) {
|
||||||
return Topics.Get(reply.ParentID)
|
return Topics.Get(reply.ParentID)
|
||||||
}
|
}
|
||||||
|
28
common/thumbnailer.go
Normal file
28
common/thumbnailer.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
var Thumbnailer ThumbnailerInt
|
||||||
|
|
||||||
|
type ThumbnailerInt interface {
|
||||||
|
}
|
||||||
|
|
||||||
|
type RezThumbnailer struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (thumb *RezThumbnailer) Resize(path string, width int) error {
|
||||||
|
// TODO: Sniff the aspect ratio of the image and calculate the dest height accordingly, bug make sure it isn't excessively high
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (thumb *RezThumbnailer) resize(path string, width int, height int) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
type LilliputThumbnailer struct {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResizeThumbnailer struct {
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
@ -70,7 +70,7 @@ var RouteMap = map[string]interface{}{
|
|||||||
"routePanelLogsMod": routePanelLogsMod,
|
"routePanelLogsMod": routePanelLogsMod,
|
||||||
"routePanelDebug": routePanelDebug,
|
"routePanelDebug": routePanelDebug,
|
||||||
"routePanelDashboard": routePanelDashboard,
|
"routePanelDashboard": routePanelDashboard,
|
||||||
"routeAccountEditCritical": routeAccountEditCritical,
|
"routes.AccountEditCritical": routes.AccountEditCritical,
|
||||||
"routeAccountEditCriticalSubmit": routeAccountEditCriticalSubmit,
|
"routeAccountEditCriticalSubmit": routeAccountEditCriticalSubmit,
|
||||||
"routeAccountEditAvatar": routeAccountEditAvatar,
|
"routeAccountEditAvatar": routeAccountEditAvatar,
|
||||||
"routeAccountEditAvatarSubmit": routeAccountEditAvatarSubmit,
|
"routeAccountEditAvatarSubmit": routeAccountEditAvatarSubmit,
|
||||||
@ -165,7 +165,7 @@ var routeMapEnum = map[string]int{
|
|||||||
"routePanelLogsMod": 51,
|
"routePanelLogsMod": 51,
|
||||||
"routePanelDebug": 52,
|
"routePanelDebug": 52,
|
||||||
"routePanelDashboard": 53,
|
"routePanelDashboard": 53,
|
||||||
"routeAccountEditCritical": 54,
|
"routes.AccountEditCritical": 54,
|
||||||
"routeAccountEditCriticalSubmit": 55,
|
"routeAccountEditCriticalSubmit": 55,
|
||||||
"routeAccountEditAvatar": 56,
|
"routeAccountEditAvatar": 56,
|
||||||
"routeAccountEditAvatarSubmit": 57,
|
"routeAccountEditAvatarSubmit": 57,
|
||||||
@ -258,7 +258,7 @@ var reverseRouteMapEnum = map[int]string{
|
|||||||
51: "routePanelLogsMod",
|
51: "routePanelLogsMod",
|
||||||
52: "routePanelDebug",
|
52: "routePanelDebug",
|
||||||
53: "routePanelDashboard",
|
53: "routePanelDashboard",
|
||||||
54: "routeAccountEditCritical",
|
54: "routes.AccountEditCritical",
|
||||||
55: "routeAccountEditCriticalSubmit",
|
55: "routeAccountEditCriticalSubmit",
|
||||||
56: "routeAccountEditAvatar",
|
56: "routeAccountEditAvatar",
|
||||||
57: "routeAccountEditAvatarSubmit",
|
57: "routeAccountEditAvatarSubmit",
|
||||||
@ -966,7 +966,7 @@ func (router *GenRouter) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
common.RouteViewCounter.Bump(54)
|
common.RouteViewCounter.Bump(54)
|
||||||
err = routeAccountEditCritical(w,req,user)
|
err = routes.AccountEditCritical(w,req,user)
|
||||||
case "/user/edit/critical/submit/":
|
case "/user/edit/critical/submit/":
|
||||||
err = common.NoSessionMismatch(w,req,user)
|
err = common.NoSessionMismatch(w,req,user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -394,25 +394,6 @@ func routeReportSubmit(w http.ResponseWriter, r *http.Request, user common.User,
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func routeAccountEditCritical(w http.ResponseWriter, r *http.Request, user common.User) common.RouteError {
|
|
||||||
headerVars, ferr := common.UserCheck(w, r, &user)
|
|
||||||
if ferr != nil {
|
|
||||||
return ferr
|
|
||||||
}
|
|
||||||
|
|
||||||
pi := common.Page{"Edit Password", user, headerVars, tList, nil}
|
|
||||||
if common.PreRenderHooks["pre_render_account_own_edit_critical"] != nil {
|
|
||||||
if common.RunPreRenderHook("pre_render_account_own_edit_critical", w, r, &user, &pi) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
err := common.Templates.ExecuteTemplate(w, "account_own_edit.html", pi)
|
|
||||||
if err != nil {
|
|
||||||
return common.InternalError(err, w, r)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func routeAccountEditCriticalSubmit(w http.ResponseWriter, r *http.Request, user common.User) common.RouteError {
|
func routeAccountEditCriticalSubmit(w http.ResponseWriter, r *http.Request, user common.User) common.RouteError {
|
||||||
headerVars, ferr := common.UserCheck(w, r, &user)
|
headerVars, ferr := common.UserCheck(w, r, &user)
|
||||||
if ferr != nil {
|
if ferr != nil {
|
||||||
|
@ -171,8 +171,8 @@ func createTables(adapter qgen.Adapter) error {
|
|||||||
|
|
||||||
qgen.Install.CreateTable("replies", "utf8mb4", "utf8mb4_general_ci",
|
qgen.Install.CreateTable("replies", "utf8mb4", "utf8mb4_general_ci",
|
||||||
[]qgen.DBTableColumn{
|
[]qgen.DBTableColumn{
|
||||||
qgen.DBTableColumn{"rid", "int", 0, false, true, ""},
|
qgen.DBTableColumn{"rid", "int", 0, false, true, ""}, // TODO: Rename to replyID?
|
||||||
qgen.DBTableColumn{"tid", "int", 0, false, false, ""},
|
qgen.DBTableColumn{"tid", "int", 0, false, false, ""}, // TODO: Rename to topicID?
|
||||||
qgen.DBTableColumn{"content", "text", 0, false, false, ""},
|
qgen.DBTableColumn{"content", "text", 0, false, false, ""},
|
||||||
qgen.DBTableColumn{"parsed_content", "text", 0, false, false, ""},
|
qgen.DBTableColumn{"parsed_content", "text", 0, false, false, ""},
|
||||||
qgen.DBTableColumn{"createdAt", "createdAt", 0, false, false, ""},
|
qgen.DBTableColumn{"createdAt", "createdAt", 0, false, false, ""},
|
||||||
@ -184,6 +184,7 @@ func createTables(adapter qgen.Adapter) error {
|
|||||||
qgen.DBTableColumn{"likeCount", "int", 0, false, false, "0"},
|
qgen.DBTableColumn{"likeCount", "int", 0, false, false, "0"},
|
||||||
qgen.DBTableColumn{"words", "int", 0, false, false, "1"}, // ? - replies has a default of 1 and topics has 0? why?
|
qgen.DBTableColumn{"words", "int", 0, false, false, "1"}, // ? - replies has a default of 1 and topics has 0? why?
|
||||||
qgen.DBTableColumn{"actionType", "varchar", 20, false, false, "''"},
|
qgen.DBTableColumn{"actionType", "varchar", 20, false, false, "''"},
|
||||||
|
qgen.DBTableColumn{"poll", "boolean", 0, false, false, "0"},
|
||||||
},
|
},
|
||||||
[]qgen.DBTableKey{
|
[]qgen.DBTableKey{
|
||||||
qgen.DBTableKey{"rid", "primary"},
|
qgen.DBTableKey{"rid", "primary"},
|
||||||
|
@ -39,7 +39,7 @@ func buildUserRoutes() {
|
|||||||
userGroup := newRouteGroup("/user/")
|
userGroup := newRouteGroup("/user/")
|
||||||
userGroup.Routes(
|
userGroup.Routes(
|
||||||
View("routeProfile", "/user/").LitBefore("req.URL.Path += extraData"),
|
View("routeProfile", "/user/").LitBefore("req.URL.Path += extraData"),
|
||||||
MemberView("routeAccountEditCritical", "/user/edit/critical/"),
|
MemberView("routes.AccountEditCritical", "/user/edit/critical/"),
|
||||||
Action("routeAccountEditCriticalSubmit", "/user/edit/critical/submit/"), // TODO: Full test this
|
Action("routeAccountEditCriticalSubmit", "/user/edit/critical/submit/"), // TODO: Full test this
|
||||||
MemberView("routeAccountEditAvatar", "/user/edit/avatar/"),
|
MemberView("routeAccountEditAvatar", "/user/edit/avatar/"),
|
||||||
UploadAction("routeAccountEditAvatarSubmit", "/user/edit/avatar/submit/").MaxSizeVar("common.Config.MaxRequestSize"),
|
UploadAction("routeAccountEditAvatarSubmit", "/user/edit/avatar/submit/").MaxSizeVar("common.Config.MaxRequestSize"),
|
||||||
|
29
routes/account.go
Normal file
29
routes/account.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package routes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"../common"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A blank list to fill out that parameter in Page for routes which don't use it
|
||||||
|
var tList []interface{}
|
||||||
|
|
||||||
|
func AccountEditCritical(w http.ResponseWriter, r *http.Request, user common.User) common.RouteError {
|
||||||
|
headerVars, ferr := common.UserCheck(w, r, &user)
|
||||||
|
if ferr != nil {
|
||||||
|
return ferr
|
||||||
|
}
|
||||||
|
|
||||||
|
pi := common.Page{"Edit Password", user, headerVars, tList, nil}
|
||||||
|
if common.PreRenderHooks["pre_render_account_own_edit_critical"] != nil {
|
||||||
|
if common.RunPreRenderHook("pre_render_account_own_edit_critical", w, r, &user, &pi) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
err := common.Templates.ExecuteTemplate(w, "account_own_edit.html", pi)
|
||||||
|
if err != nil {
|
||||||
|
return common.InternalError(err, w, r)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -41,7 +41,7 @@ func ReplyEditSubmit(w http.ResponseWriter, r *http.Request, user common.User, s
|
|||||||
return common.NoPermissionsJSQ(w, r, user, isJs)
|
return common.NoPermissionsJSQ(w, r, user, isJs)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = reply.SetBody(r.PostFormValue("edit_item"))
|
err = reply.SetPost(r.PostFormValue("edit_item"))
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
return common.PreErrorJSQ("The parent topic doesn't exist.", w, r, isJs)
|
return common.PreErrorJSQ("The parent topic doesn't exist.", w, r, isJs)
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
|
@ -12,5 +12,6 @@ CREATE TABLE [replies] (
|
|||||||
[likeCount] int DEFAULT 0 not null,
|
[likeCount] int DEFAULT 0 not null,
|
||||||
[words] int DEFAULT 1 not null,
|
[words] int DEFAULT 1 not null,
|
||||||
[actionType] nvarchar (20) DEFAULT '' not null,
|
[actionType] nvarchar (20) DEFAULT '' not null,
|
||||||
|
[poll] bit DEFAULT 0 not null,
|
||||||
primary key([rid])
|
primary key([rid])
|
||||||
);
|
);
|
@ -12,5 +12,6 @@ CREATE TABLE `replies` (
|
|||||||
`likeCount` int DEFAULT 0 not null,
|
`likeCount` int DEFAULT 0 not null,
|
||||||
`words` int DEFAULT 1 not null,
|
`words` int DEFAULT 1 not null,
|
||||||
`actionType` varchar(20) DEFAULT '' not null,
|
`actionType` varchar(20) DEFAULT '' not null,
|
||||||
|
`poll` boolean DEFAULT 0 not null,
|
||||||
primary key(`rid`)
|
primary key(`rid`)
|
||||||
) CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
|
) CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
|
@ -12,5 +12,6 @@ CREATE TABLE `replies` (
|
|||||||
`likeCount` int DEFAULT 0 not null,
|
`likeCount` int DEFAULT 0 not null,
|
||||||
`words` int DEFAULT 1 not null,
|
`words` int DEFAULT 1 not null,
|
||||||
`actionType` varchar (20) DEFAULT '' not null,
|
`actionType` varchar (20) DEFAULT '' not null,
|
||||||
|
`poll` boolean DEFAULT 0 not null,
|
||||||
primary key(`rid`)
|
primary key(`rid`)
|
||||||
);
|
);
|
@ -42,12 +42,12 @@ a {
|
|||||||
color: var(--primary-link-color);
|
color: var(--primary-link-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
body, #back {
|
body, #main {
|
||||||
background-color: var(--tinted-background-color);
|
background-color: var(--tinted-background-color);
|
||||||
}
|
}
|
||||||
#back {
|
#back {
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
padding-top: 14px;
|
padding-top: 0px;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-left: 0px;
|
padding-left: 0px;
|
||||||
padding-right: 0px;
|
padding-right: 0px;
|
||||||
@ -59,6 +59,7 @@ body, #back {
|
|||||||
|
|
||||||
#main {
|
#main {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
padding-top: 14px;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
@ -1327,6 +1328,19 @@ textarea {
|
|||||||
content: "\f27b";
|
content: "\f27b";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media(min-width: 1000px) {
|
||||||
|
#main {
|
||||||
|
max-width: 1000px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
border-left: 1px solid hsl(20,0%,95%);
|
||||||
|
border-right: 1px solid hsl(20,0%,95%);
|
||||||
|
}
|
||||||
|
#back {
|
||||||
|
background-color: hsl(0,0%,95%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media(min-width: 721px) {
|
@media(min-width: 721px) {
|
||||||
.hide_on_big {
|
.hide_on_big {
|
||||||
display: none;
|
display: none;
|
||||||
|
Loading…
Reference in New Issue
Block a user