diff --git a/README.md b/README.md index 4944563..7f08727 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ todo te será familiar. - Sin dependencias - Procesamiento y salida de ficheros HTML +- Paginación lista para usar - Vinculación entrada formulario y JSON a tipos estructurados. ## Motivación diff --git a/example/main.go b/example/main.go index d9a188a..949ba36 100644 --- a/example/main.go +++ b/example/main.go @@ -6,17 +6,73 @@ import ( "ron" ) +type SomethingElements struct { + Name string + Description string +} + +var elements = []SomethingElements{ + {"element 1", "description 1"}, + {"element 2", "description 2"}, + {"element 3", "description 3"}, + {"element 4", "description 4"}, + {"element 5", "description 5"}, + {"element 6", "description 6"}, + {"element 7", "description 7"}, + {"element 8", "description 8"}, + {"element 9", "description 9"}, + {"element 10", "description 10"}, + {"element 11", "description 11"}, + {"element 12", "description 12"}, + {"element 13", "description 13"}, + {"element 14", "description 14"}, + {"element 15", "description 15"}, + {"element 16", "description 16"}, + {"element 17", "description 17"}, + {"element 18", "description 18"}, + {"element 19", "description 19"}, + {"element 20", "description 20"}, + {"element 21", "description 21"}, + {"element 22", "description 22"}, + {"element 23", "description 23"}, + {"element 24", "description 24"}, + {"element 25", "description 25"}, + {"element 26", "description 26"}, + {"element 27", "description 27"}, + {"element 28", "description 28"}, + {"element 29", "description 29"}, + {"element 30", "description 30"}, + {"element 31", "description 31"}, + {"element 32", "description 32"}, + {"element 33", "description 33"}, + {"element 34", "description 34"}, + {"element 35", "description 35"}, + {"element 36", "description 36"}, + {"element 37", "description 37"}, + {"element 38", "description 38"}, + {"element 39", "description 39"}, + {"element 40", "description 40"}, + {"element 41", "description 41"}, + {"element 42", "description 42"}, + {"element 43", "description 43"}, + {"element 44", "description 44"}, + {"element 45", "description 45"}, + {"element 46", "description 46"}, + {"element 47", "description 47"}, + {"element 48", "description 48"}, + {"element 49", "description 49"}, +} + func main() { r := ron.New(func(e *ron.Engine) { e.LogLevel = slog.LevelDebug }) htmlRender := ron.NewHTMLRender() - r.Renderer = htmlRender + r.Render = htmlRender r.Static("static", "static") - //r.GET("/", helloWorld) r.GET("/json", helloWorldJSON) r.POST("/another", anotherHelloWorld) r.GET("/html", helloWorldHTML) @@ -39,12 +95,23 @@ func helloWorldJSON(c *ron.Context) { } func helloWorldHTML(c *ron.Context) { - c.HTML(200, "page.index.gohtml", ron.Data{ - "title": "hello world", - "message": "hello world from html", - }) + + pages := ron.Pages{ + TotalElements: len(elements), + ElementsPerPage: 5, + } + + pages.PaginationParams(c.R) + elementsPaginated := pages.PaginateArray(elements) + + td := &ron.TemplateData{ + Data: ron.Data{"title": "hello world", "message": "hello world from html", "elements": elementsPaginated}, + Pages: pages, + } + + c.HTML(200, "page.index.gohtml", td) } func componentHTML(c *ron.Context) { - c.HTML(200, "component.list.gohtml", ron.Data{}) + c.HTML(200, "component.list.gohtml", nil) } diff --git a/example/templates/page.index.gohtml b/example/templates/page.index.gohtml index 8d43466..f1eef8a 100644 --- a/example/templates/page.index.gohtml +++ b/example/templates/page.index.gohtml @@ -12,6 +12,40 @@ {{ .Data.message }} +{{ range .Data.elements }} +