diff --git a/app/http/endpoints/manage/settings.go b/app/http/endpoints/manage/settings.go
index 78627c4..d60c095 100644
--- a/app/http/endpoints/manage/settings.go
+++ b/app/http/endpoints/manage/settings.go
@@ -93,6 +93,14 @@ func SettingsHandler(ctx *gin.Context) {
table.UpdateTicketLimit(guildId, limit)
}
+ // Ping everyone
+ pingEveryone := table.GetPingEveryone(guildId)
+ pingEveryoneStr := ctx.Query("pingeveryone")
+ if csrfCorrect {
+ pingEveryone = pingEveryoneStr == "on"
+ table.UpdatePingEveryone(guildId, pingEveryone)
+ }
+
// /users/@me/guilds doesn't return channels, so we have to get them for the specific guild
if len(guild.Channels) == 0 {
var channels []objects.Channel
@@ -215,6 +223,7 @@ func SettingsHandler(ctx *gin.Context) {
"invalidWelcomeMessage": len(ctx.Query("welcomeMessage")) > 1000,
"invalidTicketLimit": invalidTicketLimit,
"csrf": store.Get("csrf").(string),
+ "pingEveryone": pingEveryone,
}))
} else {
ctx.Redirect(302, "/login")
diff --git a/database/table/archivechannel.go b/database/table/archivechannel.go
index b5a818a..3b9e067 100644
--- a/database/table/archivechannel.go
+++ b/database/table/archivechannel.go
@@ -1,7 +1,6 @@
package table
import (
- "fmt"
"github.com/TicketsBot/GoPanel/database"
)
@@ -15,7 +14,6 @@ func (ArchiveChannel) TableName() string {
}
func UpdateArchiveChannel(guildId int64, channelId int64) {
- fmt.Println(channelId)
var channel ArchiveChannel
database.Database.Where(ArchiveChannel{Guild: guildId}).Assign(ArchiveChannel{Channel: channelId}).FirstOrCreate(&channel)
}
diff --git a/database/table/pingeveryone.go b/database/table/pingeveryone.go
new file mode 100644
index 0000000..0c27a36
--- /dev/null
+++ b/database/table/pingeveryone.go
@@ -0,0 +1,37 @@
+package table
+
+import (
+ "github.com/TicketsBot/GoPanel/database"
+)
+
+type PingEveryone struct {
+ GuildId int64 `gorm:"column:GUILDID"`
+ PingEveryone bool `gorm:"column:PINGEVERYONE;type:TINYINT"`
+}
+
+func (PingEveryone) TableName() string {
+ return "pingeveryone"
+}
+
+// tldr I hate gorm
+func UpdatePingEveryone(guildId int64, pingEveryone bool) {
+ var settings []PingEveryone
+ database.Database.Where(&PingEveryone{GuildId: guildId}).Find(&settings)
+
+ updated := PingEveryone{guildId, pingEveryone}
+
+ if len(settings) == 0 {
+ database.Database.Create(&updated)
+ } else {
+ database.Database.Table("pingeveryone").Where("GUILDID = ?", guildId).Update("PINGEVERYONE", pingEveryone)
+ }
+
+ //database.Database.Where(&PingEveryone{GuildId: guildId}).Assign(&updated).FirstOrCreate(&PingEveryone{})
+}
+
+func GetPingEveryone(guildId int64) bool {
+ pingEveryone := PingEveryone{PingEveryone: true}
+ database.Database.Where(&PingEveryone{GuildId: guildId}).First(&pingEveryone)
+
+ return pingEveryone.PingEveryone
+}
diff --git a/public/templates/layouts/main.mustache b/public/templates/layouts/main.mustache
index ad91e16..0a51082 100644
--- a/public/templates/layouts/main.mustache
+++ b/public/templates/layouts/main.mustache
@@ -8,6 +8,9 @@
+
+
+