- AppSidebar: add 'Shared with me' entry (purple icon, count badge) and Folders section with New folder CTA - DocumentCard: add group class, hover-reveal share button, ShareModal v-if, shared indicator pill - HomeView: add SearchBar + SortControls above document list; fetchFolders on mount - FolderView: new view with FolderBreadcrumb, FolderRow list, inline new-subfolder input, document list - SharedView: new view fetching /api/shares/received with owner_handle display and empty state - DocumentView: add PDF preview logic (in_app=DocumentPreviewModal, new_tab=window.open); load preferences on mount - SettingsView: add Document Preferences card with pdf_open_mode radio buttons, auto-save on change - AdminView: add Audit Log tab alongside Users/Quotas/AI Config tabs
44 lines
1.3 KiB
Vue
44 lines
1.3 KiB
Vue
<template>
|
|
<div class="p-8 max-w-5xl mx-auto">
|
|
<h2 class="text-2xl font-semibold text-gray-900 mb-6">Admin panel</h2>
|
|
|
|
<!-- Tab strip -->
|
|
<div class="flex border-b border-gray-200 mb-6">
|
|
<button
|
|
v-for="tab in tabs"
|
|
:key="tab.id"
|
|
@click="activeTab = tab.id"
|
|
class="px-4 py-2 text-sm font-semibold border-b-2 transition-colors"
|
|
:class="activeTab === tab.id
|
|
? 'text-indigo-600 border-indigo-600'
|
|
: 'text-gray-500 hover:text-gray-700 border-transparent'"
|
|
>
|
|
{{ tab.label }}
|
|
</button>
|
|
</div>
|
|
|
|
<!-- Tab content -->
|
|
<AdminUsersTab v-if="activeTab === 'users'" />
|
|
<AdminQuotasTab v-if="activeTab === 'quotas'" />
|
|
<AdminAiConfigTab v-if="activeTab === 'ai'" />
|
|
<AuditLogTab v-if="activeTab === 'audit'" />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from 'vue'
|
|
import AdminUsersTab from '../components/admin/AdminUsersTab.vue'
|
|
import AdminQuotasTab from '../components/admin/AdminQuotasTab.vue'
|
|
import AdminAiConfigTab from '../components/admin/AdminAiConfigTab.vue'
|
|
import AuditLogTab from '../components/admin/AuditLogTab.vue'
|
|
|
|
const tabs = [
|
|
{ id: 'users', label: 'Users' },
|
|
{ id: 'quotas', label: 'Quotas' },
|
|
{ id: 'ai', label: 'AI Config' },
|
|
{ id: 'audit', label: 'Audit Log' },
|
|
]
|
|
|
|
const activeTab = ref('users')
|
|
</script>
|