From d28c4df2309024c2808b516d7152f40ea75f4796 Mon Sep 17 00:00:00 2001 From: Dot-Rar Date: Sat, 6 Jun 2020 22:12:30 +0100 Subject: [PATCH] autoclose on user leave --- .../api/{getautoclose.go => autocloseget.go} | 0 .../{postautoclose.go => autoclosepost.go} | 8 +++++++- go.mod | 2 +- public/templates/views/settings.tmpl | 20 ++++++++++++++----- 4 files changed, 23 insertions(+), 7 deletions(-) rename app/http/endpoints/api/{getautoclose.go => autocloseget.go} (100%) rename app/http/endpoints/api/{postautoclose.go => autoclosepost.go} (84%) diff --git a/app/http/endpoints/api/getautoclose.go b/app/http/endpoints/api/autocloseget.go similarity index 100% rename from app/http/endpoints/api/getautoclose.go rename to app/http/endpoints/api/autocloseget.go diff --git a/app/http/endpoints/api/postautoclose.go b/app/http/endpoints/api/autoclosepost.go similarity index 84% rename from app/http/endpoints/api/postautoclose.go rename to app/http/endpoints/api/autoclosepost.go index 3bd6edf..c44c6db 100644 --- a/app/http/endpoints/api/postautoclose.go +++ b/app/http/endpoints/api/autoclosepost.go @@ -18,7 +18,7 @@ func PostAutoClose(ctx *gin.Context) { return } - if settings.Enabled && (settings.SinceLastMessage == nil || settings.SinceOpenWithNoResponse == nil) { + if settings.Enabled && (settings.SinceLastMessage == nil || settings.SinceOpenWithNoResponse == nil || settings.OnUserLeave == nil) { ctx.AbortWithStatusJSON(400, gin.H{ "success": false, "error": "No time period provided", @@ -34,6 +34,12 @@ func PostAutoClose(ctx *gin.Context) { return } + if !settings.Enabled { + settings.SinceLastMessage = nil + settings.SinceOpenWithNoResponse = nil + settings.OnUserLeave = nil + } + if err := dbclient.Client.AutoClose.Set(guildId, settings); err != nil { ctx.AbortWithStatusJSON(500, gin.H{ "success": false, diff --git a/go.mod b/go.mod index 6e2f65d..901226f 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-20200425115930-0ca198cc8306 github.com/TicketsBot/common v0.0.0-20200529141045-7426ad13f1a4 - github.com/TicketsBot/database v0.0.0-20200604215726-514be849d31c + github.com/TicketsBot/database v0.0.0-20200606205929-6851b2444a67 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 diff --git a/public/templates/views/settings.tmpl b/public/templates/views/settings.tmpl index 40bd794..f0e72ac 100644 --- a/public/templates/views/settings.tmpl +++ b/public/templates/views/settings.tmpl @@ -189,7 +189,7 @@
-
+
@@ -197,7 +197,15 @@
-
+
+
+ +
+ +
+
+
+
@@ -222,7 +230,7 @@
-
+
@@ -393,11 +401,12 @@ return [days, hours, minutes]; } - async function loadAutoClaimSettings() { + async function loadAutoCloseSettings() { const res = await axios.get('/api/{{.guildId}}/autoclose'); const settings = res.data; document.getElementById('autoclose_enabled').checked = settings.enabled; + document.getElementById('autoclose_on_user_leave').checked = settings.on_user_leave; const sinceOpen = fromNanoSeconds(settings.since_open_with_no_response); document.getElementById('sinceopen_days').value = sinceOpen[0]; @@ -417,6 +426,7 @@ async function updateAutoCloseSettings() { const data = { enabled: document.getElementById('autoclose_enabled').checked, + on_user_leave: document.getElementById('autoclose_on_user_leave').checked, since_open_with_no_response: toNanoSeconds(document.getElementById('sinceopen_days').value, document.getElementById('sinceopen_hours').value, document.getElementById('sinceopen_minutes').value), since_last_message: toNanoSeconds(document.getElementById('sincelast_days').value, document.getElementById('sincelast_hours').value, document.getElementById('sincelast_minutes').value), }; @@ -430,7 +440,7 @@ showToast('Success', 'Auto close settings updated'); } - loadAutoClaimSettings(); + loadAutoCloseSettings();