Compare commits
2 Commits
external-l
...
dossier-pe
| Author | SHA1 | Date | |
|---|---|---|---|
| ea52be83ef | |||
| 9c903c9ad9 |
@@ -20,8 +20,8 @@ const port = process.env.SERVER_PORT;
|
|||||||
|
|
||||||
//glitchtip setup
|
//glitchtip setup
|
||||||
const sentry = require('@sentry/node');
|
const sentry = require('@sentry/node');
|
||||||
if (process.env.DISABLE_GLITCHTIP) {
|
if (!process.env.DISABLE_GLITCHTIP) {
|
||||||
console.log("Glitchtip disabled")
|
console.log("Glitchtip disabled AAAAAA")
|
||||||
} else {
|
} else {
|
||||||
let dsn = process.env.GLITCHTIP_DSN;
|
let dsn = process.env.GLITCHTIP_DSN;
|
||||||
sentry.init({ dsn: dsn });
|
sentry.init({ dsn: dsn });
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const app = createApp(App)
|
|||||||
app.use(createPinia())
|
app.use(createPinia())
|
||||||
app.use(router)
|
app.use(router)
|
||||||
|
|
||||||
if (!import.meta.env.VITE_DISABLE_GLITCHTIP) {
|
if (!!import.meta.env.VITE_DISABLE_GLITCHTIP) {
|
||||||
let dsn = import.meta.env.VITE_GLITCHTIP_DSN;
|
let dsn = import.meta.env.VITE_GLITCHTIP_DSN;
|
||||||
let environment = import.meta.env.VITE_ENVIRONMENT;
|
let environment = import.meta.env.VITE_ENVIRONMENT;
|
||||||
|
|
||||||
|
|||||||
110
ui/src/pages/Dossier.vue
Normal file
110
ui/src/pages/Dossier.vue
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="px-10 py-6 max-w-7xl mx-auto w-full">
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex justify-between items-center mb-6">
|
||||||
|
<h1 class="text-3xl font-semibold tracking-tight">Member Deployments</h1>
|
||||||
|
<div class="text-muted-foreground">Unit / Dossier / Deployments</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Summary Cards -->
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
|
||||||
|
<div class="p-5 rounded-xl border bg-card shadow-sm">
|
||||||
|
<p class="text-muted-foreground text-sm">Total Deployments</p>
|
||||||
|
<p class="text-3xl font-bold mt-2">123</p>
|
||||||
|
</div>
|
||||||
|
<div class="p-5 rounded-xl border bg-card shadow-sm">
|
||||||
|
<p class="text-muted-foreground text-sm">Total Hours</p>
|
||||||
|
<p class="text-3xl font-bold mt-2">456h</p>
|
||||||
|
</div>
|
||||||
|
<div class="p-5 rounded-xl border bg-card shadow-sm">
|
||||||
|
<p class="text-muted-foreground text-sm">Avg. Attendance</p>
|
||||||
|
<p class="text-3xl font-bold mt-2">87%</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Filters & Search -->
|
||||||
|
<div class="flex justify-between items-end mb-4 flex-wrap gap-4">
|
||||||
|
<div class="flex gap-4 flex-wrap">
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm text-muted-foreground mb-1">Operation Type</label>
|
||||||
|
<select class="border rounded-md px-3 py-2 w-48 bg-background">
|
||||||
|
<option>All</option>
|
||||||
|
<option>Deployment</option>
|
||||||
|
<option>Training</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm text-muted-foreground mb-1">Sort By</label>
|
||||||
|
<select class="border rounded-md px-3 py-2 w-48 bg-background">
|
||||||
|
<option>Date (Newest)</option>
|
||||||
|
<option>Date (Oldest)</option>
|
||||||
|
<option>Longest Duration</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm text-muted-foreground mb-1">Search</label>
|
||||||
|
<input type="text" placeholder="Search deployments..." class="border rounded-md px-3 py-2 w-56 bg-background" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Deployment List -->
|
||||||
|
<div class="rounded-xl border divide-y bg-card shadow-sm">
|
||||||
|
<!-- Row -->
|
||||||
|
<div class="p-5 hover:bg-accent cursor-pointer flex justify-between items-center">
|
||||||
|
<div>
|
||||||
|
<p class="font-semibold text-lg">Operation Dawn Strike</p>
|
||||||
|
<div class="text-sm text-muted-foreground flex gap-6 mt-1">
|
||||||
|
<span>Date: 2024-08-14</span>
|
||||||
|
<span>Duration: 3.4h</span>
|
||||||
|
<span>Role: Rifleman</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="font-medium">Status: <span class="text-green-500 font-semibold">Completed</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-5 hover:bg-accent cursor-pointer flex justify-between items-center">
|
||||||
|
<div>
|
||||||
|
<p class="font-semibold text-lg">Operation Iron Resolve</p>
|
||||||
|
<div class="text-sm text-muted-foreground flex gap-6 mt-1">
|
||||||
|
<span>Date: 2024-08-02</span>
|
||||||
|
<span>Duration: 2.1h</span>
|
||||||
|
<span>Role: Machine Gunner</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="font-medium">Status: <span class="text-yellow-500 font-semibold">Partial</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="p-5 hover:bg-accent cursor-pointer flex justify-between items-center">
|
||||||
|
<div>
|
||||||
|
<p class="font-semibold text-lg">Operation Midnight Gale</p>
|
||||||
|
<div class="text-sm text-muted-foreground flex gap-6 mt-1">
|
||||||
|
<span>Date: 2024-07-22</span>
|
||||||
|
<span>Duration: 4.8h</span>
|
||||||
|
<span>Role: Squad Leader</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<p class="font-medium">Status: <span class="text-red-500 font-semibold">No‑Show</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -171,9 +171,9 @@ const finalPanel = ref<'app' | 'message'>('message');
|
|||||||
<li>When prompted, choose <em>“Yes”</em> to download all associated mods.</li>
|
<li>When prompted, choose <em>“Yes”</em> to download all associated mods.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
<a href="https://docs.iceberg-gaming.com/books/member-guides/page/new-member-setup-onboarding"
|
<a href="https://www.guilded.gg/Iceberg-gaming/groups/v3j2vAP3/channels/6979335e-60f7-4ab9-9590-66df69367d1e/docs/2013948655"
|
||||||
class="text-primary underline" target="_blank">
|
class="text-primary underline" target="_blank">
|
||||||
Click here for the full installation guide (Requires Sign-in)
|
Click here for the full installation guide
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<!-- CONTACT SECTION -->
|
<!-- CONTACT SECTION -->
|
||||||
@@ -211,7 +211,7 @@ const finalPanel = ref<'app' | 'message'>('message');
|
|||||||
our forums and introduce yourself.
|
our forums and introduce yourself.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you have any questions, feel free to reach out on TeamSpeak or Discord
|
If you have any questions, feel free to reach out on TeamSpeak, Discord, or Guilded,
|
||||||
someone
|
someone
|
||||||
will always be around to help.
|
will always be around to help.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ const router = createRouter({
|
|||||||
{ path: '/trainingReport/new', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } },
|
{ path: '/trainingReport/new', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } },
|
||||||
{ path: '/trainingReport/:id', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } },
|
{ path: '/trainingReport/:id', component: () => import('@/pages/TrainingReport.vue'), meta: { requiresAuth: true, memberOnly: true } },
|
||||||
|
|
||||||
|
// Personnel File
|
||||||
|
{ path: '/dossier', component: () => import('@/pages/Dossier.vue'), meta: { requiresAuth: false, memberOnly: false } },
|
||||||
|
|
||||||
// ADMIN / STAFF ROUTES
|
// ADMIN / STAFF ROUTES
|
||||||
{
|
{
|
||||||
path: '/administration',
|
path: '/administration',
|
||||||
|
|||||||
Reference in New Issue
Block a user