/
edit-page.go
65 lines (55 loc) · 1.4 KB
/
edit-page.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package main
import (
"net/http"
)
func editPage(page *page, req *http.Request) {
page.SetField("page-title", "Rediger kanal")
originalName := ""
originalNetwork := ""
name := ""
network := ""
weblink := ""
description := ""
switch req.Method {
case "GET":
q := req.URL.Query()
name = q.Get("name")
network = q.Get("network")
originalName = name
originalNetwork = network
ch, err := dbGetChannel(page, name, network)
if err != nil {
page.Fatalf("Failed to retrieve channel %s@%s from database: %s", originalName, originalNetwork, err.Error())
}
weblink = ch.Weblink()
description = ch.Description()
case "POST":
name = req.FormValue("name")
network = req.FormValue("network")
originalName = req.FormValue("original-name")
originalNetwork = req.FormValue("original-network")
weblink = req.FormValue("weblink")
description = req.FormValue("description")
err := dbEditChannel(
page,
originalName,
originalNetwork,
name,
network,
weblink,
description)
if err != nil {
page.Fatalf("Failed to edit channel: %s", err.Error())
}
page.AddMessage("Endring vellykket.")
}
page.SetFieldMap(map[string]interface{}{
"edit-name": name,
"edit-network": network,
"edit-weblink": weblink,
"edit-description": description,
"edit-original-name": originalName,
"edit-original-network": originalNetwork,
})
page.ExecuteTemplate("edit")
}