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;