newui: make index.html work

Change-Id: If32179fcac1e1725c47885bd609fd05c084bbc20
This commit is contained in:
Brad Fitzpatrick 2012-12-23 11:01:19 -08:00
parent 896dba2cc8
commit 8464059cab
1 changed files with 14 additions and 7 deletions

View File

@ -76,7 +76,6 @@ type UIHandler struct {
sc ScaledImage // cache for scaled images, optional sc ScaledImage // cache for scaled images, optional
// for the new ui // for the new ui
newUIStaticHandler http.Handler // or nil
closureHandler http.Handler // or nil closureHandler http.Handler // or nil
} }
@ -149,7 +148,6 @@ func newUIFromConfig(ld blobserver.Loader, conf jsonconfig.Obj) (h http.Handler,
} else { } else {
closureDir := filepath.Join(camliRootPath, "tmp", "closure") closureDir := filepath.Join(camliRootPath, "tmp", "closure")
ui.closureHandler = http.FileServer(http.Dir(closureDir)) ui.closureHandler = http.FileServer(http.Dir(closureDir))
ui.newUIStaticHandler = http.FileServer(newuiFiles)
} }
rootPrefix, _, err := ld.FindHandlerByType("root") rootPrefix, _, err := ld.FindHandlerByType("root")
@ -394,23 +392,32 @@ func (ui *UIHandler) serveFileTree(rw http.ResponseWriter, req *http.Request) {
func (ui *UIHandler) serveNewUI(rw http.ResponseWriter, req *http.Request) { func (ui *UIHandler) serveNewUI(rw http.ResponseWriter, req *http.Request) {
suffix := req.Header.Get("X-PrefixHandler-PathSuffix") suffix := req.Header.Get("X-PrefixHandler-PathSuffix")
if ui.closureHandler == nil || ui.newUIStaticHandler == nil { if ui.closureHandler == nil {
log.Printf("%v not served: handler is nil", suffix) log.Printf("%v not served: handler is nil", suffix)
http.NotFound(rw, req) http.NotFound(rw, req)
return return
} }
suffix = path.Clean(suffix) suffix = path.Clean(suffix)
m := closurePattern.FindStringSubmatch(suffix) m := closurePattern.FindStringSubmatch(suffix)
if m != nil { if m != nil {
req.URL.Path = "/" + m[1] req.URL.Path = "/" + m[1]
ui.closureHandler.ServeHTTP(rw, req) ui.closureHandler.ServeHTTP(rw, req)
return return
} }
m = static2FilePattern.FindStringSubmatch(suffix)
if m == nil { var file string
if suffix == "new" {
file = "index.html"
} else {
m := static2FilePattern.FindStringSubmatch(suffix)
if m != nil {
file = m[1]
}
}
if file == "" {
http.NotFound(rw, req) http.NotFound(rw, req)
return return
} }
req.URL.Path = "/" + m[1] serveStaticFile(rw, req, newuiFiles, file)
ui.newUIStaticHandler.ServeHTTP(rw, req)
} }