mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-09-04 10:06:24 -07:00
Add wordfilters manage page
This commit is contained in:
parent
b180db94dc
commit
f85959c8e3
4 changed files with 80 additions and 14 deletions
|
@ -374,11 +374,9 @@ func GetWordFilters() ([]WordFilter, error) {
|
|||
); err != nil {
|
||||
return wfs, err
|
||||
}
|
||||
if dirsStr == "*" {
|
||||
// wordfilter applies to all boards
|
||||
continue
|
||||
if dirsStr != "*" {
|
||||
wf.BoardDirs = strings.Split(dirsStr, ",")
|
||||
}
|
||||
wf.BoardDirs = strings.Split(dirsStr, ",")
|
||||
wfs = append(wfs, wf)
|
||||
}
|
||||
return wfs, err
|
||||
|
@ -405,6 +403,14 @@ func (wf *WordFilter) OnBoard(dir string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (wf *WordFilter) StaffName() string {
|
||||
staff, err := getStaffByID(wf.StaffID)
|
||||
if err != nil {
|
||||
return "?"
|
||||
}
|
||||
return staff.Username
|
||||
}
|
||||
|
||||
//getDatabaseVersion gets the version of the database, or an error if none or multiple exist
|
||||
func getDatabaseVersion(componentKey string) (int, error) {
|
||||
const sql = `SELECT version FROM DBPREFIXdatabase_version WHERE component = ?`
|
||||
|
|
|
@ -23,6 +23,7 @@ var (
|
|||
ManageConfig *template.Template
|
||||
ManageDashboard *template.Template
|
||||
ManageRecentPosts *template.Template
|
||||
ManageWordfilters *template.Template
|
||||
ManageLogin *template.Template
|
||||
ManageStaff *template.Template
|
||||
PageHeader *template.Template
|
||||
|
@ -160,6 +161,12 @@ func templateLoading(t string, buildAll bool) error {
|
|||
return templateError("manage_recentposts.html", err)
|
||||
}
|
||||
}
|
||||
if buildAll || t == "managewordfilters" {
|
||||
ManageWordfilters, err = loadTemplate("manage_wordfilters.html")
|
||||
if err != nil {
|
||||
return templateError("manage_wordfilters.html", err)
|
||||
}
|
||||
}
|
||||
if buildAll || t == "managestaff" {
|
||||
ManageStaff, err = loadTemplate("manage_staff.html")
|
||||
if err != nil {
|
||||
|
|
|
@ -580,19 +580,51 @@ var actions = []Action{
|
|||
post, err := gcsql.GetSpecificPost(gcutil.HackyStringToInt(request.FormValue("postid")), false)
|
||||
return post, err
|
||||
}},
|
||||
// {
|
||||
// ID: "tempposts",
|
||||
// Title: "Temporary posts lists",
|
||||
// Permissions: AdminPerms,
|
||||
// Callback: func(writer http.ResponseWriter, request *http.Request, wantsJSON bool) (output interface{}, err error) {
|
||||
// outputStr := ""
|
||||
// if len(gcsql.TempPosts) == 0 {
|
||||
// outputStr += "No temporary posts<br />"
|
||||
// return
|
||||
// }
|
||||
// for p, post := range gcsql.TempPosts {
|
||||
// outputStr += fmt.Sprintf("Post[%d]: %#v<br />", p, post)
|
||||
// }
|
||||
// return outputStr, nil
|
||||
// }},
|
||||
{
|
||||
ID: "tempposts",
|
||||
Title: "Temporary posts lists",
|
||||
ID: "wordfilters",
|
||||
Title: "Wordfilters",
|
||||
Permissions: AdminPerms,
|
||||
Callback: func(writer http.ResponseWriter, request *http.Request, wantsJSON bool) (output interface{}, err error) {
|
||||
outputStr := ""
|
||||
if len(gcsql.TempPosts) == 0 {
|
||||
outputStr += "No temporary posts<br />"
|
||||
return
|
||||
managePageBuffer := bytes.NewBufferString("")
|
||||
editIDstr := request.FormValue("edit")
|
||||
wordfilters, err := gcsql.GetWordFilters()
|
||||
if err != nil {
|
||||
return wordfilters, nil
|
||||
}
|
||||
for p, post := range gcsql.TempPosts {
|
||||
outputStr += fmt.Sprintf("Post[%d]: %#v<br />", p, post)
|
||||
var editFilter *gcsql.WordFilter
|
||||
if editIDstr != "" {
|
||||
editID := gcutil.HackyStringToInt(editIDstr)
|
||||
for _, filter := range wordfilters {
|
||||
if filter.ID == editID {
|
||||
editFilter = &filter
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return outputStr, nil
|
||||
}},
|
||||
filterMap := map[string]interface{}{
|
||||
"wordfilters": wordfilters,
|
||||
"edit": editFilter,
|
||||
}
|
||||
|
||||
err = serverutil.MinifyTemplate(gctemplates.ManageWordfilters,
|
||||
filterMap, managePageBuffer, "text/html")
|
||||
|
||||
return managePageBuffer.String(), err
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
21
templates/manage_wordfilters.html
Normal file
21
templates/manage_wordfilters.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
(currently a work in progress)
|
||||
<h2>{{with $.edit}}Edit filter{{else}}Create new{{end}}</h2>
|
||||
<form action="{{.webroot}}manage?action=wordfilters" method="GET">
|
||||
<input type="hidden" name="action" value="boards">
|
||||
{{with $.edit}}<input type="hidden" name="edit" value="{{$.edit.ID}}">{{end}}
|
||||
<table>
|
||||
<tr><td>Find text:</td><td><input type="text" name="find" id="findfilter" value="{{with $.edit}}{{$.edit.Search}}{{end}}"/></td></tr>
|
||||
<tr><td>Replace with:</td><td><input type="text" name="replace" id="replacefilter" value="{{with $.edit}}{{$.edit.ChangeTo}}{{end}}"/></td></tr>
|
||||
<tr><td>Is regular expression:</td><td><input type="checkbox" name="isregex" id="isregex" {{with $.edit}}{{if $.edit.IsRegex}}checked="checked"{{end}}{{end}}/></td></tr>
|
||||
<tr><td>Board dirs(ex: dir1,dir2. * for all):</td><td><input type="text" name="boarddirs" id="boarddirs" value="{{with $.edit}}{{$.edit.BoardsString}}{{end}}"/></td></tr>
|
||||
<tr><td><input type="submit" value="" disabled="disabled"/></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
<hr/>
|
||||
<table width="100%" border="1">
|
||||
<colgroup><col width="5%"><col width="10%"><col width="10%"><col width="5%"><col width="15%"><col width="10%"></colgroup>
|
||||
<tr><th></th><th>Search</th><th>Replace with</th><th>Regex</th><th>Dirs</th><th>Staff</th></tr>
|
||||
{{- range $f,$filter := .wordfilters}}
|
||||
<tr><td><a href="{{$.webroot}}manage?action=wordfilters&edit={{$filter.ID}}">Edit</a></td><td>{{$filter.Search}}</td><td>{{$filter.ChangeTo}}</td><td>{{if $filter.IsRegex}}yes{{else}}no{{end}}</td><td>{{$filter.BoardsString}}</td><td>{{$filter.StaffName}}</td></tr>
|
||||
{{end -}}
|
||||
</table>
|
Loading…
Add table
Add a link
Reference in a new issue