refactor: uniform validation, fix create form UX, dedupe filter dropdowns
- Remove dead registerValidator (Auth/register.ts), unused since signupValidator is the one actually wired to NewAccountController - computers/create.vue: switch to useForm() + @submit.prevent so the form submits on Enter and shows a processing state, matching components/create.vue - components/edit.vue: drop the 'origin' field, which was never provided by the backend (edit() never shared it) and therefore always undefined - Extract FilterDropdown.vue and reuse it in ComponentsViewer/ComputersViewer, removing ~80 lines of duplicated dropdown markup/logic and fixing duplicate HTML ids (id="used" appeared twice in ComputersViewer) - Move MIGRATION_*.md artifacts into docs/migration-history/
This commit is contained in:
1 parent
3cc189c534
commit
3579c9dfec
10 files changed
+163
-262
No files matched your search
@@ -0,0 +1,156 @@
|
||||
# ✅ Checklist de Migration - Pages Inertia
|
||||
|
||||
## 📦 Fichiers Migrés
|
||||
|
||||
### Pages d'Authentification
|
||||
- [x] `pages/auth/login.vue` - Page de connexion
|
||||
- [x] `pages/auth/signup.vue` - Page d'inscription
|
||||
- [x] `pages/account/signup.vue` - Création de compte
|
||||
|
||||
### Pages de Gestion des Composants
|
||||
- [x] `pages/components/index.vue` - Liste
|
||||
- [x] `pages/components/create.vue` - Création
|
||||
- [x] `pages/components/edit.vue` - Édition
|
||||
- [x] `pages/components/show.vue` - Détails
|
||||
|
||||
### Pages de Gestion des Ordinateurs
|
||||
- [x] `pages/computers/index.vue` - Liste
|
||||
- [x] `pages/computers/create.vue` - Création
|
||||
- [x] `pages/computers/edit.vue` - Édition
|
||||
- [x] `pages/computers/show.vue` - Détails
|
||||
|
||||
### Pages d'Erreur
|
||||
- [x] `pages/errors/not_found.vue` - 404
|
||||
- [x] `pages/errors/server_error.vue` - 500
|
||||
|
||||
### Layouts
|
||||
- [x] `pages/layout/defaultLayout.vue` - Layout principal
|
||||
- [x] `pages/layout/emptyLayout.vue` - Layout vide
|
||||
- [x] `pages/layout/sidebar.vue` - Navigation
|
||||
- [x] `pages/layout/header.vue` - En-tête
|
||||
|
||||
### Composants Réutilisables
|
||||
- [x] `pages/widgets/AuthErrorAlert.vue`
|
||||
- [x] `pages/widgets/ComponentEditor.vue`
|
||||
- [x] `pages/widgets/ComponentsViewer.vue`
|
||||
- [x] `pages/widgets/ComputerCard.vue`
|
||||
- [x] `pages/widgets/ComputerComponentsTable.vue`
|
||||
- [x] `pages/widgets/ComputersViewer.vue`
|
||||
- [x] `pages/widgets/DeleteConfirmationModal.vue`
|
||||
- [x] `pages/widgets/SimpleGallery.vue`
|
||||
- [x] `pages/widgets/TableComponent.vue`
|
||||
- [x] `pages/widgets/ValidationError.vue`
|
||||
|
||||
### Assets & Resources
|
||||
- [x] `assets/icons/` - 18 fichiers SVG
|
||||
- [x] `assets/images/` - Placeholders
|
||||
- [x] `composables/isAdminMode.ts` - Gestion admin
|
||||
- [x] `composables/useSidebar.ts` - Gestion sidebar
|
||||
- [x] `directives/v_validation_error.ts` - Validation
|
||||
- [x] `directives/v-delete-confirm.ts` - Confirmation
|
||||
- [x] `directives/v-price.ts` - Formatage prix
|
||||
- [x] `pages/types/UITypes.ts` - Types TypeScript
|
||||
- [x] `app.ts` - Configuration Inertia (mise à jour)
|
||||
|
||||
## 📋 Étapes de Validation
|
||||
|
||||
### 1. Vérification des Imports
|
||||
- [ ] Vérifier que tous les chemins d'import utilisent l'alias `~/`
|
||||
- [ ] Vérifier que les imports de composants existent
|
||||
- [ ] Vérifier que les imports d'icônes fonctionnent
|
||||
|
||||
### 2. Configuration du Routage
|
||||
- [ ] Vérifier que les routes AdonisJS retournent les bonnes pages Inertia
|
||||
- [ ] Tester la navigation entre les pages
|
||||
- [ ] Vérifier les redirections de layout (auth vs. default)
|
||||
|
||||
### 3. Styles et CSS
|
||||
- [ ] Vérifier que Tailwind CSS est chargé
|
||||
- [ ] Tester le design responsive
|
||||
- [ ] Vérifier l'apparence du sidebار et de l'en-tête
|
||||
|
||||
### 4. Composants & Directives
|
||||
- [ ] Vérifier que VueDatePicker fonctionne
|
||||
- [ ] Tester la directive v-validation-error
|
||||
- [ ] Tester la directive v-price
|
||||
- [ ] Tester la directive v-delete-confirm
|
||||
- [ ] Vérifier les composants Carousel
|
||||
|
||||
### 5. Fonctionnalités
|
||||
- [ ] Tester le toggle admin/classic mode
|
||||
- [ ] Tester la barre latérale responsive
|
||||
- [ ] Vérifier l'affichage du profil utilisateur
|
||||
- [ ] Tester la déconnexion
|
||||
|
||||
### 6. Pages Critiques
|
||||
- [ ] Page de connexion - formulaire et validation
|
||||
- [ ] Page de création de composant - formulaire complet
|
||||
- [ ] Page de liste des ordinateurs - grille responsive
|
||||
- [ ] Page de détails - affichage corrects des données
|
||||
- [ ] Pages d'erreur - design cohérent
|
||||
|
||||
## 🔧 Configuration Requise
|
||||
|
||||
### Dependencies Vérifiées
|
||||
```json
|
||||
{
|
||||
"@adonisjs/inertia": "^1.0",
|
||||
"@inertiajs/vue3": "^1.0",
|
||||
"@adonisjs/core": "^6.0",
|
||||
"vue": "^3.0",
|
||||
"tailwindcss": "^3.0",
|
||||
"@vuepic/vue-datepicker": "latest",
|
||||
"vue3-carousel": "latest",
|
||||
"vue-sonner": "latest"
|
||||
}
|
||||
```
|
||||
|
||||
## 🚨 Points d'Attention
|
||||
|
||||
1. **Base Données**: Assurez-vous que les modèles AdonisJS correspondent aux types TypeScript
|
||||
2. **Authentification**: Vérifier que les guards et middlewares d'auth sont correctement configurés
|
||||
3. **CSRF**: Vérifier que les tokens CSRF sont transmis correctement
|
||||
4. **Permissions**: Vérifier que le mode admin accès les bonnes données
|
||||
5. **Fichiers**: Adapter les chemins de fichiers uploadés si nécessaire
|
||||
|
||||
## 📝 Notes de Développement
|
||||
|
||||
### Modèles AdonisJS (À adapter)
|
||||
Les pages supposent les modèles suivants dans `app/models/`:
|
||||
- `Component` - Modèle de composant
|
||||
- `Computer` - Modèle d'ordinateur
|
||||
- `ComponentType` - Type de composant
|
||||
- `ComputerState` - État d'ordinateur
|
||||
- `User` - Utilisateur authentifié
|
||||
|
||||
### Types TypeScript
|
||||
Les types sont définis dans `inertia/pages/types/UITypes.ts` - adapter selon vos modèles réels
|
||||
|
||||
### Chemins d'Import
|
||||
L'alias `~/` est configuré pour pointer vers `inertia/`:
|
||||
- `~/pages/` → `inertia/pages/`
|
||||
- `~/composables/` → `inertia/composables/`
|
||||
- `~/directives/` → `inertia/directives/`
|
||||
- `~/assets/` → `inertia/assets/`
|
||||
|
||||
## 🎯 Résumé de la Migration
|
||||
|
||||
✅ **Tous les fichiers Inertia ont été migrés de pc-builder vers pc-builderV2**
|
||||
|
||||
### Fichiers Créés: 45+
|
||||
- 11 Pages Inertia
|
||||
- 4 Layouts
|
||||
- 10 Composants widgets
|
||||
- 18 Icônes SVG
|
||||
- 2 Composables
|
||||
- 3 Directives
|
||||
- 1 Fichier de types
|
||||
|
||||
### Fichiers Modifiés: 1
|
||||
- `inertia/app.ts` - Configuration complète pour AdonisJS V7
|
||||
|
||||
---
|
||||
|
||||
**Date:** Juin 2026
|
||||
**Status:** ✅ Terminé
|
||||
**Prochaine Étape:** Adapter les controllers et routes AdonisJS
|
||||
@@ -0,0 +1,218 @@
|
||||
# 🎉 Migration Complète - Pages Inertia PC Builder → PC Builder V2
|
||||
|
||||
## 📊 Statistiques
|
||||
|
||||
- **Fichiers Migrés:** 45+
|
||||
- **Pages Inertia:** 15
|
||||
- **Composants Widget:** 10
|
||||
- **Layouts:** 4
|
||||
- **Composables:** 2
|
||||
- **Directives:** 3
|
||||
- **Icônes SVG:** 18
|
||||
- **Fichiers Assets:** 2 (images)
|
||||
- **Fichiers de Configuration:** 1 (`app.ts`)
|
||||
|
||||
## ✅ Résultats
|
||||
|
||||
### Pages Inertia Créées (15)
|
||||
```
|
||||
✅ inertia/pages/auth/login.vue
|
||||
✅ inertia/pages/auth/signup.vue
|
||||
✅ inertia/pages/account/signup.vue
|
||||
✅ inertia/pages/components/index.vue
|
||||
✅ inertia/pages/components/create.vue
|
||||
✅ inertia/pages/components/edit.vue
|
||||
✅ inertia/pages/components/show.vue
|
||||
✅ inertia/pages/computers/index.vue
|
||||
✅ inertia/pages/computers/create.vue
|
||||
✅ inertia/pages/computers/edit.vue
|
||||
✅ inertia/pages/computers/show.vue
|
||||
✅ inertia/pages/errors/not_found.vue (mise à jour)
|
||||
✅ inertia/pages/errors/server_error.vue (mise à jour)
|
||||
✅ inertia/pages/layout/defaultLayout.vue
|
||||
✅ inertia/pages/layout/emptyLayout.vue
|
||||
```
|
||||
|
||||
### Layouts & Navigation (4)
|
||||
```
|
||||
✅ inertia/pages/layout/defaultLayout.vue
|
||||
✅ inertia/pages/layout/emptyLayout.vue
|
||||
✅ inertia/pages/layout/sidebar.vue
|
||||
✅ inertia/pages/layout/header.vue
|
||||
```
|
||||
|
||||
### Composants Réutilisables (10)
|
||||
```
|
||||
✅ inertia/pages/widgets/AuthErrorAlert.vue
|
||||
✅ inertia/pages/widgets/ComponentEditor.vue
|
||||
✅ inertia/pages/widgets/ComponentsViewer.vue
|
||||
✅ inertia/pages/widgets/ComputerCard.vue
|
||||
✅ inertia/pages/widgets/ComputerComponentsTable.vue
|
||||
✅ inertia/pages/widgets/ComputersViewer.vue
|
||||
✅ inertia/pages/widgets/DeleteConfirmationModal.vue
|
||||
✅ inertia/pages/widgets/SimpleGallery.vue
|
||||
✅ inertia/pages/widgets/TableComponent.vue
|
||||
✅ inertia/pages/widgets/ValidationError.vue
|
||||
```
|
||||
|
||||
### Composables (2)
|
||||
```
|
||||
✅ inertia/composables/isAdminMode.ts
|
||||
✅ inertia/composables/useSidebar.ts
|
||||
```
|
||||
|
||||
### Directives Personnalisées (3)
|
||||
```
|
||||
✅ inertia/directives/v_validation_error.ts
|
||||
✅ inertia/directives/v-delete-confirm.ts
|
||||
✅ inertia/directives/v-price.ts
|
||||
```
|
||||
|
||||
### Assets Copiés
|
||||
```
|
||||
✅ inertia/assets/icons/ (18 fichiers SVG)
|
||||
✅ inertia/assets/images/ (2 fichiers)
|
||||
✅ inertia/pages/types/UITypes.ts (types TypeScript)
|
||||
```
|
||||
|
||||
### Configuration Mise à Jour
|
||||
```
|
||||
✅ inertia/app.ts (configuration complète pour AdonisJS V7)
|
||||
```
|
||||
|
||||
## 🎯 Fonctionnalités Incluées
|
||||
|
||||
### Layout Dynamique
|
||||
- ✅ DefaultLayout pour les pages authentifiées
|
||||
- ✅ EmptyLayout pour pages d'authentification
|
||||
- ✅ Sélection automatique basée sur la route
|
||||
|
||||
### Composants Globaux
|
||||
- ✅ VueDatePicker pour sélection de dates
|
||||
- ✅ Carousel/Slide pour galeries
|
||||
- ✅ Directives d'erreur de validation
|
||||
- ✅ Directive de confirmation avant suppression
|
||||
- ✅ Directive de formatage des prix
|
||||
|
||||
### Mode Admin
|
||||
- ✅ Toggle Admin/Classic mode
|
||||
- ✅ Affichage conditionnel des données sensibles
|
||||
- ✅ Persistance du mode via composable
|
||||
|
||||
### Navigation Responsive
|
||||
- ✅ Sidebar pliable sur mobile
|
||||
- ✅ Menu hamburger
|
||||
- ✅ Menu déroulant profil utilisateur
|
||||
|
||||
## 🔄 Conversion AdonisJS V6 → V7
|
||||
|
||||
### Changements Appliqués
|
||||
1. **Directives**: Import avec `// @ts-ignore` pour compatibilité
|
||||
2. **Composables**: Exportation simplifiée avec ref()
|
||||
3. **Types**: Utilisation de types génériques pour Page Props
|
||||
4. **Imports**: Chemins relatifs remplacés par alias `~/`
|
||||
|
||||
### Améliorations V7
|
||||
- ✅ Support natif de Tailwind CSS
|
||||
- ✅ Routing simplifié avec middleware
|
||||
- ✅ Meilleur support TypeScript
|
||||
- ✅ Configuration Vite optimisée
|
||||
|
||||
## 📦 Dépendances Requises
|
||||
|
||||
Vérifiez que votre `package.json` inclut:
|
||||
```json
|
||||
{
|
||||
"@adonisjs/inertia": "^1.0",
|
||||
"@inertiajs/vue3": "^1.0",
|
||||
"@vuepic/vue-datepicker": "latest",
|
||||
"vue3-carousel": "latest",
|
||||
"vue-sonner": "latest",
|
||||
"tailwindcss": "^3.0"
|
||||
}
|
||||
```
|
||||
|
||||
## 🚀 Prochaines Étapes
|
||||
|
||||
### 1. Valider la Structure (✓ Fait)
|
||||
- [x] Pages créées
|
||||
- [x] Composants copiés
|
||||
- [x] Assets migrés
|
||||
- [x] Configuration mise à jour
|
||||
|
||||
### 2. Adapter les Controllers AdonisJS
|
||||
- [ ] Créer/adapter les controllers pour chaque page
|
||||
- [ ] Implémenter les routes correspondantes
|
||||
- [ ] Adapter les retours Inertia avec les bonnes données
|
||||
|
||||
### 3. Tester les Fonctionnalités
|
||||
- [ ] Tester la navigation
|
||||
- [ ] Vérifier les formulaires
|
||||
- [ ] Tester les directives
|
||||
- [ ] Valider le design responsive
|
||||
|
||||
### 4. Affiner les Imports
|
||||
- [ ] Vérifier tous les chemins d'import
|
||||
- [ ] Adapter les types de modèles si nécessaire
|
||||
- [ ] Résoudre les imports circulaires si présents
|
||||
|
||||
## 📝 Documentation Générée
|
||||
|
||||
- `MIGRATION_PAGES_SUMMARY.md` - Résumé détaillé de la migration
|
||||
- `MIGRATION_CHECKLIST.md` - Checklist de validation
|
||||
- `MIGRATION_COMPLETE.md` - Ce fichier
|
||||
|
||||
## 🎓 Guide Rapide
|
||||
|
||||
### Créer une Nouvelle Page
|
||||
```vue
|
||||
<!-- inertia/pages/example.vue -->
|
||||
<script setup lang="ts">
|
||||
import { Link } from '@inertiajs/vue3'
|
||||
|
||||
defineProps<{ data: any[] }>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="container">
|
||||
<!-- Votre contenu -->
|
||||
</div>
|
||||
</template>
|
||||
```
|
||||
|
||||
### Ajouter une Directive Personnalisée
|
||||
```vue
|
||||
<input
|
||||
v-validation-error="getErrorMessage('email')"
|
||||
type="email"
|
||||
placeholder="Email"
|
||||
/>
|
||||
```
|
||||
|
||||
### Utiliser un Composable
|
||||
```typescript
|
||||
import { useSidebar } from '~/composables/useSidebar'
|
||||
|
||||
const { isOpen } = useSidebar()
|
||||
```
|
||||
|
||||
## ⚠️ Points Critiques
|
||||
|
||||
1. **Base de Données**: Mettre à jour les schémas si différents
|
||||
2. **Authentification**: Configurer les guards correctement
|
||||
3. **CSRF**: Inclure les tokens dans les formulaires
|
||||
4. **Uploads**: Adapter les chemins de fichiers
|
||||
5. **Permissions**: Vérifier l'accès aux données sensibles
|
||||
|
||||
## 🎉 Status: COMPLET
|
||||
|
||||
✅ Migration des pages Inertia de pc-builder → pc-builderV2 **TERMINÉE**
|
||||
|
||||
La structure Inertia est maintenant prête pour l'intégration avec les controllers et routes AdonisJS V7.
|
||||
|
||||
---
|
||||
|
||||
**Date de Migration:** Juin 2026
|
||||
**Version Source:** pc-builder (AdonisJS V6)
|
||||
**Version Cible:** pc-builderV2 (AdonisJS V7)
|
||||
**Statut:** ✅ Complet
|
||||
@@ -0,0 +1,164 @@
|
||||
# Migration des Pages Inertia - PC Builder V2
|
||||
|
||||
## 📋 Résumé de la Migration
|
||||
|
||||
Toutes les pages Inertia du projet **pc-builder** ont été migrées vers **pc-builderV2** avec AdonisJS V7.
|
||||
|
||||
## ✅ Pages Migrées
|
||||
|
||||
### Pages d'Authentification (auth/)
|
||||
- ✅ `auth/login.vue` - Page de connexion
|
||||
- ✅ `auth/signup.vue` - Page d'inscription
|
||||
- ✅ `account/signup.vue` - Page de création de compte (redondant)
|
||||
|
||||
### Pages de Composants (components/)
|
||||
- ✅ `components/index.vue` - Liste des composants
|
||||
- ✅ `components/create.vue` - Création d'un composant
|
||||
- ✅ `components/edit.vue` - Édition d'un composant
|
||||
- ✅ `components/show.vue` - Détails d'un composant
|
||||
|
||||
### Pages d'Ordinateurs (computers/)
|
||||
- ✅ `computers/index.vue` - Liste des ordinateurs
|
||||
- ✅ `computers/create.vue` - Création d'un ordinateur
|
||||
- ✅ `computers/edit.vue` - Édition d'un ordinateur
|
||||
- ✅ `computers/show.vue` - Détails d'un ordinateur
|
||||
|
||||
### Pages d'Erreur (errors/)
|
||||
- ✅ `errors/not_found.vue` - Page 404 (mise à jour avec style)
|
||||
- ✅ `errors/server_error.vue` - Page 500 (mise à jour avec style)
|
||||
|
||||
### Layouts (pages/layout/)
|
||||
- ✅ `layout/defaultLayout.vue` - Layout principal avec sidebar et header
|
||||
- ✅ `layout/emptyLayout.vue` - Layout vide pour auth
|
||||
- ✅ `layout/sidebar.vue` - Barre latérale de navigation
|
||||
- ✅ `layout/header.vue` - En-tête avec profil utilisateur
|
||||
|
||||
### Composants Réutilisables (pages/widgets/)
|
||||
- ✅ `AuthErrorAlert.vue` - Alerte d'erreur d'authentification
|
||||
- ✅ `ComponentEditor.vue` - Éditeur de composants
|
||||
- ✅ `ComponentsViewer.vue` - Visionneuse de composants
|
||||
- ✅ `ComputerCard.vue` - Carte d'ordinateur
|
||||
- ✅ `ComputerComponentsTable.vue` - Table de composants d'ordinateur
|
||||
- ✅ `ComputersViewer.vue` - Visionneuse d'ordinateurs
|
||||
- ✅ `DeleteConfirmationModal.vue` - Modal de confirmation de suppression
|
||||
- ✅ `SimpleGallery.vue` - Galerie simple
|
||||
- ✅ `TableComponent.vue` - Composant de table
|
||||
- ✅ `ValidationError.vue` - Afficheur d'erreurs de validation
|
||||
|
||||
## 🎯 Ressources Copiées
|
||||
|
||||
### Assets (inertia/assets/)
|
||||
- ✅ **Icons/** - 18 fichiers SVG d'icônes
|
||||
- case.svg, cooler.svg, cpu.svg, cross-icon.svg, default-icon.svg
|
||||
- fan.svg, graphic-card.svg, hard-drive.svg, memory.svg, motherboard.svg
|
||||
- mvne.svg, power-supply.svg, site-icon-with-title.svg, site-icon.svg
|
||||
- trash-icon.svg, user-profile-icon.svg, wifi-card.svg, index.ts
|
||||
|
||||
- ✅ **Images/** - Images utilitaires
|
||||
- no-Image-placeholder.svg, index.ts
|
||||
|
||||
### Composables (inertia/composables/)
|
||||
- ✅ `isAdminMode.ts` - Gestion du mode admin
|
||||
- ✅ `useSidebar.ts` - Gestion de la sidebar
|
||||
|
||||
### Directives (inertia/directives/)
|
||||
- ✅ `v_validation_error.ts` - Directive pour afficher les erreurs de validation
|
||||
- ✅ `v-delete-confirm.ts` - Directive pour confirmation avant suppression
|
||||
- ✅ `v-price.ts` - Directive pour formatage des prix
|
||||
|
||||
### Types (inertia/pages/types/)
|
||||
- ✅ `UITypes.ts` - Types TypeScript pour l'interface utilisateur
|
||||
|
||||
## 🔧 Modifications AdonisJS V7
|
||||
|
||||
### app.ts - Mise à jour
|
||||
Le fichier `inertia/app.ts` a été mis à jour pour :
|
||||
1. Inclure les imports de directives
|
||||
2. Ajouter les composants globaux (VueDatePicker, Carousel, Slide)
|
||||
3. Implémenter la logique de sélection de layout dynamique
|
||||
4. Enregistrer les directives personnalisées
|
||||
|
||||
### Structure de répertoires
|
||||
```
|
||||
inertia/
|
||||
├── app.ts (mis à jour)
|
||||
├── client.ts
|
||||
├── ssr.ts
|
||||
├── assets/
|
||||
│ ├── icons/
|
||||
│ └── images/
|
||||
├── composables/
|
||||
│ ├── isAdminMode.ts
|
||||
│ └── useSidebar.ts
|
||||
├── directives/
|
||||
│ ├── v_validation_error.ts
|
||||
│ ├── v-delete-confirm.ts
|
||||
│ └── v-price.ts
|
||||
├── pages/
|
||||
│ ├── auth/
|
||||
│ │ ├── login.vue
|
||||
│ │ └── signup.vue
|
||||
│ ├── account/
|
||||
│ │ └── signup.vue
|
||||
│ ├── components/
|
||||
│ │ ├── index.vue
|
||||
│ │ ├── create.vue
|
||||
│ │ ├── edit.vue
|
||||
│ │ └── show.vue
|
||||
│ ├── computers/
|
||||
│ │ ├── index.vue
|
||||
│ │ ├── create.vue
|
||||
│ │ ├── edit.vue
|
||||
│ │ └── show.vue
|
||||
│ ├── errors/
|
||||
│ │ ├── not_found.vue
|
||||
│ │ └── server_error.vue
|
||||
│ ├── layout/
|
||||
│ │ ├── defaultLayout.vue
|
||||
│ │ ├── emptyLayout.vue
|
||||
│ │ ├── sidebar.vue
|
||||
│ │ └── header.vue
|
||||
│ ├── types/
|
||||
│ │ └── UITypes.ts
|
||||
│ └── widgets/
|
||||
│ ├── AuthErrorAlert.vue
|
||||
│ ├── ComponentEditor.vue
|
||||
│ ├── ComponentsViewer.vue
|
||||
│ ├── ComputerCard.vue
|
||||
│ ├── ComputerComponentsTable.vue
|
||||
│ ├── ComputersViewer.vue
|
||||
│ ├── DeleteConfirmationModal.vue
|
||||
│ ├── SimpleGallery.vue
|
||||
│ ├── TableComponent.vue
|
||||
│ └── ValidationError.vue
|
||||
└── css/
|
||||
└── app.css (existant)
|
||||
```
|
||||
|
||||
## 🎨 Améliorations Apportées
|
||||
|
||||
1. **Pages d'erreur** - Mise à jour avec design cohérent et boutons de navigation
|
||||
2. **Layout dynamique** - Sélection automatique du layout en fonction de la route
|
||||
3. **Admin mode toggle** - Basculer entre mode admin et mode classique
|
||||
4. **Intégration complète** - Toutes les directives et composants sont disponibles
|
||||
|
||||
## 📝 Notes Importantes
|
||||
|
||||
- Les chemins des imports utilisent les alias Vite (~/) configurés dans `tsconfig.inertia.json`
|
||||
- Les composants et directives sont enregistrés globalement dans `app.ts`
|
||||
- La structure de layout suit le pattern de pc-builder avec DefaultLayout et EmptyLayout
|
||||
- Les widgets réutilisables sont dans `pages/widgets/` pour maintenir la compatibilité
|
||||
|
||||
## 🚀 Prochaines Étapes
|
||||
|
||||
1. Vérifier que tous les imports sont corrects dans les controllers AdonisJS
|
||||
2. Adapter les types de modèles si nécessaire
|
||||
3. Tester la navigation et les layouts
|
||||
4. Vérifier les directives v-validation-error, v-price, v-delete-confirm
|
||||
5. Adapter les appels API selon la structure V7
|
||||
|
||||
---
|
||||
|
||||
**Date de migration:** Juin 2026
|
||||
**Source:** pc-builder
|
||||
**Destination:** pc-builderV2 (AdonisJS V7)
|
||||
Reference in new issue
Block a user