@@ -37,8 +37,13 @@ func NewBucketUI(logger log.Logger, label, externalPrefix, prefixHeader, uiPrefi
37
37
"Component" : comp .String (),
38
38
}
39
39
40
+ tmplFuncs := queryTmplFuncs ()
41
+ // here the uiPrefix is empty because the uiPrefix is injected in the pathPrefix.
42
+ // Which seems to be the only way to the correct path in the file bucket.html
43
+ tmplFuncs ["uiPrefix" ] = func () string { return "" }
44
+
40
45
return & Bucket {
41
- BaseUI : NewBaseUI (log .With (logger , "component" , "bucketUI" ), "bucket_menu.html" , queryTmplFuncs () , tmplVariables , externalPrefix , prefixHeader , comp ),
46
+ BaseUI : NewBaseUI (log .With (logger , "component" , "bucketUI" ), "bucket_menu.html" , tmplFuncs , tmplVariables , externalPrefix , prefixHeader , comp ),
42
47
Blocks : "[]" ,
43
48
Label : label ,
44
49
externalPrefix : externalPrefix ,
@@ -48,41 +53,30 @@ func NewBucketUI(logger log.Logger, label, externalPrefix, prefixHeader, uiPrefi
48
53
}
49
54
50
55
// Register registers http routes for bucket UI.
51
- func (b * Bucket ) Register (r * route.Router , ins extpromhttp.InstrumentationMiddleware ) {
52
- /* redirectPath := "/blocks"
53
- if len(b.uiPrefix) > 0 {
54
- redirectPath = b.uiPrefix
55
- }
56
- r.Get("/", func(w http.ResponseWriter, r *http.Request) {
57
- http.Redirect(w, r, path.Join(GetWebPrefix(b.logger, b.externalPrefix, b.prefixHeader, r), redirectPath), http.StatusFound)
58
- })
56
+ func (b * Bucket ) Register (r * route.Router , registerNewUI bool , ins extpromhttp.InstrumentationMiddleware ) {
57
+ classicPrefix := path .Join ("/classic" , b .uiPrefix )
58
+ r .WithPrefix (classicPrefix ).Get ("/" , instrf ("bucket" , ins , b .bucket ))
59
+ r .WithPrefix (classicPrefix ).Get ("/static/*filepath" , instrf ("static" , ins , b .serveStaticAsset ))
60
+
61
+ if registerNewUI {
59
62
// Redirect the original React UI's path (under "/new") to its new path at the root.
60
63
r .Get ("/new/*path" , func (w http.ResponseWriter , r * http.Request ) {
61
64
p := route .Param (r .Context (), "path" )
62
65
http .Redirect (w , r , path .Join (GetWebPrefix (b .logger , b .externalPrefix , b .prefixHeader , r ), strings .TrimPrefix (p , "/new" ))+ "?" + r .URL .RawQuery , http .StatusFound )
63
66
})
64
67
65
- // here we have two routes that serve the same document. It's because it depends where do we come from.
66
- // If we are coming from the new UI, it will use the first route.
67
- // If we are coming from the old UI, it will use the second route.
68
- r.Get(path.Join("/classic", b.uiPrefix), instrf("bucket", ins, b.bucket))
69
- r.WithPrefix(b.uiPrefix).Get("/classic", instrf("bucket", ins, b.bucket))
70
- r.WithPrefix(b.uiPrefix).Get("/classic/static/*filepath", instrf("static", ins, b.serveStaticAsset))
71
- registerReactApp(r, ins, b.BaseUI)*/
72
- instrf := func (name string , next func (w http.ResponseWriter , r * http.Request )) http.HandlerFunc {
73
- return ins .NewHandler (b .externalPrefix + name , http .HandlerFunc (next ))
74
- }
75
- r .WithPrefix (b .uiPrefix ).Get ("/" , instrf ("root" , b .root ))
76
- r .WithPrefix (b .uiPrefix ).Get ("/static/*filepath" , instrf ("static" , b .serveStaticAsset ))
77
- }
68
+ r .Get ("/" , func (w http.ResponseWriter , r * http.Request ) {
69
+ http .Redirect (w , r , path .Join (GetWebPrefix (b .logger , b .externalPrefix , b .prefixHeader , r ), b .uiPrefix ), http .StatusFound )
70
+ })
78
71
79
- func ( b * Bucket ) root ( w http. ResponseWriter , r * http. Request ) {
80
- b . executeTemplate ( w , "bucket.html" , GetWebPrefix ( b . logger , path . Join ( b . externalPrefix , strings . TrimPrefix ( b . uiPrefix , "/" )), b . prefixHeader , r ), b )
72
+ registerReactApp ( r , ins , b . BaseUI )
73
+ }
81
74
}
82
75
83
76
// Handle / of bucket UIs.
84
77
func (b * Bucket ) bucket (w http.ResponseWriter , r * http.Request ) {
85
- prefix := GetWebPrefix (b .logger , path .Join (b .externalPrefix , strings .TrimPrefix (b .uiPrefix , "/" )), b .prefixHeader , r )
78
+ classicPrefix := path .Join ("/classic" , b .uiPrefix )
79
+ prefix := GetWebPrefix (b .logger , path .Join (b .externalPrefix , strings .TrimPrefix (classicPrefix , "/" )), b .prefixHeader , r )
86
80
b .executeTemplate (w , "bucket.html" , prefix , b )
87
81
}
88
82
0 commit comments