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