Teren-app/resources/js/Pages/Admin/Index.vue
2025-10-26 12:57:09 +01:00

156 lines
4.5 KiB
Vue

<script setup>
import AdminLayout from "@/Layouts/AdminLayout.vue";
import { Link } from "@inertiajs/vue3";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import {
faUserGroup,
faKey,
faGears,
faFileWord,
faEnvelopeOpenText,
faInbox,
faAt,
faAddressBook,
faFileLines,
} from "@fortawesome/free-solid-svg-icons";
const cards = [
{
category: "Uporabniki & Dovoljenja",
items: [
{
title: "Uporabniki",
description: "Upravljanje uporabnikov in njihovih vlog",
route: "admin.users.index",
icon: faUserGroup,
},
{
title: "Novo dovoljenje",
description: "Dodaj in konfiguriraj novo dovoljenje",
route: "admin.permissions.create",
icon: faKey,
},
],
},
{
category: "Dokumenti",
items: [
{
title: "Nastavitve dokumentov",
description: "Privzete sistemske nastavitve za dokumente",
route: "admin.document-settings.index",
icon: faGears,
},
{
title: "Predloge dokumentov",
description: "Upravljanje in verzioniranje DOCX predlog",
route: "admin.document-templates.index",
icon: faFileWord,
},
],
},
{
category: "Email",
items: [
{
title: "Email predloge",
description: "Upravljanje HTML / tekst email predlog",
route: "admin.email-templates.index",
icon: faEnvelopeOpenText,
},
{
title: "Email dnevniki",
description: "Pregled poslanih emailov in statusov",
route: "admin.email-logs.index",
icon: faInbox,
},
{
title: "Mail profili",
description: "SMTP profili, nastavitve in testiranje povezave",
route: "admin.mail-profiles.index",
icon: faAt,
},
],
},
{
category: "Komunikacije",
items: [
{
title: "SMS profili",
description: "Nastavitve SMS profilov, testno pošiljanje in stanje kreditov",
route: "admin.sms-profiles.index",
icon: faGears,
},
{
title: "SMS pošiljatelji",
description: "Upravljanje nazivov pošiljateljev (Sender ID) za SMS profile",
route: "admin.sms-senders.index",
icon: faAddressBook,
},
{
title: "SMS predloge",
description: "Tekstovne predloge za SMS obvestila in opomnike",
route: "admin.sms-templates.index",
icon: faFileLines,
},
{
title: "SMS dnevniki",
description: "Pregled poslanih SMSov in statusov",
route: "admin.sms-logs.index",
icon: faInbox,
},
{
title: "SMS paketi",
description: "Kreiranje in pošiljanje serijskih SMS paketov",
route: "admin.packages.index",
icon: faInbox,
},
],
},
];
</script>
<template>
<AdminLayout title="Administrator">
<div class="space-y-14">
<section
v-for="(group, i) in cards"
:key="group.category"
:class="[i > 0 ? 'pt-6 border-t border-gray-200/70' : '']"
>
<h2 class="text-xs font-semibold tracking-wider uppercase text-gray-500 mb-4">
{{ group.category }}
</h2>
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
<Link
v-for="item in group.items"
:key="item.title"
:href="route(item.route)"
class="group relative overflow-hidden p-5 rounded-lg border bg-white hover:border-indigo-300 hover:shadow transition focus:outline-none focus:ring-2 focus:ring-indigo-500"
>
<div class="flex items-start gap-4">
<span
class="inline-flex items-center justify-center w-10 h-10 rounded-md bg-indigo-50 text-indigo-600 group-hover:bg-indigo-100"
>
<FontAwesomeIcon :icon="item.icon" class="w-5 h-5" />
</span>
<div class="flex-1 min-w-0">
<h3 class="font-semibold text-sm mb-1 flex items-center gap-2">
{{ item.title }}
<span
class="opacity-0 group-hover:opacity-100 transition text-indigo-500 text-[10px] font-medium"
>→</span
>
</h3>
<p class="text-xs text-gray-500 leading-relaxed line-clamp-3">
{{ item.description }}
</p>
</div>
</div>
</Link>
</div>
</section>
</div>
</AdminLayout>
</template>