@@ -9,51 +9,20 @@ import (
99 "log"
1010 "net/http"
1111 "net/url"
12- "os"
13- "path/filepath"
1412 "strconv"
1513 "time"
1614
1715 "github.com/lsongdev/feedreader/feed"
1816 "github.com/lsongdev/feedreader/templates"
19- "gopkg.in/yaml.v2"
2017)
2118
22- type H map [string ]interface {}
19+ type H map [string ]any
2320
2421type User struct {
2522 Username string `json:"username"`
2623 Password string `json:"password"`
2724}
2825
29- type Config struct {
30- Dir string `json:"-" yaml:"-"`
31- Title string `json:"title" yaml:"title"`
32- Listen string `json:"listen" yaml:"listen"`
33- Users []User `json:"users" yaml:"users"`
34- Stylesheet string `json:"stylesheet" yaml:"stylesheet"`
35- }
36-
37- func NewConfig () * Config {
38- return & Config {
39- Title : "Reader" ,
40- Listen : "0.0.0.0:8080" ,
41- Users : []User {{"admin" , "admin123" }},
42- }
43- }
44-
45- func (conf * Config ) Load () error {
46- filename := filepath .Join (conf .Dir , "config.yaml" )
47- if _ , err := os .Stat (filename ); os .IsNotExist (err ) {
48- return err
49- }
50- data , err := os .ReadFile (filename )
51- if err != nil {
52- return err
53- }
54- return yaml .Unmarshal (data , & conf )
55- }
56-
5726type Pagination struct {
5827 Page int
5928 Size int
@@ -101,7 +70,7 @@ func (reader *Reader) Render(w http.ResponseWriter, templateName string, data H)
10170 data = H {}
10271 }
10372 data ["AppName" ] = reader .config .Title
104- data ["Stylesheet" ] = template .CSS (reader .config .Stylesheet )
73+ // data["Stylesheet"] = template.CSS(reader.config.Stylesheet)
10574 // tmpl, err := template.ParseFiles("templates/layout.html", "templates/"+templateName+".html")
10675 // Parse templates from embedded file system
10776 tmpl , err := template .New ("" ).ParseFS (templates .Files , "layout.html" , templateName + ".html" )
@@ -443,20 +412,28 @@ func (reader *Reader) PostsJson(w http.ResponseWriter, r *http.Request) {
443412}
444413
445414func (reader * Reader ) CategoryView (w http.ResponseWriter , r * http.Request ) {
446- if r .Method != "POST" {
447- return
448- }
449- r .ParseForm ()
450- if ! reader .CheckAuth (w , r ) {
415+ if r .Method == "POST" {
416+ r .ParseForm ()
417+ if ! reader .CheckAuth (w , r ) {
418+ return
419+ }
420+ categoryName := r .FormValue ("name" )
421+ _ , err := reader .CreateCategory (categoryName )
422+ if err != nil {
423+ reader .Error (w , err )
424+ return
425+ }
426+ http .Redirect (w , r , "/categories" , http .StatusFound )
451427 return
452428 }
453- categoryName := r .FormValue ("name" )
454- categoryId , err := reader .CreateCategory (categoryName )
429+ categories , err := reader .GetCategories ()
455430 if err != nil {
456431 reader .Error (w , err )
457432 return
458433 }
459- http .Redirect (w , r , fmt .Sprintf ("/posts?category=%d" , categoryId ), http .StatusFound )
434+ reader .Render (w , "categories" , H {
435+ "categories" : categories ,
436+ })
460437}
461438
462439func (reader * Reader ) RefreshView (w http.ResponseWriter , r * http.Request ) {
0 commit comments