openidec

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 044613bff5b965be817d7c87f5e2740bd8190489
parent 0b04f41e71dd61b888068511f3f58df2cd52489d
Author: Peter Kosyh <p.kosyh@gmail.com>
Date:   Sat,  5 Sep 2020 10:01:07 +0300

preview msg

Diffstat:
Mii-node/lib/style.css | 4+++-
Mii-node/main.go | 8++++----
Mii-node/tpl/error.tpl | 2+-
Mii-node/tpl/header.tpl | 10+++++++---
Mii-node/tpl/index.tpl | 2+-
Mii-node/tpl/new.tpl | 17++++++++++++-----
Aii-node/tpl/preview.tpl | 35+++++++++++++++++++++++++++++++++++
Mii-node/web.go | 33++++++++++++++++++++-------------
8 files changed, 83 insertions(+), 28 deletions(-)

diff --git a/ii-node/lib/style.css b/ii-node/lib/style.css @@ -119,8 +119,9 @@ } #edit { text-align: left; - margin-left: auto; + width: 100%; margin-right: auto; + margin-left: auto; margin-top: 1em; background: #ffffea; border: 1px solid #55aaaa; @@ -132,6 +133,7 @@ margin: 0.5em; border: none; overflow: auto; + width: 95%; } #edit textarea { diff --git a/ii-node/main.go b/ii-node/main.go @@ -79,13 +79,10 @@ func main() { fs := http.FileServer(http.Dir("lib")) http.Handle("/lib/", http.StripPrefix("/lib/", fs)) - http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - handleWWW(www, w, r) - }) http.HandleFunc("/list.txt", func(w http.ResponseWriter, r *http.Request) { echoes := db.Echoes(nil) for _, v := range echoes { - fmt.Fprintf(w, "%s:%d:\n", v.Name, v.Count) + fmt.Fprintf(w, "%s:%d:%s\n", v.Name, v.Count,www.edb.Info[v.Name]) } }) http.HandleFunc("/blacklist.txt", func(w http.ResponseWriter, r *http.Request) { @@ -94,6 +91,9 @@ func main() { fmt.Fprintf(w, "%s\n", v) } }) + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + handleWWW(www, w, r) + }) http.HandleFunc("/u/point/", func(w http.ResponseWriter, r *http.Request) { var pauth, tmsg string switch r.Method { diff --git a/ii-node/tpl/error.tpl b/ii-node/tpl/error.tpl @@ -3,7 +3,7 @@ <table id="error" cellspacing=0 cellpadding=0> <tr class="alert"><td>Error!</td></tr> <tr class="even"><td>{{.Error}}</td></tr> -<tr class="odd"><td class="links"><a href="/">Ok</a></td></tr> +<!-- <tr class="odd"><td class="links"><a href="{{.Ref}}">Ok</a></td></tr> --> </table> {{template "footer.tpl"}} diff --git a/ii-node/tpl/header.tpl b/ii-node/tpl/header.tpl @@ -20,19 +20,23 @@ <td class="links"> <span> {{ if .User.Name }} + {{ if eq .BasePath "profile" }} <a href="/logout">Logout</a> {{ else }} <a href="/profile">{{.User.Name}}</a> {{ end }} + + {{ with .Echo }} + :: <a href="/{{.}}/new">New topic</a> + {{ end }} + {{ else if eq .BasePath "login" }} <a href="/register">Register</a> {{ else }} <a href="/login">Login</a> {{ end }} - {{ with .Echo }} - :: <a href="/{{.}}/new">New topic</a> - {{ end }} + </span> </td> </tr> diff --git a/ii-node/tpl/index.tpl b/ii-node/tpl/index.tpl @@ -13,7 +13,7 @@ {{ else }} <tr class="even"> {{ end }} -<td class="echo"><a href="{{.Name}}">{{.Name}}</a><br> +<td class="echo"><a href="/{{.Name}}/">{{.Name}}</a><br> <span class="info">{{ index $.Echolist.Info .Name }}</span> </td> <td class="topics extra">{{.Topics}}</td> diff --git a/ii-node/tpl/new.tpl b/ii-node/tpl/new.tpl @@ -1,11 +1,18 @@ {{template "header.tpl" $}} +<table id="edit"> <form method="post" enctype="application/x-www-form-urlencoded" action="/{{.Echo}}/new"> -<table id="edit"><tr><td class="even"> +<tr><td class="even"> <input type="text" name="to" class="to" placeholder="To" value="All"><br> <input type="text" name="subj" class="subj" placeholder="Subject"><br> -<textarea type="text" name="msg" class="message" cols=60 row=16 placeholder="Hi, All!"></textarea> -</td></tr><tr><td class="odd center"> -<button class="form-button">Submit</button> -</td></tr></table> +<textarea type="text" name="msg" class="message" cols=60 row=16 placeholder="Hi, All!"> +</textarea> +</td></tr> + +<tr><td class="odd center"> +<button class="form-button" type="submit" name="action" value="Submit">Submit</button> +<button class="form-button" type="submit" name="action" value="Preview">Preview</button> +</td></tr> </form> + +</table> {{template "footer.tpl"}} diff --git a/ii-node/tpl/preview.tpl b/ii-node/tpl/preview.tpl @@ -0,0 +1,35 @@ +{{template "header.tpl" $}} +{{range .Msg}} + +<div id="topic"> +<div class="msg"> +<span class="subj">{{.Subj}}</span><br> +<span class="info">{{.From}}({{.Addr}}) &mdash; {{.To}}<br>{{.Date | fdate}}</span><br> +<div class="text"> +<br> +{{with .Text}} +{{. | msg_format}} +{{end}} +<br> +</div> +</div> +</div> + +<table id="edit"> +<form method="post" enctype="application/x-www-form-urlencoded" action="/{{.Echo}}/new"> + +<tr><td class="even"> +<input type="text" name="to" class="to" placeholder="{{.To}}" value="{{.To}}"><br> +<input type="text" name="subj" class="subj" placeholder="{{.Subj}}" value="{{.Subj}}"><br> +<textarea type="text" name="msg" class="message" cols=60 row=16 placeholder="Hi, All!">{{.Text}}</textarea> +</td></tr> + +<tr><td class="odd center"> +<button class="form-button" type="submit" name="action" value="Submit">Submit</button> +<button class="form-button" type="submit" name="action" value="Preview">Preview</button> +</td></tr> +</form> + +</table> +{{end}} +{{template "footer.tpl"}} diff --git a/ii-node/web.go b/ii-node/web.go @@ -27,10 +27,11 @@ type WebContext struct { User *ii.User Echolist *ii.EDB Selected string + Ref string } func www_register(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) error { - ctx := WebContext{ User: user, Echolist: www.edb } + ctx := WebContext{ User: user, Echolist: www.edb, Ref: r.Header.Get("Referer") } ii.Trace.Printf("www register") switch r.Method { case "GET": @@ -60,7 +61,7 @@ func www_register(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request } func www_login(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) error { - ctx := WebContext{ User: user, BasePath: "login", Echolist: www.edb } + ctx := WebContext{ User: user, BasePath: "login", Echolist: www.edb, Ref: r.Header.Get("Referer") } ii.Trace.Printf("www login") switch r.Method { case "GET": @@ -89,7 +90,7 @@ func www_login(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) e } func www_profile(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) error { - ctx := WebContext{ User: user, BasePath: "profile", Echolist: www.edb } + ctx := WebContext{ User: user, BasePath: "profile", Echolist: www.edb, Ref: r.Header.Get("Referer") } ii.Trace.Printf("www profile") if user.Name == "" { ii.Error.Printf("Access denied") @@ -112,7 +113,7 @@ func www_logout(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) } func www_index(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request) error { - ctx := WebContext{ User: user, Echolist: www.edb } + ctx := WebContext{ User: user, Echolist: www.edb, Ref: r.Header.Get("Referer") } ii.Trace.Printf("www index") @@ -202,7 +203,7 @@ func makePager(ctx *WebContext, count int, page int) int { func www_topics(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, echo string, page int) error { db := www.db - ctx := WebContext{ User: user, Echo: echo, Echolist: www.edb } + ctx := WebContext{ User: user, Echo: echo, Echolist: www.edb, Ref: r.Header.Get("Referer") } mis := db.LookupIDS(db.SelectIDS(ii.Query{Echo: echo})) ii.Trace.Printf("www topics: %s", echo) topicsIds := getTopics(db, mis) @@ -249,7 +250,7 @@ func www_topics(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, func www_topic(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, id string, page int) error { db := www.db - ctx := WebContext{ User: user, Echolist: www.edb } + ctx := WebContext{ User: user, Echolist: www.edb, Ref: r.Header.Get("Referer") } mi := db.Lookup(id) if mi == nil { @@ -299,7 +300,7 @@ func www_topic(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, i } func www_new(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, echo string) error { - ctx := WebContext{ User: user, Echolist: www.edb } + ctx := WebContext{ User: user, Echolist: www.edb, Ref: r.Header.Get("Referer") } ctx.BasePath = echo ctx.Echo = echo @@ -320,6 +321,7 @@ func www_new(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, ech subj := r.FormValue("subj") to := r.FormValue("to") msg := r.FormValue("msg") + action := r.FormValue("action") text := fmt.Sprintf("%s\n%s\n%s\n\n%s", echo, to, subj, msg) m, err := ii.DecodeMsgline(text, false) if err != nil { @@ -328,18 +330,23 @@ func www_new(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, ech } m.From = user.Name m.Addr = fmt.Sprintf("%s,%d", www.db.Name, user.Id) - if err = www.db.Store(m); err != nil { - ii.Error.Printf("Error while storig new topic %s: %s", m.MsgId, err) - return err + if action == "Submit" { // submit + if err = www.db.Store(m); err != nil { + ii.Error.Printf("Error while storig new topic %s: %s", m.MsgId, err) + return err + } + http.Redirect(w, r, "/"+echo+"/1", http.StatusSeeOther) + return nil } - http.Redirect(w, r, "/"+echo+"/1", http.StatusSeeOther) - return nil + ctx.Msg = append(ctx.Msg, m) + err = www.tpl.ExecuteTemplate(w, "preview.tpl", ctx) + return err } return nil } func www_reply(user *ii.User, www WWW, w http.ResponseWriter, r *http.Request, id string) error { - ctx := WebContext{ User: user, Echolist: www.edb } + ctx := WebContext{ User: user, Echolist: www.edb, Ref: r.Header.Get("Referer") } ctx.BasePath = id switch r.Method {