diff --git a/api/src/services/rolesService.ts b/api/src/services/rolesService.ts index 11fc3ff..b847ddc 100644 --- a/api/src/services/rolesService.ts +++ b/api/src/services/rolesService.ts @@ -1,4 +1,5 @@ import pool from '../db'; +import { Role } from '@app/shared/types/roles' export async function assignUserGroup(userID: number, roleID: number) { @@ -16,7 +17,7 @@ export async function createGroup(name: string, color: string, description: stri return { id: result.insertId, name, color, description }; } -export async function getUserRoles(userID: number) { +export async function getUserRoles(userID: number): Promise { const sql = `SELECT r.id, r.name FROM members_roles mr INNER JOIN roles r ON mr.role_id = r.id diff --git a/shared/types/roles.ts b/shared/types/roles.ts new file mode 100644 index 0000000..a232c52 --- /dev/null +++ b/shared/types/roles.ts @@ -0,0 +1,6 @@ +export interface Role { + id: number; + name: string; + color?: string; + description?: string; +} \ No newline at end of file diff --git a/ui/package-lock.json b/ui/package-lock.json index 892d05e..25a2e81 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -22,7 +22,7 @@ "clsx": "^2.1.1", "lucide-vue-next": "^0.539.0", "pinia": "^3.0.3", - "reka-ui": "^2.6.0", + "reka-ui": "^2.6.1", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.11", "tw-animate-css": "^1.3.6", @@ -3333,9 +3333,9 @@ } }, "node_modules/reka-ui": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.6.0.tgz", - "integrity": "sha512-NrGMKrABD97l890mFS3TNUzB0BLUfbL3hh0NjcJRIUSUljb288bx3Mzo31nOyUcdiiW0HqFGXJwyCBh9cWgb0w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.6.1.tgz", + "integrity": "sha512-XK7cJDQoNuGXfCNzBBo/81Yg/OgjPwvbabnlzXG2VsdSgNsT6iIkuPBPr+C0Shs+3bb0x0lbPvgQAhMSCKm5Ww==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.6.13", diff --git a/ui/package.json b/ui/package.json index 03d590f..9110023 100644 --- a/ui/package.json +++ b/ui/package.json @@ -26,7 +26,7 @@ "clsx": "^2.1.1", "lucide-vue-next": "^0.539.0", "pinia": "^3.0.3", - "reka-ui": "^2.6.0", + "reka-ui": "^2.6.1", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.11", "tw-animate-css": "^1.3.6", diff --git a/ui/public/17RBN_Logo.png b/ui/public/17RBN_Logo.png new file mode 100644 index 0000000..dd2b920 Binary files /dev/null and b/ui/public/17RBN_Logo.png differ diff --git a/ui/src/App.vue b/ui/src/App.vue index 26b6dd5..87bd1f1 100644 --- a/ui/src/App.vue +++ b/ui/src/App.vue @@ -1,41 +1,13 @@ diff --git a/ui/src/assets/base.css b/ui/src/assets/base.css index 3f67ca8..0814dcd 100644 --- a/ui/src/assets/base.css +++ b/ui/src/assets/base.css @@ -16,8 +16,8 @@ --secondary-foreground: oklch(0.9219 0 0); --muted: oklch(0.2686 0 0); --muted-foreground: oklch(0.7155 0 0); - --accent: oklch(0.4732 0.1247 46.2007); - --accent-foreground: oklch(0.9243 0.1151 95.7459); + --accent: oklch(100% 0.00011 271.152 / 0.253); + --accent-foreground: oklch(100% 0.00011 271.152); --destructive: oklch(0.6368 0.2078 25.3313); --destructive-foreground: oklch(1.0000 0 0); --success: oklch(66.104% 0.16937 144.153); @@ -52,7 +52,7 @@ --shadow-2xl: 0px 4px 8px -1px hsl(0 0% 0% / 0.35); } -.dark { +/* .dark { --background: oklch(0.2046 0 0); --foreground: oklch(0.9219 0 0); --card: oklch(23.075% 0.00003 271.152); @@ -99,7 +99,7 @@ --shadow-lg: 0px 4px 8px -1px hsl(0 0% 0% / 0.14), 0px 4px 6px -2px hsl(0 0% 0% / 0.14); --shadow-xl: 0px 4px 8px -1px hsl(0 0% 0% / 0.14), 0px 8px 10px -2px hsl(0 0% 0% / 0.14); --shadow-2xl: 0px 4px 8px -1px hsl(0 0% 0% / 0.35); -} +} */ @theme inline { diff --git a/ui/src/components/Navigation/Navbar.vue b/ui/src/components/Navigation/Navbar.vue new file mode 100644 index 0000000..58335d4 --- /dev/null +++ b/ui/src/components/Navigation/Navbar.vue @@ -0,0 +1,180 @@ + + + \ No newline at end of file diff --git a/ui/src/components/loa/loaForm.vue b/ui/src/components/loa/loaForm.vue index 8e0067e..e970f0e 100644 --- a/ui/src/components/loa/loaForm.vue +++ b/ui/src/components/loa/loaForm.vue @@ -101,7 +101,7 @@ function toMariaDBDatetime(date: Date): string {