mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-02-15 08:08:42 -06:00
Lots more work on the web dashboard.
This commit is contained in:
@@ -41,6 +41,7 @@ public class DiscordLoginHandler {
|
||||
//Saving session info and access info to memory until moved into the database...
|
||||
Map m = new HashMap();
|
||||
m.put("loggedIn", true);
|
||||
m.put("client", BotSettings.ID.get());
|
||||
|
||||
m.put("id", userInfo.getString("id"));
|
||||
m.put("username", userInfo.getString("username"));
|
||||
|
||||
@@ -130,6 +130,15 @@ public class GuildSettings {
|
||||
return users.toString();
|
||||
}
|
||||
|
||||
//Dumb getters so that Tymeleaf plays nice...
|
||||
public boolean isExternalCalendar() {
|
||||
return externalCalendar;
|
||||
}
|
||||
|
||||
public boolean isSimpleAnnouncements() {
|
||||
return simpleAnnouncements;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setUseExternalCalendar(boolean _useExternal) {
|
||||
externalCalendar = _useExternal;
|
||||
|
||||
@@ -17,9 +17,7 @@ public class WebGuild {
|
||||
|
||||
//Bot settings
|
||||
private GuildSettings settings;
|
||||
|
||||
private String botNick;
|
||||
private String lang;
|
||||
|
||||
//Getters
|
||||
public String getId() {
|
||||
@@ -42,10 +40,6 @@ public class WebGuild {
|
||||
return botNick;
|
||||
}
|
||||
|
||||
public String getLang() {
|
||||
return lang;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setId(String _id) {
|
||||
id = _id;
|
||||
@@ -67,10 +61,6 @@ public class WebGuild {
|
||||
botNick = _nick;
|
||||
}
|
||||
|
||||
public void setLang(String _lang) {
|
||||
lang = _lang;
|
||||
}
|
||||
|
||||
|
||||
//Functions
|
||||
public WebGuild fromGuild(IGuild g) {
|
||||
@@ -80,7 +70,6 @@ public class WebGuild {
|
||||
botNick = Main.client.getOurUser().getNicknameForGuild(g);
|
||||
|
||||
settings = DatabaseManager.getManager().getSettings(g.getLongID());
|
||||
lang = settings.getLang();
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.cloudcraftgaming.discal.bot.utils;
|
||||
package com.cloudcraftgaming.discal.api.utils;
|
||||
|
||||
import com.cloudcraftgaming.discal.Main;
|
||||
import com.cloudcraftgaming.discal.api.database.DatabaseManager;
|
||||
import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.*;
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.cloudcraftgaming.discal.api.object.calendar.CalendarCreatorResponse;
|
||||
import com.cloudcraftgaming.discal.api.object.calendar.CalendarData;
|
||||
import com.cloudcraftgaming.discal.api.object.calendar.PreCalendar;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.google.api.services.calendar.model.AclRule;
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.cloudcraftgaming.discal.api.object.event.EventCreatorResponse;
|
||||
import com.cloudcraftgaming.discal.api.object.event.PreEvent;
|
||||
import com.cloudcraftgaming.discal.api.utils.EventUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.object.announcement.Announcement;
|
||||
import com.cloudcraftgaming.discal.api.object.announcement.AnnouncementCreatorResponse;
|
||||
import com.cloudcraftgaming.discal.api.utils.AnnouncementUtils;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.object.calendar.CalendarData;
|
||||
import com.cloudcraftgaming.discal.api.object.command.CommandInfo;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.CalendarListEntry;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
@@ -9,14 +9,10 @@ import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.object.announcement.Announcement;
|
||||
import com.cloudcraftgaming.discal.api.object.announcement.AnnouncementCreatorResponse;
|
||||
import com.cloudcraftgaming.discal.api.object.command.CommandInfo;
|
||||
import com.cloudcraftgaming.discal.api.utils.AnnouncementUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.EventUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.GeneralUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.MessageUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.*;
|
||||
import com.cloudcraftgaming.discal.bot.module.announcement.AnnouncementCreator;
|
||||
import com.cloudcraftgaming.discal.bot.module.announcement.AnnouncementMessageFormatter;
|
||||
import com.cloudcraftgaming.discal.bot.utils.ChannelUtils;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.bot.utils.RoleUtils;
|
||||
import com.cloudcraftgaming.discal.bot.utils.UserUtils;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
@@ -10,9 +10,9 @@ import com.cloudcraftgaming.discal.api.object.calendar.PreCalendar;
|
||||
import com.cloudcraftgaming.discal.api.object.command.CommandInfo;
|
||||
import com.cloudcraftgaming.discal.api.utils.CalendarUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.GeneralUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.bot.internal.calendar.calendar.CalendarCreator;
|
||||
import com.cloudcraftgaming.discal.bot.internal.calendar.calendar.CalendarMessageFormatter;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.bot.utils.TimeZoneUtils;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.cloudcraftgaming.discal.Main;
|
||||
import com.cloudcraftgaming.discal.api.database.DatabaseManager;
|
||||
import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import sx.blah.discord.api.events.EventSubscriber;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ import com.cloudcraftgaming.discal.api.message.MessageManager;
|
||||
import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.object.command.CommandInfo;
|
||||
import com.cloudcraftgaming.discal.api.utils.GeneralUtils;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.bot.utils.ChannelUtils;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.bot.utils.RoleUtils;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
|
||||
@@ -14,7 +14,6 @@ import com.cloudcraftgaming.discal.api.object.event.PreEvent;
|
||||
import com.cloudcraftgaming.discal.api.utils.*;
|
||||
import com.cloudcraftgaming.discal.bot.internal.calendar.event.EventCreator;
|
||||
import com.cloudcraftgaming.discal.bot.internal.calendar.event.EventMessageFormatter;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.google.api.client.util.DateTime;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.cloudcraftgaming.discal.Main;
|
||||
import com.cloudcraftgaming.discal.api.database.DatabaseManager;
|
||||
import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.utils.ExceptionHandler;
|
||||
import com.cloudcraftgaming.discal.bot.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import com.cloudcraftgaming.discal.web.utils.ResponseUtils;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
@@ -2,12 +2,13 @@ package com.cloudcraftgaming.discal.web.handler;
|
||||
|
||||
import com.cloudcraftgaming.discal.Main;
|
||||
import com.cloudcraftgaming.discal.api.database.DatabaseManager;
|
||||
import com.cloudcraftgaming.discal.api.object.GuildSettings;
|
||||
import com.cloudcraftgaming.discal.api.object.web.WebGuild;
|
||||
import com.cloudcraftgaming.discal.api.utils.PermissionChecker;
|
||||
import org.json.JSONException;
|
||||
import spark.Request;
|
||||
import spark.Response;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -25,10 +26,13 @@ public class DashboardHandler {
|
||||
try {
|
||||
String guildId = request.queryParams("guild");
|
||||
|
||||
WebGuild wg = new WebGuild().fromGuild(Main.client.getGuildByID(Long.valueOf(guildId)));
|
||||
IGuild g = Main.client.getGuildByID(Long.valueOf(guildId));
|
||||
WebGuild wg = new WebGuild().fromGuild(g);
|
||||
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request.session().id());
|
||||
|
||||
IUser u = Main.client.getUserByID(Long.valueOf((String) m.get("id")));
|
||||
|
||||
if (m.containsKey("selected")) {
|
||||
m.remove("selected");
|
||||
}
|
||||
@@ -39,10 +43,14 @@ public class DashboardHandler {
|
||||
m.remove("settings");
|
||||
}
|
||||
|
||||
if (m.containsKey("ext")) {
|
||||
m.remove("ext");
|
||||
if (m.containsKey("admin")) {
|
||||
m.remove("admin");
|
||||
}
|
||||
|
||||
//Check if admin/manage server and/or has control role...
|
||||
m.put("admin", PermissionChecker.hasManageServerRole(g, u));
|
||||
m.put("controller", PermissionChecker.hasSufficientRole(g, u));
|
||||
|
||||
DiscordAccountHandler.getHandler().appendAccount(m, request.session().id());
|
||||
|
||||
response.redirect("/dashboard/guild", 301);
|
||||
@@ -102,12 +110,19 @@ public class DashboardHandler {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request.session().id());
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
g.setLang(request.queryParams("lang"));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
g.getSettings().setLang(request.queryParams("lang"));
|
||||
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()));
|
||||
settings.setLang(g.getLang());
|
||||
DatabaseManager.getManager().updateSettings(g.getSettings());
|
||||
} else if (request.queryParams().contains("simple-ann")) {
|
||||
//Update simple announcements...
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request.session().id());
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
g.getSettings().setSimpleAnnouncements(Boolean.valueOf(request.queryParams("simple-ann")));
|
||||
|
||||
DatabaseManager.getManager().updateSettings(g.getSettings());
|
||||
}
|
||||
|
||||
//Finally redirect back to the dashboard
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<html xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html">
|
||||
<head>
|
||||
<!--Meta stuffs-->
|
||||
<meta charset="utf-8">
|
||||
@@ -73,6 +73,7 @@
|
||||
<hr>
|
||||
<p th:if="${settings} == null">Please select the settings to edit on the left.</p>
|
||||
<div th:if="${settings} != null">
|
||||
<!--Bot Settings-->
|
||||
<div th:if="${settings} == bot">
|
||||
<h6>Bot Settings</h6>
|
||||
<form action="/account/dashboard/update" style="text-align: left">
|
||||
@@ -98,27 +99,70 @@
|
||||
<label>Bot Language
|
||||
<br>
|
||||
<select name="lang" disabled>
|
||||
<option th:value="${selected.lang}" selected
|
||||
th:text="${selected.lang}"></option>
|
||||
<option value="ENGLISH" th:unless="${selected.lang} == ENGLISH">English</option>
|
||||
<option th:value="${selected.settings.lang}" selected
|
||||
th:text="${selected.settings.lang}"></option>
|
||||
<option value="ENGLISH" th:unless="${selected.settings.lang} == ENGLISH">
|
||||
English
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<input disabled type="submit" class="submit" value="Update">
|
||||
</form>
|
||||
<br>
|
||||
</div>
|
||||
<!--Guild Settings-->
|
||||
<div th:if="${settings} == guild">
|
||||
<h6>Guild Settings</h6>
|
||||
<form style="text-align: left">
|
||||
<label> Patron Guild
|
||||
<br>
|
||||
<input type="checkbox" name="patron" disabled
|
||||
th:checked="${selected.settings.patronGuild} == true">
|
||||
</label>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
<!--Calendar Settings-->
|
||||
<div th:if="${settings} == calendar">
|
||||
<h6>Calendar Settings</h6>
|
||||
<form style="text-align: left">
|
||||
<label> Using External Calendar
|
||||
<br>
|
||||
<input type="checkbox" name="ext-cal" disabled
|
||||
th:checked="${selected.settings.externalCalendar} == true">
|
||||
</label>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
<form style="text-align: left">
|
||||
<label> Maximum Calendars Allowed
|
||||
<br>
|
||||
<input type="text" maxlength="2" th:value="${selected.settings.maxCalendars}"
|
||||
disabled>
|
||||
</label>
|
||||
</form>
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
<!--Event Settings-->
|
||||
<div th:if="${settings} == events">
|
||||
<h6>Event Settings</h6>
|
||||
</div>
|
||||
<!--Announcement Settings-->
|
||||
<div th:if="${settings} == announcements">
|
||||
<h6>Announcement Settings</h6>
|
||||
<form action="/account/dashboard/update" style="text-align: left">
|
||||
<label> Use Simple Announcements
|
||||
<br>
|
||||
<input type="checkbox" name="simple-ann"
|
||||
th:checked="${selected.settings.simpleAnnouncements} == true"
|
||||
onclick="useSimpleAnnouncements(this.checked)">
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
||||
<!--RSVP Settings-->
|
||||
<div th:if="${settings} == rsvp">
|
||||
<h6>RSVP Settings</h6>
|
||||
</div>
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
function goToGuild(guildId) {
|
||||
window.location.href = "/account/dashboard/select?guild=" + guildId;
|
||||
}
|
||||
|
||||
function useSimpleAnnouncements(useSimple) {
|
||||
window.location.href = "/account/dashboard/update?simple-ann=" + useSimple;
|
||||
}
|
||||
Reference in New Issue
Block a user