diff --git a/main.go b/main.go index f5f67475676c8740f781eacd601db8379831ce99..101eeb1a1436a711bfc1a6a1c66d9f975948bcb1 100644 --- a/main.go +++ b/main.go @@ -95,14 +95,8 @@ type UploadData struct { Result Result } -func returnResult(w http.ResponseWriter, data UploadData) error { - var pageTemplate *template.Template - var err error - if data.Result.Success { - pageTemplate, err = template.New("upload_success.html").ParseFiles("templates/upload_success.html") - } else { - pageTemplate, err = template.New("upload_failure.html").ParseFiles("templates/upload_failure.html") - } +func returnResult(w http.ResponseWriter, templateName string, data interface{}) error { + pageTemplate, err := template.New(templateName).ParseFiles(fmt.Sprintf("templates/%s", templateName)) if err != nil { return err } @@ -139,7 +133,7 @@ func main() { file, header, err := r.FormFile("file") image, err := createImage(&config, file, header) if err != nil { - returnResult(w, UploadData{ + returnResult(w, "upload.html", UploadData{ user, Result{ Id: "", @@ -159,14 +153,16 @@ func main() { data, err := json.Marshal(image) if err != nil { - returnResult(w, UploadData{ + if err = returnResult(w, "upload.html", UploadData{ user, Result{ Id: image.Id, Success: false, Errors: []string{err.Error()}, }, - }) + }); err != nil { + panic(err) + } return } @@ -179,28 +175,32 @@ func main() { for waiting { message, err := pubsub.ReceiveMessage() if err != nil { - returnResult(w, UploadData{ + if err = returnResult(w, "upload.html", UploadData{ user, Result{ Id: image.Id, Success: false, Errors: []string{err.Error()}, }, - }) + }); err != nil { + panic(err) + } return } result := Result{} err = json.Unmarshal([]byte(message.Payload), &result) if err != nil { - returnResult(w, UploadData{ + if err = returnResult(w, "upload.html", UploadData{ user, Result{ Id: image.Id, Success: false, Errors: []string{err.Error()}, }, - }) + }); err != nil { + panic(err) + } return } @@ -209,28 +209,21 @@ func main() { if result.Id == image.Id { waiting = false - returnResult(w, UploadData{ + if err = returnResult(w, "upload.html", UploadData{ user, result, - }) + }); err != nil { + panic(err) + } return } } } else { user := parseUser(r) - - type UploadData struct { - User UserInfo - } - - tmpl, err := template.New("upload.html").ParseFiles("templates/upload.html") - if err != nil { - panic(err) - } - err = tmpl.Execute(w, UploadData{ + if err = returnResult(w, "upload.html", UploadData{ user, - }) - if err != nil { + Result{}, + }); err != nil { panic(err) } } @@ -269,15 +262,10 @@ func main() { images = append(images, info) } - pageTemplate, err := template.New("me_images.html").ParseFiles("templates/me_images.html") - if err != nil { - panic(err) - } - err = pageTemplate.Execute(w, ImageListData{ + if err = returnResult(w, "me_images.html", ImageListData{ user, images, - }) - if err != nil { + }); err != nil { panic(err) } }) @@ -291,14 +279,9 @@ func main() { User UserInfo } - tmpl, err := template.New("index.html").ParseFiles("templates/index.html") - if err != nil { - panic(err) - } - err = tmpl.Execute(w, IndexData{ + if err = returnResult(w, "index.html", IndexData{ user, - }) - if err != nil { + }); err != nil { panic(err) } }) diff --git a/templates/upload.html b/templates/upload.html index d3e7a4cb454514b2b4c74f07176f1bdddcd0d977..bc01d19d932a1a5626162cc78faaea56d67a0213 100644 --- a/templates/upload.html +++ b/templates/upload.html @@ -11,6 +11,21 @@ <a href="/upload">Upload</a> </p> +{{ if .Result.Id }} + {{ if .Result.Success }} + <div class="info success"> + <h2>Upload of {{ .Result.Id }} finished. <a href="/i/{{ .Result.Id }}">View</a>.</h2> + </div> + {{ else }} + <div class="info error"> + <h2>Upload of {{ .Result.Id }} failed.</h2> + {{ range .Result.Errors }} + <pre>{{ . }}</pre> + {{ end }} + </div> + {{ end }} +{{ end }} + <form action="/upload/" method="POST" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit"/> diff --git a/templates/upload_failure.html b/templates/upload_failure.html deleted file mode 100644 index 9816479edd969e1ff49a8f08c9784df62446190e..0000000000000000000000000000000000000000 --- a/templates/upload_failure.html +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Upload | ik8r</title> -<link href="/assets/css/style.css" rel="stylesheet"> -<link href="/assets/css/fonts.css" rel="stylesheet"> - -<p>Welcome, {{ .User.Name }}</p> -<p> - <a href="/me/images">My Images</a> | - <a href="/me/albums">My Albums</a> | - <a href="/upload">Upload</a> -</p> - -<div class="info error"> - <h2>Upload of {{ .Result.Id }} failed.</h2> - {{ range .Result.Errors }} - <pre>{{ . }}</pre> - {{ end }} -</div> - -<form action="/upload/" method="POST" enctype="multipart/form-data"> - <input type="file" name="file"/> - <input type="submit"/> -</form> \ No newline at end of file diff --git a/templates/upload_success.html b/templates/upload_success.html deleted file mode 100644 index 1d7fbaffe9e7c65555cb8b8b952144dca789c95c..0000000000000000000000000000000000000000 --- a/templates/upload_success.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Upload | ik8r</title> -<link href="/assets/css/style.css" rel="stylesheet"> -<link href="/assets/css/fonts.css" rel="stylesheet"> - -<p>Welcome, {{ .User.Name }}</p> -<p> - <a href="/me/images">My Images</a> | - <a href="/me/albums">My Albums</a> | - <a href="/upload">Upload</a> -</p> - -<div class="info success"> - <h2>Upload of {{ .Result.Id }} finished. <a href="/i/{{ .Result.Id }}">View</a>.</h2> -</div> - -<form action="/upload/" method="POST" enctype="multipart/form-data"> - <input type="file" name="file"/> - <input type="submit"/> -</form> \ No newline at end of file