This commit is contained in:
the-djmaze 2023-02-06 11:51:41 +01:00
parent 7c090ee775
commit 4f7f713046
11 changed files with 68 additions and 27 deletions

View file

@ -316,5 +316,5 @@ dev_email = ""
dev_password = "" dev_password = ""
[version] [version]
current = "2.25.3" current = "2.25.4"
saved = "Sun, 18 Dec 2022 22:10:48 +0000" saved = "Sun, 18 Dec 2022 22:10:48 +0000"

View file

@ -1,3 +1,43 @@
## 2.25.4 2023-02-06
## Added
- message maximum quoted text level for speed.
[#902](https://github.com/the-djmaze/snappymail/pull/902)
- LoveDark Theme by @TheCuteFoxxy
[#913](https://github.com/the-djmaze/snappymail/pull/913)
## Changed
- Moved pluginEnable() to \SnappyMail\Repository::enablePackage()
- Updrate French language by @hguilbert
- Cleanup material-design checkbox
- Some style change for settings panels
- Some MailMessageView styling
- Disabled blockquotes height calculation for
[#902](https://github.com/the-djmaze/snappymail/pull/902)
- Enhance Add domain dialog
[#916](https://github.com/the-djmaze/snappymail/pull/916)
## Fixed
- Fixed arrows in thread view while scrolling
[#908](https://github.com/the-djmaze/snappymail/pull/908)
- CSS btn-thin were too high
- Whitelist to show images directly
[#201](https://github.com/the-djmaze/snappymail/pull/201)
- MailSo\Base\Http::GetHost(): Return value must be of type string
[#910](https://github.com/the-djmaze/snappymail/pull/910)
- Nextcloud undefined variable $sUser
[#915](https://github.com/the-djmaze/snappymail/pull/915)
- Hopefull improved styling for Firefox mobile fixes
- Scroll display error
[#912](https://github.com/the-djmaze/snappymail/pull/912)
- Autofocus was triggered when view resized
- Better solution for Settings Page is bigger than the Account Page
[#897](https://github.com/the-djmaze/snappymail/pull/897)
### Removed
- $bUrlEncode as it was always false
## 2.25.3 2023-02-03 ## 2.25.3 2023-02-03
## Added ## Added

View file

@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail
|js/* |RainLoop |Snappy | |js/* |RainLoop |Snappy |
|--------------- |--------: |--------: | |--------------- |--------: |--------: |
|admin.js |2.170.153 | 81.572 | |admin.js |2.170.153 | 81.589 |
|app.js |4.207.787 | 415.364 | |app.js |4.207.787 | 415.987 |
|boot.js | 868.735 | 2.711 | |boot.js | 868.735 | 2.711 |
|libs.js | 658.812 | 192.392 | |libs.js | 658.812 | 192.392 |
|sieve.js | 0 | 85.597 | |sieve.js | 0 | 85.597 |
|polyfills.js | 334.608 | 0 | |polyfills.js | 334.608 | 0 |
|serviceworker.js | 0 | 285 | |serviceworker.js | 0 | 285 |
|TOTAL |8.240.095 | 777.921 | |TOTAL |8.240.095 | 778.561 |
|js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli | |js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli |
|--------------- |--------: |--------: |------: |------: |--------: |--------: | |--------------- |--------: |--------: |------: |------: |--------: |--------: |
|admin.min.js | 256.831 | 40.301 | 73.606 | 13.336 | 60.877 | 11.973 | |admin.min.js | 256.831 | 40.319 | 73.606 | 13.343 | 60.877 | 11.970 |
|app.min.js | 515.367 | 191.465 |139.456 | 64.051 |110.485 | 54.830 | |app.min.js | 515.367 | 191.740 |139.456 | 64.135 |110.485 | 54.920 |
|boot.min.js | 84.659 | 1.600 | 26.998 | 940 | 23.643 | 767 | |boot.min.js | 84.659 | 1.600 | 26.998 | 940 | 23.643 | 767 |
|libs.min.js | 584.772 | 91.434 |180.901 | 33.893 |155.182 | 30.383 | |libs.min.js | 584.772 | 91.434 |180.901 | 33.893 |155.182 | 30.383 |
|sieve.min.js | 0 | 41.566 | 0 | 10.427 | 0 | 9.413 | |sieve.min.js | 0 | 41.566 | 0 | 10.427 | 0 | 9.413 |
|polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 | |polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
|TOTAL user |1.217.635 | 284.499 |358.761 | 98.884 |299.485 | 85.980 | |TOTAL user |1.217.635 | 284.774 |358.761 | 98.968 |299.485 | 86.070 |
|TOTAL user+sieve |1.217.635 | 326.065 |358.761 |109.311 |299.485 | 95.393 | |TOTAL user+sieve |1.217.635 | 326.340 |358.761 |109.395 |299.485 | 95.483 |
|TOTAL admin | 959.099 | 133.335 |292.911 | 48.169 |249.877 | 43.123 | |TOTAL admin | 959.099 | 133.353 |292.911 | 48.176 |249.877 | 43.120 |
For a user its around 70% smaller and faster than traditional RainLoop. 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 | |css/* |RainLoop |Snappy |RL gzip |SM gzip |SM brotli |
|------------ |-------: |------: |------: |------: |--------: | |------------ |-------: |------: |------: |------: |--------: |
|app.css | 340.331 | 82.363 | 46.946 | 17.096 | 14.699 | |app.css | 340.331 | 82.190 | 46.946 | 17.063 | 14.669 |
|app.min.css | 274.947 | 66.384 | 39.647 | 15.084 | 13.224 | |app.min.css | 274.947 | 66.363 | 39.647 | 15.092 | 13.246 |
|boot.css | | 1.326 | | 664 | 545 | |boot.css | | 1.326 | | 664 | 545 |
|boot.min.css | | 1.071 | | 590 | 474 | |boot.min.css | | 1.071 | | 590 | 474 |
|admin.css | | 30.447 | | 6.973 | 6.071 | |admin.css | | 30.535 | | 6.980 | 6.091 |
|admin.min.css | | 24.582 | | 6.258 | 5.526 | |admin.min.css | | 24.733 | | 6.336 | 5.587 |
### PGP ### PGP
RainLoop uses the old OpenPGP.js v2 RainLoop uses the old OpenPGP.js v2

View file

@ -1,4 +1,4 @@
This app packages SnappyMail <upstream>2.25.3</upstream>. This app packages SnappyMail <upstream>2.25.4</upstream>.
SnappyMail is a simple, modern, lightweight & fast web-based email client. SnappyMail is a simple, modern, lightweight & fast web-based email client.

View file

@ -4,7 +4,7 @@ RUN mkdir -p /app/code
WORKDIR /app/code WORKDIR /app/code
# If you change the extraction below, be sure to test on scaleway # If you change the extraction below, be sure to test on scaleway
VERSION=2.25.3 VERSION=2.25.4
RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \ 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 && \ unzip /tmp/snappymail.zip -d /app/code && \
rm /tmp/snappymail.zip && \ rm /tmp/snappymail.zip && \

View file

@ -3,7 +3,7 @@
<id>snappymail</id> <id>snappymail</id>
<name>SnappyMail</name> <name>SnappyMail</name>
<summary>SnappyMail Webmail</summary> <summary>SnappyMail Webmail</summary>
<version>2.25.3</version> <version>2.25.4</version>
<licence>agpl</licence> <licence>agpl</licence>
<author>SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli</author> <author>SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli</author>
<description><![CDATA[**Simple, modern, lightweight & fast web-based email client.** <description><![CDATA[**Simple, modern, lightweight & fast web-based email client.**

View file

@ -20,7 +20,7 @@ return "SnappyMail Webmail is a browser-based multilingual IMAP client with an a
# script_snappymail_versions() # script_snappymail_versions()
sub script_snappymail_versions sub script_snappymail_versions
{ {
return ( "2.25.3" ); return ( "2.25.4" );
} }
sub script_snappymail_version_desc sub script_snappymail_version_desc

View file

@ -3,7 +3,7 @@
"title": "SnappyMail", "title": "SnappyMail",
"description": "Simple, modern & fast web-based email client", "description": "Simple, modern & fast web-based email client",
"private": true, "private": true,
"version": "2.25.3", "version": "2.25.4",
"homepage": "https://snappymail.eu", "homepage": "https://snappymail.eu",
"author": { "author": {
"name": "DJ Maze", "name": "DJ Maze",

View file

@ -31,7 +31,11 @@ class DemoStorage extends \RainLoop\Providers\Storage\FileStorage
} }
} }
$sDataPath .= '/' . \MailSo\Base\Utils::SecureFileName(\RainLoop\Utils::GetConnectionToken()); // $_COOKIE['smtoken']
if (empty($_COOKIE['smctoken'])) {
\SnappyMail\Cookies::set('smctoken', \base64_encode(\random_bytes(16)), 0, false);
}
$sDataPath .= '/' . \MailSo\Base\Utils::SecureFileName($_COOKIE['smctoken']);
if (!\is_dir($sDataPath) && \mkdir($sDataPath, 0700, true)) { if (!\is_dir($sDataPath) && \mkdir($sDataPath, 0700, true)) {
\file_put_contents("{$sDataPath}/settings",'{"RemoveColors":true,"ListInlineAttachments":true}'); \file_put_contents("{$sDataPath}/settings",'{"RemoveColors":true,"ListInlineAttachments":true}');
if (\mkdir($sDataPath.'/.gnupg/private-keys-v1.d', 0700, true)) { if (\mkdir($sDataPath.'/.gnupg/private-keys-v1.d', 0700, true)) {

View file

@ -4,9 +4,9 @@ class LoginOverridePlugin extends \RainLoop\Plugins\AbstractPlugin
{ {
const const
NAME = 'Login Override', NAME = 'Login Override',
VERSION = '2.0', VERSION = '2.1',
RELEASE = '2023-02-01', RELEASE = '2023-02-01',
REQUIRED = '2.25.2', REQUIRED = '2.25.3',
CATEGORY = 'Filters', CATEGORY = 'Filters',
DESCRIPTION = 'Override IMAP/SMTP login credentials for specific users.'; DESCRIPTION = 'Override IMAP/SMTP login credentials for specific users.';

View file

@ -5,17 +5,14 @@ if (defined('APP_PLUGINS_PATH') && !empty($_ENV['CPANEL']) && !is_dir(APP_PLUGIN
$asApi = !empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']); $asApi = !empty($_ENV['SNAPPYMAIL_INCLUDE_AS_API']);
$_ENV['SNAPPYMAIL_INCLUDE_AS_API'] = true; $_ENV['SNAPPYMAIL_INCLUDE_AS_API'] = true;
\SnappyMail\Repository::installPackage('plugin', 'login-remote');
$aList = \SnappyMail\Repository::getEnabledPackagesNames();
$aList[] = 'login-remote';
$oConfig = \RainLoop\Api::Config(); $oConfig = \RainLoop\Api::Config();
$oConfig->Set('plugins', 'enable', true); $oConfig->Set('plugins', 'enable', true);
$oConfig->Set('plugins', 'enabled_list', \implode(',', \array_unique($aList)));
$oConfig->Set('login', 'default_domain', 'cpanel'); $oConfig->Set('login', 'default_domain', 'cpanel');
$oConfig->Set('logs', 'path', $_ENV['HOME'] . '/logs/snappymail'); $oConfig->Set('logs', 'path', $_ENV['HOME'] . '/logs/snappymail');
$oConfig->Set('cache', 'path', $_ENV['TMPDIR'] . '/snappymail'); $oConfig->Set('cache', 'path', $_ENV['TMPDIR'] . '/snappymail');
$oConfig->Save();
\SnappyMail\Repository::installPackage('plugin', 'login-remote');
\SnappyMail\Repository::enablePackage('login-remote');
$sFile = APP_PRIVATE_DATA.'domains/cpanel.json'; $sFile = APP_PRIVATE_DATA.'domains/cpanel.json';
if (!file_exists($sFile)) { if (!file_exists($sFile)) {