ch5.2
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
@@ -20,23 +21,23 @@ func (app *application) home(w http.ResponseWriter, r *http.Request) {
|
||||
app.serverError(w, err)
|
||||
return
|
||||
}
|
||||
for _, snippet := range snippets {
|
||||
fmt.Fprintf(w, "%+v\n", snippet)
|
||||
files := []string{
|
||||
"./ui/html/base.tmpl",
|
||||
"./ui/html/partials/nav.tmpl",
|
||||
"./ui/html/pages/home.tmpl",
|
||||
}
|
||||
ts, err := template.ParseFiles(files...)
|
||||
if err != nil {
|
||||
app.serverError(w, err)
|
||||
return
|
||||
}
|
||||
data := &templateData{
|
||||
Snippets: snippets,
|
||||
}
|
||||
err = ts.ExecuteTemplate(w, "base", data)
|
||||
if err != nil {
|
||||
app.serverError(w, err)
|
||||
}
|
||||
// files := []string{
|
||||
// "./ui/html/base.tmpl",
|
||||
// "./ui/html/partials/nav.tmpl",
|
||||
// "./ui/html/pages/home.tmpl",
|
||||
// }
|
||||
// ts, err := template.ParseFiles(files...)
|
||||
// if err != nil {
|
||||
// app.serverError(w, err)
|
||||
// return
|
||||
// }
|
||||
// err = ts.ExecuteTemplate(w, "base", nil)
|
||||
// if err != nil {
|
||||
// app.serverError(w, err)
|
||||
// }
|
||||
}
|
||||
|
||||
func (app *application) snippetView(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -55,7 +56,25 @@ func (app *application) snippetView(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
return
|
||||
}
|
||||
fmt.Fprintf(w, "%+v", snippet)
|
||||
files := []string{
|
||||
"./ui/html/base.tmpl",
|
||||
"./ui/html/partials/nav.tmpl",
|
||||
"./ui/html/pages/view.tmpl",
|
||||
}
|
||||
ts, err := template.ParseFiles(files...)
|
||||
if err != nil {
|
||||
app.serverError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
data := &templateData{
|
||||
Snippet: snippet,
|
||||
}
|
||||
|
||||
err = ts.ExecuteTemplate(w, "base", data)
|
||||
if err != nil {
|
||||
app.serverError(w, err)
|
||||
}
|
||||
}
|
||||
|
||||
func (app *application) snippetCreate(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
10
cmd/web/templates.go
Normal file
10
cmd/web/templates.go
Normal file
@@ -0,0 +1,10 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"gitea.local.lab/Lbenedar/snippetbox/internal/models"
|
||||
)
|
||||
|
||||
type templateData struct {
|
||||
Snippet *models.Snippet
|
||||
Snippets []*models.Snippet
|
||||
}
|
||||
@@ -2,5 +2,22 @@
|
||||
|
||||
{{define "main"}}
|
||||
<h2>Latest Snippets</h2>
|
||||
<p>There's nothing to see here yet!</p>
|
||||
{{if .Snippets}}
|
||||
<table>
|
||||
<tr>
|
||||
<th>Title</th>
|
||||
<th>Created</th>
|
||||
<th>ID</th>
|
||||
</tr>
|
||||
{{range .Snippets}}
|
||||
<tr>
|
||||
<td><a href='/snippet/view?id={{.ID}}'>{{.Title}}</a></td>
|
||||
<td>{{.Created}}</td>
|
||||
<td>#{{.ID}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</table>
|
||||
{{else}}
|
||||
<p>There's nothing to see here... yet!</p>
|
||||
{{end}}
|
||||
{{end}}
|
||||
18
ui/html/pages/view.tmpl
Normal file
18
ui/html/pages/view.tmpl
Normal file
@@ -0,0 +1,18 @@
|
||||
{{define "title"}}Snippet ${{.Snippet.ID}}{{end}}
|
||||
|
||||
{{define "main"}}
|
||||
{{with .Snippet}}
|
||||
<div class='snippet'>
|
||||
<div class='metadata'>
|
||||
<strong>{{.Title}}</strong>
|
||||
<span>#{{.ID}}</span>
|
||||
</div>
|
||||
<pre><code>{{.Content}}</code></pre>
|
||||
<div class='metadata'>
|
||||
<time>Created: {{.Created}}</time>
|
||||
<time>Expires: {{.Expires}}</time>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user