59 Commits

Author SHA1 Message Date
xziino
bb4eb301e0 Planer: Importierte Mitigations um 3s vor die Mechanik verschieben
Beim Report-Import landen alle erkannten Ability-Assignments standardmäßig
3 Sekunden vor dem Mechanik-Timestamp (IMPORT_OFFSET_MS = -3000ms).
Linksklick im Gantt und manuelle Zuweisungen bleiben unverändert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:50:11 +02:00
xziino
e40bdbea1c config: auth_start_href() in index.php definiert (fehlende Funktion nach Merge)
Commit 8217f68 rief auth_start_href() in report-form.php und login.php
auf, ohne die Funktion zu definieren. Generiert auth/start.php?return=
mit dem aktuellen Request-URI als Return-Pfad.
In index.php statt config.php da config.php skip-worktree hat.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:43:30 +02:00
xziino
669bcd937b Planer: Scroll-Position im Gantt nach Re-Render beibehalten
refreshTimeline() speichert scrollLeft vor dem innerHTML-Reset und
stellt ihn danach wieder her – die Ansicht springt beim Verschieben
von Abilities nicht mehr an den Anfang.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:21:51 +02:00
xziino
be65d0b228 Planer: Gantt-Overlap-Check auf vollen Cooldown erweitert
assignmentWindowMs und candidateWindow nutzen jetzt max(duration, cooldown)
statt nur die aktive Dauer – Abilities konnten bisher erneut platziert werden
bevor ihr Recast abgelaufen war.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:17:22 +02:00
xziino
c983ca6621 Planer: Gantt-Klick zum Hinzufügen repariert (Pointer-Capture-Bug)
setPointerCapture() leitet Compatibility Mouse Events (inkl. click) an das
capturing Element um – e.target im click-Handler war immer .timeline-scroll,
nie das angeklickte .timeline-track. Fix: document.elementFromPoint() für
zuverlässigen Hit-Test unabhängig von Pointer Capture.
Pan-Threshold zusätzlich von 3px auf 8px erhöht.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 08:12:09 +02:00
Akurosia Kamo
fd0de86dbc fix timeline skills vocer multiple skills 2026-05-23 21:42:16 +02:00
Akurosia Kamo
0f8a90d1b4 move all skill/player things into a single file 2026-05-23 21:28:36 +02:00
Akurosia Kamo
8f00c22682 more timeline fixes and addle fix 2026-05-23 21:22:10 +02:00
Akurosia Kamo
fb6d50961a better moving of skills on the timeline 2026-05-23 21:10:19 +02:00
Akurosia Kamo
3276e3bfb3 timeline and skill dragin improvments 2026-05-23 21:03:13 +02:00
Akurosia Kamo
d0f54049e6 adjustments to skill behaviour 2026-05-23 21:00:19 +02:00
xziino
da226d54a2 Planer: Gantt-Zeilen pro Ability + aktive Dauer im Balken sichtbar
- Eine Timeline-Zeile pro Ability statt pro Job
- Schilde ausgeblendet (außer Panhaima SGE)
- Balken zeigt aktive Dauer vs. Cooldown via Gradient
- Klick auf leere Zeile fügt Ability direkt hinzu
- Drop nur auf passende Ability-Zeile

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 17:15:58 +02:00
xziino
cdd594e43e Planer: SGE-Abilities bereinigt (Eukrasian Prognosis II + Addle entfernt)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:50:43 +02:00
xziino
b27986c0f4 Planer: Schild-Input auf change-Event umgestellt (kein Fokus-Verlust beim Tippen)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:46:34 +02:00
xziino
e358a4e709 Planer: DR-Simulation + Schild-Eingabe in Mechanik-Cards
- ABILITY_DR-Map mit DR-Werten pro Ability (Feint = 5% magic)
- simulateDrMultiplier() berechnet multiplikativen DR-Faktor
- Mechanik-Cards zeigen mitigierten Wert (DR-only) + optional mit Schild
- SGE/SCH Schild-Feld (in k) im Info-Panel, wird pro Plan gespeichert
- Farbige Anzeige: grün = unter ∅ HP, rot = darüber

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:43:37 +02:00
xziino
8b00d1d2a8 Merge remote-tracking branch 'Akurosia/akus_schabernack4' 2026-05-23 12:59:51 +02:00
xziino
19922d79aa Planer: Durchschnittliche MaxHP (ohne Tanks) neben unmitigiertem Schaden anzeigen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 12:59:16 +02:00
Akurosia Kamo
61fecbc576 add timeline feature 2026-05-23 12:48:08 +02:00
Akurosia Kamo
27b9b0785e fix fight selection 2026-05-23 12:11:18 +02:00
xziino
2e8818bb03 Analyse-Tab: Plan-Ref zeigt Spieler des Plans im Spielerfeld
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 09:54:49 +02:00
xziino
fb58226be8 Analyse-Tab: Plan als Referenz-Quelle
- Pläne aus localStorage als Ref-Quelle auswählbar ("+Plan als Referenz")
- planToRefEvents() konvertiert Plan-Mechaniken ins refEvents-Format
- PLAN-Label statt REF, kein Delta, kein Schadenswert
- Buff-Icons mit "fehlt"-Markierung, Debuffs im Header
- Shield-Assignments als "Schild"-Text mit Tooltip
- Schließt sich mit anderen Ref-Quellen gegenseitig aus

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 08:30:52 +02:00
xziino
6024560e61 Planner: Namen + Job Import aus beliebigem Report
- Neues api/players.php: playerDetails + maxHp aus DamageTaken in einem GQL-Query
- Import-Modal übernimmt Jobs UND Namen (Heiler → DPS → Tank → Alphabet)
- buildPlayerRoster/extractJobComp: einheitliche Sortierreihenfolge
- Ref-Fight Export überträgt jetzt auch die Jobaufstellung
- Job-Slots zeigen importierte Spielernamen an

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 08:08:22 +02:00
xziino
565dedc568 Analyse-Tab: Job-basierter Mitigation-Vergleich statt Namens-Match
Ref-Vergleich prüft jetzt ob die aktuelle Gruppe den passenden Job hat
(via ABILITY_JOBS-Map), statt Spielernamen zu matchen. Fehlende
Mitigations werden nur noch in der REF-Zeile hervorgehoben — der
aktive Pull zeigt ausschließlich tatsächlich genutzte Mitigations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 22:53:01 +02:00
xziino
07a140442f Analyse-Tab: Ref-Vergleich nach Job statt Spielername
Fehlende Mitigations werden nun anhand des Job-Typs (z.B. SGE, PLD)
zugeordnet statt per Spielername — funktioniert auch wenn der Referenz-
Fight mit einer anderen Gruppe gespielt wurde.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 22:24:44 +02:00
xziino
349645f4cb Analyse-Tab: Export-Auswahl zwischen aktuellem und Referenz-Fight
Wenn eine Referenz aktiv ist, öffnet der Export-Button ein kleines
Dropdown mit den Optionen "Aktueller Fight" und "Referenz-Fight".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 22:20:37 +02:00
xziino
4801148a8c Merge akus_schabernack3: Lokalisierung + Tab-Persistenz
- Lokalisierte Ability-Namen in Badges und Modal
- Aktiver Plan wird per localStorage über Reload hinweg gespeichert
- Aktiver Tab wird per localStorage gespeichert
- refreshPlanLanguage() aktualisiert Namen beim Sprachwechsel
- api/analysis.php gibt mitigation_names zurück
- ff14-language-change Event in app.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 15:58:32 +02:00
xziino
9a2c1490de Planner: Info-Panel + Fight-Namen Fix
- Info-Panel in Sidebar: Farbschema-Legende + prägnante Hinweise bei fehlenden Jobs/Zuordnungen
- fight.php: immer englischen Endpoint nutzen damit Fight-Namen sprachunabhängig stabil sind

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 14:59:11 +02:00
Akurosia Kamo
15754fefda Merge remote-tracking branch 'origin/master' into akus_schabernack3
# Conflicts:
#	js/planner.js
2026-05-22 12:48:22 +02:00
xziino
1c0918a4a3 Planner: Äquivalenz-Hinweise verfeinert
- Grüner Hinweis wenn Äquivalent verfügbar (z.B. → Kerachole (SGE)?)
- Roter Hinweis "→ Kein Äquivalent!" wenn kein Ersatz vorhanden
- Grau-kursiv "→ Job zuordnen" bei Abilities ohne Job-Zuordnung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:43:27 +02:00
xziino
d585f3be5a Planner: Äquivalenz-Hinweise für fehlende Job-Abilities
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:36:16 +02:00
Akurosia Kamo
c3f18b38f5 small fix, stay on playner page on refresh and translate planner 2026-05-22 12:35:05 +02:00
Akurosia Kamo
c67b08737e small fix, stay on playner page on refresh and translate planner 2026-05-22 12:32:50 +02:00
xziino
84064669d3 Planner: uniquePlanName beim Kopieren anwenden
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:29:32 +02:00
xziino
be9d050036 Planner: Ordner-Struktur, Rechtsklick-Remove, Duplikat-Schutz
- Ordner CRUD (erstellen, umbenennen, löschen) in der Plan-Sidebar
- Pläne per 📁-Button in Ordner verschieben (Picker-Dropdown)
- Ordner auf-/zuklappbar mit Chevron-Animation
- Rechtsklick auf Ability-Badge entfernt die Zuweisung
- uniquePlanName(): Duplikat-Namen beim manuellen Erstellen blockieren
- Import-Modal: Name wird direkt mit eindeutigem Namen vorbefüllt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:25:44 +02:00
Akurosia Kamo
14674d2842 small fix 2026-05-22 11:17:11 +02:00
Akurosia Kamo
7c6f443a53 Merge remote-tracking branch 'origin/master' into akus_schabernack3
# Conflicts:
#	js/planner.js
2026-05-22 10:52:41 +02:00
Akurosia Kamo
89b4849ed4 aku test2 2026-05-22 10:49:49 +02:00
cc36aa27c4 Merge pull request 'akus_schabernack2' (#2) from akurosia/ff14-mitigator:akus_schabernack2 into master
Reviewed-on: xziino/ff14-mitigator#2
2026-05-22 10:47:00 +02:00
xziino
969484a1dc Planner: assignment sorting, icons, remove buttons, missing-job highlight, mechanic delete, job pre-fill on import
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 10:43:25 +02:00
xziino
8f29619ef5 Planner Steps 4+5: job composition slots and ability assignment modal
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 10:23:47 +02:00
Akurosia Kamo
e2eed52d07 Merge remote-tracking branch 'origin/master' into akus_schabernack2 2026-05-22 09:40:11 +02:00
xziino
d73dd340c2 Planner import modal: default to Mechaniken + Mitigation, rename option
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 09:15:41 +02:00
Akurosia Kamo
ed4b72654b Merge remote-tracking branch 'origin/master' into akus_schabernack2 2026-05-22 08:46:48 +02:00
xziino
4107779e2a Add Planner import flow (Schritt 3): export from Analysis tab
- Export button in AoE Timeline card title row (replaces bottom bar)
- Import modal with mechanic-only vs with-mitigations choice,
  new plan vs merge into existing plan
- Merge logic: match by abilityName + timestamp ±5s, keep existing assignments
- Color-coded assignment badges: blue=buff, red=debuff, gold=shield
- buffType stored in assignments for color rendering
- Modal radio button layout fix (override global input width:100%)
- Auto-switch to Planner tab after import
- window.showTab exposed from tabs.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 08:46:37 +02:00
Akurosia Kamo
19bd79c056 if tank is selected track also tankbuster
on login keep url params
2026-05-22 08:43:45 +02:00
xziino
ea00268227 Add Planner tab: localStorage plan CRUD and basic UI shell
Steps 1+2 of the planner roadmap: data model, create/rename/copy/delete
plans, read-only mechanic timeline, two-column layout mirroring the
analysis tab style.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 08:26:33 +02:00
Akurosia Kamo
139ea8d3ac fix comaprefight dropdowns to only contain the selected fight
add in fflogs button
2026-05-21 17:31:06 +02:00
Akurosia Kamo
1753b1d2ee add translation of element, share page due to url params and default to analyse page 2026-05-21 16:05:05 +02:00
Akurosia Kamo
85d83e79a0 First run of codex 2026-05-21 15:54:25 +02:00
xziino
6363c123b0 Add REF player grid for cross-report comparison
When an external reference report is loaded and its roster differs from the
current report, a second player section appears below the main grid showing
all REF report players. REF tanks are hidden by default. Clicking any REF
player card toggles their visibility in the REF timeline rows.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 14:55:25 +02:00