Commit Graph

58 Commits

Author SHA1 Message Date
julien 76c97352bc chore(models): minor updates on application and jump model 2026-04-27 21:28:37 +02:00
julien fa00719a3e feat(herowars): migrate JSON static imports to HttpClient assets
Replace all TypeScript JSON imports with an HWDataService that loads
6 data files from /assets/files-data/ via HttpClient with shareReplay(1).
Update all 9 consumer components to subscribe asynchronously. Remove
unused qcm-bpa.json import and dead methods from QcmComponent.
Add ADR 0013 documenting the decision.
2026-04-26 23:46:35 +02:00
julien 86c075db10 chore: remove React/Next.js remnants from Angular codebase
The develop branch had been contaminated by a merge with the old
Next.js/React version of the project. These 66 files (pages, layouts,
_components, _types, server actions, CSS modules) were Next.js App Router
artifacts unused by and invisible to the Angular application.
2026-04-26 17:31:34 +02:00
julien 9ad8129321 chore: remove unused and legacy JSON data files
- qcm/: MongoDB export dumps (dev_acproapidb.users, headupdb.*,
  qcm_categories) — not imported anywhere in the codebase
- dashboard-components/*/data.json: scaffolding stubs — not imported
  in their respective component .ts files
2026-04-26 17:17:52 +02:00
julien c8e2fba13e docs(adr): convert all ADRs to MADR 2.1.2 format
Rewrites all 12 frontend ADRs from a custom structure to the MADR 2.1.2
template required by the VS Code ADR Manager extension: bullet metadata
(Status/Date), standardised section headings, "Chosen option: X, because Y"
wording, and explicit Pros/Cons blocks per option.
2026-04-26 16:50:34 +02:00
julien 8f2632f456 Add 12 ADRs documenting frontend architecture decisions 2026-04-26 16:34:34 +02:00
julien c575992d64 Restore docs/decisions/ for ADRs 2026-04-26 16:20:24 +02:00
julien 7215c01741 Remove one-shot data migration tool (jumps.json + importJumps) 2026-04-26 16:15:54 +02:00
julien dd8fdeb5ca Remove Next.js/React legacy files
The project migrated to Angular 18; Next.js artifacts were still present.

Deleted:
- next.config.js, next-env.d.ts (.next/ was already gitignored)
- public/ (favicons/fonts/images duplicated in src/assets/; not served by Angular)
- .env.development, .env.production, .env.sample (Angular uses src/environments/)
- src/middleware.ts (Next.js middleware)
- src/modules/ (React TSX components — article, auth, profile)
- src/utils/ (Next.js api client, iron-session auth, types)
- src/config/ (process.env-based constants)
- src/generated/ (openapi-typescript generated types)
- src/jumps_02.json (only referenced as a commented-out import)
- docs/ (empty directories)

Updated .gitignore to block .env.* and next.config.js from being re-added.
2026-04-26 16:09:30 +02:00
julien 9be9f191bb Fix Dart Sass deprecation warnings
- Replace color.red/green/blue() with color.channel() in styles.scss
- Replace deprecated if() ternary with @if/@else in _variants.scss
- Silence @import deprecation in angular.json (Bootstrap 5.x uses @import
  throughout; migrating to @use breaks the variable override mechanism)
2026-04-26 07:32:15 +02:00
julien e12bbf29ae fix(build): remove unused Angular imports (NG8113) and chartist CSS 2026-04-26 07:13:57 +02:00
julien bdfef72124 chore(node): update engines field and add .nvmrc for Node 20.19.6 2026-04-26 06:50:34 +02:00
julien 8c898cd652 chore(deps): upgrade Angular 20 → 21
Migrates to Angular 21.0.0: updates tsconfig lib to es2022, migrates
bootstrap options in main.ts, and completes control flow migration
(*ngFor/*ngIf → @for/@if) in jumps and jumps-by-month templates to
resolve duplicate ng-template name conflicts skipped by the schematic.
Also fixes pre-commit hook to load nvm before running tests.
2026-04-26 06:49:50 +02:00
julien be5f5775ef chore(deps): upgrade Angular 19 → 20
- ng update @angular/core@20 @angular/cli@20 @angular/material@20 @angular-eslint@20 @angular/google-maps@20
- Remove ng-chartist (abandoned, incompatible with Angular 20): replace <x-chartist> with <app-bars-chart> in dropzones-bar and jumps-by-month
- Migrate all constructor injection to inject() function (ng generate @angular/core:inject, 67 files)
- TypeScript 5.5 → 5.9.3
- DOCUMENT import moved from @angular/common to @angular/core (automatic migration)
- tsconfig moduleResolution updated to "bundler"
2026-04-26 06:40:13 +02:00
julien 5400294d45 chore(deps): upgrade Angular 18 → 19
- ng update @angular/core@19 @angular/cli@19 @angular/material@19 @angular-eslint/schematics@19
- Migration: remove standalone:true (now default in v19) from 60 components
- Migration: zone.js 0.14 → 0.15
- Fix pre-existing build budget error: raise initial bundle limit to 5mb (app ships large static JSON assets)
2026-04-26 06:25:02 +02:00
julien b8eb8a9393 feat(tooling): add lint-staged with Prettier + ESLint on pre-commit
- Install prettier, lint-staged, eslint-config-prettier
- Configure lint-staged in package.json: Prettier write on staged files, ESLint check on .ts/.html
- Add eslint-config-prettier to .eslintrc.json extends to disable formatting rules that conflict with Prettier
- Configure no-unused-vars to allow _ prefix (intentional destructuring pattern)
- Replace manual prettier/git update-index lines in pre-commit hook with npx lint-staged
- Fix pre-existing ESLint errors: remove unused imports in herowars-guildraid, fix useless escapes in middleware.ts, fix eslint-disable comment in utilityTypes.ts
2026-04-26 06:07:07 +02:00
julien b645f28daf fix(tests): fix all 39 failing specs and re-enable pre-commit hook
- Fix circular dependency in guildwar-attack/defence: import FortificationCardContentComponent directly instead of via @components/shared barrel
- Add index === -1 guard in guildwar-attack, guildwar-defence, guildwar-teams _setChampionsByPower to avoid crash when members input is empty
- Fix MembersStatisticsComponent to guard against undefined member in ngOnInit
- Fix JumpComponent: initialize jump with sautants/author defaults to avoid template crash
- Add provideRouter([]), provideHttpClient(), provideAnimations(), provideNativeDateAdapter() to 26 spec files missing them
- Register Chart.js scales in chart component specs
- Rewrite FrenchPaginator spec to instantiate service directly
- Fix AppComponent spec assertions to match actual component
- Re-enable npm test in .husky/pre-commit
2026-04-26 05:28:58 +02:00
julien 8cdd03b28b fix(styles): restore icosvg- icon classes broken by icomoon merge conflict
Deleted icomoon.scss (icon- prefix, unused) and restored _icomoon.scss
(icosvg- prefix) which is used throughout the app menu and settings.
2026-04-26 04:50:06 +02:00
julien 246d420fe5 chore: merge angular branch into develop
Resolves add/add conflicts by keeping Angular-specific versions.
Fixes pre-existing build issues surfaced by the merge:
- Remove obsolete _icomoon.scss (conflict with icomoon.scss)
- Replace deprecated async with waitForAsync in 6 spec files (Angular 18)
- Add stylePreprocessorOptions.includePaths to test config in angular.json
- Disable pre-commit test hook (pre-existing failures in HeroWars suite)
2026-04-26 04:45:19 +02:00
julien 69cf4548d2 refactor(naming): harmonize service file names and API domain prefixes
- Rename hwclan.service.ts → hw-clan.service.ts, hwmember.service.ts → hw-member.service.ts (Angular Style Guide kebab-case)
- Replace _apiVersion (/v1, /v2) with _apiDomain (/skydive, /cms, /herowars) across all feature services
- Update herowars barrel to reference renamed files
- Update CLAUDE.md to reflect corrected path examples
2026-04-26 00:39:03 +02:00
julien 5a7baf4d94 chore(jumps): remove dead feed type from query method
The /feed branch was never called — all consumers pass type 'all'.
Mirrors removal of the skydive /jumps/feed backend route.
2026-04-26 00:16:35 +02:00
julien c7d21bda30 docs: add CLAUDE.md with project guidance for AI assistants 2026-04-25 17:23:33 +02:00
julien 3ecc83458f chore(angular): add @angular/localize/init polyfill
Required for fr-FR locale support that the app already configures
via registerLocaleData and LOCALE_ID provider in app.config.ts.
2026-04-25 17:23:25 +02:00
julien d6c864d6d1 fix(menu): correct "shydive" typo to "skydive" in admin menu
Eight items under the admin menu had a misspelled parent state,
breaking the parent/child relationship for the skydive submenu.
Also reparents the qcm submenu to skydive (was sitting at the root).
2026-04-25 17:23:03 +02:00
julien 223955eb84 refactor(environment): rename config keys to camelCase
Aligns environment.* shape with TypeScript convention.
Renames: api_url -> apiBaseUrl, api_key -> apiKey,
use_api_key -> useApiKey, refresh_interval -> refreshInterval,
google_map_api_key -> googleMapApiKey.

The local environment.{ts,development.ts,local.ts} files are
gitignored and have already been migrated; this commit updates
the tracked example file and the only consumer (apiInterceptor).
2026-04-25 17:22:49 +02:00
julien c32191b37d Material Upgrade 2026-03-30 02:09:35 +02:00
julien bd8ed94b1d Angular update to v18 2026-03-30 01:52:34 +02:00
julien 518168f225 Angular upgrade to v18 2026-03-30 01:48:45 +02:00
julien f9ee9ed799 Packages update 2026-03-30 01:13:03 +02:00
julien 59361d46a3 Menu link update 2026-03-30 01:05:32 +02:00
julien 9d5d0fca56 Environments update 2026-03-29 23:50:56 +02:00
julien f5e8c765b7 Environments update 2026-03-29 23:44:29 +02:00
julien 8a602bd2db Refactoring 2026-03-29 23:23:33 +02:00
julien 43d61fcf16 Environments Update 2026-03-29 23:20:02 +02:00
julien 86032382d6 Add gitignore for environments 2026-03-29 23:05:25 +02:00
julien 8a1c19e011 Ajout de composants Hero Wars 2025-11-27 10:35:38 +01:00
Rampeur 8e3bd16b60 Ajout d'un pipe 'floor' 2025-09-23 22:30:43 +02:00
Rampeur 5340e737c6 Ajout du composant 'demo' 2025-09-23 22:28:15 +02:00
Rampeur 8b098f7545 Mise à jour graphique 2025-09-23 22:25:08 +02:00
Rampeur 65ae9fce4b Mise à jour de services et resolvers 2025-08-29 16:07:08 +02:00
Rampeur a0a194306f Mise à jour du menu de la sidebar 2025-08-29 16:05:37 +02:00
Rampeur 452475b26e Ajouts et modifications de models 2025-08-29 16:04:20 +02:00
Rampeur ed6104ed21 Mise à jour articles et produits 2025-08-19 05:12:16 +02:00
Rampeur 977104aac2 Mise à jour du layout 2025-08-13 01:28:11 +02:00
Rampeur 0a6cbc0c00 Import des sources angular à partir de 'headup_app' 2025-08-11 23:26:29 +02:00
Rampeur 7dcb426ef5 Suppression de fichiers 2025-08-11 22:57:30 +02:00
Rampeur e1969a2f83 Ajout d'un fichier action.ts 2025-08-11 22:37:30 +02:00
Rampeur 879c7c68d6 Mise à jour des numéros de port de serveur 2025-08-11 22:36:04 +02:00
Rampeur 8ed9b50054 Mise à jour des numéros de port de serveur 2025-08-11 22:35:02 +02:00
Rampeur 917b90a26d Mise à jour 2025-08-11 01:14:50 +02:00