Merge branch 'the-djmaze:master' into master

This commit is contained in:
cm-schl 2023-03-21 15:27:49 +01:00 committed by GitHub
commit bf54ed90a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 52 additions and 42 deletions

View file

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

View file

@ -1,4 +1,18 @@
## 2.27.0 2023-03-14 ## 2.27.1 2023-03-21
## Changed
- Improved attachmentIcon glyph coloring
- Better design for .accountPlace text
[#1025](https://github.com/the-djmaze/snappymail/pull/1025)
## Fixed
- Reply is broken
[#1027](https://github.com/the-djmaze/snappymail/pull/1027)
- Endless loop at login - Cannot assign array to property MailSo\Imap\Folder::$MAILBOXID
[#1032](https://github.com/the-djmaze/snappymail/pull/1032)
## 2.27.0 2023-03-20
## Added ## Added
- Unique attachments.zip filename - Unique attachments.zip filename

View file

@ -163,7 +163,7 @@ export class AttachmentModel extends AbstractModel {
thumbnailStyle() { thumbnailStyle() {
return this.hasThumbnail() return this.hasThumbnail()
? 'background:url(' + serverRequestRaw('ViewThumbnail', this.download) + ')' ? 'background:url(' + serverRequestRaw('ViewThumbnail', this.download) + ')'
: ''; : null;
} }
/** /**

View file

@ -31,7 +31,7 @@
} }
} }
.attachmentIconParent { .attachmentIcon {
position: absolute; position: absolute;
height: 48px; height: 48px;
width: 48px; width: 48px;
@ -85,7 +85,9 @@
.iconMain, .iconPreview { .iconMain, .iconPreview {
padding: 6px 0 0; padding: 6px 0 0;
font-size: 36px; font-size: 36px;
color: #aaa; color: var(--main-color);
filter: invert(33%);
mix-blend-mode: difference;
&.icon-none { &.icon-none {
display: none; display: none;
@ -100,21 +102,21 @@
} }
*/ */
.showPreview, .showPreplay, .showPreview,
.hasPreview:hover .iconMain, .hasPreview:hover .iconMain,
.hasPreplay:hover .iconMain, .hasPreview .hidePreview {
.hasPreview .hidePreview,
.hasPreplay .hidePreview {
display: none; display: none;
} }
.hasPreview:hover .iconPreview, .hasPreview:hover .iconPreview {
.hasPreplay:hover .iconPreview {
display: inline-block; display: inline-block;
} }
.hasPreview .showPreview, .hasPreplay:hover .iconMain::before {
.hasPreplay .showPreplay { content: "▶";
}
.hasPreview .showPreview {
display: inline; display: inline;
cursor: pointer; cursor: pointer;
} }

View file

@ -51,15 +51,13 @@
border-right: 1px solid var(--btn-border-clr, rgba(0, 0, 0, 0.2)); border-right: 1px solid var(--btn-border-clr, rgba(0, 0, 0, 0.2));
display: inline-block; display: inline-block;
font-weight: 600; font-weight: 600;
font-size: 16px; line-height: 1.3;
line-height: 22px; margin: 0 6px -4px 0;
margin: 0 6px -3px 0;
max-width: 25vw; max-width: 25vw;
overflow-x: hidden; /* max-width: calc(100vw - 300px);*/
overflow: hidden;
padding-right: 6px; padding-right: 6px;
text-overflow: ellipsis; text-overflow: ellipsis;
text-shadow: 0 1px 0 #000;
white-space: nowrap;
} }
a[data-unread]::after { a[data-unread]::after {

View file

@ -1,4 +1,4 @@
This app packages SnappyMail <upstream>2.27.0</upstream>. This app packages SnappyMail <upstream>2.27.1</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.27.0 VERSION=2.27.1
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.27.0</version> <version>2.27.1</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.27.0" ); return ( "2.27.1" );
} }
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.27.0", "version": "2.27.1",
"homepage": "https://snappymail.eu", "homepage": "https://snappymail.eu",
"author": { "author": {
"name": "DJ Maze", "name": "DJ Maze",

View file

@ -117,10 +117,11 @@ trait Status
$name = 'MAILBOXID'; $name = 'MAILBOXID';
} }
if (\property_exists(__TRAIT__, $name)) { if (\property_exists(__TRAIT__, $name)) {
if ('MAILBOXID' !== $name) { if ('MAILBOXID' === $name) {
$value = (int) $value; $this->MAILBOXID = \base64_encode(\is_array($value) ? $value[0] : $value);
} else {
$this->$name = (int) $value;
} }
$this->$name = $value;
return true; return true;
} }
return false; return false;

View file

@ -231,19 +231,14 @@
<ul class="attachmentList" data-bind="foreach: listAttachments"> <ul class="attachmentList" data-bind="foreach: listAttachments">
<li class="attachmentItem" draggable="true" <li class="attachmentItem" draggable="true"
data-bind="event: { 'dragstart': eventDragStart }, attr: { 'title': fileName }, css: {'checked': checked}"> data-bind="event: { 'dragstart': eventDragStart }, attr: { 'title': fileName }, css: {'checked': checked}">
<div class="attachmentIconParent" data-bind="css: { 'hasPreview': hasPreview(), 'hasPreplay': hasPreplay(), 'isImage': isImage() }"> <div class="attachmentIcon" data-bind="css: { 'hasPreview': hasPreview(), 'hasPreplay': hasPreplay(), 'isImage': isImage() }, attr: { 'style': thumbnailStyle() }">
<i class="hidePreview iconMain" data-bind="css: iconClass()"></i> <i class="hidePreview iconMain" data-bind="css: iconClass()"></i>
<div class="showPreview"> <div class="showPreview">
<a data-bind="css: {'attachmentImagePreview': isImage()}, attr: { 'title': fileName, 'href': linkPreviewMain() }" target="_blank"> <a data-bind="css: {'attachmentImagePreview': isImage()}, attr: { 'title': fileName, 'href': linkPreviewMain() }" target="_blank">
<i class="iconMain" data-bind="visible: !hasThumbnail(), css: iconClass()"></i> <i class="iconMain" data-bind="visible: !hasThumbnail(), css: iconClass()"></i>
<div class="iconBG" data-bind="attr: { 'style': thumbnailStyle() }"></div>
<div class="iconPreview fontastic">👁</div> <div class="iconPreview fontastic">👁</div>
</a> </a>
</div> </div>
<div class="showPreplay">
<i class="iconMain" data-bind="css: iconClass()"></i>
<div class="iconPreview fontastic"></div>
</div>
</div> </div>
<div class="attachmentNameParent"> <div class="attachmentNameParent">
<div class="attachmentName" data-bind="text: fileName"></div> <div class="attachmentName" data-bind="text: fileName"></div>

View file

@ -175,7 +175,7 @@
data-i18n="COMPOSE/ATTACH_DROP_FILES_DESC"></div> data-i18n="COMPOSE/ATTACH_DROP_FILES_DESC"></div>
<ul class="attachmentList" data-bind="foreach: attachments"> <ul class="attachmentList" data-bind="foreach: attachments">
<li class="attachmentItem" data-bind="attr: { 'title': title }, css: { 'waiting': waiting, 'error': '' !== error() }"> <li class="attachmentItem" data-bind="attr: { 'title': title }, css: { 'waiting': waiting, 'error': '' !== error() }">
<div class="attachmentIconParent"> <div class="attachmentIcon">
<i class="iconMain" data-bind="css: iconClass, visible: !uploading() || 0 === progress()"></i> <i class="iconMain" data-bind="css: iconClass, visible: !uploading() || 0 === progress()"></i>
<div class="iconProgress" data-bind="attr: { 'style': progressStyle }, visible: uploading"></div> <div class="iconProgress" data-bind="attr: { 'style': progressStyle }, visible: uploading"></div>
<div class="iconBG" data-bind="text: progressText, visible: uploading"></div> <div class="iconBG" data-bind="text: progressText, visible: uploading"></div>

Binary file not shown.

Binary file not shown.

View file

@ -38,7 +38,7 @@
content: "\e005"; content: "\e005";
} }
.icon-paper-plane::before { .icon-paper-plane::before {
content: "\e007"; content: "📧";
} }
.icon-right-mini::before { .icon-right-mini::before {
content: ""; content: "";
@ -59,31 +59,31 @@
content: "\e030"; content: "\e030";
} }
.icon-file-presentation::before { .icon-file-presentation::before {
content: "\e031"; /* 📊 */ content: "📊";
} }
.icon-file-archive::before { .icon-file-archive::before {
content: "\e032"; content: "📦";
} }
.icon-file-audio::before { .icon-file-audio::before {
content: "\e033"; content: "🔊";
} }
.icon-file-text::before { .icon-file-text::before {
content: "📄"; content: "📄";
} }
.icon-file-image::before { .icon-file-image::before {
content: "\e036"; /* 🖻 */ content: "🖻";
} }
.icon-file-certificate::before { .icon-file-certificate::before {
content: "\e038"; content: "\e038"; /* 🔏 🔐 */
} }
.icon-attachment::before { .icon-attachment::before {
content: "📎"; content: "📎";
} }
.icon-file-spreadsheet::before { .icon-file-spreadsheet::before {
content: "\e03a"; content: "";
} }
.icon-file-video::before { .icon-file-video::before {
content: "\e03b"; content: "🎬";
} }
.icon-folder-add::before { .icon-folder-add::before {
content: "\e03c"; content: "\e03c";