diff options
author | raylu <raylu@mixpanel.com> | 2011-08-09 22:33:17 -0700 |
---|---|---|
committer | raylu <raylu@mixpanel.com> | 2011-08-09 22:33:17 -0700 |
commit | 8a05f63c5c9d52c0c6165d9785498a13e9306ced (patch) | |
tree | f80dc1293d63c01bfc8264019e1e0323d1c15818 | |
parent | b5f572860a2a8d94103d2b27a7f170243f885e97 (diff) | |
download | audioaxis-8a05f63c5c9d52c0c6165d9785498a13e9306ced.tar.xz |
add homepage template
-rw-r--r-- | main.go | 86 | ||||
-rw-r--r-- | templates/footer.html | 3 | ||||
-rw-r--r-- | templates/header.html | 13 | ||||
-rw-r--r-- | templates/home.html | 10 | ||||
-rw-r--r-- | templates/p.html | 74 |
5 files changed, 95 insertions, 91 deletions
@@ -19,41 +19,57 @@ type Playlist struct { Id string } -var templates map[string]*template.Template +var templates *template.Set const debug = true -func home(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Welcome to Audio Axis!") -} +func main() { + templates = template.SetMust(template.ParseTemplateFiles("templates/*.html")) -func playlist(w http.ResponseWriter, r *http.Request) { - id := r.URL.Path[len("/p/"):] - if len(id) != 8 { - http.Redirect(w, r, "/", 303) - return + initDb() + + http.HandleFunc("/", home) + http.HandleFunc("/p/", playlist) + http.HandleFunc("/add/", add) + http.HandleFunc("/remove/", remove) + http.HandleFunc("/move/", move) + http.HandleFunc("/poll/", poll) + err := http.ListenAndServe("localhost:8000", nil) + if err != nil { + fmt.Println(err) + os.Exit(1) } - playlist := Playlist{Id: id} +} +func renderPage(w http.ResponseWriter, page string, data interface{}) { if debug { - t, err := template.ParseFile("templates/p.html") - if err != nil { - http.Error(w, err.String(), http.StatusInternalServerError) - return - } - err = t.Execute(w, playlist) + var err os.Error + templates, err = template.ParseTemplateFiles("templates/*.html") if err != nil { - w.Write([]byte(err.String())) fmt.Fprintln(os.Stderr, err.String()) + http.Error(w, err.String(), http.StatusInternalServerError) return } - } else { - err := templates["p"].Execute(w, playlist) - if err != nil { - fmt.Fprintln(os.Stderr, err.String()) - } + } + err := templates.Execute(w, page + ".html", data) + if err != nil { + fmt.Fprintln(os.Stderr, err.String()) } } +func home(w http.ResponseWriter, r *http.Request) { + renderPage(w, "home", nil) +} + +func playlist(w http.ResponseWriter, r *http.Request) { + id := r.URL.Path[len("/p/"):] + if len(id) != 8 { + http.Redirect(w, r, "/", 303) + return + } + p := Playlist{Id: id} + renderPage(w, "p", p) +} + func add(w http.ResponseWriter, r *http.Request) { q := r.URL.Query() db := <-dbPool @@ -283,29 +299,3 @@ func poll(w http.ResponseWriter, r *http.Request) { w.Write([]byte("[]")) } } - -func main() { - templates = make(map[string]*template.Template) - for _, path := range []string{"p"} { - t, err := template.ParseFile("templates/" + path + ".html") - if err != nil { - fmt.Println(err) - return - } - templates[path] = t - } - - initDb() - - http.HandleFunc("/", home) - http.HandleFunc("/p/", playlist) - http.HandleFunc("/add/", add) - http.HandleFunc("/remove/", remove) - http.HandleFunc("/move/", move) - http.HandleFunc("/poll/", poll) - err := http.ListenAndServe("localhost:8000", nil) - if err != nil { - fmt.Println(err) - os.Exit(1) - } -} diff --git a/templates/footer.html b/templates/footer.html new file mode 100644 index 0000000..15b9011 --- /dev/null +++ b/templates/footer.html @@ -0,0 +1,3 @@ +</body> + +</html> diff --git a/templates/header.html b/templates/header.html new file mode 100644 index 0000000..8b65ad6 --- /dev/null +++ b/templates/header.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>Audio Axis</title> + <!-- + <link href='http://fonts.googleapis.com/css?family=Cantarell' rel='stylesheet'> + --> + <link href="/static/cantarell.css" rel="stylesheet"> + <link href="/static/base.css" rel="stylesheet"> +</head> + +<body> diff --git a/templates/home.html b/templates/home.html new file mode 100644 index 0000000..7e7e9e3 --- /dev/null +++ b/templates/home.html @@ -0,0 +1,10 @@ +{{template "header.html"}} + +<header> + <img src="/static/audioaxis-white.png" alt="Audio Axis" class="aa"> +</header> +<article> + Welcome to Audio Axis! +</article> + +{{template "footer.html"}} diff --git a/templates/p.html b/templates/p.html index 79971c1..d434052 100644 --- a/templates/p.html +++ b/templates/p.html @@ -1,45 +1,33 @@ -<!DOCTYPE html> -<html> -<head> - <meta charset="UTF-8"> - <title>Audio Axis</title> - <!-- - <link href='http://fonts.googleapis.com/css?family=Cantarell' rel='stylesheet'> - --> - <link href="/static/cantarell.css" rel="stylesheet"> - <link href="/static/base.css" rel="stylesheet"> -</head> +{{template "header.html"}} -<body> - <header> - <img src="/static/audioaxis-white.png" alt="Audio Axis" class="aa"> - <form onsubmit="return search(this.song.value)"> - <label for="user">Username:</label> - <input type="text" id="user" value="anonymous" size="16"> - <br> - <label for="song">Add a song:</label> - <input type="text" id="song" autocomplete="off"> - <input type="submit" value="Search"> - </form> - <div id="results" onblur="$(this).slideUp()"><ul> - </ul></div> - </header> - <article> - </article> - {{$first := "82KEVKGRAhI"}} - <script> - var pid = '{{.Id}}'; - </script> - <script src="/static/jquery.min.js"></script> - <!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> - --> - <script src="/static/script.js"></script> - <object data="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1" id="player" width="1" height="1" type="application/x-shockwave-flash"> - <param name="movie" value="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1"> - <param name="allowScriptAccess" value="always"> - <embed src="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1" allowScriptAccess="always"> - </object> -</body> +<header> + <img src="/static/audioaxis-white.png" alt="Audio Axis" class="aa"> + <form onsubmit="return search(this.song.value)"> + <label for="user">Username:</label> + <input type="text" id="user" value="anonymous" size="16"> + <br> + <label for="song">Add a song:</label> + <input type="text" id="song" autocomplete="off"> + <input type="submit" value="Search"> + </form> + <div id="results" onblur="$(this).slideUp()"><ul> + </ul></div> +</header> +<article> +</article> +{{$first := "82KEVKGRAhI"}} +<script> + var pid = '{{.Id}}'; +</script> +<script src="/static/jquery.min.js"></script> +<!-- +<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> +--> +<script src="/static/script.js"></script> +<object data="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1" id="player" width="1" height="1" type="application/x-shockwave-flash"> + <param name="movie" value="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1"> + <param name="allowScriptAccess" value="always"> + <embed src="http://www.youtube.com/v/{{$first}}?version=3&enablejsapi=1" allowScriptAccess="always"> +</object> -</html> +{{template "footer.html"}} |