diff options
| author | Grant Ammons <grant@pipelinedealsco.com> | 2016-08-27 16:19:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-27 16:19:14 -0400 |
| commit | 4c54e924259c28a1441aff4217e2d68a0cc1d1c5 (patch) | |
| tree | 3d9259b209ccff5503f5c727663ec512fac0ea31 | |
| parent | 0bb3f62011d8a8bf706d9d6c1bf860a6ba3f7f97 (diff) | |
| parent | e1f901cc29eec9dc55a0629b3b6ed2536deeda3b (diff) | |
Merge pull request #5 from gammons/v0.3.00.3.0
New todolist frontend
| -rw-r--r-- | .todos.json | 2 | ||||
| -rw-r--r-- | Rakefile | 3 | ||||
| -rw-r--r-- | todo.go | 2 | ||||
| -rw-r--r-- | todolist/webapp.go | 73 |
4 files changed, 49 insertions, 31 deletions
diff --git a/.todos.json b/.todos.json index 9c584cb..ab83a99 100644 --- a/.todos.json +++ b/.todos.json @@ -1 +1 @@ -[{"id":1,"subject":"support for priorities +feature","projects":["feature"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false},{"id":2,"subject":"fix bug with 'tod' not being recognized +bug","projects":["bug"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false},{"id":3,"subject":"separate into packages/directories +refactor","projects":["refactor"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false}]
\ No newline at end of file +[{"id":1,"subject":"support for priorities +feature","projects":["feature"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false},{"id":2,"subject":"fix bug with 'tod' not being recognized +bug","projects":["bug"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false},{"id":3,"subject":"separate into packages/directories +refactor","projects":["refactor"],"contexts":[],"due":"2016-07-08","completed":false,"archived":false},{"id":4,"subject":"+documentation re-record how it works using this https://asciinema.org/","projects":["documentation"],"contexts":[],"due":"","completed":false,"archived":false},{"id":5,"subject":"+slideplayer nice quote support","projects":["slideplayer"],"contexts":[],"due":"","completed":false,"archived":false},{"id":6,"subject":"+slideplayer image filters using css3","projects":["slideplayer"],"contexts":[],"due":"","completed":false,"archived":false},{"id":7,"subject":"+slideplayer syntax highlighting and code blocks","projects":["slideplayer"],"contexts":[],"due":"","completed":false,"archived":false},{"id":8,"subject":"+slideplayer presenter notes","projects":["slideplayer"],"contexts":[],"due":"","completed":false,"archived":false}]
\ No newline at end of file @@ -10,8 +10,7 @@ Envs = [ {goos: "windows", arch: "amd64"} ] -Version = "0.2.0" - +Version = "0.3.0" task :build do `rm -rf dist/#{Version}` @@ -10,7 +10,7 @@ import ( ) const ( - VERSION = "0.2.0" + VERSION = "0.3.0" ) func main() { diff --git a/todolist/webapp.go b/todolist/webapp.go index 39d1a9b..5c93e90 100644 --- a/todolist/webapp.go +++ b/todolist/webapp.go @@ -10,7 +10,8 @@ import ( ) const ( - VERSION = "0.2.0" + VERSION = "0.3.0" + S3URL = "https://s3.amazonaws.com/todolist-local/" + VERSION ) type Webapp struct { @@ -27,44 +28,62 @@ func (w *Webapp) Run() { func setupRoutes() *httprouter.Router { router := httprouter.New() - router.GET("/", Scaffold) + router.GET("/", IndexScaffold) router.OPTIONS("/todos", TodoOptions) router.GET("/todos", GetTodos) router.POST("/todos", SaveTodos) + router.NotFound = http.HandlerFunc(RedirectScaffold) return router } -func Scaffold(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { +func IndexScaffold(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { template := ` - <!DOCTYPE html> - <html lang="en"> - <head> - <style> - body { - font-family: 'Roboto', sans-serif; - margin: 0px; - } - </style> - <meta charset="utf-8"> - <link href="https://fonts.googleapis.com/css?family=Roboto:400,300,500" rel="stylesheet"> - <link rel="stylesheet" href="` + urlFor("main.css") + `"> - <meta name="viewport" content="width=device-width,initial-scale=1"> - <meta name="mobile-web-app-capable" content="yes"> - <title>Todolist</title> - <style>body{font-family:Roboto,sans-serif;margin:0}</style> - </head> - <body> - <div id="app"></div> - <script type="text/javascript" src="` + urlFor("common.js") + `"></script> - <script type="text/javascript" src="` + urlFor("main.js") + `"></script> - </body> - </html> +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <link rel="stylesheet" href="https://bootswatch.com/flatly/bootstrap.min.css"> + <title>Todolist</title> + <link href="` + urlFor("main.css") + `" rel="stylesheet"> + </head> + <body> + <div id="app"></div> + <script type="text/javascript" src="` + urlFor("common.js") + `"></script> + <script type="text/javascript" src="` + urlFor("main.js") + `"></script> + </body> +</html> + ` + fmt.Fprintf(w, template) +} + +func RedirectScaffold(w http.ResponseWriter, r *http.Request) { + template := ` +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <link rel="stylesheet" href="https://bootswatch.com/flatly/bootstrap.min.css"> + <title>Todolist</title> + <link href="` + urlFor("main.css") + `" rel="stylesheet"> + </head> + <body> + <div id="app"></div> + <script type="text/javascript" src="` + urlFor("common.js") + `"></script> + <script type="text/javascript" src="` + urlFor("main.js") + `"></script> + </body> +</html> ` fmt.Fprintf(w, template) } func urlFor(file string) string { - return "https://s3.amazonaws.com/todolist-local/" + VERSION + "/" + file + return S3URL + "/" + file +} + +func RedirectToIndex(w http.ResponseWriter, r *http.Request) { + http.Redirect(w, r, S3URL+r.URL.Path, 301) } func GetTodos(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { |
