Commit graph

13 commits

Author SHA1 Message Date
67a3f4b546 feat(sync): Frontend pusht Aenderungen und laedt Server-Stand beim Start
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 15:59:48 +02:00
de2befde7a refactor(app): extract getVacationMapForMonth, dedupe 4x vacation loop
The "loop employees -> getVacationMode -> calculateAllEmployees" block
was copy-pasted in calculateBonuses, generateEmailReport, exportCSV and
exportBonusReport. Collapse to one storage helper. Behaviour identical:
calculateAllEmployees only reads keys present in employeeDuties.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 11:40:06 +02:00
722f961387 chore: cleanup dead code and duplicated logic from audit
- Remove broken webpack.yml (no package.json/webpack config exists)
- Drop dead RATE_NORMAL/RATE_WEEKEND fields on BonusCalculator; share the
  real rate constants across all three variants in variants.js
- Simplify getEmptyResult() to build allResults via .map instead of
  three manual spreads
- Replace 5 duplicated German month-name arrays and 2 weekday-name
  arrays in app.js with a shared monthName()/WEEKDAY_NAMES helper;
  drop the now-redundant getMonthName() method
- Reuse existing .modal/.modal-backdrop/.modal-content CSS classes in
  generateEmailReport() instead of hand-rolled inline styles
- Delegate ImageImporter.classify() to the shared classify() in
  variants.js instead of a duplicated copy
- Unify ad hoc YYYY-MM-DD formatting in app.js to use the existing
  HolidayProvider.formatDate() helper

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-05 19:23:14 +02:00
9a26d8b9ef Merge feature/bonus-varianten: 3 variants + vacation + date-stepper
Conflicts resolved:
- sw.js: bumped CACHE_NAME to dienstplan-pro-v4 (was v3 + v2). Both
  variants.js and image-import.js are in ASSETS.
- storage.js: kept STORAGE_KEY_DUTIES + STORAGE_KEY_VACATION (Feature B)
  alongside STORAGE_KEY_OPENROUTER_KEY/MODEL + DEFAULT_MODEL (Feature A).
- styles.css: appended Feature B variants/vacation/date-stepper rules
  after Feature A modal/key rules; both blocks coexist.
2026-05-12 18:45:31 +02:00
f69a36f2f0 fix(app): expose app instance on window so image-import.js init finds it
`let app` at top level does not create a window property, so the
DOMContentLoaded handler in image-import.js found window.app undefined
and never instantiated window.imageImporter. Clicking the Bild-Import
button then showed the 'Bild-Import nicht verfuegbar' toast.

Set window.app explicitly after construction.
2026-05-12 18:41:07 +02:00
016ce93979 feat: add date-stepper buttons (Feature C) clamped to selected month 2026-05-12 18:27:06 +02:00
1407696adb refactor: CSV/HTML/email exports read winner.* from new variants shape 2026-05-12 18:25:07 +02:00
e3a8ae2d7b feat(settings): add Bild-Import (KI) section with key management and model picker 2026-05-12 18:24:21 +02:00
15bf520bc1 feat: result card shows winner banner, all-variants details, vacation toggle 2026-05-12 18:23:11 +02:00
34e9e67f6d feat: pass vacationMap from storage to calculateAllEmployees 2026-05-12 18:22:06 +02:00
7154edde86 feat(image-import): wire open-image-import-btn + card-header layout 2026-05-12 18:20:11 +02:00
OpenClaw Agent
407b13c612 feat: Add Email Report Generator with copy-paste functionality 2026-02-02 12:25:31 +00:00
OpenClaw Agent
7116eb3466 feat: Unified PWA release 2026-02-02 11:51:11 +00:00