mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
commit
7a49d55736
8 changed files with 47 additions and 16 deletions
|
|
@ -200,8 +200,16 @@ export class Selector {
|
||||||
|
|
||||||
addEventsListeners(contentScrollable, {
|
addEventsListeners(contentScrollable, {
|
||||||
click: event => {
|
click: event => {
|
||||||
let el = event.target.closestWithin(this.sItemSelector, contentScrollable);
|
|
||||||
el && this.actionClick(ko.dataFor(el), event);
|
const lowerClassName = event.target.className.toLowerCase();
|
||||||
|
if (this.sItemSelector !== '.messageListItem'
|
||||||
|
|| (lowerClassName.indexOf('flagparent') === -1
|
||||||
|
&& lowerClassName.indexOf('checkbox') === -1)) {
|
||||||
|
|
||||||
|
let el = event.target.closestWithin(this.sItemSelector, contentScrollable);
|
||||||
|
el && this.actionClick(ko.dataFor(el), event);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const item = getItem(this.sItemCheckedSelector);
|
const item = getItem(this.sItemCheckedSelector);
|
||||||
if (item) {
|
if (item) {
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,11 @@ export class MessageModel extends AbstractModel {
|
||||||
threadsLen: () => rl.app.messageList.threadUid() ? 0 : this.threads().length,
|
threadsLen: () => rl.app.messageList.threadUid() ? 0 : this.threads().length,
|
||||||
threadUnseenLen: () => rl.app.messageList.threadUid() ? 0 : this.threadUnseen().length,
|
threadUnseenLen: () => rl.app.messageList.threadUid() ? 0 : this.threadUnseen().length,
|
||||||
|
|
||||||
|
threadsLenText: () => {
|
||||||
|
const unseenLen = this.threadUnseenLen();
|
||||||
|
return this.threadsLen() + (unseenLen > 0 ? '/' + unseenLen : '');
|
||||||
|
},
|
||||||
|
|
||||||
isUnseen: () => !this.flags().includes('\\seen'),
|
isUnseen: () => !this.flags().includes('\\seen'),
|
||||||
isFlagged: () => this.flags().includes('\\flagged'),
|
isFlagged: () => this.flags().includes('\\flagged'),
|
||||||
// isJunk: () => this.flags().includes('$junk') && !this.flags().includes('$nonjunk'),
|
// isJunk: () => this.flags().includes('$junk') && !this.flags().includes('$nonjunk'),
|
||||||
|
|
|
||||||
|
|
@ -344,13 +344,23 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => {
|
||||||
length;
|
length;
|
||||||
|
|
||||||
if (iSetAction == MessageSetAction.SetSeen) {
|
if (iSetAction == MessageSetAction.SetSeen) {
|
||||||
messages.forEach(oMessage =>
|
messages.forEach(oMessage => {
|
||||||
oMessage.isUnseen() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\seen')
|
if (oMessage.isUnseen() && rootUids.push(oMessage.uid)) {
|
||||||
);
|
oMessage.flags.push('\\seen');
|
||||||
|
if (oMessage.threads().length > 0 && oMessage.threadUnseen().includes(oMessage.uid)) {
|
||||||
|
oMessage.threadUnseen.remove(oMessage.uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (iSetAction == MessageSetAction.UnsetSeen) {
|
} else if (iSetAction == MessageSetAction.UnsetSeen) {
|
||||||
messages.forEach(oMessage =>
|
messages.forEach(oMessage => {
|
||||||
!oMessage.isUnseen() && rootUids.push(oMessage.uid) && oMessage.flags.remove('\\seen')
|
if (!oMessage.isUnseen() && rootUids.push(oMessage.uid)) {
|
||||||
);
|
oMessage.flags.remove('\\seen');
|
||||||
|
if (oMessage.threads().length > 0 && !oMessage.threadUnseen().includes(oMessage.uid)) {
|
||||||
|
oMessage.threadUnseen.push(oMessage.uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (iSetAction == MessageSetAction.SetFlag) {
|
} else if (iSetAction == MessageSetAction.SetFlag) {
|
||||||
messages.forEach(oMessage =>
|
messages.forEach(oMessage =>
|
||||||
!oMessage.isFlagged() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\flagged')
|
!oMessage.isFlagged() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\flagged')
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ export class MailMessageList extends AbstractViewRight {
|
||||||
MessagelistUserStore,
|
MessagelistUserStore,
|
||||||
MessagelistUserStore.selectedMessage,
|
MessagelistUserStore.selectedMessage,
|
||||||
MessagelistUserStore.focusedMessage,
|
MessagelistUserStore.focusedMessage,
|
||||||
'.messageListItem .actionHandle',
|
'.messageListItem',
|
||||||
'.messageListItem .messageCheckbox',
|
'.messageListItem .messageCheckbox',
|
||||||
'.messageListItem.focused'
|
'.messageListItem.focused'
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -141,3 +141,10 @@ function SnappyMailFormHelper(oForm)
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addEventListener('hashchange', (event) => {
|
||||||
|
const search = event.newURL.substring(event.newURL.lastIndexOf('/') + 1);
|
||||||
|
if (search && search.length < 25) {
|
||||||
|
document.getElementById('rliframe').contentWindow.rl.app.messageList.mainSearch(search);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -91,12 +91,12 @@ class Provider implements IProvider
|
||||||
$MessageCollection = $oMailClient->MessageList($oParams);
|
$MessageCollection = $oMailClient->MessageList($oParams);
|
||||||
|
|
||||||
$baseURL = $this->urlGenerator->linkToRoute('snappymail.page.index');
|
$baseURL = $this->urlGenerator->linkToRoute('snappymail.page.index');
|
||||||
$config = \OC::$server->getConfig();
|
// $config = \OC::$server->getConfig();
|
||||||
if ($config->getAppValue('snappymail', 'snappymail-no-embed')) {
|
// if ($config->getAppValue('snappymail', 'snappymail-no-embed')) {
|
||||||
$baseURL .= '?target=';
|
// $baseURL .= '?target=';
|
||||||
} else {
|
// } else {
|
||||||
$baseURL .= '#';
|
$baseURL .= '#';
|
||||||
}
|
// }
|
||||||
$search = \rawurlencode($oParams->sSearch);
|
$search = \rawurlencode($oParams->sSearch);
|
||||||
|
|
||||||
// $MessageCollection->totalEmails;
|
// $MessageCollection->totalEmails;
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@
|
||||||
<div class="flagParent fontastic"></div>
|
<div class="flagParent fontastic"></div>
|
||||||
<div class="senderParent actionHandle" data-bind="attr: {'title': senderClearEmailsString}, text: senderEmailsString"></div>
|
<div class="senderParent actionHandle" data-bind="attr: {'title': senderClearEmailsString}, text: senderEmailsString"></div>
|
||||||
<div class="subjectParent actionHandle" data-bind="text: subject"></div>
|
<div class="subjectParent actionHandle" data-bind="text: subject"></div>
|
||||||
<div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLen, attr: {'data-unseen': threadUnseenLen() || null}"></div>
|
<div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div>
|
||||||
<div class="attachmentParent actionHandle">
|
<div class="attachmentParent actionHandle">
|
||||||
<i data-bind="css: attachmentIconClass"></i>
|
<i data-bind="css: attachmentIconClass"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
<div class="flagParent fontastic"></div>
|
<div class="flagParent fontastic"></div>
|
||||||
<div class="senderParent actionHandle" data-bind="attr: {'title': senderClearEmailsString}, text: senderEmailsString"></div>
|
<div class="senderParent actionHandle" data-bind="attr: {'title': senderClearEmailsString}, text: senderEmailsString"></div>
|
||||||
<div class="subjectParent actionHandle" data-bind="text: subject"></div>
|
<div class="subjectParent actionHandle" data-bind="text: subject"></div>
|
||||||
<div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLen"></div>
|
<div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div>
|
||||||
<div class="attachmentParent actionHandle">
|
<div class="attachmentParent actionHandle">
|
||||||
<i data-bind="css: attachmentIconClass"></i>
|
<i data-bind="css: attachmentIconClass"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
1
vendors/squire/build/squire-raw.js
vendored
1
vendors/squire/build/squire-raw.js
vendored
|
|
@ -1345,6 +1345,7 @@ const
|
||||||
color = node.color,
|
color = node.color,
|
||||||
newTag = createElement('SPAN'),
|
newTag = createElement('SPAN'),
|
||||||
css = newTag.style;
|
css = newTag.style;
|
||||||
|
newTag.style.cssText = node.style.cssText;
|
||||||
if (face) {
|
if (face) {
|
||||||
css.fontFamily = face;
|
css.fontFamily = face;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue