881 changes from 32 contributors (of which 12 are new contributors). 330 files were affected.
Main Changes
What's Changed
- Correct undefined const DEFAULT_NO_PASSWORD_SAVE in Docker by @Shadow243 in #1243
- Update docker image to latest version released v2.4.0 by @Shadow243 in #1248
- Allow the execution of a presave draft handler, enabling third-party software integrating with Cypht to customize how a draft is stored by @mercihabam in #1247
- [FIX]setup_database.php: Check if the required MySQL extensions are loaded by @Baraka24 in #1251
- [FIX]hm-smtp.php: Initialize to avoid undefined variable warning by @Baraka24 in #1250
- [FIX]Imap quota: fixing quota appears more than once by @Baraka24 in #1218
- [FIX] Make server page responsive by @Bienvenumoringa in #1240
- Fix reload_folder_list browser test by @indridieinarsson in #1253
- [Fix]Extension check introduced for Docker builds by @goldenmean58 in #1258
- [FIX] Make the send button enabled on compose page by @GedeonTS in #1246
- Improve messages caching to ensure a message isn't fetched more than once when viewing its content by @mercihabam in #1252
- Add linux/arm64 and linux/386 architectures building by @rodriguezny in #1261
- Fixed AllInkl provider in Cypht V2 by @josaphatim in #1260
- Add linux/arm/v7 and linux/arm/v6 building by @rodriguezny in #1262
- Automate running local tests by @jonocodes in #1042
- Fix phpunit command according to 1042 by @Shadow243 in #1263
- Include js_modules files content in the final generated site.js by @mercihabam in #1264
- Added code to raise exception on database errors by @josaphatim in #1257
- Should be off by default | Address the controversial part in read rec… by @Shadow243 in #1181
- [FIX]Blocklist:can not edit a block by @christer77 in #1079
- [FIX]hm-smtp.php: Declare properties to avoid deprecated dynamic prop… by @Baraka24 in #1249
- Fix executing handler sieve filters enabled message content when server is configured without sieve by @josaphatim in #1268
- [FIX]apache errors in its log:Already registered module for compose re-attempted: load_contacts AND Already registered module for contacts re-attempted: process_import_contact by @christer77 in #1167
- [FIX]hm-mime-message.php: Replace the mb_convert_encoding() function … by @Baraka24 in #1272
- [FIX] output_modules.php : fixing Call to a member function get() on null by @Bienvenumoringa in #1276
- [ENH] Implement Expose IMAP capabilities for sharing folders by @Shadow243 in #1270
- [FIX] modules.php PHP Warning Undefined array key of redirect uri and… by @amaninyumu1 in #1254
- Correct ajax_imap_accept_special_folders condition on quick_servers_setup by @Shadow243 in #1283
- Disable duplicate redis extension from Github actions by @Shadow243 in #1284
- Implement browser history API based navigation, preventing page reloads between routings by @mercihabam in #1266
- [FIX]Imap quota: Fixing quota appears only once folders are expanded by @Baraka24 in #1275
- Correct settings.py & tags.py selenium tests and uncomment it by @Shadow243 in #1193
- Fix selenium load_settings_page test by @josaphatim in #1286
- Correct sieve connection when using scheme by @Shadow243 in #1199
- Correct imap buttons on servers page & trigger change sieve_mode_tls checkbox on edit server by @Shadow243 in #1289
- [ENH] Added functionality to enable or disable Sieve Filters with toggle button by @amaninyumu1 in #1104
- Fix some page handlers issues by @mercihabam in #1288
- Edit Tag module readme by @Shadow243 in #1293
- Correct pagination while displaying contacts by @Shadow243 in #1125
- Indicate session-limited actions via a popover by @mercihabam in #1295
- [FIX] Move email: Enable drag-and-drop feature to move messages betwe… by @GedeonTS in #1233
- Change the frequency at which messages are prefetched by @mercihabam in #1297
- [FIX]Fix deprecated warnings for preg_match() and mb_strtolower() in Webmail sieve filters by @Baraka24 in #1281
- Fix sieve tls on Quickly add an account from popular E-mail providers by @Shadow243 in #1303
- Allow the exclusion of certain JS libraries from being bundled when integrating Cypht with third-party software by @mercihabam in #1301
- Remove the duplicate of cash.min.js and fix js libs exclusion by @mercihabam in #1305
- Add a privacy settings section with the external images whitelist config by @mercihabam in #1299
- Slight adjustements to the menu on mobile viewports to work properly with the routing system by @mercihabam in #1309
- [FIX]Bulk-import accounts using yaml or csv template: Allow both text/csv and text/plain files to be parsed as CSV, accommodating Tiki’s MIME type handling by @Baraka24 in #1310
- [FIX].env.example: DISABLE_ORIGIN_CHECK assigns twice by @Baraka24 in #1316
- Removed forget/save actions by @josaphatim in #1311
- [ENH]message list: Preview of message when viewing message list by @christer77 in #1241
- [FIX]Displaying multiple messages with the same content for a given a… by @christer77 in #1106
- Tweak the sidebar for a modern look and feel by @mercihabam in #1313
- Fix css on privacy setting by @josaphatim in #1324
- Fix the combined inbox not excluding content from folders removed by the user by @mercihabam in #1327
- [ENH] Remove duplicate SMTP display names in dropdown by @DKing2222 in #1326
- Sort combined messages list chronologically and adjust the tag data request and handler by @mercihabam in #1329
- Fix smtp test server action by @josaphatim in #1343
- Allow performing a search operation in all folders by @mercihabam in #1337
- Use date as the default sorting field for all message lists by @mercihabam in #1345
- Fix the display of the unread folder counters and re-adjust the layout to have the sidebar fixed on the view by @mercihabam in #1346
- [UX]Renamed 'add_contact' to 'add_contact_responsive' to improve resp… by @amaninyumu1 in #1335
- [FIX]DEFAULT_TEXT_ONLY value must be false by @Baraka24 in #1317
- Enhance the sidebar's collapsible/expandable behavior by ensuring that only the minimum necessary content is shown and the layout remains intact when the sidebar is collapsed by @mercihabam in #1347
- Prevent external links from trying to navigate internally by @mercihabam in #1352
- [ENH]DragAndDrop: add drag and drop functionality on touchscreens by @GedeonTS in #1356
- [DOC]Dev Page: Reviewing documentation links by @Baraka24 in #1357
- make sieve data format automatic on connect by @Shadow243 in #1331
- Fix the sieve filters page which is duplicating the modal content by @mercihabam in #1358
- Reduce left menu height to make it appealing by @josaphatim in #1363
- Fix accessing keys when server was not found by @josaphatim in #1364
- Fixed tag display content by @Shadow243 in #1339
- Revert "Fixed tag display content" by @mercihabam in #1365
- Edit Contact: Cleaning up fields after editing the contact by @christer77 in #1294
- Refactor the HTML Editor calling code to allow it to properly load on the compose page by @mercihabam in #1372
- Workaround some incorrect data types by @mercihabam in #1373
- Fix email preview after sending by @Yannick243 in #1374
- Fix flags issue breaking email copied from tiki tracker to be read by @josaphatim in #1371
- feat(other): update issue templates by @ulfgebhardt in #1379
- Review and fix the implementation of the tags feature by @mercihabam in #1378
- [REF] output_modules.php Remove the unnecessary Raw action displayed … by @amaninyumu1 in #1377
- fix(other): selenium tests by @Shadow243 in #1382
- [FIX]Cypht marking all emails as read by @christer77 in #1376
- [FIX]: Fixed the duplicate close button for inline messages and ensured it works properly for non-inline messages by @GedeonTS in #1292
- fix(cypht): fix database driver check where sqlite was forgotten by @indridieinarsson in #1384
- feat(backend/frontend): allow searching in all special folders by @mercihabam in #1385
- feat: Improved detection and protection against business email compromise (BEC) such as CEO fraud by @christer77 in #1269
- fix(frontend): cut off content polluting the prev & next links and address the incompatibility between Cash and jQuery in the advanced search checkboxes generator by @mercihabam in #1387
- Map new message identifiers to all existing entries (from the Tags repository & the client message cache storage) of the same message when it is moved by @mercihabam in #1388
- fix(docker): replace php:8.1-fpm-alpine image by php:8.1-fpm-bookworm: alpine doesn't support GLOB_BRACE by @IrAlfred in #1360
- refactor(other): promote JMAP & EWS in the UI by @Bienvenumoringa in #1277
- refactor(other): fixed error all to undefined function get_sieve_host… by @Shadow243 in #1392
- refactor(workflow): pr title validation update by @ulfgebhardt in #1389
- refactor(backend): change the navigation modules load order in the final js bundle by @mercihabam in #1394
- feat(frontend/backend): allow searching for messages in all subfolders of a given folder by @mercihabam in #1395
- fix(frontend): fix the sidebar content alignment and reorganize misplaced content. by @mercihabam in #1397
- fix(frontend/backend): feeds content display by @mercihabam in #1398
- fix(frontend/backend): make various fixes by @mercihabam in #1399
- fix(module/github): display messages list and content from the connected github account by @mercihabam in #1400
- chore(frontend): focus the navigation on Cypht's elements when rendered on a webpage with external elements by @mercihabam in #1401
- fix(frontend): insert the menu toggle button in the correct wrapper element within the HTML markup by @mercihabam in #1403
- fix(cypht): error ocurred when attempting microsoft's email oauth2 setup by @christer77 in #1348
- feat(frontend/backend): add support for Exchange Web Services (EWS) by @kroky in #1278
- fix(other): jmap quota display by @Shadow243 in #1296
- fix(frontend): some fixes to the message list display on mobile, the prev & next links, the content title, and the navigation by @mercihabam in #1406
- fix(other): fix anchor going to new server section for IMAP/SMTP by @josaphatim in #1391
- Add possibility to pass compose subject in url by @josaphatim in #1312
- refactor(other): extract database extension checks into reusable function by @Baraka24 in #1390
- fix(frontend/backend): restore the contacts autocompletion on the compose form feature in the working state and ensure the reply to a message action does not include css styles in the body by @mercihabam in #1410
- fix(backend): ensure the load_cache() method is accessible via mailbox object returned by Hm_Mailbox by @mercihabam in #1412
- fix(frontend): move from the legacy pagination links to a new component with enhanced user experience, and fix the pagination action, which previously responded with some latency by @mercihabam in #1413
- refactor(frontend/backend): remove the remnants of the legacy page links by @mercihabam in #1414
- feat(frontend/backend): paginate the unified view of message lists by @mercihabam in #1415
- fix(frontend/backend): suppress php warnings for the combined message list view and correct the search event triggered on the search input for each mailbox by @mercihabam in #1418
- fix(other): correcting links and typo by @Baraka24 in #1419
- feat(other): add All Snoozed button and Icon to left menu by @DKing2222 in #1375
- style(docker): use heredoc syntax for installphase in Dockerfile by @Lillecarl in #1421
- fix(other): screen email: fix adding to trust contact while the email is blo… by @christer77 in #1265
- fix(docker): missing ext-soap error on docker image building by @IrAlfred in #1423
- fix(frontend/backend): duplicate sort filter for the combined sent folder, message forwarding, and flagged content display by @mercihabam in #1424
- fix(frontend): the info page missing the servers statuses, search results not showing up & the navigation partially hiding the pagination component by @mercihabam in #1426
- fix(other): display commited date instead of the pull request creation date by @Baraka24 in #1417
- fix(other): subfolders not appearing in IMAP accounts with XEAMS mail server by @IrAlfred in #1427
- fix(backend): prevent special characters from being converted into their corresponding HTML entities in a composed text message by @mercihabam in #1432
- feat(other): nightly-image by @SKB-TECH in #1325
- fix(other): daily-image by @JohnXLivingston in #1433
- refactor(backend): db session locking to support exclusive mode by @Shadow243 in #1380
- fix(frontend): cannot remove attachments when forwarding an email by @mercihabam in #1437
- feat(frontend/backend): ensure that the sort fields include the sent and arrival date across all message lists by @mercihabam in #1438
- fix(backend): search since a date did not respect global choice of sort date field by @kroky in #1440
- refactor(frontend/backend): make requests in parallel, add a spinner while info is still being fetched by @bienvenuushindi in #1428
- fix(backend): the sort field for combined pages should default to "arrival" by @mercihabam in #1441
- fix(backend): attachments with PDF files (and probably other subtypes under the application type) by @mercihabam in #1442
- refactor(frontend): improved notification messages system by @josaphatim in #1446
- fix(backend): jmap config with smtp server by @Shadow243 in #1425
- fix(frontend): stop executing compose page handlers when logged out by @josaphatim in #1448
- feat(backend): add scheduled send functionality by @amaninyumu1 in #1091
- fix(frontend/backend): address all blocking issues by @mercihabam in #1443
- perf(backend): concurrently load messages for combined lists using child processes by @mercihabam in #1452
- fix(backend): restrict the message_list worker access to CLI only by @mercihabam in #1453
- fix(backend): add a few options to the messages_list worker allowing to define all required constants and have all required scripts imported by @mercihabam in #1457
- feat(backend): add a preference to toggle between fetching combined pages concurrently using child processes or sequentially on the main process by @mercihabam in #1459
- fix(other): fix null reference error when smtp account has no mailbox attached. by @indridieinarsson in #1451
- fix(backend): the child processes setting should be enabled by default by @mercihabam in #1461
- feat(backend): call function authed on false and server error by @amaninyumu1 in #1454
- feat(backend): sieve manager packages to 1.0.9 by @Shadow243 in #1456
- fix(backend): add database folder to docker build script by @indridieinarsson in #1464
- fix(frontend): adjust button alignment on small screens by @amaninyumu1 in #1445
- fix(backend): manually reconnect cache services after deserialize in message worker by @indridieinarsson in #1465
- fix(frontend): get_list_block_sieve function not callable if sievefilters module is not enabled by @christer77 in #1435
- fix(other): gmail messages not shown by @christer77 in #1409
- docs(other): remove duplication for installation notes by @Baraka24 in #1473
- fix(other): php deprecated: Hm_Repository::initRepo() by @christer77 in #1472
- fix(other): correct environment variable usage in app.php by @Baraka24 in #1469
- fix(other): php warning: undefined array key 'list_page' by @christer77 in #1436
- fix(backend): use the request inputs directly for the search handler instead of retrieving the necessary keys from the session object, which sometimes loses data in integrated third-party software by @mercihabam in #1477
- feat(other): add Junk button when Junk folder is configured for an IMAP Server by @Baraka24 in #1420
- fix(backend): improve error handling in message-list.php sub-process by @indridieinarsson in #1470
- fix(frontend): added missing autocomplete attributes by @josaphatim in #1485
- fix(other): save settings displaying wrong message by @IrAlfred in #1447
- fix(backend): delete cached imap responses for servers that don't support SORT extension by @indridieinarsson in #1480
- fix(backend): update sieve manager to latest release by @Shadow243 in #1486
- fix(backend): strip commas from attachment filenames generated from email subjects by @mercihabam in #1488
- chore(backend): alphabetically reorder packages in composer.json by @mercihabam in #1489
- feat(other): add HTML email sanitizer to remove external background images by @Baraka24 in #1491
- fix(other): reviewing rename action on folders by @christer77 in #1493
- fix(other): display a blank page for an email in a tracker for tiki-webmail by @IrAlfred in #1496
- fix(unit): upgrade h11 to version 0.16.0 by @Shadow243 in #1503
- fix(frontend): use Clearer User Feedback by @Baraka24 in #1506
- fix(backend): improve alert message to include settings save reminder with HTML link by @Shadow243 in #1507
- fix(other): reviewing delete action on folders by @christer77 in #1494
- fix(backend): update league/commonmark to latest version released by @Shadow243 in #1508
- fix(backend): address potential security exploits in request parameters by @mercihabam in #1514
- fix(backend): sieve initialization by @kroky in #1518
- fix(backend): allow deletion of auto-created profiles when server is already deleted by @Yannick243 in #1517
- fix(frontend/backend): dynamic id on message_list page by @Shadow243 in #1520
- refactor(backend): output the sent message uid and its imap server id when it has successfully saved by @mercihabam in #1521
- fix(docker): improve container shutdown reliability and speed by @Revisto in #1511
- fix(frontend): edit_filter actin not triggering modal by @Shadow243 in #1523
- fix(backend): expand_section test failing by @Shadow243 in #1525
- fix(backend): refactor selenium failing tests by @Shadow243 in #1526
- fix(backend): error Sieve: Invalid config host by @Shadow243 in #1524
- fix(frontend): web push notifications were not triggered anymore by @mercihabam in #1531
- refactor(backend): expose more message header fields (message-id & in-reply-to) to the client by @mercihabam in #1529
- fix(backend): fix release asset files to include dot files by @josaphatim in #1483
- refactor(backend): update mailbox list title when accessing Sent menu by @Shadow243 in #1533
- refactor(frontend): emit a 'message-loaded' event when the message view page setup is complete by @mercihabam in #1535
- refactor(frontend/backend): performance optimization by @kroky in #1530
- feat(backend): introduce DEBUG_LOG env var by @jonocodes in #1039
- fix logo in dark mode theme by @Shadow243 in #1538
- Fixed icons issues by @Shadow243 in #1537
- Fixed buttons misalignments and msg errors by @Shadow243 in #1539
- fix(backend): undefined variable id in hm-imap by @Shadow243 in #1547
- refactor(backend): update selenium tests by @Shadow243 in #1534
- fix(frontend/backend): prevent Sieve connection error when disabled in settings by @Shadow243 in #1490
- fix(backend): good_logout selenium test by @Shadow243 in #1548
- fix(docker): can't run with pgsql by @ljcbaby in #1542
- fix(backend): comment out expand_section test to prepare a separate P… by @Shadow243 in #1550
- refactor(frontend/backend): improve folder page by using default profile to auto-select server by @Shadow243 in #1549
- fix(frontend): shortcut refresh issue by adding redirect after update by @Shadow243 in #1536
- feat(frontend/backend): add snooze functionality toggle by @DKing2222 in #1528
- fix(backend): bulk import file links by @Shadow243 in #1554
- fix(backend): upgrade urllib3 to 2.5.0 by @Shadow243 in #1557
- refactor(frontend): improve attachment download handler with filename by @Yannick243 in #1559
- fix(backend): fix smtp/imap servers for fastmail by @josaphatim in #1560
- fix(frontend/backend): correct delete message by @josaphatim in #1564
- feat(backend): message redirect url sent_folder by @Shadow243 in #1566
- fix(frontend): improve move/copy email interaction by @Shadow243 in #1562
- fix(other): php warning: undefined array key 'x-profile-id' by @christer77 in #1484
- feat(backend): snooze dropdown not displaying by @Shadow243 in #1568
- fix(frontend): replace 'IMAP Server' label with 'Mail Account' to reflect multi-protocol support (IMAP, JMAP, EWS) by @Olivier-Kango in #1569
- fix(frontend/backend): block sender and screen email (dislike email) not working by @christer77 in #1504
- feat(docker): auto release image by tag by @ljcbaby in #1543
- fix(frontend): remove MIME boundaries and headers from body by @Shadow243 in #1563
- fix(frontend): make server status list responsive with loading indicators a… by @Shadow243 in #1573
- refactor(frontend): update mobile navigation and styling for improved… by @Grandi0z in #1572
- fix(docker): mapping log file to host: can start cypht container, but nginx exit by @SKB-TECH in #1575
- fix(frontend): saved search navigating with null value by @Shadow243 in #1576
- fix(frontend): unblock sender action, block domain action and edit behavior not working by @christer77 in #1571
- fix(backend): duplicated name attribute causing mail deletion error i… by @Shadow243 in #1578
- chore(other): update bacon-qr-code to use version 3+ by @camilevahviraki in #1579
- refactor(backend): upgrade ZBateson\MailMimeParser dependency by @bienvenuushindi in #1589
- feat(frontend/backend): add feature create default user profiles quickly by @christer77 in #1577
- feat(frontend): add a way to search through settings by @josaphatim in #1583
- fix(other): keep message identical while testing IMAP/SMTP server by @Baraka24 in #1584
- fix(frontend): insert pagination after message_table and not before by @Shadow243 in #1587
- fix(frontend): list the profiles whose number is greater than 0 in the block list by @christer77 in #1590
- fix(frontend): management of space and responsiveness for list controls by @christer77 in #1592
- fix(frontend): block list form col to full size by @Shadow243 in #1593
- feat(backend): servers count on servers page by @Shadow243 in #1567
- refactor(frontend): update mobile message view and styling for improved usability by @Grandi0z in #1574
- feat(frontend/backend): add enbale collect addresses while sending a mail by @Shadow243 in #1588
- fix(frontend): Prevent the duplication of footer buttons when reopening the modal by @christer77 in #1591
- fix(backend): ajax_list_block_sieve request no longer returns the list of blocked addresses by @christer77 in #1597
- style(frontend): changing loading page text label by @christer77 in #1598
- fix(backend): test failing with latest updates by @Shadow243 in #1596
- feat(frontend): introduce NProgress and Cypht custom spinner using Bootstrap5 by @Shadow243 in #1595
- fix(frontend): navigation event to be applied in cypht only by @Shadow243 in #1599
- fix(frontend): fully display the name of the filter in edit field (filter name) by @christer77 in #1600
- style(frontend): pgp settings:make public and private keys div clickable with cursor-pointer by @christer77 in #1602
- fix(backend): ldap authentication issues by @IrAlfred in #1603
- fix(frontend): sieve block domain: not send the server-id and reload page even if the request was not successful by @christer77 in #1605
- feat(docker): add multi-platform daily builds by @SKB-TECH in #1608
- fix(frontend): make profile_replyto optional by @Shadow243 in #1585
- fix(backend): add .htaccess security rules, root redirect, and sample… by @Shadow243 in #1607
- fix(backend): xdebug ini file location and remove COPY by @Shadow243 in #1609
- feat(frontend): add bottom and top pagination controls to email list view by @Yannick243 in #1611
- refactor(frontend): update message headers to use divs for improved layou… by @Grandi0z in #1612
- feat(other): fix HTML email sanitizer to remove external background images by @Baraka24 in #1581
- refactor(backend): improve error messages to be more usefull by @marcellintacite in #1610
- fix(frontend): bring back missing 'prev' and 'next' links on the message page and restore interactivity of the move and copy message buttons by @mercihabam in #1613
- fix(frontend): dynamically set logo based on theme in navigation bar by @Grandi0z in #1618
- fix(frontend): information about the event no longer appears in tiki-webmail by @christer77 in #1615
- fix(frontend): show meaningful message when email is already moved by @josaphatim in #1565
- fix(frontend): improve performance when visiting a message from the list view by @mercihabam in #1619
- fix(frontend): inaccurate unread count in browser title and missing subject as title when reading a message by @mercihabam in #1617
- fix(frontend): remove implicit background message headers output by @Shadow243 in #1621
- feat(docker): point docker-compose.yml to latest released docker image by @IrAlfred in #1625
- fix(frontend): submenu display issue by @Shadow243 in #1616
- fix(frontend): navigation not working on mobile by @Shadow243 in #1570
- fix(frontend): send correct page to Hm_MessagesStore while refreshing… by @Shadow243 in #1626
- fix(frontend): the read/unread action does not update the message list state, nor does opening a message update its read state by @mercihabam in #1628
- refactor(backend): Remove paragonie/random_compat for PHP 7+ native support by @bienvenuushindi in #1629
- fix(frontend): redesign edit draft button to make it more visible by @Shadow243 in #1586
- refactor(backend): drop legacy versions and update dependenciesfor PHP 8.1+ support by @bienvenuushindi in #1630
- fix(frontend): tweaks for the mobile version by @pom2ter in #1636
- fix(frontend): unflagged and flagged links on message page by @Shadow243 in #1627
- fix(frontend): js selectors-related regressions by @mercihabam in #1634
- fix(frontend): ensure background message list refresh requests use the current list_page query by @mercihabam in #1633
- fix(frontend): ensure that the move/copy popup is closable when clicking outside by @mercihabam in #1639
- refactor(frontend): update edit draft button layout for improved responsiveness by @Grandi0z in #1641
- refactor(frontend): update IMAP envelope display to use flexbox layout by @Grandi0z in #1640
- refactor(frontend): update header layout in github_parse_headers function for improved responsiveness by @Grandi0z in #1637
- fix(docker): fix MariaDB healthcheck auth warnings and remove obsolete version attribute by @IrAlfred in #1632
- fix(frontend): ensure that selected emails persist after periodic message list refresh, fixing misbehavior of copy/move actions by @mercihabam in #1643
- fix(frontend): restore move/copy actions on combined lists by @mercihabam in #1644
- fix(frontend/backend): avoid recursive, exhausting calls to get_folder_list_by_level; limit children count computation to folders with existing kids, and only when needed by @mercihabam in #1646
- fix(frontend): ensure that new messages are inserted in the right position in the list ordered chronologically by @mercihabam in #1649
- fix(frontend): update HTML structure for extra header buttons in mess… by @Shadow243 in #1650
- fix(frontend): better spacing for sidebar and messages by @pom2ter in #1653
- fix(frontend): adjust HTML structure for draft edit button alignment … by @Grandi0z in #1652
- fix(backend): exclude_auto_bcc causes some unrelated messages to disappear from the inbox by @mercihabam in #1651
- Update database.php - feat(backend): typo fix in documentation by @jeremiah in #1657
- fix(frontend): more tweaks to the mobile version by @pom2ter in #1656
- docs(other): improve how to contribute documentation by @IrAlfred in #1660
- fix(frontend): resolve Cash.js SyntaxError by using .first() method by @Shadow243 in #1662
- fix(backend): delete profile after imap or smtp server removed to avoid orphaned profiles by @Shadow243 in #1622
- fix(frontend): enhance NUX development news display with responsive table by @Grandi0z in #1664
- fix(frontend): redirect to the login screen when the session has expired or has been invalidated by @mercihabam in #1648
- fix(frontend): redirect to next message or flagged list when unflagging current message of flagged list by @mercihabam in #1667
- fix(frontend): change msg_actions to look like buttons by @pom2ter in #1642
- refactor(frontend): update wordpress header layout for improved styling and responsiveness by @Grandi0z in #1645
- refactor(frontend): enhance image display and white space handling in IMAP module by @Grandi0z in #1665
- fix(frontend): restore sort operation on available rows for combined lists instead of fetching and displaying different content from server by @mercihabam in #1668
- fix(backend): use a more useful error message when performing message action and no special folder is configured by @mercihabam in #1669
- fix(frontend): message store fails to remove non-existent rows from combined lists on update by @mercihabam in #1666
- fix(frontend): css adjustments for messages by @pom2ter in #1678
- fix(frontend): keep track keep track of current page number when sorting, and display correct sort value when reloading by @mercihabam in #1670
- fix(backend): sievefilters sieve_can_delete_folder handler registration for I… by @Shadow243 in #1674
- fix(frontend/backend): remove junked messages from list after successful action and exclude irrelevant msg controls per list to prevent double actions by @mercihabam in #1676
- fix(frontend): prevent overwrite of the messages list when it already has content, thus preserving row selection by @mercihabam in #1677
- fix(frontend): avoid showing empty state while other lists are still loading by @mercihabam in #1675
- fix(frontend): remove unnecessary horizontal scrollbar on message source page layout, clear console errors, and stop unnecessary background requests causing consistent logouts by @mercihabam in #1680
- fix(unit): update expected output for content_start test to include i… by @Shadow243 in #1683
- feat(unit): add GitHub Actions workflow for coverage reporting by @Shadow243 in #1682
- fix(frontend): collapsed sidebar layout appears slightly broken by @mercihabam in #1687
- fix(frontend): adjust move/copy dropdown content alignment and fix expand action not working on move action when copy dropdown was not opened beforehand by @mercihabam in #1684
- fix(frontend): cached messages do not update flag state when flag/unflag is performed via the list by @mercihabam in #1686
- fix(unit): replace symlink with file copy to resolve nginx permissions in Selenium setup by @Shadow243 in #1685
- refactor(frontend): remove spinner display logic from message store an… by @Shadow243 in #1688
- fix(other): add database connection checks and error handling by @IrAlfred in #1691
- fix(unit): update loading indicator ID in wait condition for Sele… by @Shadow243 in #1692
- fix(frontend): css adjustments to search and actions buttons by @pom2ter in #1694
- fix(backend): fix LDAP address book and authentication issues by @IrAlfred in #1673
- fix(frontend): enhance focus management for compose page based on email scenario by @Grandi0z in #1700
- fix(frontend): css search filters fix by @pom2ter in #1702
- fix(other): remove envelope-to address exclusion from reply-all logic by @IrAlfred in #1705
- fix(frontend): empty state renders a few ms before responses are processed, and in some cases some responses remain unprocessed due to a cleared timeout by @mercihabam in #1698
- fix(other): remove mistaken lock column from hm_user_session schema by @Baraka24 in #1707
- fix(frontend/backend): advanced search not displaying any messages by @IrAlfred in #1693
- fix(frontend): rename edit icon to bi-pencil-fill by @Shadow243 in #1712
- fix(ui): update dropdown button styles for snooze and tags dropdowns by @Shadow243 in #1713
- fix(frontend): prevent multiplication of "include subfolders" checkbox on advanced search page by @mercihabam in #1715
- fix(frontend): prevent archiving already archived messages by @christer77 in #1623
- fix(backend): fix EWS issues and enhance interoperability by @kambereBr in #1635
- refactor(frontend): improve contact list display with tooltips and responsive styles by @Grandi0z in #1690
- fix(other): display messages of type event calendar with ews by @Baraka24 in #1699
- fix(frontend): css: email folder list adjustments by @pom2ter in #1718
- fix(frontend): exclude external domains from internal navigation by @Shadow243 in #1720
- fix(unit): selenium dom selection fixes by @kroky in #1721
- fix(unit): simplify calendar title assertions and enhance server set… by @Shadow243 in #1724
- feat(frontend): add Experimental badge to snooze setting label by @DKing2222 in #1722
- feat(other): preserve user settings during password update by @IrAlfred in #1719
- fix(frontend): tooltips appears behind content by @pom2ter in #1729
- fix(backend): clear session cache for IMAP folders when enabled on load … by @Shadow243 in #1727
- fix(module/core): add TLS 1.3 support to fix connections with modern … by @Danelif in #1732
- refactor(frontend): move contact css to modules by @Shadow243 in #1734
- fix(backend): exclude auto-bcc'd messages php-side, preventing inaccurate filter results from IMAP, which does not seem to perform negative exact header match by @mercihabam in #1733
- fix(backend): undefined array key 'number_of_children' when expanding folders by @mercihabam in #1735
- fix(frontend): mobile responsiveness ajustments by @pom2ter in #1731
- fix(frontend): close other dropdowns when one is opened by @camilevahviraki in #1741
- fix(other): infinite refresh loop after logout being on mailbox folder by @christer77 in #1742
- fix(frontend): event description floating out of page on long texts and delete event button incorrectly triggered by @mercihabam in #1744
- fix(frontend): searching and filtering in folder page does not reset the pagination counter by @mercihabam in #1745
- fix(frontend/backend): reload folders state when adding/deleting/editing tags by @mercihabam in #1746
- feat(frontend): add specific notice for scheduled messages by @christer77 in #1747
- fix(frontend/backend): show active tags checked when displaying a message and ensure that unchecking the input, removes the tag from the message by @mercihabam in #1749
- feat(other): improve feedback on user creation by @IrAlfred in #1748
- fix(backend): ews mailbox fails to load when only one item is present by @mercihabam in #1751
- fix(frontend): all tag folders showing the same copy of message list by @mercihabam in #1752
- fix(frontend): last new row isn't appended to the bottom of the message list by @mercihabam in #1753
- fix(frontend/backend): some servers do not support delivery status notification, so show a notice to users so that they don't expect any delivery receipt by @mercihabam in #1754
- refactor(backend): harmonize the content of third-party version numbe… by @bienvenuushindi in #1723
- fix(frontend): ensure that
replace_cursor_positionfunction is properly called in pageHandler, fixing missing new lines at the beginning of the textarea in reply and forward mode by @mercihabam in #1756 - fix(frontend/backend): do not show a 'save settings' link in the notice shown when a server is added while the
savepage is disabled by @mercihabam in #1757 - fix(frontend): prevent page handlers from executing when user is logged out, and logout users when ajax requests fail with an invalid session response by @mercihabam in #1758
- fix(frontend): reduce size of sidebar icons by @pom2ter in #1759
- fix: Change AOL SMTP port from 587 to 465 by @StevenMassaro in #1762
New Contributors
- @DKing2222 made their first contribution in #1326
- @Lillecarl made their first contribution in #1421
- @SKB-TECH made their first contribution in #1325
- @JohnXLivingston made their first contribution in #1433
- @bienvenuushindi made their first contribution in #1428
- @ljcbaby made their first contribution in #1542
- @Olivier-Kango made their first contribution in #1569
- @Grandi0z made their first contribution in #1572
- @camilevahviraki made their first contribution in #1579
- @marcellintacite made their first contribution in #1610
- @pom2ter made their first contribution in #1636
- @StevenMassaro made their first contribution in #1762
Full Changelog: v2.4.2...v2.5.0