Don't serve null
This commit is contained in:
parent
57df266bc5
commit
d6951e89ad
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
|
||||
|
2
go.mod
2
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
|
||||
|
@ -327,3 +327,60 @@ 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;
|
||||
}
|
@ -7,15 +7,18 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/logs"><i class="fas fa-copy icon"></i>Transcripts</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/panels"><i class="fas fa-mouse-pointer icon"></i>Reaction Panels</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/teams"><i class="fas fa-users icon"></i>Teams</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/blacklist"><i class="fas fa-ban icon"></i>Blacklist</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/tickets"><i class="fas fa-ticket-alt icon"></i>Ticket List</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/panels"><i class="fas fa-mouse-pointer icon"></i>Reaction Panels</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/manage/{{.guildId}}/tags"><i class="fas fa-tags icon"></i>Tags</a>
|
||||
</li>
|
||||
|
@ -67,16 +67,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 px-1">
|
||||
<div class="form-group">
|
||||
<label>Enable modmail</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="on"
|
||||
id="enable_modmail" style="width:30px;height:30px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@ -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);
|
||||
|
19
public/templates/views/teams.tmpl
Normal file
19
public/templates/views/teams.tmpl
Normal file
@ -0,0 +1,19 @@
|
||||
{{define "content"}}
|
||||
<div class="tcontent-container">
|
||||
<div class="team-card-container">
|
||||
<div class="tcard">
|
||||
<div class="tcard-title">
|
||||
<span>Support Teams</span>
|
||||
</div>
|
||||
<div class="tcard-body">
|
||||
<div class="flex-center">
|
||||
<label for="team-selection">Select a team</label>
|
||||
<select name="team-selection" style="width: 100%">
|
||||
<option value="default">Default</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
Loading…
x
Reference in New Issue
Block a user