Addig editing

This commit is contained in:
m15o 2021-12-02 21:41:17 +01:00
parent fa5e12c0f7
commit e49f5193e2
9 changed files with 137 additions and 233 deletions

View file

@ -62,10 +62,11 @@ func (s *Storage) CreateStatus(status model.Status) error {
func (s *Storage) StatusById(id int64) (model.Status, error) {
var status model.Status
err := s.db.QueryRow(
`SELECT id, author, content from statuses WHERE id=$1`, id).Scan(
`SELECT id, author, content, face from statuses WHERE id=$1`, id).Scan(
&status.Id,
&status.User,
&status.Content,
&status.Face,
)
return status, err
}

View file

@ -44,5 +44,65 @@ var TplCommonMap = map[string]string{
"status": `{{ define "status" }}
<div class="status-username"><a href="/users/{{ .User }}">{{ .User }}</a> {{ .Face }} {{ .TimeAgo }}</div>
<p class="status-content">{{ .Content }}</p>
{{ end }}`,
"status_form": `{{ define "status_form" }}
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" {{ if or (eq .Face "🙂") (eq .Face "") }}checked{{ end }}>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎" {{ if eq .Face "😎" }}checked{{ end }}>
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛" {{ if eq .Face "😛" }}checked{{ end }}>
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰" {{ if eq .Face "🥰" }}checked{{ end }}>
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽" {{ if eq .Face "👽" }}checked{{ end }}>
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱" {{ if eq .Face "😱" }}checked{{ end }}>
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗" {{ if eq .Face "🤗" }}checked{{ end }}>
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯" {{ if eq .Face "😯" }}checked{{ end }}>
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒" {{ if eq .Face "🤒" }}checked{{ end }}>
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡" {{ if eq .Face "😡" }}checked{{ end }}>
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺" {{ if eq .Face "🥺" }}checked{{ end }}>
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳" {{ if eq .Face "🥳" }}checked{{ end }}>
<label for="face12">🥳</label>
</div>
<div class="radio">
<input type="radio" id="face13" name="face" value="☕" {{ if eq .Face "☕" }}checked{{ end }}>
<label for="face13"></label>
</div>
</div>
<div class="field">
<textarea name="content" maxlength="140" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 100px;" autofocus>{{ .Content }}</textarea>
</div>
<input type="submit" value="Submit">
{{ end }}`,
}

View file

@ -19,6 +19,7 @@ var TplMap = map[string]string{
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>status cafe</title>
<link rel="stylesheet" href="/assets/style.css"/>
<meta name="description" content="your friends' updates">
<style>
body {
@ -36,11 +37,7 @@ var TplMap = map[string]string{
<p>{{ .flash }}</p>
{{ end }}
<form action="/add?silent=1" method="post" name="update-status">
<div class="field">
<textarea name="content" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 120px" autofocus></textarea>
</div>
<br>
<input type="submit" value="Submit">
{{ template "status_form" .status }}
</form>
</main>
</div>
@ -126,60 +123,7 @@ var TplMap = map[string]string{
{{ end }}
{{ template "flash" .flash }}
<form action="/edit?id={{ .status.Id }}" method="post">
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" checked>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎">
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛">
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰">
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽">
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱">
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗">
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯">
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒">
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡">
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺">
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳">
<label for="face12">🥳</label>
</div>
</div>
<div class="field">
<textarea name="content" placeholder="What's new?" required style="width: 100%; box-sizing: border-box;" autofocus>{{ .status.Content }}</textarea>
</div>
<input type="submit" value="Submit">
{{ template "status_form" .status }}
</form>
</section>
{{ end }}`,
@ -191,62 +135,7 @@ var TplMap = map[string]string{
<p>{{ .form.Error }}</p>
{{ end }}
{{ template "flash" .flash }}
<form action="/add" method="post">
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" checked>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎">
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛">
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰">
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽">
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱">
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗">
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯">
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒">
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡">
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺">
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳">
<label for="face12">🥳</label>
</div>
</div>
<div class="field">
<textarea name="content" maxlength="140" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 100px;" autofocus></textarea>
</div>
<input type="submit" value="Submit">
</form>
<form action="/add" method="post">{{ template "status_form" .status }}</form>
<ul class="tools">
<li><a href="/about/status-updater">status updater</a> bookmarklet</li>
<li><a href="/current-status">status widget</a> for your homepage</li>

View file

@ -0,0 +1,60 @@
{{ define "status_form" }}
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" {{ if or (eq .Face "🙂") (eq .Face "") }}checked{{ end }}>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎" {{ if eq .Face "😎" }}checked{{ end }}>
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛" {{ if eq .Face "😛" }}checked{{ end }}>
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰" {{ if eq .Face "🥰" }}checked{{ end }}>
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽" {{ if eq .Face "👽" }}checked{{ end }}>
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱" {{ if eq .Face "😱" }}checked{{ end }}>
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗" {{ if eq .Face "🤗" }}checked{{ end }}>
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯" {{ if eq .Face "😯" }}checked{{ end }}>
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒" {{ if eq .Face "🤒" }}checked{{ end }}>
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡" {{ if eq .Face "😡" }}checked{{ end }}>
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺" {{ if eq .Face "🥺" }}checked{{ end }}>
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳" {{ if eq .Face "🥳" }}checked{{ end }}>
<label for="face12">🥳</label>
</div>
<div class="radio">
<input type="radio" id="face13" name="face" value="☕" {{ if eq .Face "" }}checked{{ end }}>
<label for="face13"></label>
</div>
</div>
<div class="field">
<textarea name="content" maxlength="140" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 100px;" autofocus>{{ .Content }}</textarea>
</div>
<input type="submit" value="Submit">
{{ end }}

View file

@ -4,6 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>status cafe</title>
<link rel="stylesheet" href="/assets/style.css"/>
<meta name="description" content="your friends' updates">
<style>
body {
@ -21,11 +22,7 @@
<p>{{ .flash }}</p>
{{ end }}
<form action="/add?silent=1" method="post" name="update-status">
<div class="field">
<textarea name="content" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 120px" autofocus></textarea>
</div>
<br>
<input type="submit" value="Submit">
{{ template "status_form" .status }}
</form>
</main>
</div>

View file

@ -6,60 +6,7 @@
{{ end }}
{{ template "flash" .flash }}
<form action="/edit?id={{ .status.Id }}" method="post">
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" checked>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎">
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛">
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰">
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽">
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱">
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗">
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯">
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒">
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡">
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺">
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳">
<label for="face12">🥳</label>
</div>
</div>
<div class="field">
<textarea name="content" placeholder="What's new?" required style="width: 100%; box-sizing: border-box;" autofocus>{{ .status.Content }}</textarea>
</div>
<input type="submit" value="Submit">
{{ template "status_form" .status }}
</form>
</section>
{{ end }}

View file

@ -6,62 +6,7 @@
<p>{{ .form.Error }}</p>
{{ end }}
{{ template "flash" .flash }}
<form action="/add" method="post">
<div style="margin-bottom: 1em">
<div class="radio">
<input type="radio" id="face1" name="face" value="🙂" checked>
<label for="face1">🙂</label>
</div>
<div class="radio">
<input type="radio" id="face2" name="face" value="😎">
<label for="face2">😎</label>
</div>
<div class="radio">
<input type="radio" id="face3" name="face" value="😛">
<label for="face3">😛</label>
</div>
<div class="radio">
<input type="radio" id="face4" name="face" value="🥰">
<label for="face4">🥰</label>
</div>
<div class="radio">
<input type="radio" id="face5" name="face" value="👽">
<label for="face5">👽</label>
</div>
<div class="radio">
<input type="radio" id="face6" name="face" value="😱">
<label for="face6">😱</label>
</div>
<div class="radio">
<input type="radio" id="face7" name="face" value="🤗">
<label for="face7">🤗</label>
</div>
<div class="radio">
<input type="radio" id="face8" name="face" value="😯">
<label for="face8">😯</label>
</div>
<div class="radio">
<input type="radio" id="face9" name="face" value="🤒">
<label for="face9">🤒</label>
</div>
<div class="radio">
<input type="radio" id="face10" name="face" value="😡">
<label for="face10">😡</label>
</div>
<div class="radio">
<input type="radio" id="face11" name="face" value="🥺">
<label for="face11">🥺</label>
</div>
<div class="radio">
<input type="radio" id="face12" name="face" value="🥳">
<label for="face12">🥳</label>
</div>
</div>
<div class="field">
<textarea name="content" maxlength="140" placeholder="What's new?" required style="width: 100%; box-sizing: border-box; height: 100px;" autofocus></textarea>
</div>
<input type="submit" value="Submit">
</form>
<form action="/add" method="post">{{ template "status_form" .status }}</form>
<ul class="tools">
<li><a href="/about/status-updater">status updater</a> bookmarklet</li>
<li><a href="/current-status">status widget</a> for your homepage</li>

View file

@ -2,6 +2,7 @@ package handler
import (
"net/http"
"status/model"
)
type Update struct {
@ -29,5 +30,6 @@ func (h *Handler) showIndexView(w http.ResponseWriter, r *http.Request) {
h.renderLayout(w, "index", map[string]interface{}{
"statuses": statuses,
"flash": flash,
"status": &model.Status{},
}, user)
}

View file

@ -1,6 +1,9 @@
package handler
import "net/http"
import (
"net/http"
"status/model"
)
func (h *Handler) showNewStatusView(w http.ResponseWriter, r *http.Request) {
_, err := h.getUser(r)
@ -8,5 +11,5 @@ func (h *Handler) showNewStatusView(w http.ResponseWriter, r *http.Request) {
unauthorized(w)
return
}
h.view("create_status").Execute(w, nil)
h.view("create_status").Execute(w, map[string]interface{}{"status": &model.Status{}})
}