mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-06-28 14:55:48 +00:00
Some account switch reload improvements
This commit is contained in:
@@ -23,11 +23,9 @@ export class AbstractApp {
|
||||
this.Remote = Remote;
|
||||
}
|
||||
|
||||
logoutReload(close = false) {
|
||||
logoutReload() {
|
||||
const url = logoutLink();
|
||||
|
||||
close && window.close && window.close();
|
||||
|
||||
if (location.href !== url) {
|
||||
setTimeout(() => (Settings.app('inIframe') ? parent : window).location.href = url, 100);
|
||||
} else {
|
||||
|
||||
@@ -708,7 +708,7 @@ class AppUser extends AbstractApp {
|
||||
}
|
||||
|
||||
logout() {
|
||||
Remote.logout(() => rl.logoutReload(!!SettingsGet('ParentEmail')));
|
||||
Remote.logout(() => rl.logoutReload());
|
||||
}
|
||||
|
||||
bootstart() {
|
||||
|
||||
@@ -162,12 +162,11 @@ const
|
||||
});
|
||||
},
|
||||
|
||||
hideScreen = (screenToHide, destroy) => {
|
||||
hideScreen = screenToHide => {
|
||||
screenToHide.onHide && screenToHide.onHide();
|
||||
forEachViewModel(screenToHide, (vm, dom) => {
|
||||
dom.hidden = true;
|
||||
vm.onHide && vm.onHide();
|
||||
destroy && vm.viewModelDom.remove();
|
||||
});
|
||||
},
|
||||
|
||||
@@ -319,7 +318,7 @@ export const
|
||||
*/
|
||||
startScreens = screensClasses => {
|
||||
hasher.clear();
|
||||
forEachObjectValue(SCREENS, screen => hideScreen(screen, 1));
|
||||
forEachObjectValue(SCREENS, screen => hideScreen(screen));
|
||||
SCREENS = {};
|
||||
currentScreen = null,
|
||||
defaultScreenName = '';
|
||||
|
||||
@@ -25,25 +25,6 @@ const urlSafeJSON = data => btoa(JSON.stringify(data))
|
||||
.replace(/=+$/, '');
|
||||
|
||||
class RemoteUserFetch extends AbstractFetchRemote {
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
*/
|
||||
folders(fCallback) {
|
||||
this.defaultRequest(
|
||||
fCallback,
|
||||
'Folders',
|
||||
{
|
||||
SentFolder: SettingsGet('SentFolder'),
|
||||
DraftFolder: SettingsGet('DraftFolder'),
|
||||
SpamFolder: SettingsGet('SpamFolder'),
|
||||
TrashFolder: SettingsGet('TrashFolder'),
|
||||
ArchiveFolder: SettingsGet('ArchiveFolder')
|
||||
},
|
||||
null,
|
||||
'',
|
||||
['Folders']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
@@ -651,6 +632,9 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
||||
this.defaultRequest(fCallback, 'ClearUserBackground');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {?Function} fCallback
|
||||
*/
|
||||
foldersReload(fCallback) {
|
||||
this.abort('Folders')
|
||||
.postRequest('Folders', FolderUserStore.foldersLoading)
|
||||
|
||||
@@ -18,6 +18,7 @@ import { ThemeStore } from 'Stores/Theme';
|
||||
|
||||
import Remote from 'Remote/User/Fetch';
|
||||
import { getNotification } from 'Common/Translator';
|
||||
//import { FolderUserStore } from 'Stores/User/Folder';
|
||||
|
||||
export class SystemDropDownUserView extends AbstractViewRight {
|
||||
constructor() {
|
||||
@@ -60,8 +61,15 @@ export class SystemDropDownUserView extends AbstractViewRight {
|
||||
showScreenPopup(AccountPopupView, [account]);
|
||||
}
|
||||
} else {
|
||||
// This does not work yet
|
||||
// rl.setData(oData.Result);
|
||||
/*
|
||||
// This does not work yet:
|
||||
FolderUserStore.folderList([]);
|
||||
MessageUserStore.list([]);
|
||||
Object.entries(oData.Result).forEach((key, value) => rl.settings.set(key, value));
|
||||
3. reload Folders = Remote.foldersReload
|
||||
4. Change to INBOX = reload MessageList
|
||||
*/
|
||||
// rl.route.reload();
|
||||
location.reload();
|
||||
}
|
||||
}, 'AccountSwitch', {Email:account.email}
|
||||
|
||||
@@ -876,8 +876,6 @@ class Actions
|
||||
if (!$bAdmin) {
|
||||
$oAccount = $this->getAccountFromToken(false);
|
||||
if ($oAccount) {
|
||||
$oAddressBookProvider = $this->AddressBookProvider($oAccount);
|
||||
|
||||
$aResult['Auth'] = true;
|
||||
$aResult['Email'] = $oAccount->Email();
|
||||
$aResult['IncLogin'] = $oAccount->IncLogin();
|
||||
@@ -885,7 +883,7 @@ class Actions
|
||||
$aResult['AccountHash'] = $oAccount->Hash();
|
||||
// $aResult['AccountSignMe'] = $oAccount->SignMe();
|
||||
$aResult['AccountSignMe'] = false;
|
||||
$aResult['ContactsIsAllowed'] = $oAddressBookProvider->IsActive();
|
||||
$aResult['ContactsIsAllowed'] = $this->AddressBookProvider($oAccount)->IsActive();
|
||||
$aResult['ContactsSyncIsAllowed'] = (bool)$oConfig->Get('contacts', 'allow_sync', false);
|
||||
$aResult['ContactsSyncInterval'] = (int)$oConfig->Get('contacts', 'sync_interval', 20);
|
||||
|
||||
@@ -936,6 +934,8 @@ class Actions
|
||||
$aResult['TrashFolder'] = (string)$oSettingsLocal->GetConf('TrashFolder', '');
|
||||
$aResult['ArchiveFolder'] = (string)$oSettingsLocal->GetConf('ArchiveFolder', '');
|
||||
$aResult['HideUnsubscribed'] = (bool)$oSettingsLocal->GetConf('HideUnsubscribed', $aResult['HideUnsubscribed']);
|
||||
$aResult['UseThreads'] = (bool)$oSettingsLocal->GetConf('UseThreads', $aResult['UseThreads']);
|
||||
$aResult['ReplySameFolder'] = (bool)$oSettingsLocal->GetConf('ReplySameFolder', $aResult['ReplySameFolder']);
|
||||
}
|
||||
|
||||
if ($oSettings instanceof Settings) {
|
||||
@@ -967,11 +967,6 @@ class Actions
|
||||
}
|
||||
}
|
||||
|
||||
if ($oSettingsLocal instanceof Settings) {
|
||||
$aResult['UseThreads'] = (bool)$oSettingsLocal->GetConf('UseThreads', $aResult['UseThreads']);
|
||||
$aResult['ReplySameFolder'] = (bool)$oSettingsLocal->GetConf('ReplySameFolder', $aResult['ReplySameFolder']);
|
||||
}
|
||||
|
||||
$aResult['NewMailSounds'] = [];
|
||||
foreach (\glob(APP_VERSION_ROOT_PATH.'static/sounds/*.mp3') as $file) {
|
||||
$aResult['NewMailSounds'][] = \basename($file, '.mp3');
|
||||
|
||||
@@ -201,7 +201,27 @@ trait Accounts
|
||||
public function DoAccountSwitch(): array
|
||||
{
|
||||
if ($this->switchAccount(\trim($this->GetActionParam('Email', '')))) {
|
||||
return $this->DefaultResponse(__FUNCTION__, $this->AppData(false));
|
||||
$oAccount = $this->getAccountFromToken();
|
||||
$aResult['Email'] = $oAccount->Email();
|
||||
$aResult['IncLogin'] = $oAccount->IncLogin();
|
||||
$aResult['OutLogin'] = $oAccount->OutLogin();
|
||||
$aResult['AccountHash'] = $oAccount->Hash();
|
||||
$aResult['ParentEmail'] = $oAccount->ParentEmail();
|
||||
$aResult['ContactsIsAllowed'] = $this->AddressBookProvider($oAccount)->IsActive();
|
||||
$oSettingsLocal = $this->SettingsProvider(true)->Load($oAccount);
|
||||
if ($oSettingsLocal instanceof Settings) {
|
||||
$aResult['SentFolder'] = (string) $oSettingsLocal->GetConf('SentFolder', '');
|
||||
$aResult['DraftFolder'] = (string) $oSettingsLocal->GetConf('DraftFolder', '');
|
||||
$aResult['SpamFolder'] = (string) $oSettingsLocal->GetConf('SpamFolder', '');
|
||||
$aResult['TrashFolder'] = (string) $oSettingsLocal->GetConf('TrashFolder', '');
|
||||
$aResult['ArchiveFolder'] = (string) $oSettingsLocal->GetConf('ArchiveFolder', '');
|
||||
$aResult['HideUnsubscribed'] = (bool) $oSettingsLocal->GetConf('HideUnsubscribed', $aResult['HideUnsubscribed']);
|
||||
$aResult['UseThreads'] = (bool) $oSettingsLocal->GetConf('UseThreads', $aResult['UseThreads']);
|
||||
$aResult['ReplySameFolder'] = (bool) $oSettingsLocal->GetConf('ReplySameFolder', $aResult['ReplySameFolder']);
|
||||
}
|
||||
// $this->Plugins()->InitAppData($bAdmin, $aResult, $oAccount);
|
||||
|
||||
return $this->DefaultResponse(__FUNCTION__, $aResult);
|
||||
}
|
||||
return $this->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user