Commit Graph
6 Commits
Author SHA1 Message Date
darroyo c9622200a7 refactor(ui): redesign with amber CRT terminal theme and mobile responsive
CI / Build Native (push) Successful in 6m52s
- Full visual overhaul: amber phosphor CRT aesthetic (gold on near-black)
- JetBrains Mono font family applied site-wide
- Terminal window style: LED amber dot on every panel header
- Header with 'user@shot-crafter:~$' title bar
- Login/register as terminal window cards
- Responsive: grid-5/grid-8 collapse on mobile, tables scroll horizontally
- Tabs with horizontal scroll on mobile
- Article headers wrap cleanly on small screens
- Custom scrollbars, selection color, focus states in amber theme
- New favicon in amber style
- term-section.html reusable partial created
2026-08-23 23:33:18 -04:00
darroyo 30037bc5cb fix: add ?v=5 cache-busting to all script tags
CI / Build Native (push) Successful in 6m44s
El error 'window.api.updateCharacterWeight is not a function' se daba
porque el browser tenía cacheada la versión vieja de api.js (que
tenía updateCharacterInventory en vez de updateCharacterWeight).

Agregar ?v=5 a los script src fuerza al browser a re-descargar el JS
cuando el URL cambia (con cada nueva versión bump n). Previene
errores 'is not a function' después de deploys que agregan/renombran
métodos.

Aplica a todos los archivos HTML que cargan JS estático.
2026-08-23 12:49:24 -04:00
darroyo e0ac9e844f feat(calculadora): complete cost-split coverage in all modes
CI / Build Native (push) Successful in 6m56s
- Ranking de rentabilidad: add 3 columns (C. Cristales / C. Ore / C. Fee)
  alongside the existing Costo column. Update rankingFiltrado() to include
  the 3 sub-costs in its map output.
- Totales Presupuesto (3 sub-vistas: simple/maximizado/mezcla): add
  Distribución del costo block with bar + legend under existing 3 cards.
- Totales Objetivo: extend objetivoTotales() to aggregate sub-costs, then
  add the same distribution block.
- Totales Plan cristales: same distribution block (planTotalesCristales
  already aggregated sub-costs).
- Add 3 generic helpers pctCOf/pctOOf/pctFOf that take a totals object
  (handles both 'costoTotal' and 'costo' field names).
- Fix x-show condition for Presupuesto distribution: use .costo (the field
  actually returned by planTotalesPresupuesto) instead of .costoTotal.

Verified in browser across all 5 distribution points; percentages sum to
100% and math matches per-row calculations.
2026-08-21 10:00:11 -04:00
darroyo d73f946cb2 feat(calculadora): cost split breakdown + plan por cristales mode
CI / Build Native (push) Has been cancelled
- Add costoCristales/costoOre/costoDwarven fields to calc.js results and
  RunItem/RunIn/RunSummary/HistoryStats records (no DB migration needed —
  items stored as JSON in TEXT column).
- Show 4 explicit columns (C. Cristales / C. Ore / C. Fee / Costo total)
  in all calculator tables: Cristales mode, Presupuesto (simple/maximizado/
  mezcla), and Objetivo. Totales globales now includes a 3-segment
  distribution bar with %.
- Historial: 3 new stats cards + global distribution bar; per-run modal
  shows breakdown + bar; per-item table has 3 sub-columns; CSV export
  extended. CSS: cost-split-bar, cost-split-segment-{cristales,ore,fee},
  cost-legend-dot.
- New 'Plan por cristales' mode (4th): single-grade + quantity input with
  greedy max-ROI/cristal algorithm and shared cost split columns.
  Verificado end-to-end en navegador.
2026-08-20 19:15:42 -04:00
darroyo 34e524616d chore: commit all missing files from Qute/Alpine migration
CI / Build Native (push) Successful in 7m9s
This commit adds all the files that were created during the frontend
migration (Qute templates + Alpine.js) but were never committed to git.

Includes:
- TemplateData.java (shared Qute page helpers)
- Static resources: app.js, defaults.js, calc.js, alpine.min.js, pico.min.css, favicon.svg
- Qute templates: changePassword, formulas, insumos, login, register, usuarios
- Partial templates: header.html, layout/base.html
- Modified: MustChangePasswordFilter.java (added login/register paths)
- Modified: AppState.java (added price fields)
- Modified: format.js (simplified number formatting)
- Modified: application.properties (static resources comment)
- Modified: calculadora.html (Qute/Alpine rewrite)
2026-08-18 10:26:10 -04:00
darroyo 05db929da1 fix: only save items with cristalesDisponibles > 0
CI / Build Native (push) Failing after 43s
- saveRun(): filter items where cristalesDisponibles > 0 before persisting
- allItems(): show only saved items in modal (no padding with zeros)
2026-08-15 23:19:24 -04:00