close confirmation
This commit is contained in:
parent
3cab8c2a06
commit
85aeab4ab6
@ -9,71 +9,75 @@ import (
|
||||
)
|
||||
|
||||
type Settings struct {
|
||||
Prefix string `json:"prefix"`
|
||||
WelcomeMessaage string `json:"welcome_message"`
|
||||
TicketLimit uint8 `json:"ticket_limit"`
|
||||
Category uint64 `json:"category,string"`
|
||||
ArchiveChannel uint64 `json:"archive_channel,string"`
|
||||
NamingScheme database.NamingScheme `json:"naming_scheme"`
|
||||
PingEveryone bool `json:"ping_everyone"`
|
||||
UsersCanClose bool `json:"users_can_close"`
|
||||
Prefix string `json:"prefix"`
|
||||
WelcomeMessaage string `json:"welcome_message"`
|
||||
TicketLimit uint8 `json:"ticket_limit"`
|
||||
Category uint64 `json:"category,string"`
|
||||
ArchiveChannel uint64 `json:"archive_channel,string"`
|
||||
NamingScheme database.NamingScheme `json:"naming_scheme"`
|
||||
PingEveryone bool `json:"ping_everyone"`
|
||||
UsersCanClose bool `json:"users_can_close"`
|
||||
CloseConfirmation bool `json:"close_confirmation"`
|
||||
}
|
||||
|
||||
func GetSettingsHandler(ctx *gin.Context) {
|
||||
guildId := ctx.Keys["guildid"].(uint64)
|
||||
var prefix, welcomeMessage string
|
||||
var ticketLimit uint8
|
||||
var category, archiveChannel uint64
|
||||
var allowUsersToClose, pingEveryone bool
|
||||
var namingScheme database.NamingScheme
|
||||
|
||||
var settings Settings
|
||||
|
||||
group, _ := errgroup.WithContext(context.Background())
|
||||
|
||||
// prefix
|
||||
group.Go(func() (err error) {
|
||||
prefix, err = dbclient.Client.Prefix.Get(guildId)
|
||||
settings.Prefix, err = dbclient.Client.Prefix.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// welcome message
|
||||
group.Go(func() (err error) {
|
||||
welcomeMessage, err = dbclient.Client.WelcomeMessages.Get(guildId)
|
||||
settings.WelcomeMessaage, err = dbclient.Client.WelcomeMessages.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// ticket limit
|
||||
group.Go(func() (err error) {
|
||||
ticketLimit, err = dbclient.Client.TicketLimit.Get(guildId)
|
||||
settings.TicketLimit, err = dbclient.Client.TicketLimit.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// category
|
||||
group.Go(func() (err error) {
|
||||
category, err = dbclient.Client.ChannelCategory.Get(guildId)
|
||||
settings.Category, err = dbclient.Client.ChannelCategory.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// archive channel
|
||||
group.Go(func() (err error) {
|
||||
archiveChannel, err = dbclient.Client.ArchiveChannel.Get(guildId)
|
||||
settings.ArchiveChannel, err = dbclient.Client.ArchiveChannel.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// allow users to close
|
||||
group.Go(func() (err error) {
|
||||
allowUsersToClose, err = dbclient.Client.UsersCanClose.Get(guildId)
|
||||
settings.UsersCanClose, err = dbclient.Client.UsersCanClose.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// ping everyone
|
||||
group.Go(func() (err error) {
|
||||
pingEveryone, err = dbclient.Client.PingEveryone.Get(guildId)
|
||||
settings.PingEveryone, err = dbclient.Client.PingEveryone.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// naming scheme
|
||||
group.Go(func() (err error) {
|
||||
namingScheme, err = dbclient.Client.NamingScheme.Get(guildId)
|
||||
settings.NamingScheme, err = dbclient.Client.NamingScheme.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
// close confirmation
|
||||
group.Go(func() (err error) {
|
||||
settings.CloseConfirmation, err = dbclient.Client.CloseConfirmation.Get(guildId)
|
||||
return
|
||||
})
|
||||
|
||||
@ -85,14 +89,5 @@ func GetSettingsHandler(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(200, Settings{
|
||||
Prefix: prefix,
|
||||
WelcomeMessaage: welcomeMessage,
|
||||
TicketLimit: ticketLimit,
|
||||
Category: category,
|
||||
ArchiveChannel: archiveChannel,
|
||||
NamingScheme: namingScheme,
|
||||
PingEveryone: pingEveryone,
|
||||
UsersCanClose: allowUsersToClose,
|
||||
})
|
||||
ctx.JSON(200, settings)
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ func UpdateSettingsHandler(ctx *gin.Context) {
|
||||
validNamingScheme := settings.updateNamingScheme(guildId)
|
||||
settings.updatePingEveryone(guildId)
|
||||
settings.updateUsersCanClose(guildId)
|
||||
settings.updateCloseConfirmation(guildId)
|
||||
|
||||
ctx.JSON(200, gin.H{
|
||||
"prefix": validPrefix,
|
||||
@ -130,3 +131,7 @@ func (s *Settings) updatePingEveryone(guildId uint64) {
|
||||
func (s *Settings) updateUsersCanClose(guildId uint64) {
|
||||
go dbclient.Client.UsersCanClose.Set(guildId, s.UsersCanClose)
|
||||
}
|
||||
|
||||
func (s *Settings) updateCloseConfirmation(guildId uint64) {
|
||||
go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation)
|
||||
}
|
||||
|
2
go.mod
2
go.mod
@ -5,7 +5,7 @@ go 1.14
|
||||
require (
|
||||
github.com/BurntSushi/toml v0.3.1
|
||||
github.com/TicketsBot/archiverclient v0.0.0-20200425115930-0ca198cc8306
|
||||
github.com/TicketsBot/database v0.0.0-20200514152605-f7a83711930c
|
||||
github.com/TicketsBot/database v0.0.0-20200516145701-e13f7e204cc6
|
||||
github.com/apex/log v1.1.2
|
||||
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
|
@ -10,18 +10,20 @@
|
||||
<div class="card-body">
|
||||
<form onsubmit="updateSettings(); return false;">
|
||||
<div class="row">
|
||||
<div class="col-md-5 pr-1">
|
||||
<div class="col-md-2 pr-1">
|
||||
<div class="form-group">
|
||||
<label>Prefix (Max len. 8)</label>
|
||||
<input name="prefix" type="text" class="form-control" placeholder="t!" id="prefix">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 px-1">
|
||||
|
||||
<div class="col-md-1 px-1">
|
||||
<div class="form-group">
|
||||
<label>Ticket Limit (1-10)</label>
|
||||
<input name="ticketlimit" type="text" class="form-control" placeholder="5" id="ticket_limit">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 px-1">
|
||||
<div class="form-group">
|
||||
<label>Ping @everyone on ticket open</label>
|
||||
@ -30,6 +32,26 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 px-1">
|
||||
<div class="form-group">
|
||||
<label>Allow users to close tickets</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="userscanclose" value="on"
|
||||
id="users_can_close" style="width:30px;height:30px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 px-1">
|
||||
<div class="form-group">
|
||||
<label>Ticket close confirmation</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="close_confirmation" value="on"
|
||||
id="close_confirmation" style="width:30px;height:30px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@ -40,7 +62,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-5 pr-1">
|
||||
<div class="col-md-4 pr-1">
|
||||
<label>Archive Channel</label>
|
||||
<div class="input-group mb-3">
|
||||
<div class="input-group-prepend">
|
||||
@ -51,23 +73,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5 px-1">
|
||||
<div class="col-md-4 px-1">
|
||||
<div class="form-group">
|
||||
<label>Channel Category</label>
|
||||
<select class="form-control" name="category" id="category">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 px-1">
|
||||
<div class="form-group">
|
||||
<label>Allow users to close tickets</label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="userscanclose" value="on"
|
||||
id="users_can_close" style="width:30px;height:30px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label>Ticket Naming Scheme</label>
|
||||
@ -200,6 +212,7 @@
|
||||
document.getElementById("ticket_limit").value = settings.ticket_limit;
|
||||
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;
|
||||
|
||||
if (settings.naming_scheme === "username") {
|
||||
document.getElementById("naming-by-username").checked = true;
|
||||
@ -262,6 +275,7 @@
|
||||
'ticket_limit': parseInt(document.getElementById('ticket_limit').value),
|
||||
'ping_everyone': document.getElementById("ping_everyone").checked,
|
||||
'users_can_close': document.getElementById("users_can_close").checked,
|
||||
'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
|
||||
|
Loading…
x
Reference in New Issue
Block a user