diff --git a/app/http/endpoints/api/channels.go b/app/http/endpoints/api/channels.go index 934b796..f80c7e7 100644 --- a/app/http/endpoints/api/channels.go +++ b/app/http/endpoints/api/channels.go @@ -1,23 +1,18 @@ package api import ( - "encoding/json" "github.com/TicketsBot/GoPanel/rpc/cache" "github.com/gin-gonic/gin" + "github.com/rxdn/gdl/objects/channel" ) func ChannelsHandler(ctx *gin.Context) { guildId := ctx.Keys["guildid"].(uint64) channels := cache.Instance.GetGuildChannels(guildId) - encoded, err := json.Marshal(channels) - if err != nil { - ctx.JSON(500, gin.H{ - "success": true, - "error": err.Error(), - }) - return + if channels == nil { + channels = make([]channel.Channel, 0) // don't serve null } - ctx.Data(200, gin.MIMEJSON, encoded) + ctx.JSON(200, channels) } diff --git a/app/http/server.go b/app/http/server.go index 510140e..1669276 100644 --- a/app/http/server.go +++ b/app/http/server.go @@ -73,6 +73,7 @@ func StartServer() { authenticateGuildSupport.GET("/manage/:id/blacklist", manage.BlacklistHandler) authenticateGuildAdmin.GET("/manage/:id/panels", manage.PanelHandler) authenticateGuildSupport.GET("/manage/:id/tags", manage.TagsHandler) + authenticateGuildSupport.GET("/manage/:id/teams", serveTemplate("manage/teams")) authenticateGuildSupport.GET("/manage/:id/tickets", manage.TicketListHandler) authenticateGuildSupport.GET("/manage/:id/tickets/view/:ticketId", manage.TicketViewHandler) @@ -151,6 +152,20 @@ func StartServer() { } } +func serveTemplate(templateName string) func(*gin.Context) { + return func(ctx *gin.Context) { + store := sessions.Default(ctx) + guildId := ctx.Keys["guildid"].(uint64) + + ctx.HTML(200, templateName, gin.H{ + "name": store.Get("name").(string), + "guildId": guildId, + "avatar": store.Get("avatar").(string), + "baseUrl": config.Conf.Server.BaseUrl, + }) + } +} + func createRenderer() multitemplate.Renderer { r := multitemplate.NewRenderer() @@ -165,6 +180,7 @@ func createRenderer() multitemplate.Renderer { r = addManageTemplate(r, "ticketview") r = addManageTemplate(r, "panels", "./public/templates/includes/substitutionmodal.tmpl", "./public/templates/includes/paneleditmodal.tmpl", "./public/templates/includes/multipaneleditmodal.tmpl") r = addManageTemplate(r, "tags") + r = addManageTemplate(r, "teams") r = addErrorTemplate(r) diff --git a/go.mod b/go.mod index 8ead0d8..1c17c57 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/BurntSushi/toml v0.3.1 github.com/TicketsBot/archiverclient v0.0.0-20200704164621-09d42dd941e0 github.com/TicketsBot/common v0.0.0-20210118172556-0b20b84f7df4 - github.com/TicketsBot/database v0.0.0-20210106171550-992a749cd82a + github.com/TicketsBot/database v0.0.0-20210215164209-6ec5ebcbc399 github.com/TicketsBot/worker v0.0.0-20210207182653-fabef254ea30 github.com/apex/log v1.1.2 github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect diff --git a/public/static/css/style.css b/public/static/css/style.css index 424c522..b61a8a9 100644 --- a/public/static/css/style.css +++ b/public/static/css/style.css @@ -326,4 +326,61 @@ html > ::-webkit-scrollbar { margin-top: 20px; color: white; +} + +.tcontent-container { + display: flex; + justify-content: center; + height: 100%; + width: 100%; +} + +.team-card-container { + display: flex; + margin-top: 4%; + height: 50%; + width: 80%; +} + +.tcard { + display: flex; + flex-direction: column; + justify-content: space-evenly; + height: 100%; + width: 100%; + + background-color: #272727 !important; + border-radius: 5px; + box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); +} + +.tcard-title { + display: flex; + align-items: center; + width: 100%; + border-bottom: 1px solid rgba(0,0,0,.125); +} + +.tcard-title > span { + color: white; + font-size: 32px; + font-weight: bold; + margin: 2% 0 2% 2%; +} + +.tcard-body { + display: flex; + flex-direction: column; + margin: 2%; + flex: 1; + width: 100%; + color: white; +} + +.flex-center { + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; } \ No newline at end of file diff --git a/public/templates/includes/navbar.tmpl b/public/templates/includes/navbar.tmpl index 48a3be2..6a767db 100644 --- a/public/templates/includes/navbar.tmpl +++ b/public/templates/includes/navbar.tmpl @@ -7,15 +7,18 @@ + + - diff --git a/public/templates/views/settings.tmpl b/public/templates/views/settings.tmpl index 40e17da..5de2d2d 100644 --- a/public/templates/views/settings.tmpl +++ b/public/templates/views/settings.tmpl @@ -67,16 +67,6 @@ - -
-
- -
- -
-
-
@@ -340,7 +330,6 @@ document.getElementById("ping_everyone").checked = settings.ping_everyone; document.getElementById("users_can_close").checked = settings.users_can_close; document.getElementById("close_confirmation").checked = settings.close_confirmation; - document.getElementById("enable_modmail").checked = settings.modmail_enabled; if (settings.naming_scheme === "username") { document.getElementById("naming-by-username").checked = true; @@ -459,8 +448,7 @@ 'close_confirmation': document.getElementById("close_confirmation").checked, 'naming_scheme': document.querySelector('input[name="namingscheme"]:checked').value, 'archive_channel': document.getElementById('archive_channel').options[document.getElementById('archive_channel').selectedIndex].value, - 'category': document.getElementById('category').options[document.getElementById('category').selectedIndex].value, - 'modmail_enabled': document.getElementById('enable_modmail').checked + 'category': document.getElementById('category').options[document.getElementById('category').selectedIndex].value }; const res = await axios.post('/api/{{.guildId}}/settings', data); diff --git a/public/templates/views/teams.tmpl b/public/templates/views/teams.tmpl new file mode 100644 index 0000000..184cd03 --- /dev/null +++ b/public/templates/views/teams.tmpl @@ -0,0 +1,19 @@ +{{define "content"}} +
+
+
+
+ Support Teams +
+
+
+ + +
+
+
+
+
+{{end}} \ No newline at end of file