Commit Graph
43 Commits
Author SHA1 Message Date
nessar 036a8c0e1e #61 2026-10-07 00:28:29 +02:00
nessar bc8570d8ca feat: add PlanningDurationService for estimating planning duration
- Implemented PlanningDurationService to provide an indicative wait time before calculation based on user input and calendar settings.
- Introduced duration estimation logic that considers horizon dates, balances, and rules without triggering a calculation.
- Enhanced user input component to display estimated duration using the new service.
- Updated translation files to include new duration estimate strings in multiple languages.
- Added tests for PlanningDurationService to ensure accurate duration estimation and calibration.
- Refactored leave planner service to remove hardcoded deadlines and improve worker responsiveness.
2026-10-05 17:06:17 +02:00
nessar 2edf2004f5 feat(planner): implement cancellation for planning calculations
- Refactor leave-planner.worker.ts to support cancellation of ongoing calculations.
- Introduce `calculatePlanningAsyncInternal` for asynchronous planning calculations.
- Add cancellation handling in the worker message event.
- Update planning-date.ts with new utility functions for date manipulation.
- Extend translation-service.ts and translation files (en.json, de.json, es.json, fr.json) to include new strings related to planning horizon and cancellation.
- Create documentation for the cancellation feature in planner-cancellation.md.
- Add unit tests for cancellation functionality in leave-planner-cancellation.spec.ts and leave-planner.worker.spec.ts.

#57 #58
2026-10-05 15:34:07 +02:00
nessar b0ba4227ac #22 2026-10-04 23:19:21 +02:00
nessar 578aafbf91 #21 2026-10-04 22:48:37 +02:00
nessar 5a34160ab2 feat: add unified Settings dialog (#18) 2026-10-04 22:01:00 +02:00
nessar dd16db8c87 feat(calendar): add explained period feature and update translations 2026-10-03 17:40:42 +02:00
nessar 01c87d1e44 feat(planning): complete verified explanations and trace delivery (#46)
Implement plan explanations, original decision traces, calendar replay, and worker counterfactual analysis. Preserve incomplete checkpoints and conflict reasons, with accessible navigation and localized comparison details.

Keep planning outcomes independent of tracing and bound worker delivery with receiver acknowledgements. Retain complete candidate history while releasing temporary buffers and benchmark references.

Validated with 201 tests, app/spec type checks, lint, production build, baseline outcome comparisons, and repeated loaded browser measurements. Document performance and remaining limits.
2026-10-03 16:26:56 +02:00
nessar 0ce33cc9d6 UI improvments 2026-10-02 15:05:30 +02:00
nessar c9dbe82b79 fix(planning): complete explanation and trace behavior (#46) 2026-10-02 15:05:30 +02:00
nessar f1f08356df feat(benchmark): enhance benchmark documentation and add emulated run details
fix(benchmark): update deterministic checks and improve measurement accuracy

fix(service): refine candidate recording and enhance balance assignment logic

test(service): add test for balance recording with preference assignment
2026-09-25 14:07:00 +02:00
nessar d7a13b0b1e feat(planning): explain and trace planning decisions 2026-08-31 00:02:45 +02:00
nessar 609b3dece9 feat: enhance user input and rules panel components
- Updated dark-light mode button styles for improved responsiveness.
- Enhanced rules panel with additional buttons for moving rules up and down, and updated styles for better layout.
- Added active rule count display in the rules panel header.
- Improved user input component layout with section headings and updated button styles.
- Refactored day input component to use grid layout for better alignment and responsiveness.
- Added new translations for user input and rules panel features.
- Implemented tests for new functionality in rules panel and day input components.
- Added application routes test to ensure correct routing configuration.
2026-08-30 19:16:36 +02:00
nessar 31314f3969 fix(planning): prioritize complete holiday weeks 2026-08-30 17:16:30 +02:00
nessar 7ceaf1a57a feat(planning): implement constraint-first leave planner 2026-08-28 22:44:14 +02:00
nessar dfb25b249b refactor(theme): remove obsolete compatibility 2026-08-28 14:56:45 +02:00
nessar c19b62ff85 feat(theme): add system preference (#20) 2026-08-28 14:45:16 +02:00
nessar 9c9114879d feat: implement internationalization with multi-language support and runtime language selection 2026-05-30 21:03:12 +02:00
nessar 11924df19e refactor: migrate testing framework from Karma/Jasmine to Vitest with Angular support 2026-05-30 15:57:36 +02:00
nessar 08ee84e5c9 feat: implement rules engine and management panel for custom holiday optimization 2026-05-30 15:00:07 +02:00
nessar 7127744454 fix: correct string concatenation in getClasses method 2026-02-21 17:36:50 +01:00
nessar 5769d2e653 remove loading for each change in "form" 2025-12-06 22:52:20 +01:00
Théophyl Hoguetandcopilot-swe-agent[bot] d3515f89e5 T hoguet/issue16 (#61)
* feat: enhance loading spinner with progress indication and add warning for unplaced vacation days

* feat: upgrade Angular dependencies to version 21 and implement new animation features

- Updated Angular dependencies in package.json to version 21.x.x.
- Added `provideAnimationsAsync` to app configuration for improved animation handling.
- Refactored user input component to utilize a dynamic list of vacation days with animations.
- Introduced a new `DayInput` component for managing individual vacation days.
- Enhanced styling and animations for user input and day input components.
- Updated calendar service to support new vacation day structure.
- Adjusted tests to accommodate changes in component structure and dependencies.

* feat: enhance vacation optimization logic and UI components

* Fix signal immutability violations and cleanup unused code (#62)

* Initial plan

* fix: address PR review comments for signal immutability and cleanup

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

* fix: add --legacy-peer-deps for Angular 21 compatibility (#63)

* Initial plan

* fix: add --legacy-peer-deps to npm ci for Angular 21 compatibility

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

* Fix unit tests for VacDay[] type migration (#64)

* Initial plan

* fix: update unit tests to match VacDay[] type structure

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-30 03:17:57 +01:00
3272622abf feat: enhance loading spinner with progress indication and add warnin… (#49)
* feat: enhance loading spinner with progress indication and add warning for unplaced vacation days

* Update src/app/services/calendar-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/app/components/calendar-year/calendar-year.scss

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/app/components/user-input/user-input.html

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix setTimeout async anti-pattern in calendar-year component (#50)

* Initial plan

* fix: replace setTimeout async anti-pattern with queueMicrotask and void

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-18 00:45:05 +01:00
Théophyl HoguetandCopilot 81d974cbfe T hoguet/issue5 (#37)
* enregistrer les calendar settings dans le localstorage
Fixes #5

* Refactor calendar settings service to use a definitions map for settings and update related components to access settings via a getter method

* Update src/app/services/calendar-settings-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Refactor calendar settings service to utilize a new storedSignal implementation for localStorage persistence and restore the stored-signal utility

* Update typescript-eslint to version 8.46.3 and enhance error handling in storedSignal function

* Update src/app/services/calendar-settings-service.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Enhance storedSignal function to accept an Injector for improved context handling in localStorage persistence

* Skip initial execution in storedSignal effect to prevent unnecessary localStorage writes

* Refactor get method in CalendarSettingsService to throw an error if the setting ID doesn't exist

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-07 00:19:38 +01:00
729cc3f4cf Refactor calendar settings dialog to use dynamic settings from service (#30)
* Refactor calendar settings dialog to use dynamic settings from service

* Update src/app/components/dialog/calendar-settings-dialog/calendar-settings-dialog.html

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add type definition for calendar settings array (#35)

* Initial plan

* Add type definition for calendar settings array

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

* use inject

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-06 19:54:43 +01:00
CopilotandTHoguet f7bd101fb7 Modernize CI/CD pipeline with comprehensive automation (#25)
* Initial plan

* Add comprehensive CI/CD workflows and tooling

- Add PR validation workflow with lint, format, type check, test, and build steps
- Improve Docker build workflow with caching, security scanning, and manual trigger
- Add CodeQL security analysis workflow
- Add Dependabot configuration for automated dependency updates
- Configure ESLint with TypeScript support
- Add npm scripts for linting and formatting
- Format code with Prettier
- Fix linting issues in source code

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

* Update README and fix build configuration

- Add CI/CD documentation to README
- Document code quality tools and scripts
- Disable font optimization in production build to avoid network dependency
- Add build cache configuration for GitHub Actions

Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-03 21:09:09 +01:00
copilot-swe-agent[bot]andTHoguet 80a588741b Add comprehensive tests for vac-optimizer application
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-03 18:12:46 +00:00
copilot-swe-agent[bot]andTHoguet ace0d70a6e Fix DST handling in computeHeuristics by restoring UTC normalization
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-03 17:15:33 +00:00
copilot-swe-agent[bot]andTHoguet 125786e2d9 Refactor: create DateCacheService to reduce date duplication
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-01 21:42:59 +00:00
copilot-swe-agent[bot]andTHoguet dbf504b060 Replace magic number -1 with named constant for better code clarity
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-01 21:07:17 +00:00
copilot-swe-agent[bot]andTHoguet 6061e02835 Address code review feedback: fix Date object reuse and add clarifying comments
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-01 21:01:07 +00:00
copilot-swe-agent[bot]andTHoguet 4e7eb18bc5 Further optimize: simplify heuristics calculation and cache component values
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-01 20:57:38 +00:00
copilot-swe-agent[bot]andTHoguet 601e7855aa Optimize performance: cache dates, reduce lookups, improve algorithms
Co-authored-by: THoguet <61246905+THoguet@users.noreply.github.com>
2025-11-01 20:55:39 +00:00
nessar 8aad6e4cef Enhance calendar settings dialog and optimize date selection logic 2025-11-01 20:59:50 +01:00
nessar d01c93c763 add calendar settings 2025-11-01 03:15:30 +01:00
nessar d8759eee29 V1.2 2025-10-31 01:49:42 +01:00
nessar 7fc7653e6f Enhance calendar functionality: display year in month header, highlight past dates, and update date selection logic 2025-10-30 01:18:26 +01:00
nessar 2b552cf5cd docker + css tweaks + samediMalin 2025-10-29 01:23:15 +01:00
nessar 865555a19b don't generate numbers on server side 2025-10-29 00:55:22 +01:00
nessar 7e40ce0f6d V1 done still need to work on SSR 2025-10-29 00:21:17 +01:00
nessar 87558d7da5 samedi malin + start other 2025-10-27 00:09:06 +01:00
nessar 9ccbe2534a calendar done needs to do heuristic 2025-10-26 03:53:45 +01:00