mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
v2.23.0
This commit is contained in:
parent
7807859975
commit
97bdaf4788
16 changed files with 116 additions and 61 deletions
|
|
@ -289,5 +289,5 @@ dev_email = ""
|
||||||
dev_password = ""
|
dev_password = ""
|
||||||
|
|
||||||
[version]
|
[version]
|
||||||
current = "2.22.7"
|
current = "2.23.0"
|
||||||
saved = "Fri, 30 Sep 2022 12:34:56 +0000"
|
saved = "Fri, 30 Sep 2022 12:34:56 +0000"
|
||||||
|
|
|
||||||
53
CHANGELOG.md
53
CHANGELOG.md
|
|
@ -1,3 +1,56 @@
|
||||||
|
## 2.23.0 – 2022-12-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Show the number of unread mails on all mail addresses/accounts
|
||||||
|
[#437](https://github.com/the-djmaze/snappymail/pull/437)
|
||||||
|
- Show OpenSSL version in Admin => About
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Redirect to login page instead of "invalid token" popup
|
||||||
|
[#752](https://github.com/the-djmaze/snappymail/pull/752)
|
||||||
|
- Make all dialogs fit in mobile view
|
||||||
|
- Changed some Plugin hooks for better handling:
|
||||||
|
* json.action-pre-call => json.before-{actionname}
|
||||||
|
* json.action-post-call => json.after-{actionname}
|
||||||
|
- Cleaner accounts list in systemdropdown
|
||||||
|
- Multiple imapConnect handling for new import mail feature
|
||||||
|
[#744](https://github.com/the-djmaze/snappymail/pull/744)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Loosing HTML signature in account identity under settings
|
||||||
|
[#750](https://github.com/the-djmaze/snappymail/pull/750)
|
||||||
|
- Plugin configuration did not load anymore when type was SELECTION by @cm-schl
|
||||||
|
[#753](https://github.com/the-djmaze/snappymail/pull/753)
|
||||||
|
- Nextcloud Default theme shows gray text on gray background
|
||||||
|
[#754](https://github.com/the-djmaze/snappymail/pull/754)
|
||||||
|
- Only run JSON hooks when $sAction is set
|
||||||
|
[#755](https://github.com/the-djmaze/snappymail/pull/755)
|
||||||
|
- Unsupported SASL mechanism OAUTHBEARER
|
||||||
|
[#756](https://github.com/the-djmaze/snappymail/pull/756)
|
||||||
|
[#758](https://github.com/the-djmaze/snappymail/pull/758)
|
||||||
|
[#759](https://github.com/the-djmaze/snappymail/pull/759)
|
||||||
|
- border-box issue with .buttonCompose
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Deprecate \RainLoop\Account->Login() and \RainLoop\Account->Password()
|
||||||
|
|
||||||
|
|
||||||
|
## 2.22.7 – 2022-12-06
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Scroll bar with the mobile version in "Advanced search" screen
|
||||||
|
[#712](https://github.com/the-djmaze/snappymail/pull/712)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Undefined property: MailSo\Mail\FolderCollection::$capabilities
|
||||||
|
- PHP 8.2 Creation of dynamic property is deprecated
|
||||||
|
- Attempt to solve #745 in v2.22.6 failed and resulted in errors #746 and #748
|
||||||
|
[#745](https://github.com/the-djmaze/snappymail/pull/745)
|
||||||
|
[#746](https://github.com/the-djmaze/snappymail/pull/746)
|
||||||
|
[#748](https://github.com/the-djmaze/snappymail/pull/748)
|
||||||
|
- Admin domain test undefined matched domain should say email@example matched domain
|
||||||
|
|
||||||
|
|
||||||
## 2.22.6 – 2022-12-05
|
## 2.22.6 – 2022-12-05
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
||||||
24
README.md
24
README.md
|
|
@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail
|
||||||
|
|
||||||
|js/* |RainLoop |Snappy |
|
|js/* |RainLoop |Snappy |
|
||||||
|--------------- |--------: |--------: |
|
|--------------- |--------: |--------: |
|
||||||
|admin.js |2.170.153 | 82.509 |
|
|admin.js |2.170.153 | 82.544 |
|
||||||
|app.js |4.207.787 | 409.121 |
|
|app.js |4.207.787 | 409.918 |
|
||||||
|boot.js | 868.735 | 2.351 |
|
|boot.js | 868.735 | 2.351 |
|
||||||
|libs.js | 658.812 | 193.075 |
|
|libs.js | 658.812 | 193.075 |
|
||||||
|sieve.js | 0 | 86.018 |
|
|sieve.js | 0 | 86.018 |
|
||||||
|polyfills.js | 334.608 | 0 |
|
|polyfills.js | 334.608 | 0 |
|
||||||
|serviceworker.js | 0 | 285 |
|
|serviceworker.js | 0 | 285 |
|
||||||
|TOTAL |8.240.095 | 773.359 |
|
|TOTAL |8.240.095 | 774.191 |
|
||||||
|
|
||||||
|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.997 | 73.606 | 13.591 | 60.877 | 12.200 |
|
|admin.min.js | 256.831 | 40.961 | 73.606 | 13.580 | 60.877 | 12.194 |
|
||||||
|app.min.js | 515.367 | 189.663 |139.456 | 62.994 |110.485 | 54.031 |
|
|app.min.js | 515.367 | 189.842 |139.456 | 63.040 |110.485 | 54.093 |
|
||||||
|boot.min.js | 84.659 | 1.474 | 26.998 | 907 | 23.643 | 733 |
|
|boot.min.js | 84.659 | 1.474 | 26.998 | 907 | 23.643 | 733 |
|
||||||
|libs.min.js | 584.772 | 92.084 |180.901 | 34.119 |155.182 | 30.621 |
|
|libs.min.js | 584.772 | 92.084 |180.901 | 34.119 |155.182 | 30.621 |
|
||||||
|sieve.min.js | 0 | 41.909 | 0 | 10.476 | 0 | 9.461 |
|
|sieve.min.js | 0 | 41.909 | 0 | 10.476 | 0 | 9.461 |
|
||||||
|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 | 283.221 |358.761 | 98.020 |299.485 | 85.385 |
|
|TOTAL user |1.217.635 | 283.400 |358.761 | 98.066 |299.485 | 85.447 |
|
||||||
|TOTAL user+sieve |1.217.635 | 325.130 |358.761 |108.496 |299.485 | 94.846 |
|
|TOTAL user+sieve |1.217.635 | 325.309 |358.761 |108.542 |299.485 | 94.908 |
|
||||||
|TOTAL admin | 959.099 | 134.555 |292.911 | 48.617 |249.877 | 43.554 |
|
|TOTAL admin | 959.099 | 134.519 |292.911 | 48.606 |249.877 | 43.548 |
|
||||||
|
|
||||||
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 | 81.836 | 46.946 | 17.031 | 14.585 |
|
|app.css | 340.331 | 82.100 | 46.946 | 17.037 | 14.627 |
|
||||||
|app.min.css | 274.947 | 66.014 | 39.647 | 15.019 | 13.187 |
|
|app.min.css | 274.947 | 66.183 | 39.647 | 15.040 | 13.194 |
|
||||||
|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 | | 29.853 | | 6.812 | 5.933 |
|
|admin.css | | 30.029 | | 6.871 | 5.969 |
|
||||||
|admin.min.css | | 24.269 | | 6.210 | 5.480 |
|
|admin.min.css | | 24.331 | | 6.229 | 5.494 |
|
||||||
|
|
||||||
### PGP
|
### PGP
|
||||||
RainLoop uses the old OpenPGP.js v2
|
RainLoop uses the old OpenPGP.js v2
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import ko from 'ko';
|
import ko from 'ko';
|
||||||
|
|
||||||
|
//import { koComputable } from 'External/ko';
|
||||||
import { SettingsCapa, SettingsGet } from 'Common/Globals';
|
import { SettingsCapa, SettingsGet } from 'Common/Globals';
|
||||||
|
|
||||||
import { AccountUserStore } from 'Stores/User/Account';
|
import { AccountUserStore } from 'Stores/User/Account';
|
||||||
|
|
@ -23,6 +24,8 @@ export class UserSettingsAccounts /*extends AbstractViewSettings*/ {
|
||||||
|
|
||||||
this.accountForDeletion = ko.observable(null).askDeleteHelper();
|
this.accountForDeletion = ko.observable(null).askDeleteHelper();
|
||||||
this.identityForDeletion = ko.observable(null).askDeleteHelper();
|
this.identityForDeletion = ko.observable(null).askDeleteHelper();
|
||||||
|
|
||||||
|
// this.additionalAccounts = koComputable(() => AccountUserStore.filter(account => account.isAdditional()));
|
||||||
}
|
}
|
||||||
|
|
||||||
addNewAccount() {
|
addNewAccount() {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
This app packages SnappyMail <upstream>2.22.7</upstream>.
|
This app packages SnappyMail <upstream>2.23.0</upstream>.
|
||||||
|
|
||||||
SnappyMail is a simple, modern, lightweight & fast web-based email client.
|
SnappyMail is a simple, modern, lightweight & fast web-based email client.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.22.7
|
VERSION=2.23.0
|
||||||
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 && \
|
||||||
|
|
|
||||||
|
|
@ -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.22.7</version>
|
<version>2.23.0</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.**
|
||||||
|
|
|
||||||
|
|
@ -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.22.7" );
|
return ( "2.23.0" );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub script_snappymail_version_desc
|
sub script_snappymail_version_desc
|
||||||
|
|
|
||||||
|
|
@ -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.22.7",
|
"version": "2.23.0",
|
||||||
"homepage": "https://snappymail.eu",
|
"homepage": "https://snappymail.eu",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "DJ Maze",
|
"name": "DJ Maze",
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
REQUIRED = '2.23',
|
REQUIRED = '2.23',
|
||||||
CATEGORY = 'Contacts',
|
CATEGORY = 'Contacts',
|
||||||
LICENSE = 'MIT',
|
LICENSE = 'MIT',
|
||||||
DESCRIPTION = 'Show photo of sender in message and messages list (supports BIMI, Gravatar and identicon, Contacts is still TODO)';
|
DESCRIPTION = 'Show graphic of sender in message and messages list (supports BIMI, Gravatar and identicon, Contacts is still TODO)';
|
||||||
|
|
||||||
public function Init() : void
|
public function Init() : void
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ class ChangePasswordPoppassdPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'Change Password Poppassd',
|
NAME = 'Change Password Poppassd',
|
||||||
VERSION = '2.17',
|
VERSION = '2.18',
|
||||||
RELEASE = '2022-05-20',
|
RELEASE = '2022-12-08',
|
||||||
REQUIRED = '2.15.3',
|
REQUIRED = '2.23.0',
|
||||||
CATEGORY = 'Security',
|
CATEGORY = 'Security',
|
||||||
DESCRIPTION = 'Extension to allow users to change their passwords through Poppassd';
|
DESCRIPTION = 'Extension to allow users to change their passwords through Poppassd';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ class ChangePasswordPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'Change Password',
|
NAME = 'Change Password',
|
||||||
VERSION = '2.16.4',
|
VERSION = '2.17',
|
||||||
RELEASE = '2022-11-09',
|
RELEASE = '2022-12-08',
|
||||||
REQUIRED = '2.12.0',
|
REQUIRED = '2.23.0',
|
||||||
CATEGORY = 'Security',
|
CATEGORY = 'Security',
|
||||||
DESCRIPTION = 'Extension to allow users to change their passwords';
|
DESCRIPTION = 'Extension to allow users to change their passwords';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@
|
||||||
class LdapContactsSuggestionsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
class LdapContactsSuggestionsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'Contacts suggestions (LDAP)',
|
NAME = 'Contacts suggestions (LDAP)',
|
||||||
VERSION = '2.9',
|
VERSION = '2.10',
|
||||||
RELEASE = '2022-05-05',
|
RELEASE = '2022-12-08',
|
||||||
|
REQUIRED = '2.23.0',
|
||||||
CATEGORY = 'Contacts',
|
CATEGORY = 'Contacts',
|
||||||
DESCRIPTION = 'Get contacts suggestions from LDAP.',
|
DESCRIPTION = 'Get contacts suggestions from LDAP.';
|
||||||
REQUIRED = '2.9.1';
|
|
||||||
|
|
||||||
public function Init() : void
|
public function Init() : void
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'LDAP Mail Accounts',
|
NAME = 'LDAP Mail Accounts',
|
||||||
VERSION = '1.0',
|
VERSION = '1.1',
|
||||||
AUTHOR = 'cm-schl',
|
AUTHOR = 'cm-schl',
|
||||||
URL = 'https://github.com/cm-sch',
|
URL = 'https://github.com/cm-sch',
|
||||||
RELEASE = '2022-11-25',
|
RELEASE = '2022-12-08',
|
||||||
REQUIRED = '2.20.0',
|
REQUIRED = '2.23.0',
|
||||||
CATEGORY = 'Accounts',
|
CATEGORY = 'Accounts',
|
||||||
DESCRIPTION = 'Add additional mail accounts the SnappyMail user has access to by a LDAP query. Basing on the work of FWest98 (https://github.com/FWest98).';
|
DESCRIPTION = 'Add additional mail accounts the SnappyMail user has access to by a LDAP query. Basing on the work of FWest98 (https://github.com/FWest98).';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@ class ProxyauthLoginExamplePlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'Proxy Auth Login Example',
|
NAME = 'Proxy Auth Login Example',
|
||||||
VERSION = '2.1',
|
VERSION = '2.2',
|
||||||
REQUIRED = '2.5.0',
|
RELEASE = '2022-12-08',
|
||||||
|
REQUIRED = '2.23.0',
|
||||||
CATEGORY = 'General',
|
CATEGORY = 'General',
|
||||||
DESCRIPTION = '';
|
DESCRIPTION = '';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,33 +112,31 @@ abstract class Repository
|
||||||
{
|
{
|
||||||
$aResult = array();
|
$aResult = array();
|
||||||
try {
|
try {
|
||||||
$notDev = '0.0.0' !== APP_VERSION;
|
$isDev = '0.0.0' === APP_VERSION;
|
||||||
foreach (static::getRepositoryDataByUrl($bReal) as $oItem) {
|
foreach (static::getRepositoryDataByUrl($bReal) as $oItem) {
|
||||||
if ($oItem && isset($oItem->type, $oItem->id, $oItem->name,
|
if ($oItem
|
||||||
$oItem->version, $oItem->release, $oItem->file, $oItem->description))
|
&& isset($oItem->type, $oItem->id, $oItem->name, $oItem->version, $oItem->release, $oItem->file, $oItem->description)
|
||||||
{
|
&& 'plugin' === $oItem->type
|
||||||
if ((!empty($oItem->required) && $notDev && \version_compare(APP_VERSION, $oItem->required, '<'))
|
// is this entry newer then an already defined one
|
||||||
|| (!empty($oItem->deprecated) && $notDev && \version_compare(APP_VERSION, $oItem->deprecated, '>='))
|
&& (empty($aResult[$oItem->id]) || \version_compare($aResult[$oItem->id]['version'], $oItem->version, '<'))
|
||||||
|| (isset($aResult[$oItem->id]) && \version_compare($aResult[$oItem->id]['version'], $oItem->version, '>'))
|
// does this entry require same or older app version
|
||||||
) {
|
&& ($isDev || empty($oItem->required) || \version_compare(APP_VERSION, $oItem->required, '<='))
|
||||||
continue;
|
// is this entry not deprecated for current app version?
|
||||||
}
|
&& ($isDev || empty($oItem->deprecated) || \version_compare(APP_VERSION, $oItem->deprecated, '<'))
|
||||||
|
) {
|
||||||
if ('plugin' === $oItem->type) {
|
$aResult[$oItem->id] = array(
|
||||||
$aResult[$oItem->id] = array(
|
'type' => $oItem->type,
|
||||||
'type' => $oItem->type,
|
'id' => $oItem->id,
|
||||||
'id' => $oItem->id,
|
'name' => $oItem->name,
|
||||||
'name' => $oItem->name,
|
'installed' => '',
|
||||||
'installed' => '',
|
'enabled' => true,
|
||||||
'enabled' => true,
|
'version' => $oItem->version,
|
||||||
'version' => $oItem->version,
|
'file' => $oItem->file,
|
||||||
'file' => $oItem->file,
|
'release' => $oItem->release,
|
||||||
'release' => $oItem->release,
|
'desc' => $oItem->description,
|
||||||
'desc' => $oItem->description,
|
'canBeDeleted' => false,
|
||||||
'canBeDeleted' => false,
|
'canBeUpdated' => true
|
||||||
'canBeUpdated' => true
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue