Addig editing
This commit is contained in:
parent
fa5e12c0f7
commit
e49f5193e2
9 changed files with 137 additions and 233 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 }}`,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
60
web/handler/html/common/status_form.html
Normal file
60
web/handler/html/common/status_form.html
Normal 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 }}
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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 }}
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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{}})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue