Phase 120 - Plan 01:
- Reusable PHP alert component (resources/views/components/alert.php)
with inline SVG icon per type, optional dismiss button.
- Missing .alert--info SCSS variant added (#eff6ff/#bfdbfe/#1e3a8a) -
fixes black-on-white alert after Fakturownia test connection.
- Flash::push(type, message) + Flash::all() with BC for set/get;
legacy key heuristic (error/.save/warning -> typed entries).
- Central flash renderer in 3 layouts (app/auth/public) iterating
Flash::all() through component (.alerts-stack wrap).
- Vanilla JS alert-dismiss.js with idempotent guard and delegated
click handler on [data-alert-dismiss].
- 36 views migrated off inline <div class="alert alert--TYPE">;
.flash--error/success removed from views (orders/show, shipments/prepare).
- SCSS rebuilt: public/assets/css/{app,login}.css.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.0 KiB
6.0 KiB
2026-05-12
Co zrobiono
- [Phase 116, Plan 01] Dodano integracje HostedSMS: ustawienia konta, szyfrowane haslo, karta w hubie integracji i realna wysylka testowego SMS.
- Dodano klienta HostedSMS SimpleAPI (
POST https://api.hostedsms.pl/SimpleApi) z obslugaMessageIdiErrorMessage. - Poprawiono prezentacje ostatniego testu HostedSMS: status, HTTP i osobny identyfikator wiadomosci.
- Potwierdzono test na zywo:
2026-05-12 12:03:22 OK HTTP 200, MessageIdd935d71a-d9a0-4cfb-be06-03fe36c71150. - Odnotowano przyszly zakres: odbior odpowiedzi SMS wymaga aktywacji interfejsu po stronie DCS/HostedSMS.
- [Phase 117, Plan 01] Dodano integracje SMSPLANET: globalne ustawienia konta, dwie metody autoryzacji, szyfrowane sekrety, karta w hubie integracji i realna wysylka testowego SMS.
- Dodano klienta SMSPLANET (
POST https://api2.smsplanet.pl/sms) z obsluga Bearer token orazkey+password, bez parametrutest=1dla testow realnych. - Poprawiono uklad checkboxow i radio buttonow na ekranie integracji SMSPLANET przez wspolny komponent SCSS.
- Odnotowano blokery weryfikacji: lokalny MySQL odmawial polaczenia,
vendor\bin\phpunitisonar-scannernie byly dostepne. - [Phase 119, Plan 01] Re-import zamowien chroni
total_paidprzed nadpisaniem gdypayment_statussie nie zmienia (incydent #976: operator zwrocil 28,00 PLN klientowi). OrderImportRepository::updateOrderDelta()przepisane na dynamic SET builder z warunkowymitotal_paidiis_canceled_by_buyer; cancel propagation ze zrodla nadal wymusza wpis flagi.- Test PHPUnit
tests/Unit/OrderImportRepositoryTest.phpz 3 scenariuszami (preserve / transition / cancel) - syntax-checked, run odroczony docomposer install. - Operacyjnie: zamowienie #976 poprawione recznie w bazie (delete pozycji Girlanda, total_with_tax/total_paid 119->91, wpis do
order_activity_log). - [Phase 120, Plan 01] Ujednolicony moduł alertów: reusable komponent PHP
components/alert.phpz ikoną SVG i dismiss, brakujący wariant.alert--info(#eff6ff/#bfdbfe/#1e3a8a) - naprawa czarnego tekstu po teście Fakturowni. Flash::push(type, message)+Flash::all()z BC dlaset/get; heurystyka klucza legacy (error/.save/warning/success).- Centralny renderer flash w layoutach
app.php,auth.php,public.php(foreach Flash::all() → component) - przyszłeFlash::push()zadziała bez ifów w widokach. - Vanilla JS
alert-dismiss.jsz idempotent guardem + delegated click handlerem. - 36 widoków zmigrowanych z inline
<div class="alert alert--TYPE">/.flash--*na komponent (34 z planu + odkryteorders/show.phpishipments/prepare.php). - CSS przebudowane via
npx sass --style=compressed:public/assets/css/app.css(63 560 B),login.css(7 409 B).
Zmienione pliki
.paul/PROJECT.md.paul/ROADMAP.md.paul/STATE.md.paul/codebase/architecture.md.paul/codebase/db_schema.md.paul/codebase/tech_changelog.md.paul/phases/116-hostedsms-integration/116-01-PLAN.md.paul/phases/116-hostedsms-integration/116-01-SUMMARY.md.paul/phases/117-smsplanet-integration/117-01-PLAN.md.paul/phases/117-smsplanet-integration/117-01-SUMMARY.mdDOCS/ARCHITECTURE.mdDOCS/DB_SCHEMA.mdDOCS/TECH_CHANGELOG.mddatabase/migrations/20260512_000107_create_hostedsms_integration_settings.sqldatabase/migrations/20260512_000108_create_smsplanet_integration_settings.sqlresources/lang/pl.phpresources/scss/app.scssresources/views/settings/hostedsms.phpresources/views/settings/smsplanet.phproutes/web.phpsrc/Modules/Settings/HostedSmsApiClient.phpsrc/Modules/Settings/HostedSmsIntegrationController.phpsrc/Modules/Settings/HostedSmsIntegrationRepository.phpsrc/Modules/Settings/IntegrationSecretCipher.phpsrc/Modules/Settings/IntegrationsHubController.phpsrc/Modules/Settings/SmsplanetApiClient.phpsrc/Modules/Settings/SmsplanetIntegrationController.phpsrc/Modules/Settings/SmsplanetIntegrationRepository.php.paul/phases/119-reimport-total-paid-protection/119-01-PLAN.md.paul/phases/119-reimport-total-paid-protection/119-01-SUMMARY.mdsrc/Modules/Orders/OrderImportRepository.phptests/Unit/OrderImportRepositoryTest.php.paul/phases/120-alert-component-unification/120-01-PLAN.md.paul/phases/120-alert-component-unification/120-01-SUMMARY.mdresources/views/components/alert.phppublic/assets/js/modules/alert-dismiss.jsresources/scss/shared/_ui-components.scsspublic/assets/css/app.csspublic/assets/css/login.csssrc/Core/Support/Flash.phpresources/views/layouts/app.phpresources/views/layouts/auth.phpresources/views/layouts/public.phpresources/views/settings/fakturownia.phpresources/views/settings/accounting-invoice-edit.phpresources/views/settings/accounting-receipt-edit.phpresources/views/settings/accounting-receipts.phpresources/views/settings/accounting-invoices.phpresources/views/settings/accounting.phpresources/views/settings/allegro.phpresources/views/settings/apaczka.phpresources/views/settings/company.phpresources/views/settings/cron.phpresources/views/settings/database.phpresources/views/settings/delivery-status-form.phpresources/views/settings/delivery-statuses.phpresources/views/settings/email-mailboxes.phpresources/views/settings/email-templates.phpresources/views/settings/email-templates-form.phpresources/views/settings/integrations.phpresources/views/settings/printing.phpresources/views/settings/project-mappings.phpresources/views/settings/shoppro.phpresources/views/settings/statuses.phpresources/views/orders/list.phpresources/views/orders/show.phpresources/views/orders/receipt-create.phpresources/views/shipments/prepare.phpresources/views/accounting/invoice_form.phpresources/views/automation/index.phpresources/views/automation/form.phpresources/views/users/index.phpresources/views/statistics/orders.phpresources/views/auth/login.php