Commit Graph
8 Commits
Author SHA1 Message Date
mmacierzanka ddcce85ad5 feat: server management page with log channel editing only for admins 2026-09-30 20:11:22 +02:00
mmacierzanka 210f03b0d3 feat: validate bot voice channel permissions 2026-09-13 16:14:38 +02:00
mmacierzanka 76f63057bc refactor: remove success notifications from api action wrappers and websocket connection 2026-09-13 16:04:35 +02:00
mmacierzanka 2a11c70a3e feat: improve styles and layouts for better consistency and responsiveness
Backend / Lint i formatowanie (push) Successful in 3s
Backend / Testy i kontrakt API (push) Successful in 5s
Panel / Lint, typy i build (push) Failing after 9s
Backend / Testowy build obrazu (push) Successful in 9s
2026-08-21 21:29:57 +02:00
mmacierzanka 004641c9b8 feat: expose per-server default plays setting 2026-08-21 16:32:41 +02:00
mmacierzanka 8b340c61f0 feat: add notification channel selector 2026-08-21 16:26:30 +02:00
lgooseandClaude Bot 105f3e6c6a chore(frontend): ESLint dla Vue i TypeScriptu
Konfiguracja we flat configu: zalecane zestawy js, typescript-eslint oraz
eslint-plugin-vue. Bloki <script setup lang="ts"> obsługuje vue-eslint-parser
przekazujący zawartość do parsera TypeScriptu.

Odstępstwa od domyślnych reguł:

- vue/multi-word-component-names wyłączone - kafelki panelu mają nazwy
  własne i nie każda jest dwuczłonowa
- no-unused-vars przepuszcza nazwy z prefiksem podkreślenia
- no-console wyłączone dla testu dymnego, który raportuje wynik na stdout

Szablony przepuszczone przez eslint --fix, co ujednoliciło łamanie
atrybutów i domykanie znaczników. Po zmianach kontrola typów, build
i test dymny nadal przechodzą.

Dochodzą skrypty npm: lint (z --max-warnings 0) oraz lint:fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:34:55 +02:00
lgooseandClaude Bot 038fa2ead4 feat(frontend): komponenty panelu
Widok rozbity na komponenty odpowiadające kafelkom pulpitu:

- AppHeader, VoiceChannelPanel, PlayerPanel, AddTrackPanel
- UploadsPanel wraz z UploadedFileRow współdzielonym z oknem modalnym
- QueuePanel i QueueItem - przeciąganie, zmiana kolejności, limit odtworzeń
- HistoryPanel, ModalShell, SettingsModal, UploadsLibraryModal, ToastHost

Arkusz stylów przeniesiony ze static/style.css bez zmian w wyglądzie.
Style, które app.js wstrzykiwał inline przy budowaniu HTML-a, przeniesione
do klas współdzielonych i bloków scoped w komponentach.

Poprawki bezpieczeństwa wynikające z przepisania:

- Tytuły utworów i nazwy plików nie trafiają już do innerHTML. Poprzednia
  wersja składała wiersze kolejki, historii i listy plików ze stringów,
  więc tytuł zawierający znaczniki HTML był wstawiany do DOM bez escapowania.
- Nazwy plików nie są już wklejane do atrybutów onclick z ręcznym
  escapowaniem apostrofu, które i tak nie obejmowało cudzysłowu. Zdarzenia
  podpina Vue, bez generowania kodu w stringach.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 01:08:31 +02:00