mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-27 09:08:26 +08: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 = ""
|
||||
|
||||
[version]
|
||||
current = "2.22.7"
|
||||
current = "2.23.0"
|
||||
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
|
||||
|
||||
### Changed
|
||||
|
|
24
README.md
24
README.md
|
@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail
|
|||
|
||||
|js/* |RainLoop |Snappy |
|
||||
|--------------- |--------: |--------: |
|
||||
|admin.js |2.170.153 | 82.509 |
|
||||
|app.js |4.207.787 | 409.121 |
|
||||
|admin.js |2.170.153 | 82.544 |
|
||||
|app.js |4.207.787 | 409.918 |
|
||||
|boot.js | 868.735 | 2.351 |
|
||||
|libs.js | 658.812 | 193.075 |
|
||||
|sieve.js | 0 | 86.018 |
|
||||
|polyfills.js | 334.608 | 0 |
|
||||
|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 |
|
||||
|--------------- |--------: |--------: |------: |------: |--------: |--------: |
|
||||
|admin.min.js | 256.831 | 40.997 | 73.606 | 13.591 | 60.877 | 12.200 |
|
||||
|app.min.js | 515.367 | 189.663 |139.456 | 62.994 |110.485 | 54.031 |
|
||||
|admin.min.js | 256.831 | 40.961 | 73.606 | 13.580 | 60.877 | 12.194 |
|
||||
|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 |
|
||||
|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 |
|
||||
|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+sieve |1.217.635 | 325.130 |358.761 |108.496 |299.485 | 94.846 |
|
||||
|TOTAL admin | 959.099 | 134.555 |292.911 | 48.617 |249.877 | 43.554 |
|
||||
|TOTAL user |1.217.635 | 283.400 |358.761 | 98.066 |299.485 | 85.447 |
|
||||
|TOTAL user+sieve |1.217.635 | 325.309 |358.761 |108.542 |299.485 | 94.908 |
|
||||
|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.
|
||||
|
||||
|
@ -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 | 81.836 | 46.946 | 17.031 | 14.585 |
|
||||
|app.min.css | 274.947 | 66.014 | 39.647 | 15.019 | 13.187 |
|
||||
|app.css | 340.331 | 82.100 | 46.946 | 17.037 | 14.627 |
|
||||
|app.min.css | 274.947 | 66.183 | 39.647 | 15.040 | 13.194 |
|
||||
|boot.css | | 1.326 | | 664 | 545 |
|
||||
|boot.min.css | | 1.071 | | 590 | 474 |
|
||||
|admin.css | | 29.853 | | 6.812 | 5.933 |
|
||||
|admin.min.css | | 24.269 | | 6.210 | 5.480 |
|
||||
|admin.css | | 30.029 | | 6.871 | 5.969 |
|
||||
|admin.min.css | | 24.331 | | 6.229 | 5.494 |
|
||||
|
||||
### PGP
|
||||
RainLoop uses the old OpenPGP.js v2
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
//import { koComputable } from 'External/ko';
|
||||
import { SettingsCapa, SettingsGet } from 'Common/Globals';
|
||||
|
||||
import { AccountUserStore } from 'Stores/User/Account';
|
||||
|
@ -23,6 +24,8 @@ export class UserSettingsAccounts /*extends AbstractViewSettings*/ {
|
|||
|
||||
this.accountForDeletion = ko.observable(null).askDeleteHelper();
|
||||
this.identityForDeletion = ko.observable(null).askDeleteHelper();
|
||||
|
||||
// this.additionalAccounts = koComputable(() => AccountUserStore.filter(account => account.isAdditional()));
|
||||
}
|
||||
|
||||
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.
|
||||
|
||||
|
|
|
@ -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.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 && \
|
||||
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.22.7</version>
|
||||
<version>2.23.0</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.22.7" );
|
||||
return ( "2.23.0" );
|
||||
}
|
||||
|
||||
sub script_snappymail_version_desc
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"title": "SnappyMail",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"private": true,
|
||||
"version": "2.22.7",
|
||||
"version": "2.23.0",
|
||||
"homepage": "https://snappymail.eu",
|
||||
"author": {
|
||||
"name": "DJ Maze",
|
||||
|
|
|
@ -11,7 +11,7 @@ class AvatarsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
REQUIRED = '2.23',
|
||||
CATEGORY = 'Contacts',
|
||||
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
|
||||
{
|
||||
|
|
|
@ -6,9 +6,9 @@ class ChangePasswordPoppassdPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
{
|
||||
const
|
||||
NAME = 'Change Password Poppassd',
|
||||
VERSION = '2.17',
|
||||
RELEASE = '2022-05-20',
|
||||
REQUIRED = '2.15.3',
|
||||
VERSION = '2.18',
|
||||
RELEASE = '2022-12-08',
|
||||
REQUIRED = '2.23.0',
|
||||
CATEGORY = 'Security',
|
||||
DESCRIPTION = 'Extension to allow users to change their passwords through Poppassd';
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ class ChangePasswordPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
{
|
||||
const
|
||||
NAME = 'Change Password',
|
||||
VERSION = '2.16.4',
|
||||
RELEASE = '2022-11-09',
|
||||
REQUIRED = '2.12.0',
|
||||
VERSION = '2.17',
|
||||
RELEASE = '2022-12-08',
|
||||
REQUIRED = '2.23.0',
|
||||
CATEGORY = 'Security',
|
||||
DESCRIPTION = 'Extension to allow users to change their passwords';
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
class LdapContactsSuggestionsPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||
{
|
||||
const
|
||||
NAME = 'Contacts suggestions (LDAP)',
|
||||
VERSION = '2.9',
|
||||
RELEASE = '2022-05-05',
|
||||
NAME = 'Contacts suggestions (LDAP)',
|
||||
VERSION = '2.10',
|
||||
RELEASE = '2022-12-08',
|
||||
REQUIRED = '2.23.0',
|
||||
CATEGORY = 'Contacts',
|
||||
DESCRIPTION = 'Get contacts suggestions from LDAP.',
|
||||
REQUIRED = '2.9.1';
|
||||
DESCRIPTION = 'Get contacts suggestions from LDAP.';
|
||||
|
||||
public function Init() : void
|
||||
{
|
||||
|
|
|
@ -12,11 +12,11 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
{
|
||||
const
|
||||
NAME = 'LDAP Mail Accounts',
|
||||
VERSION = '1.0',
|
||||
VERSION = '1.1',
|
||||
AUTHOR = 'cm-schl',
|
||||
URL = 'https://github.com/cm-sch',
|
||||
RELEASE = '2022-11-25',
|
||||
REQUIRED = '2.20.0',
|
||||
RELEASE = '2022-12-08',
|
||||
REQUIRED = '2.23.0',
|
||||
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).';
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@ class ProxyauthLoginExamplePlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
{
|
||||
const
|
||||
NAME = 'Proxy Auth Login Example',
|
||||
VERSION = '2.1',
|
||||
REQUIRED = '2.5.0',
|
||||
VERSION = '2.2',
|
||||
RELEASE = '2022-12-08',
|
||||
REQUIRED = '2.23.0',
|
||||
CATEGORY = 'General',
|
||||
DESCRIPTION = '';
|
||||
|
||||
|
|
|
@ -112,33 +112,31 @@ abstract class Repository
|
|||
{
|
||||
$aResult = array();
|
||||
try {
|
||||
$notDev = '0.0.0' !== APP_VERSION;
|
||||
$isDev = '0.0.0' === APP_VERSION;
|
||||
foreach (static::getRepositoryDataByUrl($bReal) as $oItem) {
|
||||
if ($oItem && isset($oItem->type, $oItem->id, $oItem->name,
|
||||
$oItem->version, $oItem->release, $oItem->file, $oItem->description))
|
||||
{
|
||||
if ((!empty($oItem->required) && $notDev && \version_compare(APP_VERSION, $oItem->required, '<'))
|
||||
|| (!empty($oItem->deprecated) && $notDev && \version_compare(APP_VERSION, $oItem->deprecated, '>='))
|
||||
|| (isset($aResult[$oItem->id]) && \version_compare($aResult[$oItem->id]['version'], $oItem->version, '>'))
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ('plugin' === $oItem->type) {
|
||||
$aResult[$oItem->id] = array(
|
||||
'type' => $oItem->type,
|
||||
'id' => $oItem->id,
|
||||
'name' => $oItem->name,
|
||||
'installed' => '',
|
||||
'enabled' => true,
|
||||
'version' => $oItem->version,
|
||||
'file' => $oItem->file,
|
||||
'release' => $oItem->release,
|
||||
'desc' => $oItem->description,
|
||||
'canBeDeleted' => false,
|
||||
'canBeUpdated' => true
|
||||
);
|
||||
}
|
||||
if ($oItem
|
||||
&& isset($oItem->type, $oItem->id, $oItem->name, $oItem->version, $oItem->release, $oItem->file, $oItem->description)
|
||||
&& 'plugin' === $oItem->type
|
||||
// is this entry newer then an already defined one
|
||||
&& (empty($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, '<='))
|
||||
// is this entry not deprecated for current app version?
|
||||
&& ($isDev || empty($oItem->deprecated) || \version_compare(APP_VERSION, $oItem->deprecated, '<'))
|
||||
) {
|
||||
$aResult[$oItem->id] = array(
|
||||
'type' => $oItem->type,
|
||||
'id' => $oItem->id,
|
||||
'name' => $oItem->name,
|
||||
'installed' => '',
|
||||
'enabled' => true,
|
||||
'version' => $oItem->version,
|
||||
'file' => $oItem->file,
|
||||
'release' => $oItem->release,
|
||||
'desc' => $oItem->description,
|
||||
'canBeDeleted' => false,
|
||||
'canBeUpdated' => true
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
|
|
Loading…
Reference in a new issue