История коммитов

simba77
refactor(profile): move office mailbox counters to mail repositories
Replace raw SQL counter queries in the office page with dedicated count methods on MailMessage and Contact repositories (countInbox, countNewInbox, countOutbox, countNewOutbox, countAttachedFiles, countBlocked).
simba77
fix(profile): update office page mail links to current routes
simba77
fix(mail): correct blocklist flow and message counter
- align block/unblock route params with controller signatures (userId)
- use is_online property and tools->displayDate in blocklist template
- update legacy /mail/?act=ignor links to /mail/blocklist, /mail/block, /mail/unblock
- toggle profile block/unblock button by actual block state, not can_write
- drop duplicate JS confirm on contact delete
- fix message count query grouping so soft-deleted messages are excluded
simba77
docs: update 9.9 changelog with mail rewrite and module refactorings
- Mail: CKEditor migration with mail:convert-bbcode command, layered architecture rewrite
- Auth, registration, language: migrate to controller architecture
- Notifications, redirect: migrate to layered architecture
- Online: PSR-4 architecture; Help: extract pages to controllers
- Deprecate routes.local.php; remove unused RSS module
- Add PageMeta value object
simba77
fix(mail): correct IP display by passing raw attributes to UserProperties
User model's Ip cast converts the stored integer to a string via toArray(),
causing UserProperties::getFromArray() to receive "172.18.0.5" and compute
long2ip((int)"172.18.0.5") = long2ip(172) = "0.0.0.172".
Use getRawOriginal() to pass the integer value the method expects.
simba77
feat(mail): migrate message editor from BBCode to CKEditor
- Replace BBCode toolbar/textarea with the CKEditor partial in the write form (image upload disabled)
- Normalize editor content and strip empty tags on send via EditorContentNormalizer
- Render messages with HTMLPurifier + media embed + smilies instead of BBCode checkout
- Extract conversation list preview into MailMessagePreviewService for HTML content
- Add MailBbcodeToHtmlConverter and mail:convert-bbcode command to migrate legacy data
simba77
refactor(mail): drop _new suffix from contact_list template
The legacy contact_list template was removed, so the _new suffix is redundant. Rename contact_list_new.phtml to contact_list.phtml and update the ContactController render call.
simba77
refactor(mail): move installer to src/Install
Relocate Installer to src/Install with the PSR-4 namespace Johncms\Modules\Mail\Install, matching the module's layered structure.
simba77
refactor(mail): remove legacy dispatcher and includes
All mail actions are migrated to dedicated controllers. Remove the legacy index.php dispatcher, the ignor/load includes and the orphaned contact_list template (the contacts index uses contact_list_new).
simba77
feat(mail): migrate message sending and conversation clearing
- Add POST /mail/write/{id} sending (SendMessageUseCase, SendMessageCommand): validation, antiflood, set_mail access, ignore checks, file upload, contact creation, duplicate guard
- Add GET/POST /mail/clear/{id} (ClearConversationController, ClearConversationUseCase) with per-message soft/hard delete
- Extend MailFileService with file name parsing, extension allowlist and uploaded file storage
- Add repository methods getLastMessageBetween, updateContactTime; drop unused clearConversation
- Remove legacy /mail dispatcher route and includes/write.php
- Drop legacy compose-by-nick and base64 mini-upload paths