summaryrefslogtreecommitdiff
path: root/internal/web
diff options
context:
space:
mode:
Diffstat (limited to 'internal/web')
-rw-r--r--internal/web/base.go67
-rw-r--r--internal/web/profile.go7
-rw-r--r--internal/web/thread.go14
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",
+ },
})
}