Added the lock and unlock moderation action posts.
This commit is contained in:
parent
42eb509448
commit
2dbeef4694
1
data.sql
1
data.sql
|
@ -95,6 +95,7 @@ CREATE TABLE `replies`(
|
||||||
`ipaddress` varchar(200) DEFAULT '0.0.0.0.0' not null,
|
`ipaddress` varchar(200) DEFAULT '0.0.0.0.0' not null,
|
||||||
`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,
|
||||||
primary key(`rid`)
|
primary key(`rid`)
|
||||||
) CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
|
) CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
|
|
2
main.go
2
main.go
|
@ -53,7 +53,7 @@ func compile_templates() {
|
||||||
|
|
||||||
topic := TopicUser{1,"Blah","Hey there!",0,false,false,"Date","Date",0,"","127.0.0.1",0,1,"",default_group,"",no_css_tmpl,0,"","","","",58,false}
|
topic := TopicUser{1,"Blah","Hey there!",0,false,false,"Date","Date",0,"","127.0.0.1",0,1,"",default_group,"",no_css_tmpl,0,"","","","",58,false}
|
||||||
var replyList []Reply
|
var replyList []Reply
|
||||||
replyList = append(replyList, Reply{0,0,"","Yo!",0,"",default_group,"",0,0,"",no_css_tmpl,0,"","","","",0,"127.0.0.1",false,1})
|
replyList = append(replyList, Reply{0,0,"","Yo!",0,"",default_group,"",0,0,"",no_css_tmpl,0,"","","","",0,"127.0.0.1",false,1,"",""})
|
||||||
|
|
||||||
var varList map[string]VarItem = make(map[string]VarItem)
|
var varList map[string]VarItem = make(map[string]VarItem)
|
||||||
tpage := TopicPage{"Title",user,noticeList,replyList,topic,1,1,false}
|
tpage := TopicPage{"Title",user,noticeList,replyList,topic,1,1,false}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import "log"
|
||||||
import "fmt"
|
import "fmt"
|
||||||
import "strings"
|
import "strings"
|
||||||
import "strconv"
|
import "strconv"
|
||||||
|
import "net"
|
||||||
import "net/http"
|
import "net/http"
|
||||||
import "html"
|
import "html"
|
||||||
import "encoding/json"
|
import "encoding/json"
|
||||||
|
@ -29,7 +30,8 @@ func route_edit_topic(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = db.QueryRow("select parentID from topics where tid = ?", tid).Scan(&fid)
|
var old_is_closed bool
|
||||||
|
err = db.QueryRow("select parentID, is_closed from topics where tid = ?", tid).Scan(&fid,&old_is_closed)
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
PreErrorJSQ("The topic you tried to edit doesn't exist.",w,r,is_js)
|
PreErrorJSQ("The topic you tried to edit doesn't exist.",w,r,is_js)
|
||||||
return
|
return
|
||||||
|
@ -58,6 +60,37 @@ func route_edit_topic(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ipaddress, _, err := net.SplitHostPort(r.RemoteAddr)
|
||||||
|
if err != nil {
|
||||||
|
LocalError("Bad IP",w,r,user)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if old_is_closed != is_closed {
|
||||||
|
var action string
|
||||||
|
if is_closed {
|
||||||
|
action = "lock"
|
||||||
|
} else {
|
||||||
|
action = "unlock"
|
||||||
|
}
|
||||||
|
_, err = create_action_reply_stmt.Exec(tid,action,ipaddress,user.ID)
|
||||||
|
if err != nil {
|
||||||
|
InternalError(err,w,r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = add_replies_to_topic_stmt.Exec(1, tid)
|
||||||
|
if err != nil {
|
||||||
|
InternalError(err,w,r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = update_forum_cache_stmt.Exec(topic_name, tid, user.Name, user.ID, 1)
|
||||||
|
if err != nil {
|
||||||
|
InternalError(err,w,r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = topics.Load(tid)
|
err = topics.Load(tid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
LocalErrorJSQ("This topic no longer exists!",w,r,user,is_js)
|
LocalErrorJSQ("This topic no longer exists!",w,r,user,is_js)
|
||||||
|
@ -1803,14 +1836,14 @@ func route_panel_groups_create_submit(w http.ResponseWriter, r *http.Request){
|
||||||
group_type := r.PostFormValue("group-type")
|
group_type := r.PostFormValue("group-type")
|
||||||
if group_type == "Admin" {
|
if group_type == "Admin" {
|
||||||
if !user.Perms.EditGroupAdmin {
|
if !user.Perms.EditGroupAdmin {
|
||||||
LocalError("You need the EditGroupAdmin permission can create admin groups",w,r,user)
|
LocalError("You need the EditGroupAdmin permission to create admin groups",w,r,user)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
is_admin = true
|
is_admin = true
|
||||||
is_mod = true
|
is_mod = true
|
||||||
} else if group_type == "Mod" {
|
} else if group_type == "Mod" {
|
||||||
if !user.Perms.EditGroupSuperMod {
|
if !user.Perms.EditGroupSuperMod {
|
||||||
LocalError("You need the EditGroupSuperMod permission can create admin groups",w,r,user)
|
LocalError("You need the EditGroupSuperMod permission to create admin groups",w,r,user)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
is_mod = true
|
is_mod = true
|
||||||
|
|
9
mysql.go
9
mysql.go
|
@ -25,6 +25,7 @@ var get_forum_topics_offset_stmt *sql.Stmt
|
||||||
var create_topic_stmt *sql.Stmt
|
var create_topic_stmt *sql.Stmt
|
||||||
var create_report_stmt *sql.Stmt
|
var create_report_stmt *sql.Stmt
|
||||||
var create_reply_stmt *sql.Stmt
|
var create_reply_stmt *sql.Stmt
|
||||||
|
var create_action_reply_stmt *sql.Stmt
|
||||||
var add_replies_to_topic_stmt *sql.Stmt
|
var add_replies_to_topic_stmt *sql.Stmt
|
||||||
var remove_replies_from_topic_stmt *sql.Stmt
|
var remove_replies_from_topic_stmt *sql.Stmt
|
||||||
var add_topics_to_forum_stmt *sql.Stmt
|
var add_topics_to_forum_stmt *sql.Stmt
|
||||||
|
@ -158,7 +159,7 @@ func init_database(err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Print("Preparing get_topic_replies_offset statement.")
|
log.Print("Preparing get_topic_replies_offset statement.")
|
||||||
get_topic_replies_offset_stmt, err = db.Prepare("select replies.rid, replies.content, replies.createdBy, replies.createdAt, replies.lastEdit, replies.lastEditBy, users.avatar, users.name, users.group, users.url_prefix, users.url_name, users.level, replies.ipaddress, replies.likeCount from replies left join users on replies.createdBy = users.uid where tid = ? limit ?, " + strconv.Itoa(items_per_page))
|
get_topic_replies_offset_stmt, err = db.Prepare("select replies.rid, replies.content, replies.createdBy, replies.createdAt, replies.lastEdit, replies.lastEditBy, users.avatar, users.name, users.group, users.url_prefix, users.url_name, users.level, replies.ipaddress, replies.likeCount, replies.actionType from replies left join users on replies.createdBy = users.uid where tid = ? limit ?, " + strconv.Itoa(items_per_page))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -199,6 +200,12 @@ func init_database(err error) {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Print("Preparing create_action_reply statement.")
|
||||||
|
create_action_reply_stmt, err = db.Prepare("INSERT INTO replies(tid,actionType,ipaddress,createdBy) VALUES(?,?,?,?)")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
log.Print("Preparing add_replies_to_topic statement.")
|
log.Print("Preparing add_replies_to_topic statement.")
|
||||||
add_replies_to_topic_stmt, err = db.Prepare("UPDATE topics SET postCount = postCount + ?, lastReplyAt = NOW() WHERE tid = ?")
|
add_replies_to_topic_stmt, err = db.Prepare("UPDATE topics SET postCount = postCount + ?, lastReplyAt = NOW() WHERE tid = ?")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
2
reply.go
2
reply.go
|
@ -25,6 +25,8 @@ type Reply struct /* Should probably rename this to ReplyUser and rename ReplySh
|
||||||
IpAddress string
|
IpAddress string
|
||||||
Liked bool
|
Liked bool
|
||||||
LikeCount int
|
LikeCount int
|
||||||
|
ActionType string
|
||||||
|
ActionIcon string
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReplyShort struct
|
type ReplyShort struct
|
||||||
|
|
21
routes.go
21
routes.go
|
@ -301,7 +301,7 @@ func route_topic_id(w http.ResponseWriter, r *http.Request){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the topic..
|
// Get the topic...
|
||||||
topic, err := get_topicuser(tid)
|
topic, err := get_topicuser(tid)
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
NotFound(w,r)
|
NotFound(w,r)
|
||||||
|
@ -369,7 +369,7 @@ func route_topic_id(w http.ResponseWriter, r *http.Request){
|
||||||
|
|
||||||
replyItem := Reply{Css: no_css_tmpl}
|
replyItem := Reply{Css: no_css_tmpl}
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
err := rows.Scan(&replyItem.ID, &replyItem.Content, &replyItem.CreatedBy, &replyItem.CreatedAt, &replyItem.LastEdit, &replyItem.LastEditBy, &replyItem.Avatar, &replyItem.CreatedByName, &replyItem.Group, &replyItem.URLPrefix, &replyItem.URLName, &replyItem.Level, &replyItem.IpAddress, &replyItem.LikeCount)
|
err := rows.Scan(&replyItem.ID, &replyItem.Content, &replyItem.CreatedBy, &replyItem.CreatedAt, &replyItem.LastEdit, &replyItem.LastEditBy, &replyItem.Avatar, &replyItem.CreatedByName, &replyItem.Group, &replyItem.URLPrefix, &replyItem.URLName, &replyItem.Level, &replyItem.IpAddress, &replyItem.LikeCount, &replyItem.ActionType)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
InternalError(err,w,r)
|
InternalError(err,w,r)
|
||||||
return
|
return
|
||||||
|
@ -405,6 +405,21 @@ func route_topic_id(w http.ResponseWriter, r *http.Request){
|
||||||
replyItem.URL = replyItem.URL + replyItem.URLName
|
replyItem.URL = replyItem.URL + replyItem.URLName
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
// We really shouldn't have inline HTML, we should do something about this...
|
||||||
|
if replyItem.ActionType != "" {
|
||||||
|
switch(replyItem.ActionType) {
|
||||||
|
case "lock":
|
||||||
|
replyItem.ActionType = "This topic has been locked by <a href='" + build_profile_url(replyItem.CreatedBy) + "'>" + replyItem.CreatedByName + "</a>"
|
||||||
|
replyItem.ActionIcon = "🔒︎"
|
||||||
|
case "unlock":
|
||||||
|
replyItem.ActionType = "This topic has been reopened by <a href='" + build_profile_url(replyItem.CreatedBy) + "'>" + replyItem.CreatedByName + "</a>"
|
||||||
|
replyItem.ActionIcon = "🔓︎"
|
||||||
|
default:
|
||||||
|
replyItem.ActionType = replyItem.ActionType + " has happened"
|
||||||
|
replyItem.ActionIcon = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
replyItem.Liked = false
|
replyItem.Liked = false
|
||||||
|
|
||||||
if hooks["rrow_assign"] != nil {
|
if hooks["rrow_assign"] != nil {
|
||||||
|
@ -516,7 +531,7 @@ func route_profile(w http.ResponseWriter, r *http.Request){
|
||||||
replyLiked := false
|
replyLiked := false
|
||||||
replyLikeCount := 0
|
replyLikeCount := 0
|
||||||
|
|
||||||
replyList = append(replyList, Reply{rid,puser.ID,replyContent,parse_message(replyContent),replyCreatedBy,replyCreatedByName,replyGroup,replyCreatedAt,replyLastEdit,replyLastEditBy,replyAvatar,replyCss,replyLines,replyTag,"","","",0,"",replyLiked,replyLikeCount})
|
replyList = append(replyList, Reply{rid,puser.ID,replyContent,parse_message(replyContent),replyCreatedBy,replyCreatedByName,replyGroup,replyCreatedAt,replyLastEdit,replyLastEditBy,replyAvatar,replyCss,replyLines,replyTag,"","","",0,"",replyLiked,replyLikeCount,"",""})
|
||||||
}
|
}
|
||||||
err = rows.Err()
|
err = rows.Err()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -133,47 +133,55 @@ var topic_50 []byte = []byte(`
|
||||||
</div><br />
|
</div><br />
|
||||||
<div class="rowblock post_container" style="overflow: hidden;">`)
|
<div class="rowblock post_container" style="overflow: hidden;">`)
|
||||||
var topic_51 []byte = []byte(`
|
var topic_51 []byte = []byte(`
|
||||||
<div class="rowitem passive deletable_block editable_parent post_item" style="`)
|
<div class="rowitem passive deletable_block editable_parent post_item" style="padding:14px;text-align:center;background-color:rgb(255,245,245);">
|
||||||
var topic_52 []byte = []byte(`background-image:url(`)
|
<span class="action_icon" style="font-size: 18px;padding-right: 5px;">`)
|
||||||
var topic_53 []byte = []byte(`), url(/static/white-dot.jpg);background-position: 0px `)
|
var topic_52 []byte = []byte(`</span>
|
||||||
var topic_54 []byte = []byte(`-1`)
|
<span>`)
|
||||||
var topic_55 []byte = []byte(`0px;background-repeat:no-repeat, repeat-y;background-size:128px;padding-left:136px;`)
|
var topic_53 []byte = []byte(`</span>
|
||||||
var topic_56 []byte = []byte(`">
|
|
||||||
<p class="editable_block user_content" style="margin:0;padding:0;">`)
|
|
||||||
var topic_57 []byte = []byte(`</p>
|
|
||||||
<a href="/user/`)
|
|
||||||
var topic_58 []byte = []byte(`" class="username real_username">`)
|
|
||||||
var topic_59 []byte = []byte(`</a>
|
|
||||||
`)
|
|
||||||
var topic_60 []byte = []byte(`<a href="/reply/like/submit/`)
|
|
||||||
var topic_61 []byte = []byte(`" class="mod_button" title="Love it" style="color:#202020;"><button class="username" style="`)
|
|
||||||
var topic_62 []byte = []byte(`background-color:/*#eaffea*/#D6FFD6;`)
|
|
||||||
var topic_63 []byte = []byte(`">😀</button></a> `)
|
|
||||||
var topic_64 []byte = []byte(`<a href="/reply/edit/submit/`)
|
|
||||||
var topic_65 []byte = []byte(`" class="mod_button" title="Edit Reply"><button class="username edit_item">🖊️</button></a> `)
|
|
||||||
var topic_66 []byte = []byte(`<a href="/reply/delete/submit/`)
|
|
||||||
var topic_67 []byte = []byte(`" class="mod_button" title="Delete Reply"><button class="username delete_item">🗑️</button></a> `)
|
|
||||||
var topic_68 []byte = []byte(`
|
|
||||||
<a href="/report/submit/`)
|
|
||||||
var topic_69 []byte = []byte(`?session=`)
|
|
||||||
var topic_70 []byte = []byte(`&type=reply" class="mod_button" title="Flag Reply"><button class="username report_item">🚩</button></a>
|
|
||||||
`)
|
|
||||||
var topic_71 []byte = []byte(`<a class="username hide_on_micro" style="float: right;color:#505050;border-left:none;padding-left:5px;padding-right:5px;font-size:17px;">`)
|
|
||||||
var topic_72 []byte = []byte(`</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;margin-left:5px;" title="Like Count">😀</a>`)
|
|
||||||
var topic_73 []byte = []byte(`<a class="username hide_on_micro" style="float: right;color:#505050;font-size:16px;">`)
|
|
||||||
var topic_74 []byte = []byte(`</a>`)
|
|
||||||
var topic_75 []byte = []byte(`<a class="username hide_on_micro level">`)
|
|
||||||
var topic_76 []byte = []byte(`</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑`)
|
|
||||||
var topic_77 []byte = []byte(`</a>
|
|
||||||
</div>
|
</div>
|
||||||
`)
|
`)
|
||||||
var topic_78 []byte = []byte(`</div>
|
var topic_54 []byte = []byte(`
|
||||||
|
<div class="rowitem passive deletable_block editable_parent post_item" style="`)
|
||||||
|
var topic_55 []byte = []byte(`background-image:url(`)
|
||||||
|
var topic_56 []byte = []byte(`), url(/static/white-dot.jpg);background-position: 0px `)
|
||||||
|
var topic_57 []byte = []byte(`-1`)
|
||||||
|
var topic_58 []byte = []byte(`0px;background-repeat:no-repeat, repeat-y;background-size:128px;padding-left:136px;`)
|
||||||
|
var topic_59 []byte = []byte(`">
|
||||||
|
<p class="editable_block user_content" style="margin:0;padding:0;">`)
|
||||||
|
var topic_60 []byte = []byte(`</p>
|
||||||
|
<a href="/user/`)
|
||||||
|
var topic_61 []byte = []byte(`" class="username real_username">`)
|
||||||
|
var topic_62 []byte = []byte(`</a>
|
||||||
`)
|
`)
|
||||||
var topic_79 []byte = []byte(`
|
var topic_63 []byte = []byte(`<a href="/reply/like/submit/`)
|
||||||
|
var topic_64 []byte = []byte(`" class="mod_button" title="Love it" style="color:#202020;"><button class="username" style="`)
|
||||||
|
var topic_65 []byte = []byte(`background-color:/*#eaffea*/#D6FFD6;`)
|
||||||
|
var topic_66 []byte = []byte(`">😀</button></a> `)
|
||||||
|
var topic_67 []byte = []byte(`<a href="/reply/edit/submit/`)
|
||||||
|
var topic_68 []byte = []byte(`" class="mod_button" title="Edit Reply"><button class="username edit_item">🖊️</button></a> `)
|
||||||
|
var topic_69 []byte = []byte(`<a href="/reply/delete/submit/`)
|
||||||
|
var topic_70 []byte = []byte(`" class="mod_button" title="Delete Reply"><button class="username delete_item">🗑️</button></a> `)
|
||||||
|
var topic_71 []byte = []byte(`
|
||||||
|
<a href="/report/submit/`)
|
||||||
|
var topic_72 []byte = []byte(`?session=`)
|
||||||
|
var topic_73 []byte = []byte(`&type=reply" class="mod_button" title="Flag Reply"><button class="username report_item">🚩</button></a>
|
||||||
|
`)
|
||||||
|
var topic_74 []byte = []byte(`<a class="username hide_on_micro" style="float: right;color:#505050;border-left:none;padding-left:5px;padding-right:5px;font-size:17px;">`)
|
||||||
|
var topic_75 []byte = []byte(`</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;margin-left:5px;" title="Like Count">😀</a>`)
|
||||||
|
var topic_76 []byte = []byte(`<a class="username hide_on_micro" style="float: right;color:#505050;font-size:16px;">`)
|
||||||
|
var topic_77 []byte = []byte(`</a>`)
|
||||||
|
var topic_78 []byte = []byte(`<a class="username hide_on_micro level">`)
|
||||||
|
var topic_79 []byte = []byte(`</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑`)
|
||||||
|
var topic_80 []byte = []byte(`</a>
|
||||||
|
</div>
|
||||||
|
`)
|
||||||
|
var topic_81 []byte = []byte(`</div>
|
||||||
|
`)
|
||||||
|
var topic_82 []byte = []byte(`
|
||||||
<div class="rowblock">
|
<div class="rowblock">
|
||||||
<form action="/reply/create/" method="post">
|
<form action="/reply/create/" method="post">
|
||||||
<input name="tid" value='`)
|
<input name="tid" value='`)
|
||||||
var topic_80 []byte = []byte(`' type="hidden" />
|
var topic_83 []byte = []byte(`' type="hidden" />
|
||||||
<div class="formrow">
|
<div class="formrow">
|
||||||
<div class="formitem"><textarea name="reply-content" placeholder="Insert reply here"></textarea></div>
|
<div class="formitem"><textarea name="reply-content" placeholder="Insert reply here"></textarea></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// Code generated by. DO NOT EDIT.
|
// Code generated by. DO NOT EDIT.
|
||||||
/* This file was automatically generated by the software. Please don't edit it as your changes may be overwritten at any moment. */
|
/* This file was automatically generated by the software. Please don't edit it as your changes may be overwritten at any moment. */
|
||||||
package main
|
package main
|
||||||
import "strconv"
|
|
||||||
import "io"
|
import "io"
|
||||||
|
import "strconv"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
template_topic_handle = template_topic
|
template_topic_handle = template_topic
|
||||||
|
@ -156,70 +156,78 @@ w.Write(topic_49)
|
||||||
w.Write(topic_50)
|
w.Write(topic_50)
|
||||||
if len(tmpl_topic_vars.ItemList) != 0 {
|
if len(tmpl_topic_vars.ItemList) != 0 {
|
||||||
for _, item := range tmpl_topic_vars.ItemList {
|
for _, item := range tmpl_topic_vars.ItemList {
|
||||||
|
if item.ActionType != "" {
|
||||||
w.Write(topic_51)
|
w.Write(topic_51)
|
||||||
if item.Avatar != "" {
|
w.Write([]byte(item.ActionIcon))
|
||||||
w.Write(topic_52)
|
w.Write(topic_52)
|
||||||
w.Write([]byte(item.Avatar))
|
w.Write([]byte(item.ActionType))
|
||||||
w.Write(topic_53)
|
w.Write(topic_53)
|
||||||
if item.ContentLines <= 5 {
|
} else {
|
||||||
w.Write(topic_54)
|
w.Write(topic_54)
|
||||||
}
|
if item.Avatar != "" {
|
||||||
w.Write(topic_55)
|
w.Write(topic_55)
|
||||||
|
w.Write([]byte(item.Avatar))
|
||||||
|
w.Write(topic_56)
|
||||||
|
if item.ContentLines <= 5 {
|
||||||
|
w.Write(topic_57)
|
||||||
|
}
|
||||||
|
w.Write(topic_58)
|
||||||
w.Write([]byte(string(item.Css)))
|
w.Write([]byte(string(item.Css)))
|
||||||
}
|
}
|
||||||
w.Write(topic_56)
|
|
||||||
w.Write([]byte(item.ContentHtml))
|
|
||||||
w.Write(topic_57)
|
|
||||||
w.Write([]byte(strconv.Itoa(item.CreatedBy)))
|
|
||||||
w.Write(topic_58)
|
|
||||||
w.Write([]byte(item.CreatedByName))
|
|
||||||
w.Write(topic_59)
|
w.Write(topic_59)
|
||||||
if tmpl_topic_vars.CurrentUser.Perms.LikeItem {
|
w.Write([]byte(item.ContentHtml))
|
||||||
w.Write(topic_60)
|
w.Write(topic_60)
|
||||||
w.Write([]byte(strconv.Itoa(item.ID)))
|
w.Write([]byte(strconv.Itoa(item.CreatedBy)))
|
||||||
w.Write(topic_61)
|
w.Write(topic_61)
|
||||||
if item.Liked {
|
w.Write([]byte(item.CreatedByName))
|
||||||
w.Write(topic_62)
|
w.Write(topic_62)
|
||||||
}
|
if tmpl_topic_vars.CurrentUser.Perms.LikeItem {
|
||||||
w.Write(topic_63)
|
w.Write(topic_63)
|
||||||
}
|
|
||||||
if tmpl_topic_vars.CurrentUser.Perms.EditReply {
|
|
||||||
w.Write(topic_64)
|
|
||||||
w.Write([]byte(strconv.Itoa(item.ID)))
|
w.Write([]byte(strconv.Itoa(item.ID)))
|
||||||
|
w.Write(topic_64)
|
||||||
|
if item.Liked {
|
||||||
w.Write(topic_65)
|
w.Write(topic_65)
|
||||||
}
|
}
|
||||||
if tmpl_topic_vars.CurrentUser.Perms.DeleteReply {
|
|
||||||
w.Write(topic_66)
|
w.Write(topic_66)
|
||||||
w.Write([]byte(strconv.Itoa(item.ID)))
|
|
||||||
w.Write(topic_67)
|
|
||||||
}
|
}
|
||||||
w.Write(topic_68)
|
if tmpl_topic_vars.CurrentUser.Perms.EditReply {
|
||||||
|
w.Write(topic_67)
|
||||||
w.Write([]byte(strconv.Itoa(item.ID)))
|
w.Write([]byte(strconv.Itoa(item.ID)))
|
||||||
|
w.Write(topic_68)
|
||||||
|
}
|
||||||
|
if tmpl_topic_vars.CurrentUser.Perms.DeleteReply {
|
||||||
w.Write(topic_69)
|
w.Write(topic_69)
|
||||||
w.Write([]byte(tmpl_topic_vars.CurrentUser.Session))
|
w.Write([]byte(strconv.Itoa(item.ID)))
|
||||||
w.Write(topic_70)
|
w.Write(topic_70)
|
||||||
if item.LikeCount > 0 {
|
}
|
||||||
w.Write(topic_71)
|
w.Write(topic_71)
|
||||||
w.Write([]byte(strconv.Itoa(item.LikeCount)))
|
w.Write([]byte(strconv.Itoa(item.ID)))
|
||||||
w.Write(topic_72)
|
w.Write(topic_72)
|
||||||
|
w.Write([]byte(tmpl_topic_vars.CurrentUser.Session))
|
||||||
|
w.Write(topic_73)
|
||||||
|
if item.LikeCount > 0 {
|
||||||
|
w.Write(topic_74)
|
||||||
|
w.Write([]byte(strconv.Itoa(item.LikeCount)))
|
||||||
|
w.Write(topic_75)
|
||||||
}
|
}
|
||||||
if item.Tag != "" {
|
if item.Tag != "" {
|
||||||
w.Write(topic_73)
|
|
||||||
w.Write([]byte(item.Tag))
|
|
||||||
w.Write(topic_74)
|
|
||||||
} else {
|
|
||||||
w.Write(topic_75)
|
|
||||||
w.Write([]byte(strconv.Itoa(item.Level)))
|
|
||||||
w.Write(topic_76)
|
w.Write(topic_76)
|
||||||
}
|
w.Write([]byte(item.Tag))
|
||||||
w.Write(topic_77)
|
w.Write(topic_77)
|
||||||
}
|
} else {
|
||||||
}
|
|
||||||
w.Write(topic_78)
|
w.Write(topic_78)
|
||||||
if tmpl_topic_vars.CurrentUser.Perms.CreateReply {
|
w.Write([]byte(strconv.Itoa(item.Level)))
|
||||||
w.Write(topic_79)
|
w.Write(topic_79)
|
||||||
w.Write([]byte(strconv.Itoa(tmpl_topic_vars.Topic.ID)))
|
}
|
||||||
w.Write(topic_80)
|
w.Write(topic_80)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
w.Write(topic_81)
|
||||||
|
if tmpl_topic_vars.CurrentUser.Perms.CreateReply {
|
||||||
|
w.Write(topic_82)
|
||||||
|
w.Write([]byte(strconv.Itoa(tmpl_topic_vars.Topic.ID)))
|
||||||
|
w.Write(topic_83)
|
||||||
|
}
|
||||||
w.Write(footer_0)
|
w.Write(footer_0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,12 @@
|
||||||
{{if .Topic.Tag}}<a class="username hide_on_micro" style="float:right;color:#505050;font-size:16px;">{{.Topic.Tag}}</a>{{else}}<a class="username hide_on_micro level">{{.Topic.Level}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑</a>{{end}}
|
{{if .Topic.Tag}}<a class="username hide_on_micro" style="float:right;color:#505050;font-size:16px;">{{.Topic.Tag}}</a>{{else}}<a class="username hide_on_micro level">{{.Topic.Level}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑</a>{{end}}
|
||||||
</div>
|
</div>
|
||||||
</div><br />
|
</div><br />
|
||||||
<div class="rowblock post_container" style="overflow: hidden;">{{range .ItemList}}
|
<div class="rowblock post_container" style="overflow: hidden;">{{range .ItemList}}{{if .ActionType}}
|
||||||
|
<div class="rowitem passive deletable_block editable_parent post_item" style="padding:14px;text-align:center;background-color:rgb(255,245,245);">
|
||||||
|
<span class="action_icon" style="font-size: 18px;padding-right: 5px;">{{.ActionIcon}}</span>
|
||||||
|
<span>{{.ActionType}}</span>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
<div class="rowitem passive deletable_block editable_parent post_item" style="{{if .Avatar}}background-image:url({{.Avatar}}), url(/static/white-dot.jpg);background-position: 0px {{if le .ContentLines 5}}-1{{end}}0px;background-repeat:no-repeat, repeat-y;background-size:128px;padding-left:136px;{{.Css}}{{end}}">
|
<div class="rowitem passive deletable_block editable_parent post_item" style="{{if .Avatar}}background-image:url({{.Avatar}}), url(/static/white-dot.jpg);background-position: 0px {{if le .ContentLines 5}}-1{{end}}0px;background-repeat:no-repeat, repeat-y;background-size:128px;padding-left:136px;{{.Css}}{{end}}">
|
||||||
<p class="editable_block user_content" style="margin:0;padding:0;">{{.ContentHtml}}</p>
|
<p class="editable_block user_content" style="margin:0;padding:0;">{{.ContentHtml}}</p>
|
||||||
<a href="/user/{{.CreatedBy}}" class="username real_username">{{.CreatedByName}}</a>
|
<a href="/user/{{.CreatedBy}}" class="username real_username">{{.CreatedByName}}</a>
|
||||||
|
@ -43,7 +48,7 @@
|
||||||
{{if .LikeCount}}<a class="username hide_on_micro" style="float: right;color:#505050;border-left:none;padding-left:5px;padding-right:5px;font-size:17px;">{{.LikeCount}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;margin-left:5px;" title="Like Count">😀</a>{{end}}
|
{{if .LikeCount}}<a class="username hide_on_micro" style="float: right;color:#505050;border-left:none;padding-left:5px;padding-right:5px;font-size:17px;">{{.LikeCount}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;margin-left:5px;" title="Like Count">😀</a>{{end}}
|
||||||
{{if .Tag}}<a class="username hide_on_micro" style="float: right;color:#505050;font-size:16px;">{{.Tag}}</a>{{else}}<a class="username hide_on_micro level">{{.Level}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑{{end}}</a>
|
{{if .Tag}}<a class="username hide_on_micro" style="float: right;color:#505050;font-size:16px;">{{.Tag}}</a>{{else}}<a class="username hide_on_micro level">{{.Level}}</a><a class="username hide_on_micro" style="color:#505050;float:right;opacity:0.85;" title="Level">👑{{end}}</a>
|
||||||
</div>
|
</div>
|
||||||
{{end}}</div>
|
{{end}}{{end}}</div>
|
||||||
{{if .CurrentUser.Perms.CreateReply}}
|
{{if .CurrentUser.Perms.CreateReply}}
|
||||||
<div class="rowblock">
|
<div class="rowblock">
|
||||||
<form action="/reply/create/" method="post">
|
<form action="/reply/create/" method="post">
|
||||||
|
|
Loading…
Reference in New Issue