diff options
author | jan <jan@ruken.pw> | 2015-12-29 22:13:09 (UTC) |
---|---|---|
committer | jan <jan@ruken.pw> | 2015-12-29 22:13:09 (UTC) |
commit | 10f014d5da7f1a35d2fc6cf0aa617a5ec4bb074f (patch) | |
tree | f0cff6de142552fa95e5f011ccb401fb89d40711 | |
parent | 365bd4578a0c9b2e4ae5938d280609bd9af37faf (diff) |
UI für die simple pagination. 'add' und 'sub' template-funktionen hinzugefügt.
-rw-r--r-- | frontend/renderer.go | 9 | ||||
-rw-r--r-- | modules/tags/tags.go | 16 | ||||
-rw-r--r-- | views/tag.html | 6 |
3 files changed, 30 insertions, 1 deletions
diff --git a/frontend/renderer.go b/frontend/renderer.go index a3aa83d..524c2c8 100644 --- a/frontend/renderer.go +++ b/frontend/renderer.go | |||
@@ -47,9 +47,16 @@ func New(path string) *Renderer { | |||
47 | "html": func(in string) template.HTML { | 47 | "html": func(in string) template.HTML { |
48 | return template.HTML(in) | 48 | return template.HTML(in) |
49 | }, | 49 | }, |
50 | "add": func(a, b int) int { | ||
51 | return a + b | ||
52 | }, | ||
53 | "sub": func(a, b int) int { | ||
54 | return a - b | ||
55 | }, | ||
50 | } | 56 | } |
57 | |||
51 | r := &Renderer{ | 58 | r := &Renderer{ |
52 | template.Must(template.ParseGlob(path + "/*")).Funcs(funcMap), | 59 | template.Must(template.New("").Funcs(funcMap).ParseGlob(path + "/*")), |
53 | make(map[string]interface{}), | 60 | make(map[string]interface{}), |
54 | } | 61 | } |
55 | 62 | ||
diff --git a/modules/tags/tags.go b/modules/tags/tags.go index aca1b44..527d1d9 100644 --- a/modules/tags/tags.go +++ b/modules/tags/tags.go | |||
@@ -69,6 +69,20 @@ func (m *Module) viewTagPage(w http.ResponseWriter, r *http.Request, p httproute | |||
69 | pageNumber = 1 | 69 | pageNumber = 1 |
70 | } | 70 | } |
71 | 71 | ||
72 | // Anzahl an Pages holen | ||
73 | var pageNum int | ||
74 | err = m.g.DB.QueryRow(`SELECT COUNT(*) FROM grilist.grils_tags WHERE tag_id = $1`, tagID).Scan(&pageNum) | ||
75 | if err != nil { | ||
76 | log.Println("error getting page count", err) | ||
77 | http.Redirect(w, r, "/", 302) | ||
78 | return | ||
79 | } | ||
80 | pageCount := (int)((float64)(pageNum)/12.0 + 0.5) | ||
81 | |||
82 | if pageNumber > pageCount { | ||
83 | pageNumber = pageCount | ||
84 | } | ||
85 | |||
72 | idList := make([]int, 0) | 86 | idList := make([]int, 0) |
73 | rows, err := m.g.DB.Query( | 87 | rows, err := m.g.DB.Query( |
74 | "SELECT gril_id FROM grilist.grils_tags WHERE tag_id = $1 LIMIT 12 OFFSET $2", | 88 | "SELECT gril_id FROM grilist.grils_tags WHERE tag_id = $1 LIMIT 12 OFFSET $2", |
@@ -108,5 +122,7 @@ func (m *Module) viewTagPage(w http.ResponseWriter, r *http.Request, p httproute | |||
108 | data["user"] = user | 122 | data["user"] = user |
109 | data["tag"] = tag | 123 | data["tag"] = tag |
110 | data["cards"] = cards | 124 | data["cards"] = cards |
125 | data["currentPage"] = pageNumber | ||
126 | data["pageCount"] = pageCount | ||
111 | m.g.Renderer.RenderPage("tag", w, data) | 127 | m.g.Renderer.RenderPage("tag", w, data) |
112 | } | 128 | } |
diff --git a/views/tag.html b/views/tag.html index 788083f..3e89a7b 100644 --- a/views/tag.html +++ b/views/tag.html | |||
@@ -3,6 +3,7 @@ | |||
3 | <head> | 3 | <head> |
4 | {{ template "materialize" }} | 4 | {{ template "materialize" }} |
5 | <title>grilist</title> | 5 | <title>grilist</title> |
6 | <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> | 7 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> |
7 | </head> | 8 | </head> |
8 | <body> | 9 | <body> |
@@ -15,6 +16,11 @@ | |||
15 | {{ template "card" . }} | 16 | {{ template "card" . }} |
16 | {{ end }} | 17 | {{ end }} |
17 | </div> | 18 | </div> |
19 | <ul class="pagination center-align"> | ||
20 | <li class="{{ if eq .currentPage 1 }}disabled{{ else }}waves-effect{{ end }}"><a href="/tag/{{ .tag }}/{{ sub .currentPage 1 }}"><i class="material-icons">chevron_left</i></a></li> | ||
21 | <li class="active"><a href="#!">{{ .currentPage }}</a></li> | ||
22 | <li class="{{ if eq .currentPage .pageCount }}disabled{{ else }}waves-effect{{ end }}"><a href="/tag/{{ .tag }}/{{ add .currentPage 1 }}"><i class="material-icons">chevron_right</i></a></li> | ||
23 | </ul> | ||
18 | </div> | 24 | </div> |
19 | </div> | 25 | </div> |
20 | </body> | 26 | </body> |