mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 07:35:55 +08:00
v2.24.5
This commit is contained in:
parent
a2336be273
commit
686fa20945
|
@ -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"
|
||||
|
|
45
CHANGELOG.md
45
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
|
||||
|
|
32
README.md
32
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
|
||||
|
|
|
@ -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')));
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
This app packages SnappyMail <upstream>2.24.4</upstream>.
|
||||
This app packages SnappyMail <upstream>2.24.5</upstream>.
|
||||
|
||||
SnappyMail is a simple, modern, lightweight & fast web-based email client.
|
||||
|
||||
|
|
|
@ -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 && \
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<id>snappymail</id>
|
||||
<name>SnappyMail</name>
|
||||
<summary>SnappyMail Webmail</summary>
|
||||
<version>2.24.4</version>
|
||||
<version>2.24.5</version>
|
||||
<licence>agpl</licence>
|
||||
<author>SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli</author>
|
||||
<description><![CDATA[**Simple, modern, lightweight & fast web-based email client.**
|
||||
|
|
|
@ -20,7 +20,7 @@ return "SnappyMail Webmail is a browser-based multilingual IMAP client with an a
|
|||
# script_snappymail_versions()
|
||||
sub script_snappymail_versions
|
||||
{
|
||||
return ( "2.24.4" );
|
||||
return ( "2.24.5" );
|
||||
}
|
||||
|
||||
sub script_snappymail_version_desc
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"title": "SnappyMail",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"private": true,
|
||||
"version": "2.24.4",
|
||||
"version": "2.24.5",
|
||||
"homepage": "https://snappymail.eu",
|
||||
"author": {
|
||||
"name": "DJ Maze",
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
fn('data:image/svg+xml;base64,' + btoa(window.identiconSvg(hash, fromChars(from))))
|
||||
),
|
||||
addQueue = (msg, fn) => {
|
||||
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);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="span4">
|
||||
<div class="rl-logo"></div>
|
||||
<div>
|
||||
2022 © <span data-i18n="TAB_ABOUT/LABEL_ALL_RIGHTS_RESERVED"></span>
|
||||
2023 © <span data-i18n="TAB_ABOUT/LABEL_ALL_RIGHTS_RESERVED"></span>
|
||||
<br>
|
||||
<a class="g-ui-link" href="https://snappymail.eu/" target="_blank" style="padding-left: 0">https://snappymail.eu/</a>
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue