This commit is contained in:
the-djmaze 2023-11-27 15:07:02 +01:00
parent 771c6f7559
commit daf1e2769f
6 changed files with 47 additions and 32 deletions

View file

@ -276,7 +276,7 @@ viewMessage = (oMessage, popup) => {
MessageUserStore.loading(false);
oMessage.body.hidden = false;
if (oMessage.isUnseen()) {
if (oMessage.isUnseen() && SettingsUserStore.messageReadAuto()) {
MessageUserStore.MessageSeenTimer = setTimeout(
() => MessagelistUserStore.setAction(oMessage.folder, MessageSetAction.SetSeen, [oMessage]),
SettingsUserStore.messageReadDelay() * 1000 // seconds

View file

@ -104,7 +104,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
this.addSettings(['ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'HideDeleted', 'RemoveColors', 'AllowStyles',
'ListInlineAttachments', 'simpleAttachmentsList', 'UseCheckboxesInList', 'listGrouped', 'ReplySameFolder',
'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt', 'allowSpellcheck',
'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt', 'allowSpellcheck', 'messageReadAuto',
'DesktopNotifications', 'SoundNotification', 'CollapseBlockquotes', 'AllowDraftAutosave', 'showNextMessage']);
const fReloadLanguageHelper = (saveSettingsStep) => () => {

View file

@ -35,6 +35,7 @@ export const SettingsUserStore = new class {
unhideKolabFolders: 0,
autoLogout: 0,
showUnreadCount: 0,
messageReadAuto: 0,
requestReadReceipt: 0,
requestDsn: 0,
@ -78,39 +79,44 @@ export const SettingsUserStore = new class {
const self = this;
self.editorDefaultType(SettingsGet('EditorDefaultType'));
[
'messageReadAuto',
'MsgDefaultAction',
'ViewHTML',
'ViewImages',
'ViewImagesWhitelist',
'RemoveColors',
'AllowStyles',
'CollapseBlockquotes',
'MaxBlockquotesLevel',
'ListInlineAttachments',
'simpleAttachmentsList',
'UseCheckboxesInList',
'listGrouped',
'showNextMessage',
'AllowDraftAutosave',
'UseThreads',
'ReplySameFolder',
'HideUnsubscribed',
'HideDeleted',
'ShowUnreadCount',
'UnhideKolabFolders',
'requestReadReceipt',
'requestDsn',
'requireTLS',
'pgpSign',
'pgpEncrypt',
'allowSpellcheck'
].forEach(name => {
let value = SettingsGet(name);
name = name[0].toLowerCase() + name.slice(1);
self[name](value);
});
self.layout(pInt(SettingsGet('Layout')));
self.messagesPerPage(pInt(SettingsGet('MessagesPerPage')));
self.checkMailInterval(pInt(SettingsGet('CheckMailInterval')));
self.messageReadDelay(pInt(SettingsGet('MessageReadDelay')));
self.autoLogout(pInt(SettingsGet('AutoLogout')));
self.msgDefaultAction(SettingsGet('MsgDefaultAction'));
self.viewHTML(SettingsGet('ViewHTML'));
self.viewImages(SettingsGet('ViewImages'));
self.viewImagesWhitelist(SettingsGet('ViewImagesWhitelist'));
self.removeColors(SettingsGet('RemoveColors'));
self.allowStyles(SettingsGet('AllowStyles'));
self.collapseBlockquotes(SettingsGet('CollapseBlockquotes'));
self.maxBlockquotesLevel(SettingsGet('MaxBlockquotesLevel'));
self.listInlineAttachments(SettingsGet('ListInlineAttachments'));
self.simpleAttachmentsList(SettingsGet('simpleAttachmentsList'));
self.useCheckboxesInList(SettingsGet('UseCheckboxesInList'));
self.listGrouped(SettingsGet('listGrouped'));
self.showNextMessage(SettingsGet('showNextMessage'));
self.allowDraftAutosave(SettingsGet('AllowDraftAutosave'));
self.useThreads(SettingsGet('UseThreads'));
self.replySameFolder(SettingsGet('ReplySameFolder'));
self.hideUnsubscribed(SettingsGet('HideUnsubscribed'));
self.hideDeleted(SettingsGet('HideDeleted'));
self.showUnreadCount(SettingsGet('ShowUnreadCount'));
self.unhideKolabFolders(SettingsGet('UnhideKolabFolders'));
self.requestReadReceipt(SettingsGet('requestReadReceipt'));
self.requestDsn(SettingsGet('requestDsn'));
self.requireTLS(SettingsGet('requireTLS'));
self.pgpSign(SettingsGet('pgpSign'));
self.pgpEncrypt(SettingsGet('pgpEncrypt'));
self.allowSpellcheck(SettingsGet('allowSpellcheck'));
}
};

View file

@ -691,6 +691,7 @@ class Actions
'simpleAttachmentsList' => false,
'listGrouped' => $oConfig->Get('defaults', 'mail_list_grouped', false),
'MessagesPerPage' => (int) $oConfig->Get('webmail', 'messages_per_page', 25),
'messageReadAuto' => true, // (bool) $oConfig->Get('webmail', 'message_read_auto', true),
'MessageReadDelay' => (int) $oConfig->Get('webmail', 'message_read_delay', 5),
'MsgDefaultAction' => (int) $oConfig->Get('defaults', 'msg_default_action', 1),
'SoundNotification' => true,
@ -790,6 +791,7 @@ class Actions
$aResult['listGrouped'] = (bool)$oSettings->GetConf('listGrouped', $aResult['listGrouped']);
$aResult['ContactsAutosave'] = (bool)$oSettings->GetConf('ContactsAutosave', $aResult['ContactsAutosave']);
$aResult['MessagesPerPage'] = (int)$oSettings->GetConf('MessagesPerPage', $aResult['MessagesPerPage']);
$aResult['messageReadAuto'] = (int)$oSettings->GetConf('messageReadAuto', $aResult['messageReadAuto']);
$aResult['MessageReadDelay'] = (int)$oSettings->GetConf('MessageReadDelay', $aResult['MessageReadDelay']);
$aResult['MsgDefaultAction'] = (int)$oSettings->GetConf('MsgDefaultAction', $aResult['MsgDefaultAction']);
$aResult['SoundNotification'] = (bool)$oSettings->GetConf('SoundNotification', $aResult['SoundNotification']);

View file

@ -201,6 +201,7 @@ trait User
$this->setSettingsFromParams($oSettings, 'UseCheckboxesInList', 'bool');
$this->setSettingsFromParams($oSettings, 'AllowDraftAutosave', 'bool');
$this->setSettingsFromParams($oSettings, 'AutoLogout', 'int');
$this->setSettingsFromParams($oSettings, 'messageReadAuto', 'bool');
$this->setSettingsFromParams($oSettings, 'MessageReadDelay', 'int');
$this->setSettingsFromParams($oSettings, 'MsgDefaultAction', 'int');
$this->setSettingsFromParams($oSettings, 'showNextMessage', 'bool');

View file

@ -175,7 +175,13 @@
<div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></div>
<div class="control-group">
<label data-i18n="SETTINGS_GENERAL/MARK_MESSAGE_READ_AFTER"></label>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'SETTINGS_GENERAL/MARK_MESSAGE_READ_AFTER',
value: messageReadAuto
}
}"></div>
<div>
<input type="number" min="0" step="1" class="span1" data-bind="textInput: messageReadDelay">
&nbsp;