165 lines
5.9 KiB
Markdown
165 lines
5.9 KiB
Markdown
# 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)
|