diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/web/base.go | 67 | ||||
| -rw-r--r-- | internal/web/profile.go | 7 | ||||
| -rw-r--r-- | internal/web/thread.go | 14 | 
3 files changed, 71 insertions, 17 deletions
diff --git a/internal/web/base.go b/internal/web/base.go index a8d99619c..8e7e539f6 100644 --- a/internal/web/base.go +++ b/internal/web/base.go @@ -27,7 +27,6 @@ import (  	"strings"  	"github.com/gin-gonic/gin" -	"github.com/sirupsen/logrus"  	"github.com/superseriousbusiness/gotosocial/internal/api"  	"github.com/superseriousbusiness/gotosocial/internal/config"  	"github.com/superseriousbusiness/gotosocial/internal/gtserror" @@ -104,14 +103,10 @@ func New(processor processing.Processor) (api.ClientModule, error) {  }  func (m *Module) baseHandler(c *gin.Context) { -	l := logrus.WithField("func", "BaseGETHandler") -	l.Trace("serving index html") -  	host := config.GetHost()  	instance, err := m.processor.InstanceGet(c.Request.Context(), host)  	if err != nil { -		l.Debugf("error getting instance from processor: %s", err) -		c.JSON(http.StatusInternalServerError, gin.H{"error": "internal server error"}) +		api.ErrorHandler(c, gtserror.NewErrorInternalError(err), m.processor.InstanceGet)  		return  	} @@ -120,16 +115,66 @@ func (m *Module) baseHandler(c *gin.Context) {  	})  } +// TODO: abstract the {admin, user}panel handlers in some way +func (m *Module) AdminPanelHandler(c *gin.Context) { +	host := config.GetHost() +	instance, err := m.processor.InstanceGet(c.Request.Context(), host) +	if err != nil { +		api.ErrorHandler(c, gtserror.NewErrorInternalError(err), m.processor.InstanceGet) +		return +	} + +	c.HTML(http.StatusOK, "frontend.tmpl", gin.H{ +		"instance": instance, +		"stylesheets": []string{ +			"/assets/Fork-Awesome/css/fork-awesome.min.css", +			"/assets/dist/panels-admin-style.css", +		}, +		"javascript": []string{ +			"/assets/dist/bundle.js", +			"/assets/dist/admin-panel.js", +		}, +	}) +} + +func (m *Module) UserPanelHandler(c *gin.Context) { +	host := config.GetHost() +	instance, err := m.processor.InstanceGet(c.Request.Context(), host) +	if err != nil { +		api.ErrorHandler(c, gtserror.NewErrorInternalError(err), m.processor.InstanceGet) +		return +	} + +	c.HTML(http.StatusOK, "frontend.tmpl", gin.H{ +		"instance": instance, +		"stylesheets": []string{ +			"/assets/Fork-Awesome/css/fork-awesome.min.css", +			"/assets/dist/_colors.css", +			"/assets/dist/base.css", +			"/assets/dist/panels-user-style.css", +		}, +		"javascript": []string{ +			"/assets/dist/bundle.js", +			"/assets/dist/user-panel.js", +		}, +	}) +} +  // Route satisfies the RESTAPIModule interface  func (m *Module) Route(s router.Router) error {  	// serve static files from assets dir at /assets  	s.AttachStaticFS("/assets", fileSystem{http.Dir(m.assetsPath)}) -	// serve admin panel from within assets dir at /admin/ -	// and redirect /admin to /admin/ -	s.AttachStaticFS("/admin/", fileSystem{http.Dir(m.adminPath)}) -	s.AttachHandler(http.MethodGet, "/admin", func(c *gin.Context) { -		c.Redirect(http.StatusMovedPermanently, "/admin/") +	s.AttachHandler(http.MethodGet, "/admin", m.AdminPanelHandler) +	// redirect /admin/ to /admin +	s.AttachHandler(http.MethodGet, "/admin/", func(c *gin.Context) { +		c.Redirect(http.StatusMovedPermanently, "/admin") +	}) + +	s.AttachHandler(http.MethodGet, "/user", m.UserPanelHandler) +	// redirect /settings/ to /settings +	s.AttachHandler(http.MethodGet, "/user/", func(c *gin.Context) { +		c.Redirect(http.StatusMovedPermanently, "/user")  	})  	// serve front-page diff --git a/internal/web/profile.go b/internal/web/profile.go index 051d55d28..ce3fe645b 100644 --- a/internal/web/profile.go +++ b/internal/web/profile.go @@ -108,8 +108,11 @@ func (m *Module) profileGETHandler(c *gin.Context) {  		"statuses": statusResp.Items,  		"stylesheets": []string{  			"/assets/Fork-Awesome/css/fork-awesome.min.css", -			"/assets/status.css", -			"/assets/profile.css", +			"/assets/dist/status.css", +			"/assets/dist/profile.css", +		}, +		"javascript": []string{ +			"/assets/dist/frontend.js",  		},  	})  } diff --git a/internal/web/thread.go b/internal/web/thread.go index 5e953ee06..3db4952c7 100644 --- a/internal/web/thread.go +++ b/internal/web/thread.go @@ -105,10 +105,16 @@ func (m *Module) threadGETHandler(c *gin.Context) {  	}  	c.HTML(http.StatusOK, "thread.tmpl", gin.H{ -		"instance":    instance, -		"status":      status, -		"context":     context, -		"stylesheets": []string{"/assets/Fork-Awesome/css/fork-awesome.min.css", "/assets/status.css"}, +		"instance": instance, +		"status":   status, +		"context":  context, +		"stylesheets": []string{ +			"/assets/Fork-Awesome/css/fork-awesome.min.css", +			"/assets/dist/status.css", +		}, +		"javascript": []string{ +			"/assets/dist/frontend.js", +		},  	})  }  | 
