diff --git a/.docker/release/files/usr/local/include/application.ini b/.docker/release/files/usr/local/include/application.ini index bce5d0f3e..2a8958eea 100644 --- a/.docker/release/files/usr/local/include/application.ini +++ b/.docker/release/files/usr/local/include/application.ini @@ -305,5 +305,5 @@ dev_email = "" dev_password = "" [version] -current = "2.24.4" +current = "2.24.5" saved = "Sun, 18 Dec 2022 22:10:48 +0000" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d0457f06..2cd8494e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,48 @@ +## 2.24.5 – 2023-01-12 + +## Added +- Support for search criterias ON, SENTON, SENTSINCE and SENTBEFORE +- New 'forward as attachment' glyph +- NC integration app metadata: add links to admin and dev docs by @p-bo + [#820](https://github.com/the-djmaze/snappymail/pull/820) +- Clicking on messagelist grouped date/from searches on that date/from + [#815](https://github.com/the-djmaze/snappymail/pull/815) +- Nextcloud Improved file picker layout + [#825](https://github.com/the-djmaze/snappymail/pull/825) + +## Changed +- Move release.php to cli/release.php +- Moved sort options "FROM" direct below "DATE" for better understanding +- Added DAV path error to log for + [#822](https://github.com/the-djmaze/snappymail/pull/822) +- Resolve layout issues by changing from `fixed` to `relative` + [#686](https://github.com/the-djmaze/snappymail/pull/686) +- Cache handling of messagelist changed due to etag issues +- Improve german and italian translation by @cm-schl + [#846](https://github.com/the-djmaze/snappymail/pull/846) + +## Fixed +- Searching on Nextcloud search #787 + [#787](https://github.com/the-djmaze/snappymail/pull/787) +- Workaround another Nextcloud disallowed .htaccess + [#790](https://github.com/the-djmaze/snappymail/pull/790) +- Compact display of folders in nextcloud by @makoehr + [#824](https://github.com/the-djmaze/snappymail/pull/824) +- Admin -> Contacts PDO test failed when using different AddressBookInterface +- KolabAddressBook errors +- Forgot debug js/css setting change in Nextcloud +- Typed property MailSo\Mail\MessageListParams::$sSearch must not be accessed before initialization +- Unable to change font/text colour when composing message using Safari + [#826](https://github.com/the-djmaze/snappymail/pull/826) +- auth_logging failed + [#489](https://github.com/the-djmaze/snappymail/pull/489) +- Class "RainLoop\Actions\Notifications" not found + [#839](https://github.com/the-djmaze/snappymail/pull/839) + +### Removed +- 'set-version' argument for release.php + + ## 2.24.4 – 2022-12-30 ## Added diff --git a/README.md b/README.md index 09d9b3059..3420609ac 100644 --- a/README.md +++ b/README.md @@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail |js/* |RainLoop |Snappy | |--------------- |--------: |--------: | -|admin.js |2.170.153 | 82.149 | -|app.js |4.207.787 | 412.196 | +|admin.js |2.170.153 | 82.218 | +|app.js |4.207.787 | 412.596 | |boot.js | 868.735 | 2.427 | -|libs.js | 658.812 | 191.117 | -|sieve.js | 0 | 86.018 | +|libs.js | 658.812 | 191.301 | +|sieve.js | 0 | 85.960 | |polyfills.js | 334.608 | 0 | |serviceworker.js | 0 | 285 | -|TOTAL |8.240.095 | 774.192 | +|TOTAL |8.240.095 | 774.787 | |js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli | |--------------- |--------: |--------: |------: |------: |--------: |--------: | -|admin.min.js | 256.831 | 40.838 | 73.606 | 13.444 | 60.877 | 12.045 | -|app.min.js | 515.367 | 189.971 |139.456 | 63.463 |110.485 | 54.430 | +|admin.min.js | 256.831 | 40.756 | 73.606 | 13.419 | 60.877 | 12.018 | +|app.min.js | 515.367 | 190.149 |139.456 | 63.499 |110.485 | 54.471 | |boot.min.js | 84.659 | 1.518 | 26.998 | 919 | 23.643 | 747 | -|libs.min.js | 584.772 | 90.689 |180.901 | 33.597 |155.182 | 30.118 | -|sieve.min.js | 0 | 41.909 | 0 | 10.476 | 0 | 9.461 | +|libs.min.js | 584.772 | 90.768 |180.901 | 33.615 |155.182 | 30.170 | +|sieve.min.js | 0 | 41.905 | 0 | 10.477 | 0 | 9.456 | |polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 | -|TOTAL user |1.217.635 | 282.178 |358.761 | 97.979 |299.485 | 85.295 | -|TOTAL user+sieve |1.217.635 | 324.087 |358.761 |108.455 |299.485 | 94.756 | -|TOTAL admin | 959.099 | 133.045 |292.911 | 47.960 |249.877 | 42.910 | +|TOTAL user |1.217.635 | 282.435 |358.761 | 98.033 |299.485 | 85.388 | +|TOTAL user+sieve |1.217.635 | 324.340 |358.761 |108.510 |299.485 | 94.844 | +|TOTAL admin | 959.099 | 133.042 |292.911 | 47.953 |249.877 | 42.935 | For a user its around 70% smaller and faster than traditional RainLoop. @@ -189,12 +189,12 @@ For a user its around 70% smaller and faster than traditional RainLoop. |css/* |RainLoop |Snappy |RL gzip |SM gzip |SM brotli | |------------ |-------: |------: |------: |------: |--------: | -|app.css | 340.331 | 82.646 | 46.946 | 17.143 | 14.703 | -|app.min.css | 274.947 | 66.615 | 39.647 | 15.115 | 13.255 | +|app.css | 340.331 | 82.794 | 46.946 | 17.185 | 14.735 | +|app.min.css | 274.947 | 66.702 | 39.647 | 15.146 | 13.290 | |boot.css | | 1.326 | | 664 | 545 | |boot.min.css | | 1.071 | | 590 | 474 | -|admin.css | | 30.277 | | 6.901 | 5.999 | -|admin.min.css | | 24.524 | | 6.238 | 5.503 | +|admin.css | | 30.281 | | 6.906 | 5.999 | +|admin.min.css | | 24.493 | | 6.233 | 5.501 | ### PGP RainLoop uses the old OpenPGP.js v2 diff --git a/build/plugins.php b/build/plugins.php index ab1b5b64d..bf850b802 100755 --- a/build/plugins.php +++ b/build/plugins.php @@ -70,6 +70,7 @@ foreach (glob(ROOT_DIR . '/plugins/*', GLOB_NOSORT | GLOB_ONLYDIR) as $dir) { $tar->compress(Phar::GZ); unlink($tar_destination); rename("{$tar_destination}.gz", $tgz_destination); +/* if (Phar::canWrite()) { $phar_destination = PLUGINS_DEST_DIR . "/{$name}.phar"; @unlink($phar_destination); @@ -79,6 +80,7 @@ foreach (glob(ROOT_DIR . '/plugins/*', GLOB_NOSORT | GLOB_ONLYDIR) as $dir) { unlink($phar_destination); rename("{$phar_destination}.gz", $phar_destination); } +*/ if (isset($options['sign'])) { passthru('gpg --local-user 1016E47079145542F8BA133548208BA13290F3EB --armor --detach-sign '.escapeshellarg($tgz_destination), $return_var); $manifest_item['pgp_sig'] = trim(preg_replace('/-----(BEGIN|END) PGP SIGNATURE-----/', '', file_get_contents($tgz_destination.'.asc'))); diff --git a/cli/release.php b/cli/release.php index 6ac753d24..a759bf8ae 100755 --- a/cli/release.php +++ b/cli/release.php @@ -3,7 +3,7 @@ define('ROOT_DIR', dirname(__DIR__)); chdir(ROOT_DIR); -$options = getopt('', ['aur','docker','plugins','skip-gulp','debian','nextcloud','owncloud','sign']); +$options = getopt('', ['aur','docker','plugins','skip-gulp','debian','nextcloud','owncloud','cpanel','sign']); if (isset($options['plugins'])) { require(ROOT_DIR . '/build/plugins.php'); diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md index 396d1936b..fceaddb2c 100644 --- a/integrations/cloudron/DESCRIPTION.md +++ b/integrations/cloudron/DESCRIPTION.md @@ -1,4 +1,4 @@ -This app packages SnappyMail 2.24.4. +This app packages SnappyMail 2.24.5. SnappyMail is a simple, modern, lightweight & fast web-based email client. diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile index 960643234..6195ceb9e 100644 --- a/integrations/cloudron/Dockerfile +++ b/integrations/cloudron/Dockerfile @@ -4,7 +4,7 @@ RUN mkdir -p /app/code WORKDIR /app/code # If you change the extraction below, be sure to test on scaleway -VERSION=2.24.4 +VERSION=2.24.5 RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \ unzip /tmp/snappymail.zip -d /app/code && \ rm /tmp/snappymail.zip && \ diff --git a/integrations/nextcloud/snappymail/appinfo/info.xml b/integrations/nextcloud/snappymail/appinfo/info.xml index 48def463a..e6f5c6fd6 100644 --- a/integrations/nextcloud/snappymail/appinfo/info.xml +++ b/integrations/nextcloud/snappymail/appinfo/info.xml @@ -3,7 +3,7 @@ snappymail SnappyMail SnappyMail Webmail - 2.24.4 + 2.24.5 agpl SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli { - setIdenticon(msg.from[0], fn); + msg.from?.[0] && setIdenticon(msg.from[0], fn); if (rl.pluginSettingsGet('avatars', 'delay')) { queue.push([msg, fn]); runQueue(); @@ -75,31 +75,33 @@ runQueue = (() => { let item = queue.shift(); while (item) { - let url = getAvatar(item[0]), - uid = getAvatarUid(item[0]); - if (url) { - item[1](url); - item = queue.shift(); - } else if (!avatars.has(uid)) { - let from = item[0].from[0]; - rl.pluginRemoteRequest((iError, data) => { - if (!iError && data?.Result.type) { - url = `data:${data.Result.type};base64,${data.Result.data}`; - avatars.set(uid, url); - item[1](url); - } else { - avatars.set(uid, ''); - } - runQueue(); - }, 'Avatar', { - bimi: 'pass' == from.dkimStatus ? 1 : 0, - email: from.email - }); - break; - } else { - runQueue(); - break; + if (item[0].from) { + let url = getAvatar(item[0]), + uid = getAvatarUid(item[0]); + if (url) { + item[1](url); + item = queue.shift(); + continue; + } else if (!avatars.has(uid)) { + let from = item[0].from[0]; + rl.pluginRemoteRequest((iError, data) => { + if (!iError && data?.Result.type) { + url = `data:${data.Result.type};base64,${data.Result.data}`; + avatars.set(uid, url); + item[1](url); + } else { + avatars.set(uid, ''); + } + runQueue(); + }, 'Avatar', { + bimi: 'pass' == from.dkimStatus ? 1 : 0, + email: from.email + }); + break; + } } + runQueue(); + break; } }).debounce(1000); @@ -204,7 +206,7 @@ view.message.subscribe(msg => { view.viewUserPicVisible(false); if (msg) { - let url = getAvatar(msg), + let url = msg.from?.[0] ? getAvatar(msg) : 0, fn = url => { view.viewUserPic(url); view.viewUserPicVisible(true); diff --git a/snappymail/v/0.0.0/app/templates/Views/Admin/AdminSettingsAbout.html b/snappymail/v/0.0.0/app/templates/Views/Admin/AdminSettingsAbout.html index 8264d22c8..656120ba7 100644 --- a/snappymail/v/0.0.0/app/templates/Views/Admin/AdminSettingsAbout.html +++ b/snappymail/v/0.0.0/app/templates/Views/Admin/AdminSettingsAbout.html @@ -4,7 +4,7 @@
- 2022 © + 2023 ©
https://snappymail.eu/