2026.03.30 front és garázs logika
This commit is contained in:
@@ -2613,9 +2613,9 @@ function publicAssetsURL(...path) {
|
||||
const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
|
||||
const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
|
||||
// @ts-expect-error file will be produced after app build
|
||||
const getServerEntry = () => import('file:///app/.nuxt//dist/server/server.mjs').then((r) => r.default || r);
|
||||
const getServerEntry = () => import('file:///app/.nuxt/dist/server/server.mjs').then((r) => r.default || r);
|
||||
// @ts-expect-error file will be produced after app build
|
||||
const getClientManifest = () => import('file:///app/.nuxt//dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
|
||||
const getClientManifest = () => import('file:///app/.nuxt/dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
|
||||
// -- SSR Renderer --
|
||||
const getSSRRenderer = lazyCachedFunction(async () => {
|
||||
// Load server bundle
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"id":"dev","timestamp":1774557833950}
|
||||
{"id":"dev","timestamp":1774810059036}
|
||||
@@ -1 +1 @@
|
||||
{"id":"dev","timestamp":1774557833950,"prerendered":[]}
|
||||
{"id":"dev","timestamp":1774810059036,"prerendered":[]}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"date": "2026-03-26T20:43:59.681Z",
|
||||
"date": "2026-03-29T18:47:42.746Z",
|
||||
"preset": "nitro-dev",
|
||||
"framework": {
|
||||
"name": "nuxt",
|
||||
@@ -11,7 +11,7 @@
|
||||
"dev": {
|
||||
"pid": 19,
|
||||
"workerAddress": {
|
||||
"socketPath": "\u0000nitro-worker-19-1-1-9144.sock"
|
||||
"socketPath": "\u0000nitro-worker-19-4-4-8465.sock"
|
||||
}
|
||||
}
|
||||
}
|
||||
6
frontend/admin/.nuxt/nuxt.d.ts
vendored
6
frontend/admin/.nuxt/nuxt.d.ts
vendored
@@ -1,8 +1,8 @@
|
||||
/// <reference types="vuetify-nuxt-module" />
|
||||
/// <reference types="@nuxtjs/i18n" />
|
||||
/// <reference types="@pinia/nuxt" />
|
||||
/// <reference types="@nuxt/telemetry" />
|
||||
/// <reference types="@nuxtjs/tailwindcss" />
|
||||
/// <reference types="@nuxtjs/i18n" />
|
||||
/// <reference types="vuetify-nuxt-module" />
|
||||
/// <reference types="@nuxt/telemetry" />
|
||||
/// <reference path="types/nitro-layouts.d.ts" />
|
||||
/// <reference path="types/builder-env.d.ts" />
|
||||
/// <reference types="nuxt" />
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"_hash": "86WsHSzrghegd85QlSfb0tmyVB8WGKoWBHcdl2r1_DE",
|
||||
"project": {
|
||||
"rootDir": "/app"
|
||||
},
|
||||
"versions": {
|
||||
"nuxt": "3.21.2"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 3/27/2026, 9:42:29 AM
|
||||
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 3/29/2026, 6:47:41 PM
|
||||
import "@nuxtjs/tailwindcss/config-ctx"
|
||||
import configMerger from "@nuxtjs/tailwindcss/merger";
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
"./imports"
|
||||
],
|
||||
"#app-manifest": [
|
||||
"./manifest/meta/dev"
|
||||
"./manifest/meta/dev.json"
|
||||
],
|
||||
"#components": [
|
||||
"./components"
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "=== Testing Epic 10 Admin Frontend Structure ==="
|
||||
echo "Date: $(date)"
|
||||
echo ""
|
||||
|
||||
# Check essential files
|
||||
echo "1. Checking essential files..."
|
||||
essential_files=(
|
||||
"package.json"
|
||||
"nuxt.config.ts"
|
||||
"tsconfig.json"
|
||||
"Dockerfile"
|
||||
"app.vue"
|
||||
"pages/dashboard.vue"
|
||||
"pages/login.vue"
|
||||
"components/TileCard.vue"
|
||||
"stores/auth.ts"
|
||||
"stores/tiles.ts"
|
||||
"composables/useRBAC.ts"
|
||||
"middleware/auth.global.ts"
|
||||
"development_log.md"
|
||||
)
|
||||
|
||||
missing_files=0
|
||||
for file in "${essential_files[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
echo " ✓ $file"
|
||||
else
|
||||
echo " ✗ $file (MISSING)"
|
||||
((missing_files++))
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "2. Checking directory structure..."
|
||||
directories=(
|
||||
"components"
|
||||
"composables"
|
||||
"middleware"
|
||||
"pages"
|
||||
"stores"
|
||||
)
|
||||
|
||||
for dir in "${directories[@]}"; do
|
||||
if [ -d "$dir" ]; then
|
||||
echo " ✓ $dir/"
|
||||
else
|
||||
echo " ✗ $dir/ (MISSING)"
|
||||
((missing_files++))
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "3. Checking package.json dependencies..."
|
||||
if [ -f "package.json" ]; then
|
||||
echo " ✓ package.json exists"
|
||||
# Check for key dependencies
|
||||
if grep -q '"nuxt"' package.json; then
|
||||
echo " ✓ nuxt dependency found"
|
||||
else
|
||||
echo " ✗ nuxt dependency missing"
|
||||
((missing_files++))
|
||||
fi
|
||||
|
||||
if grep -q '"vuetify"' package.json; then
|
||||
echo " ✓ vuetify dependency found"
|
||||
else
|
||||
echo " ✗ vuetify dependency missing"
|
||||
((missing_files++))
|
||||
fi
|
||||
|
||||
if grep -q '"pinia"' package.json; then
|
||||
echo " ✓ pinia dependency found"
|
||||
else
|
||||
echo " ✗ pinia dependency missing"
|
||||
((missing_files++))
|
||||
fi
|
||||
else
|
||||
echo " ✗ package.json missing"
|
||||
((missing_files++))
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "4. Checking Docker configuration..."
|
||||
if [ -f "Dockerfile" ]; then
|
||||
echo " ✓ Dockerfile exists"
|
||||
if grep -q "node:20" Dockerfile; then
|
||||
echo " ✓ Node 20 base image"
|
||||
else
|
||||
echo " ✗ Node version not specified or incorrect"
|
||||
fi
|
||||
|
||||
if grep -q "EXPOSE 3000" Dockerfile; then
|
||||
echo " ✓ Port 3000 exposed"
|
||||
else
|
||||
echo " ✗ Port not exposed"
|
||||
fi
|
||||
else
|
||||
echo " ✗ Dockerfile missing"
|
||||
((missing_files++))
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Summary ==="
|
||||
if [ $missing_files -eq 0 ]; then
|
||||
echo "✅ All essential files and directories are present."
|
||||
echo "✅ Project structure is valid for Epic 10 Admin Frontend."
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Run 'npm install' to install dependencies"
|
||||
echo "2. Run 'npm run dev' to start development server"
|
||||
echo "3. Build Docker image: 'docker build -t sf-admin-frontend .'"
|
||||
echo "4. Test with docker-compose: 'docker compose up sf_admin_frontend'"
|
||||
else
|
||||
echo "⚠️ Found $missing_files missing essential items."
|
||||
echo "Please check the missing files above."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== RBAC Implementation Check ==="
|
||||
echo "The following RBAC features are implemented:"
|
||||
echo "✓ JWT token parsing with role/rank/scope extraction"
|
||||
echo "✓ Pinia auth store with permission checking"
|
||||
echo "✓ Global authentication middleware"
|
||||
echo "✓ Role-based tile filtering (7 tiles defined)"
|
||||
echo "✓ Geographical scope validation"
|
||||
echo "✓ User preference persistence"
|
||||
echo "✓ Demo login with 4 role types"
|
||||
|
||||
echo ""
|
||||
echo "=== Phase 1 & 2 Completion Status ==="
|
||||
echo "✅ Project initialization complete"
|
||||
echo "✅ Docker configuration complete"
|
||||
echo "✅ Authentication system complete"
|
||||
echo "✅ RBAC integration complete"
|
||||
echo "✅ Launchpad UI complete"
|
||||
echo "✅ Dynamic tile system complete"
|
||||
echo "✅ Development documentation complete"
|
||||
echo ""
|
||||
echo "Ready for integration testing and Phase 3 development."
|
||||
Reference in New Issue
Block a user