From dc0650274454474171ac2074b016d7f64d93ca09 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Wed, 15 Mar 2023 22:53:06 +0100
Subject: [PATCH 01/11] Resolve #1017
---
integrations/nextcloud/snappymail/css/embed.css | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/integrations/nextcloud/snappymail/css/embed.css b/integrations/nextcloud/snappymail/css/embed.css
index 4167e4f41..b283168d7 100644
--- a/integrations/nextcloud/snappymail/css/embed.css
+++ b/integrations/nextcloud/snappymail/css/embed.css
@@ -120,3 +120,9 @@ a.selectable::after {
padding-top: 0;
}
}
+
+@media screen and (max-width: 799px) {
+ #body-user #rl-left {
+ top: 50px;
+ }
+}
From b85ed63ff6405d3652044e0e7a70b000ceb57361 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Wed, 15 Mar 2023 23:04:58 +0100
Subject: [PATCH 02/11] Resolve #1018
---
.../0.0.0/app/libraries/RainLoop/Service.php | 20 ++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Service.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Service.php
index 599eb2ddc..42d7ef400 100644
--- a/snappymail/v/0.0.0/app/libraries/RainLoop/Service.php
+++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Service.php
@@ -61,6 +61,8 @@ abstract class Service
} else {
\ob_start('ob_gzhandler');
}
+ } else {
+ \ob_start();
}
$sQuery = \trim($_SERVER['QUERY_STRING'] ?? '');
@@ -110,7 +112,6 @@ abstract class Service
}
$bIndex = true;
- $sResult = '';
if (\count($aPaths) && !empty($aPaths[0]) && 'index' !== \strtolower($aPaths[0])) {
if ('mailto' !== \strtolower($aPaths[0]) && !\SnappyMail\HTTP\SecFetch::matchAnyRule($oConfig->Get('security', 'secfetch_allow', ''))) {
\MailSo\Base\Http::StatusHeader(403);
@@ -123,15 +124,15 @@ abstract class Service
return false;
}
- $bIndex = false;
$sMethodName = 'Service'.\preg_replace('/@.+$/', '', $aPaths[0]);
$sMethodExtra = \strpos($aPaths[0], '@') ? \preg_replace('/^[^@]+@/', '', $aPaths[0]) : '';
if (\method_exists($oServiceActions, $sMethodName) && \is_callable(array($oServiceActions, $sMethodName))) {
+ $bIndex = false;
$oServiceActions->SetQuery($sQuery)->SetPaths($aPaths);
- $sResult = $oServiceActions->{$sMethodName}($sMethodExtra);
- } else if (!$oActions->Plugins()->RunAdditionalPart($aPaths[0], $aPaths)) {
- $bIndex = true;
+ echo $oServiceActions->{$sMethodName}($sMethodExtra);
+ } else if ($oActions->Plugins()->RunAdditionalPart($aPaths[0], $aPaths)) {
+ $bIndex = false;
}
}
@@ -196,6 +197,8 @@ abstract class Service
$oActions->verifyCacheByKey($sCacheFileName);
if ($oConfig->Get('cache', 'system_data', true)) {
$sResult = $oActions->Cacher()->Get($sCacheFileName);
+ } else {
+ $sResult = '';
}
if ($sResult) {
@@ -232,14 +235,13 @@ abstract class Service
static::setCSP(null, $sScriptHash);
*/
$oActions->cacheByKey($sCacheFileName);
+
+ echo $sResult;
+ unset($sResult);
} else if (!\headers_sent()) {
\header('X-XSS-Protection: 1; mode=block');
}
- // Output result
- echo $sResult;
- unset($sResult);
-
$oActions->BootEnd();
return true;
From e30f9854b75002370d22053f5b1c0303b3837e03 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Fri, 17 Mar 2023 23:20:42 +0100
Subject: [PATCH 03/11] Fix theme cached handling
---
dev/App/Abstract.js | 4 ++--
dev/App/Admin.js | 4 ++--
dev/App/User.js | 5 ++---
dev/Stores/Theme.js | 30 ++++++++++++++++--------------
4 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/dev/App/Abstract.js b/dev/App/Abstract.js
index 7f925251f..113c7dbc7 100644
--- a/dev/App/Abstract.js
+++ b/dev/App/Abstract.js
@@ -4,7 +4,7 @@ import { logoutLink } from 'Common/Links';
import { i18nToNodes, initOnStartOrLangChange } from 'Common/Translator';
import { LanguageStore } from 'Stores/Language';
-import { ThemeStore } from 'Stores/Theme';
+import { initThemes } from 'Stores/Theme';
import { SelectComponent } from 'Component/Select';
import { CheckboxComponent } from 'Component/Checkbox';
@@ -46,7 +46,7 @@ export class AbstractApp {
initOnStartOrLangChange();
LanguageStore.populate();
- ThemeStore.populate();
+ initThemes();
this.start();
}
diff --git a/dev/App/Admin.js b/dev/App/Admin.js
index 797e8085f..fb970bffc 100644
--- a/dev/App/Admin.js
+++ b/dev/App/Admin.js
@@ -1,7 +1,7 @@
import 'External/ko';
import { Settings, SettingsGet } from 'Common/Globals';
-import { ThemeStore } from 'Stores/Theme';
+import { initThemes } from 'Stores/Theme';
import Remote from 'Remote/Admin/Fetch';
@@ -18,7 +18,7 @@ export class AdminApp extends AbstractApp {
}
refresh() {
- ThemeStore.populate();
+ initThemes();
this.start();
}
diff --git a/dev/App/User.js b/dev/App/User.js
index f0956381f..cbfaf8723 100644
--- a/dev/App/User.js
+++ b/dev/App/User.js
@@ -37,7 +37,7 @@ import { IdentityUserStore } from 'Stores/User/Identity';
import { FolderUserStore } from 'Stores/User/Folder';
import { PgpUserStore } from 'Stores/User/Pgp';
import { MessagelistUserStore } from 'Stores/User/Messagelist';
-import { ThemeStore, changeTheme } from 'Stores/Theme';
+import { ThemeStore, initThemes } from 'Stores/Theme';
import { LanguageStore } from 'Stores/Language';
import { MessageUserStore } from 'Stores/User/Message';
@@ -191,9 +191,8 @@ export class AppUser extends AbstractApp {
}
refresh() {
- ThemeStore.populate();
+ initThemes();
LanguageStore.language(SettingsGet('language'));
- changeTheme(SettingsGet('Theme'));
this.start();
}
diff --git a/dev/Stores/Theme.js b/dev/Stores/Theme.js
index b8d49809b..6d8764f7d 100644
--- a/dev/Stores/Theme.js
+++ b/dev/Stores/Theme.js
@@ -19,23 +19,25 @@ export const
fontSansSerif: ko.observable(''),
fontSerif: ko.observable(''),
fontMono: ko.observable(''),
- isMobile: ko.observable(false),
+ isMobile: ko.observable(false)
+ },
- populate: () => {
- const themes = Settings.app('themes');
+ initThemes = () => {
+ const theme = SettingsGet('Theme'),
+ themes = Settings.app('themes');
- ThemeStore.themes(isArray(themes) ? themes : []);
- ThemeStore.theme(SettingsGet('Theme'));
- if (!ThemeStore.isMobile()) {
- ThemeStore.userBackgroundName(SettingsGet('userBackgroundName'));
- ThemeStore.userBackgroundHash(SettingsGet('userBackgroundHash'));
- }
- ThemeStore.fontSansSerif(SettingsGet('fontSansSerif'));
- ThemeStore.fontSerif(SettingsGet('fontSerif'));
- ThemeStore.fontMono(SettingsGet('fontMono'));
-
- leftPanelDisabled(ThemeStore.isMobile());
+ ThemeStore.themes(isArray(themes) ? themes : []);
+ ThemeStore.theme(theme);
+ changeTheme(theme);
+ if (!ThemeStore.isMobile()) {
+ ThemeStore.userBackgroundName(SettingsGet('userBackgroundName'));
+ ThemeStore.userBackgroundHash(SettingsGet('userBackgroundHash'));
}
+ ThemeStore.fontSansSerif(SettingsGet('fontSansSerif'));
+ ThemeStore.fontSerif(SettingsGet('fontSerif'));
+ ThemeStore.fontMono(SettingsGet('fontMono'));
+
+ leftPanelDisabled(ThemeStore.isMobile());
},
changeTheme = (value, themeTrigger = ()=>0) => {
From 7a98e5e7d4eb31a1d819120756e409c1298cf413 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Sat, 18 Mar 2023 19:32:50 +0100
Subject: [PATCH 04/11] Nextcloud plugin translate russian
https://github.com/the-djmaze/snappymail/discussions/979#discussioncomment-5327668
---
plugins/nextcloud/langs/en.ini | 3 +++
plugins/nextcloud/langs/zh-CN.ini | 3 +++
plugins/nextcloud/templates/PopupsNextcloudFiles.html | 6 +++---
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/plugins/nextcloud/langs/en.ini b/plugins/nextcloud/langs/en.ini
index 830b4ecab..b920f77d9 100644
--- a/plugins/nextcloud/langs/en.ini
+++ b/plugins/nextcloud/langs/en.ini
@@ -6,3 +6,6 @@ SELECT_FOLDER = "Select folder"
SELECT_FILES = "Select file(s)"
ATTACH_FILES = "Attach Nextcloud files"
SELECT_CALENDAR = "Select calendar"
+FILE_ATTACH = "attach"
+FILE_INTERNAL = "internal"
+FILE_PUBLIC = "public"
diff --git a/plugins/nextcloud/langs/zh-CN.ini b/plugins/nextcloud/langs/zh-CN.ini
index de916b306..74e2dbf05 100644
--- a/plugins/nextcloud/langs/zh-CN.ini
+++ b/plugins/nextcloud/langs/zh-CN.ini
@@ -6,3 +6,6 @@ SELECT_FOLDER = "选择文件夹"
SELECT_FILES = "选择文件"
ATTACH_FILES = "添加 Nextcloud 文件"
SELECT_CALENDAR = "选择日历"
+FILE_ATTACH = "attach"
+FILE_INTERNAL = "internal"
+FILE_PUBLIC = "public"
diff --git a/plugins/nextcloud/templates/PopupsNextcloudFiles.html b/plugins/nextcloud/templates/PopupsNextcloudFiles.html
index 1be321dae..dcc03d7e8 100644
--- a/plugins/nextcloud/templates/PopupsNextcloudFiles.html
+++ b/plugins/nextcloud/templates/PopupsNextcloudFiles.html
@@ -12,7 +12,7 @@
From 60dca97603a691519d407126952b47cce36c1f00 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 08:27:53 +0100
Subject: [PATCH 05/11] Bugfix: when decrypt message, subject was replaced
empty
---
dev/Mime/Utils.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dev/Mime/Utils.js b/dev/Mime/Utils.js
index 7c038f675..c399e7c8c 100644
--- a/dev/Mime/Utils.js
+++ b/dev/Mime/Utils.js
@@ -13,10 +13,11 @@ export function MimeToMessage(data, message)
let signed;
const struct = ParseMime(data);
if (struct.headers) {
- let html = struct.getByContentType('text/html');
+ let html = struct.getByContentType('text/html'),
+ subject = struct.headerValue('subject');
html = html ? html.body : '';
- message.subject(struct.headerValue('subject') || '');
+ subject && message.subject(subject);
// EmailCollectionModel
['from','to'].forEach(name => message[name].fromString(struct.headerValue(name)));
From f81fcb4e6142a0575093175b7a1167050ca770f7 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 08:32:31 +0100
Subject: [PATCH 06/11] Better line-height for QR code
---
plugins/two-factor-auth/templates/TwoFactorAuthSettings.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/two-factor-auth/templates/TwoFactorAuthSettings.html b/plugins/two-factor-auth/templates/TwoFactorAuthSettings.html
index df5a40476..95569afd0 100644
--- a/plugins/two-factor-auth/templates/TwoFactorAuthSettings.html
+++ b/plugins/two-factor-auth/templates/TwoFactorAuthSettings.html
@@ -47,7 +47,7 @@
-
+
From 470da2ee156cd78321d0835765312b51f2544b81 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 08:32:57 +0100
Subject: [PATCH 07/11] Nextcloud CSS --panel-bg-clr was missing
---
.../nextcloud/snappymail/app/themes/Nextcloud/styles.css | 2 ++
1 file changed, 2 insertions(+)
diff --git a/integrations/nextcloud/snappymail/app/themes/Nextcloud/styles.css b/integrations/nextcloud/snappymail/app/themes/Nextcloud/styles.css
index 9ca3728e1..21d16034e 100644
--- a/integrations/nextcloud/snappymail/app/themes/Nextcloud/styles.css
+++ b/integrations/nextcloud/snappymail/app/themes/Nextcloud/styles.css
@@ -87,6 +87,8 @@
--border-radius: var(--border-radius);
--hr-color: var(--color-border);
+ --panel-bg-clr: var(--color-main-background);
+
--warning-clr: var(--color-warning);
--warning-bg-clr: #fcf8e3;
--warning-border-clr: #fbeed5;
From 45be0d7aa8819c99c4dafd77fcb60985bc29acd5 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 15:21:56 +0100
Subject: [PATCH 08/11] Bugfix: ask unload when mobile and message visible
---
dev/App/User.js | 2 +-
dev/Stores/User/Settings.js | 4 ++--
dev/View/User/MailBox/MessageList.js | 6 ++----
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dev/App/User.js b/dev/App/User.js
index cbfaf8723..ba1514a39 100644
--- a/dev/App/User.js
+++ b/dev/App/User.js
@@ -183,7 +183,7 @@ export class AppUser extends AbstractApp {
super.bootstart();
addEventListener('beforeunload', event => {
- if (arePopupsVisible() || (!SettingsUserStore.layout() && MessageUserStore.message())) {
+ if (arePopupsVisible() || (!SettingsUserStore.usePreviewPane() && MessageUserStore.message())) {
event.preventDefault();
return event.returnValue = i18n('POPUPS_ASK/EXIT_ARE_YOU_SURE');
}
diff --git a/dev/Stores/User/Settings.js b/dev/Stores/User/Settings.js
index e72cd4ab7..d1d12bb5f 100644
--- a/dev/Stores/User/Settings.js
+++ b/dev/Stores/User/Settings.js
@@ -50,10 +50,10 @@ export const SettingsUserStore = new class {
self.init();
- self.usePreviewPane = koComputable(() => self.layout() && !ThemeStore.isMobile());
+ self.usePreviewPane = koComputable(() => ThemeStore.isMobile() ? 0 : self.layout());
const toggleLayout = () => {
- const value = ThemeStore.isMobile() ? 0 : self.layout();
+ const value = self.usePreviewPane();
$htmlCL.toggle('sm-msgView-side', Layout.SidePreview === value);
$htmlCL.toggle('sm-msgView-bottom', Layout.BottomPreview === value);
fireEvent('rl-layout', value);
diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js
index 670e5890e..e809f3955 100644
--- a/dev/View/User/MailBox/MessageList.js
+++ b/dev/View/User/MailBox/MessageList.js
@@ -566,11 +566,9 @@ export class MailMessageList extends AbstractViewRight {
// initMailboxLayoutResizer
const top = dom.querySelector('.messageList'),
fToggle = () => {
- let layout = SettingsUserStore.layout();
+ let layout = SettingsUserStore.usePreviewPane();
setLayoutResizer(top, ClientSideKeyNameMessageListSize,
- (ThemeStore.isMobile() || !layout)
- ? 0
- : (Layout.SidePreview === layout ? 'Width' : 'Height')
+ layout ? (Layout.SidePreview === layout ? 'Width' : 'Height') : 0
);
};
if (top) {
From 1ca039f796c1a209ce90ac7b6a778d2c3e3d6800 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 16:43:41 +0100
Subject: [PATCH 09/11] v2.27.0
---
.../files/usr/local/include/application.ini | 2 +-
CHANGELOG.md | 55 ++++++++++++++++++-
README.md | 24 ++++----
integrations/cloudron/DESCRIPTION.md | 2 +-
integrations/cloudron/Dockerfile | 2 +-
.../nextcloud/snappymail/appinfo/info.xml | 2 +-
integrations/virtualmin/snappymail.pl | 2 +-
package.json | 2 +-
plugins/nextcloud/index.php | 4 +-
9 files changed, 74 insertions(+), 21 deletions(-)
diff --git a/.docker/release/files/usr/local/include/application.ini b/.docker/release/files/usr/local/include/application.ini
index 80e90fdbb..250c19a08 100644
--- a/.docker/release/files/usr/local/include/application.ini
+++ b/.docker/release/files/usr/local/include/application.ini
@@ -316,5 +316,5 @@ dev_email = ""
dev_password = ""
[version]
-current = "2.26.4"
+current = "2.27.0"
saved = "Sun, 18 Dec 2022 22:10:48 +0000"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d37da660..83b13fa93 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,57 @@
+## 2.27.0 – 2023-03-14
+
+## Added
+- Unique attachments.zip filename
+ [#992](https://github.com/the-djmaze/snappymail/pull/992)
+- Select next email after (re)move current
+ [#968](https://github.com/the-djmaze/snappymail/pull/968)
+
+## Changed
+- Improved FolderCollection handling
+- MODSEQ requires 64-bit int
+- Update russian language by @Akrobs
+ [#994](https://github.com/the-djmaze/snappymail/pull/994)
+- Don't make font bigger when screen > 1400px
+- Put top menu "accountPlace" inside top-system-dropdown-id
+- Put attachment controls inside attachmentsPlace
+- Show message toolbar on screens > 1400px
+ [#970](https://github.com/the-djmaze/snappymail/pull/970)
+- Chinese updated by @mayswind
+ [#1011](https://github.com/the-djmaze/snappymail/pull/1011)
+- Prevent folder/messages flags conflict by using the right name `attributes` for Folders
+- FolderInformation() use jsonSerialize()
+- Squire space handling on paste use `\u00A0` instead of ` ` for
+ [#1004](https://github.com/the-djmaze/snappymail/pull/1004)
+- Better line-height for QR code
+
+## Fixed
+- Composer src is null
+- Image in Signature disappears in Sent/Draft
+ [#932](https://github.com/the-djmaze/snappymail/pull/932)
+- Mail list is empty
+ [#998](https://github.com/the-djmaze/snappymail/pull/998)
+- Cache handling issues
+ [#1003](https://github.com/the-djmaze/snappymail/pull/1003)
+- No message notification popup when installed in sub-directory
+ [#1007](https://github.com/the-djmaze/snappymail/pull/1007)
+- ERROR: Undefined constant "MailSo\Log\Drivers\STDERR"
+ [#965](https://github.com/the-djmaze/snappymail/pull/965)
+- 'Location:' headers using proper '302 Found' header
+- Can't send email
+ [#1006](https://github.com/the-djmaze/snappymail/pull/1006)
+- Attachment preview
+ [#1005](https://github.com/the-djmaze/snappymail/pull/1005)
+- When decrypt message, subject was replaced empty
+
+### Removed
+- \MailSo\Imap\ImapClient::GetConnectedPort()
+
+### Nextcloud
+- CSS `--panel-bg-clr` was missing
+- SnappyMail Menu under Nextcloud top bar
+ [#1017](https://github.com/the-djmaze/snappymail/pull/1017)
+
+
## 2.26.4 – 2023-02-24
## Added
@@ -62,7 +116,6 @@
- Unused Squire code
-
## 2.26.2 – 2023-02-17
## Added
diff --git a/README.md b/README.md
index a5ad4db44..d2ddae240 100644
--- a/README.md
+++ b/README.md
@@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail
|js/* |RainLoop |Snappy |
|--------------- |--------: |--------: |
-|admin.js |2.170.153 | 78.971 |
-|app.js |4.207.787 | 409.340 |
+|admin.js |2.170.153 | 78.985 |
+|app.js |4.207.787 | 407.112 |
|boot.js | 868.735 | 4.142 |
-|libs.js | 658.812 | 185.881 |
+|libs.js | 658.812 | 185.826 |
|sieve.js | 0 | 85.599 |
|polyfills.js | 334.608 | 0 |
|serviceworker.js | 0 | 285 |
-|TOTAL |8.240.095 | 764.218 |
+|TOTAL |8.240.095 | 761.949 |
|js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli |
|--------------- |--------: |--------: |------: |------: |--------: |--------: |
-|admin.min.js | 256.831 | 38.936 | 73.606 | 13.036 | 60.877 | 11.694 |
-|app.min.js | 515.367 | 186.883 |139.456 | 63.102 |110.485 | 54.200 |
+|admin.min.js | 256.831 | 38.922 | 73.606 | 13.044 | 60.877 | 11.689 |
+|app.min.js | 515.367 | 185.851 |139.456 | 62.793 |110.485 | 54.006 |
|boot.min.js | 84.659 | 2.084 | 26.998 | 1.202 | 23.643 | 1.003 |
-|libs.min.js | 584.772 | 90.445 |180.901 | 33.592 |155.182 | 30.108 |
+|libs.min.js | 584.772 | 90.419 |180.901 | 33.579 |155.182 | 30.112 |
|sieve.min.js | 0 | 41.525 | 0 | 10.435 | 0 | 9.401 |
|polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
-|TOTAL user |1.217.635 | 279.412 |358.761 | 97.896 |299.485 | 85.311 |
-|TOTAL user+sieve |1.217.635 | 320.937 |358.761 |108.331 |299.485 | 94.712 |
-|TOTAL admin | 959.099 | 131.465 |292.911 | 47.830 |249.877 | 42.805 |
+|TOTAL user |1.217.635 | 278.354 |358.761 | 97.574 |299.485 | 85.121 |
+|TOTAL user+sieve |1.217.635 | 319.879 |358.761 |108.009 |299.485 | 94.522 |
+|TOTAL admin | 959.099 | 131.425 |292.911 | 47.825 |249.877 | 42.804 |
For a user it is around 72% smaller and faster than traditional RainLoop.
@@ -189,8 +189,8 @@ For a user it is around 72% smaller and faster than traditional RainLoop.
|css/* |RainLoop |Snappy |RL gzip |SM gzip |SM brotli |
|------------ |-------: |------: |------: |------: |--------: |
-|app.css | 340.331 | 81.526 | 46.946 | 16.960 | 14.620 |
-|app.min.css | 274.947 | 65.398 | 39.647 | 15.032 | 13.119 |
+|app.css | 340.331 | 81.459 | 46.946 | 16.976 | 14.618 |
+|app.min.css | 274.947 | 65.368 | 39.647 | 15.033 | 13.117 |
|boot.css | | 1.326 | | 664 | 545 |
|boot.min.css | | 1.071 | | 590 | 474 |
|admin.css | | 30.296 | | 6.939 | 6.066 |
diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md
index 2734581bf..609eb073b 100644
--- a/integrations/cloudron/DESCRIPTION.md
+++ b/integrations/cloudron/DESCRIPTION.md
@@ -1,4 +1,4 @@
-This app packages SnappyMail
2.26.4.
+This app packages SnappyMail
2.27.0.
SnappyMail is a simple, modern, lightweight & fast web-based email client.
diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile
index 2ca24fdce..88c0b0bd5 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.26.4
+VERSION=2.27.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 && \
diff --git a/integrations/nextcloud/snappymail/appinfo/info.xml b/integrations/nextcloud/snappymail/appinfo/info.xml
index e3b0394a0..08ee07b34 100644
--- a/integrations/nextcloud/snappymail/appinfo/info.xml
+++ b/integrations/nextcloud/snappymail/appinfo/info.xml
@@ -3,7 +3,7 @@
snappymail
SnappyMail
SnappyMail Webmail
-
2.26.4
+
2.27.0
agpl
SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli
Date: Mon, 20 Mar 2023 22:22:37 +0100
Subject: [PATCH 10/11] Resolve #1027
---
dev/View/Popup/Compose.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js
index 53ec466c1..f24757dfc 100644
--- a/dev/View/Popup/Compose.js
+++ b/dev/View/Popup/Compose.js
@@ -801,7 +801,7 @@ export class ComposePopupView extends AbstractViewPopup {
}
if (msgComposeType && message) {
- sDate = timestampToString(message.dateTimeStampInUTC(), 'FULL');
+ sDate = timestampToString(message.dateTimestamp(), 'FULL');
sSubject = message.subject();
aDraftInfo = message.draftInfo;
From 6b29460bdf56beaa23c28754f2dfbea517ecb139 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Mar 2023 22:38:02 +0100
Subject: [PATCH 11/11] Change for #1025
---
dev/Styles/User/SystemDropDown.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dev/Styles/User/SystemDropDown.less b/dev/Styles/User/SystemDropDown.less
index be702aad8..7b35ad806 100644
--- a/dev/Styles/User/SystemDropDown.less
+++ b/dev/Styles/User/SystemDropDown.less
@@ -50,7 +50,7 @@
.accountPlace {
border-right: 1px solid var(--btn-border-clr, rgba(0, 0, 0, 0.2));
display: inline-block;
- font-weight: bold;
+ font-weight: 600;
font-size: 16px;
line-height: 22px;
margin: 0 6px -3px 0;