mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-08 08:57:03 +03:00
Merge branch 'the-djmaze:master' into master
This commit is contained in:
commit
bf54ed90a7
16 changed files with 52 additions and 42 deletions
|
|
@ -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"
|
||||||
|
|
|
||||||
16
CHANGELOG.md
16
CHANGELOG.md
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 && \
|
||||||
|
|
|
||||||
|
|
@ -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.**
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
BIN
vendors/fontastic/fonts/snappymail.woff
vendored
BIN
vendors/fontastic/fonts/snappymail.woff
vendored
Binary file not shown.
BIN
vendors/fontastic/fonts/snappymail.woff2
vendored
BIN
vendors/fontastic/fonts/snappymail.woff2
vendored
Binary file not shown.
16
vendors/fontastic/styles.css
vendored
16
vendors/fontastic/styles.css
vendored
|
|
@ -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";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue