diff --git a/app/http/endpoints/api/guild.go b/app/http/endpoints/api/guild.go
new file mode 100644
index 0000000..d171a7c
--- /dev/null
+++ b/app/http/endpoints/api/guild.go
@@ -0,0 +1,29 @@
+package api
+
+import (
+ "github.com/TicketsBot/GoPanel/botcontext"
+ "github.com/TicketsBot/GoPanel/utils"
+ "github.com/gin-gonic/gin"
+)
+
+func GuildHandler(ctx *gin.Context) {
+ guildId := ctx.Keys["guildid"].(uint64)
+
+ botContext, err := botcontext.ContextForGuild(guildId)
+ if err != nil {
+ ctx.JSON(500, utils.ErrorJson(err))
+ return
+ }
+
+ guild, err := botContext.GetGuild(ctx, guildId)
+ if err != nil {
+ ctx.JSON(500, utils.ErrorJson(err))
+ return
+ }
+
+ ctx.JSON(200, gin.H{
+ "id": guild.Id,
+ "name": guild.Name,
+ "icon": guild.Icon,
+ })
+}
diff --git a/app/http/server.go b/app/http/server.go
index 35cf1ea..0e28e6e 100644
--- a/app/http/server.go
+++ b/app/http/server.go
@@ -94,6 +94,7 @@ func StartServer(sm *livechat.SocketManager) {
guildAuthApiSupport := apiGroup.Group("/:id", middleware.AuthenticateGuild(permission.Support))
guildApiNoAuth := apiGroup.Group("/:id", middleware.ParseGuildId)
{
+ guildAuthApiSupport.GET("/guild", api.GuildHandler)
guildAuthApiSupport.GET("/channels", api.ChannelsHandler)
guildAuthApiSupport.GET("/premium", api.PremiumHandler)
guildAuthApiSupport.GET("/user/:user", api.UserHandler)
diff --git a/frontend/public/global.css b/frontend/public/global.css
index ffd294f..1d09665 100644
--- a/frontend/public/global.css
+++ b/frontend/public/global.css
@@ -1,4 +1,10 @@
-@import url('https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
+
+:root {
+ --primary: #995DF3;
+ --primary-gradient: linear-gradient(71.3deg, #873ef5 0%, #995DF3 100%);
+ --blue: #3472f7;
+}
html, body {
position: relative;
@@ -7,7 +13,7 @@ html, body {
}
body, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, .btn-simple, .alert, a, .td-name, td, button.close {
- font-family: 'Noto Sans', sans-serif !important;
+ font-family: 'Poppins', sans-serif !important;
font-weight: 400 !important;
}
diff --git a/frontend/src/components/Badge.svelte b/frontend/src/components/Badge.svelte
index 7bbb485..c0170b8 100644
--- a/frontend/src/components/Badge.svelte
+++ b/frontend/src/components/Badge.svelte
@@ -3,7 +3,7 @@
+
+
\ No newline at end of file
diff --git a/frontend/src/includes/ManageSidebarLink.svelte b/frontend/src/includes/ManageSidebarLink.svelte
new file mode 100644
index 0000000..a6cccee
--- /dev/null
+++ b/frontend/src/includes/ManageSidebarLink.svelte
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/includes/Navbar.svelte b/frontend/src/includes/Navbar.svelte
index 85baff1..c94ea74 100644
--- a/frontend/src/includes/Navbar.svelte
+++ b/frontend/src/includes/Navbar.svelte
@@ -19,12 +19,7 @@
Ticket Panels
Forms
Staff Teams
-
-
- Integrations
- New!
-
-
+ Integrations
{/if}
Tickets
@@ -63,7 +58,7 @@
\ No newline at end of file
diff --git a/frontend/src/includes/SubNavigationLink.svelte b/frontend/src/includes/SubNavigationLink.svelte
new file mode 100644
index 0000000..a0f009b
--- /dev/null
+++ b/frontend/src/includes/SubNavigationLink.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/layouts/ManageLayout.svelte b/frontend/src/layouts/ManageLayout.svelte
index be4d335..cedc6d8 100644
--- a/frontend/src/layouts/ManageLayout.svelte
+++ b/frontend/src/layouts/ManageLayout.svelte
@@ -5,6 +5,7 @@
+
@@ -23,8 +24,13 @@
height: 100%;
}
+ .super-container {
+ padding: 30px;
+ }
+
.content-container {
display: flex;
+ gap: 30px;
width: 100%;
height: 100%;
}
@@ -48,6 +54,7 @@
import {setDefaultHeaders} from '../includes/Auth.svelte'
import {permissionLevelCache} from '../js/stores';
import {get} from 'svelte/store';
+ import ManageSidebar from "../includes/ManageSidebar.svelte";
export let currentRoute;
export let params = {};
diff --git a/frontend/src/views/Blacklist.svelte b/frontend/src/views/Blacklist.svelte
index 8cf9533..d0ad86d 100644
--- a/frontend/src/views/Blacklist.svelte
+++ b/frontend/src/views/Blacklist.svelte
@@ -1,141 +1,141 @@
{#if blacklistUserModal}
-
-
-
- Blacklist User
+
+
+
+ Blacklist User
-
-
-
-
-
+
+
+
+
+
- {#if blacklistById}
-
- {:else}
-
-
-
- {/if}
+ {#if blacklistById}
+
+ {:else}
+
+
+
+ {/if}
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
{:else if blacklistRoleModal}
-
-
-
- Blacklist Role
+
+
+
+ Blacklist Role
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
+
+
{/if}
{#if data}
-
-
-
- Blacklist
-
-
-
-
-
+
+
+ Blacklist
+
+
+
+
+
-
+
-
-
-
-
- Role |
- Remove |
-
-
-
- {#each data.roles as roleId}
- {@const role = roles.find(role => role.id === roleId)}
-
- {#if role === undefined}
- Unknown ({roleId}) |
- {:else}
- {role.name} |
- {/if}
+
+
+
+
+ Role |
+ Remove |
+
+
+
+ {#each data.roles as roleId}
+ {@const role = roles.find(role => role.id === roleId)}
+
+ {#if role === undefined}
+ Unknown ({roleId}) |
+ {:else}
+ {role.name} |
+ {/if}
-
-
- |
-
- {/each}
-
-
+
+
+ |
+
+ {/each}
+
+
-
-
-
- User |
- Remove |
-
-
-
- {#each data.users as user}
-
- {#if user.username !== ''}
- {user.username} ({user.id}) |
- {:else}
- Unknown ({user.id}) |
- {/if}
+
+
+
+ User |
+ Remove |
+
+
+
+ {#each data.users as user}
+
+ {#if user.username !== ''}
+ {user.username} ({user.id}) |
+ {:else}
+ Unknown ({user.id}) |
+ {/if}
-
-
- |
-
- {/each}
-
-
-
+
+
+ |
+
+ {/each}
+
+
+
-
-
- Page {page}
-
-
-
-
-
+
+
+ Page {page}
+
+
+
+
+
-
{/if}