Commit graph

46 commits

Author SHA1 Message Date
Copilot
71717cccc1
Fix timezone offset calculation to respect DST for target dates (#59)
* Initial plan

* Fix timezone offset calculation and add tests

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-10-04 16:22:29 +02:00
Copilot
252e588375
Refactor export API calls to pass only month/year instead of full data (#56)
* Initial plan

* Implement cleaner API calls for export methods

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* 4 icons per row

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-10-04 15:27:13 +02:00
Claudio Schaad
f2b0051183
New shifts (#57)
* Add new icons for shifts

* add to project
2025-10-04 15:05:37 +02:00
Copilot
335fe9821b
Improve loading speed with parallel transport calls and non-blocking UI (#52)
* Initial plan

* Implement parallel transport loading and non-blocking UI improvements

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-10-04 14:37:10 +02:00
Claudio Schaad
fddca4e833
Begin pdf with the right position (#54) 2025-09-27 12:20:39 +02:00
Claudio Schaad
6f73aca3f6
Fix month selection (#53)
* Clear old shifts when switching

* Start with monday
2025-09-27 11:34:21 +02:00
Claudio Schaad
a341a5fec0
Fix google calendar time zone (#50) 2025-09-06 21:47:47 +02:00
Claudio Schaad
28429d78d0
Fix finding best connection (#49)
* Log and fix connection

* Update Services/TransportConnectionCalculator.cs

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

* Update Services/TransportConnectionCalculator.cs

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

* Update Services/TransportConnectionCalculator.cs

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

* better logging

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-06 21:14:44 +02:00
Copilot
5103aecacf
Add Google Calendar integration with direct sync functionality and rate limiting protection (#45)
* Initial plan

* Implement Google Calendar integration with sync button and calendar selection

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add Google Calendar sync documentation and finalize implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix build errors

* Fix Google Calendar rate limiting issues with retry logic and delays

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* optimize

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-09-06 16:47:48 +02:00
Copilot
3ed54f51ad
Fix emoji rendering in PDF (#48) 2025-09-06 14:39:29 +02:00
Claudio Schaad
a1f9f1313e
Fix find best connection with using of local date time offset (#46)
* Add logger
* Change strings to date time offset
* Fix logic for best connection
* Fix parsing shift times
* set time zone
2025-09-03 22:17:53 +02:00
3c01b33070 Fix tests 2025-08-30 10:21:26 +02:00
5a5902fefa Add logging for transport connection logic 2025-08-30 09:29:51 +02:00
f09f57c3dd UI changes 2025-08-30 09:06:17 +02:00
Claudio Schaad
8471138c06
Update copilot-instructions.md 2025-08-30 08:37:23 +02:00
Copilot
7e556b852c
Add comprehensive README.md with application overview, features, setup instructions, and screenshots (#43)
* Initial plan

* Add comprehensive README.md with features, configuration, and setup instructions

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add shift calendar screenshot after login screen in README

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Update README.md

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
2025-08-30 08:32:23 +02:00
034b1e3edd UI optimization 2025-08-29 20:58:58 +02:00
Copilot
1493c459bd
Implement responsive mobile/desktop UI layout for shift scheduler (#38)
* Initial plan

* Implement responsive mobile/desktop UI layout

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Clean up demo files and finalize mobile UI implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix desktop calendar week grouping to properly start weeks on Monday and end on Sunday

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove button for shift delete

* Fix desktop week grouping to start weeks on Monday instead of grouping consecutive days

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* UI improvements

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-29 20:41:25 +02:00
a9c5937ce4 Cleanup selection of month/year 2025-08-28 20:15:07 +02:00
Copilot
7f8b2c4b8c
Enhance shift handling: Move storage to file system and add month selection (#36)
* Initial plan

* Initial setup: Downgrade .NET version to 8.0 for compatibility

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Implement enhanced shift handling with file system storage and month selection

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Move component styles from global app.css to Index.razor.css for proper component isolation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-28 19:47:12 +02:00
Copilot
497379f62b
Save shifts and transport configurations in external files for Docker persistence (#31)
* Initial plan

* Implement external configuration file persistence for Docker containers

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add Docker documentation and finalize external config implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Delete the files

* Adapt gitignore

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-28 18:57:15 +02:00
Copilot
1f7df973c1
Fix invalid ICS and PDF export returning validation errors as file content (#33)
* Initial plan

* Fix client-side export error handling and identify validation root cause

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Complete fix for invalid ICS and PDF export issue

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-28 18:48:00 +02:00
Copilot
e8db13191e
Add Google OAuth authentication with configurable authorized emails (#29)
* Initial plan

* Add Google authentication with authorized email configuration

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Complete Google authentication implementation with documentation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix CORS error by removing [Authorize] from auth user endpoint

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add authorization attribute to ConfigurationController for security

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix JavaScript error in login button by correcting window.location.href usage

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix Google OAuth redirect URI configuration to resolve authentication error

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix OAuth state validation error by specifying authentication scheme in callback

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix OAuth state validation error by improving authentication configuration

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix authentication setup documentation with correct redirect URI

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix navigation buttons overlapping with authentication header

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove unused unsing

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-27 21:18:50 +02:00
Claudio Schaad
d5b123bbd9
Expand coding standards and guidelines section 2025-08-27 15:00:36 +02:00
Copilot
7d8e40b9cf
Add Configuration UI for Transport and Shift Settings with Import/Export (#27)
* Initial plan

* Complete configuration UI implementation with working dialog, API endpoints, and file import/export

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Refactor to inject IConfigurationService directly instead of using factory singletons

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove redundant ShiftService and use IConfigurationService directly

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-26 17:17:09 +02:00
Copilot
73abfac988
Implement caching for transport connection results with IMemoryCache (#26)
* Initial plan

* Implement caching for transport connection results with IMemoryCache

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Change cache duration from minutes to days

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Implement CachedTransportService design with interface separation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Implement persistent file-based cache to survive application restarts

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Revert persistent file-based cache implementation, restore IMemoryCache usage

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Code cleanup

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-25 21:15:13 +02:00
Copilot
68e2fa4927
Optimize Transport Connection Selection with Enhanced Timing Logic (#24)
* Initial plan

* Implement enhanced transport connection optimization logic

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add configuration for new transport optimization parameters and complete implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Address PR feedback: remove comments, old logic, and unnecessary tests

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix looking for connection

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: clayschaad <c.schaad@pog.ch>
2025-08-23 20:16:04 +02:00
Claudio Schaad
f5387e7b41
Cleanup transport service (#22) 2025-08-23 19:16:40 +02:00
Copilot
991dd5f623
Add comprehensive unit tests for TransportService with xUnit and Shouldly, plus CI/CD automation (#21)
* Initial plan

* Add comprehensive TransportService unit tests with xUnit and Shouldly

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add comprehensive edge case tests for TransportService

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add GitHub Actions CI workflow for automated testing

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-23 15:37:08 +02:00
Copilot
a25d8f1cc2
Add PNG icon support for shift types (#18)
* Initial plan

* Add PNG icon support for shifts with sample coffee cup icon

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add more icons

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 23:09:45 +02:00
d26b3319b9 UI Improvements 2025-08-21 20:44:56 +02:00
Copilot
2530e729ce
Implement transport time improvements: departure station display and break time logic (#17)
* Initial plan

* Implement transport time improvements: departure station display and break time logic

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Enhance code

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 20:04:53 +02:00
Copilot
45fa364368
UI improvements: Add month to title, remove sidebar, move buttons to top navigation, show shift times (#14)
* Initial plan

* Complete UI improvements: add month to title, remove sidebar, move buttons to top, show shift times, add loading spinner

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Move action buttons to top navigation level as requested

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Some ui changes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 17:38:07 +02:00
Copilot
b41d8d6b36
Fix PDF export filename: Add .pdf extension to downloaded files (#13)
* Initial plan

* Fix PDF export filename: use JavaScript download with proper .pdf extension

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove test PDF file from repository

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add year and month

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-21 16:41:14 +02:00
Copilot
2dc437ac9c
Add real-time SBB transport integration with enhanced UI feedback and improved timing logic (#2)
* Initial plan

* Initial project setup - update to .NET 8.0 for compatibility

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Complete SBB transport integration implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Revert to .NET 9 and separate transport info into ShiftTransport class

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Make safety buffer minutes configurable via appsettings

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Migrade pdf export service

* Update gitignore

* Implement new approach: real-time transport data per shift selection with ShiftWithTransport view model

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Refactor export methods to directly use ShiftWithTransport instead of converting to separate parameters

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Move ShiftWithTransport class to its own file

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Code cleanup

* Fix transport timing logic to respect safety buffer and find best available connections

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: clayschaad <c.schaad@pog.ch>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
2025-08-19 22:08:59 +02:00
Copilot
e275cbd240
Add reset button with proper styling and improve export button appearance (#8)
* Initial plan

* Initial plan for reset button implementation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Implement reset button with styling and export button improvements

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove code comments and clean up .deb file

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-19 06:34:29 +02:00
Claudio Schaad
ac6f471511
Update copilot-instructions.md
fix formatting
2025-08-19 06:28:00 +02:00
Claudio Schaad
6267c01fc8
Update copilot-instructions.md
common instructions
2025-08-19 06:27:21 +02:00
Copilot
76a1531729
Implement localStorage persistence for shift selections (#6)
* Initial plan

* Fix .NET framework version compatibility from 9.0 to 8.0

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Implement localStorage persistence for shift selections

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Restore .NET 9.0 version and update Index.razor.cs per feedback

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix compilation error by making EditMonth and EditYear instance variables

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Minor changes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-18 19:40:52 +02:00
Claudio Schaad
0aebab3d38
Add comprehensive GitHub Copilot instructions for ShiftScheduler development
Add comprehensive GitHub Copilot instructions for ShiftScheduler development
2025-08-18 17:52:18 +02:00
78678033f9 Enhance PDF 2025-08-18 17:35:31 +02:00
copilot-swe-agent[bot]
c8b9fd320c Create comprehensive .github/copilot-instructions.md with validated build and run instructions
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-17 18:42:47 +00:00
copilot-swe-agent[bot]
0b04c89a9a Initial exploration and project setup validation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-17 18:33:22 +00:00
copilot-swe-agent[bot]
c285007788 Initial plan 2025-08-17 18:24:49 +00:00
88b3237c6c Initial Version 2025-08-17 20:15:45 +02:00
Claudio Schaad
d040ee58b8
Initial commit 2025-08-17 19:47:42 +02:00