diff options
-rw-r--r-- | hosted/view.html | 39 | ||||
-rw-r--r-- | src/http.go | 33 |
2 files changed, 58 insertions, 14 deletions
diff --git a/hosted/view.html b/hosted/view.html index ac8b411..1f72e9e 100644 --- a/hosted/view.html +++ b/hosted/view.html @@ -1,3 +1,4 @@ +{{define "view"}} <!DOCTYPE html> <html> <head> @@ -35,17 +36,33 @@ </div> </nav> <main class="container" role="main"> - <div class="jumbotron"> - <h1 class="display-4">challenges</h1> - <h3>You can find a list of the challenges below</h3> - <p>You can create, view and edit challenges there</p> - </div> - - <div class="jumbotron"> - <h2 class="display-4">challenges</h2> - <h3>You can find a list of the challenges below</h3> - <p>You can create, view and edit challenges there</p> - </div> + <table class="table"> + <thead> + <tr> + <th scope="col">Name</th> + <th scope="col">Description</th> + <th scope="col">Flag</th> + <th scope="col">Container</th> + <th scope="col">Category</th> + <th scope="col">Points</th> + <th scope="col">Static</th> + </tr> + </thead> + <tbody> + {{range .Challenge}} + <tr> + <th scope="row">{{.Name}}</th> + <td>{{.Description}}</td> + <td>{{.Flag}}</td> + <td>{{.Container}}</td> + <td>{{.Category}}</td> + <td>{{.Points}}</td> + <td>{{.Static}}</td> + </tr> + {{end}} + </tbody> + </table> </main> </body> </html> +{{end}} diff --git a/src/http.go b/src/http.go index 6dd9485..88326fc 100644 --- a/src/http.go +++ b/src/http.go @@ -3,6 +3,7 @@ package main import ( "flag" "fmt" + "html/template" "io/ioutil" "log" "net/http" @@ -51,11 +52,37 @@ func createPostHandler(w http.ResponseWriter, r *http.Request) { func viewGetHandler(w http.ResponseWriter, r *http.Request) { // get all challenges from the db - challenges := getAllChallenges(db) - for _, chal := range challenges { - fmt.Println(chal.name) + challs := getAllChallenges(db) + + log.Println("got all challenges") + + // define a challenges struct storing the challenges. + // This struct can be used in a template + challenges := Challenges{} + + for _, chal := range challs { + challenges.Challenge = append(challenges.Challenge, chal) } + log.Println("Done inserting all the challengesi nto the challenges struct") + + fmt.Printf("challenges: %#v\n", challenges) + + log.Println("Generating a new template used to render the challenges") + + t := template.New("") + t, err := t.ParseFiles("./hosted/view.html") + if err != nil { + log.Println(err) + return + } + + log.Println("Done generating and parsing the template") + + t.ExecuteTemplate(w, "view", challenges) + + log.Println("Done executing the template") + // read the view.html file and write its content to the response writer //readFileToResponse(w, "/view.html") } |