mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-31 04:59:21 +03:00
Cleanup and better rename settings screens to match template names
This commit is contained in:
parent
30116c183f
commit
4dd58f7c36
83 changed files with 267 additions and 323 deletions
|
|
@ -28,7 +28,7 @@ export class AbstractSettingsScreen extends AbstractScreen {
|
|||
);
|
||||
|
||||
if (RoutedSettingsViewModel) {
|
||||
if (RoutedSettingsViewModel.__builded && RoutedSettingsViewModel.__vm) {
|
||||
if (RoutedSettingsViewModel.__vm) {
|
||||
settingsScreen = RoutedSettingsViewModel.__vm;
|
||||
} else {
|
||||
const vmPlace = elementById('rl-settings-subscreen');
|
||||
|
|
@ -43,7 +43,6 @@ export class AbstractSettingsScreen extends AbstractScreen {
|
|||
settingsScreen.viewModelDom = viewModelDom;
|
||||
|
||||
RoutedSettingsViewModel.__dom = viewModelDom;
|
||||
RoutedSettingsViewModel.__builded = true;
|
||||
RoutedSettingsViewModel.__vm = settingsScreen;
|
||||
|
||||
ko.applyBindingAccessorsToNode(
|
||||
|
|
@ -132,11 +131,12 @@ export class AbstractSettingsScreen extends AbstractScreen {
|
|||
* @returns {void}
|
||||
*/
|
||||
export function settingsAddViewModel(SettingsViewModelClass, template, labelName, route, isDefault = false) {
|
||||
let name = SettingsViewModelClass.name.replace(/(User|Admin)Settings/, '');
|
||||
SettingsViewModelClass.__rlSettingsData = {
|
||||
label: labelName,
|
||||
route: route,
|
||||
label: labelName || 'SETTINGS_LABELS/LABEL_' + name.toUpperCase() + '_NAME',
|
||||
route: route || name.toLowerCase(),
|
||||
selected: ko.observable(false),
|
||||
template: template,
|
||||
template: template || SettingsViewModelClass.name,
|
||||
isDefault: !!isDefault
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@ import { runSettingsViewModelHooks } from 'Common/Plugins';
|
|||
|
||||
import { AbstractSettingsScreen, settingsAddViewModel } from 'Screen/AbstractSettings';
|
||||
|
||||
import { GeneralAdminSettings } from 'Settings/Admin/General';
|
||||
import { DomainsAdminSettings } from 'Settings/Admin/Domains';
|
||||
import { LoginAdminSettings } from 'Settings/Admin/Login';
|
||||
import { ContactsAdminSettings } from 'Settings/Admin/Contacts';
|
||||
import { SecurityAdminSettings } from 'Settings/Admin/Security';
|
||||
import { PackagesAdminSettings } from 'Settings/Admin/Packages';
|
||||
import { AboutAdminSettings } from 'Settings/Admin/About';
|
||||
import { BrandingAdminSettings } from 'Settings/Admin/Branding';
|
||||
import { ConfigAdminSettings } from 'Settings/Admin/Config';
|
||||
import { AdminSettingsGeneral } from 'Settings/Admin/General';
|
||||
import { AdminSettingsDomains } from 'Settings/Admin/Domains';
|
||||
import { AdminSettingsLogin } from 'Settings/Admin/Login';
|
||||
import { AdminSettingsContacts } from 'Settings/Admin/Contacts';
|
||||
import { AdminSettingsSecurity } from 'Settings/Admin/Security';
|
||||
import { AdminSettingsPackages } from 'Settings/Admin/Packages';
|
||||
import { AdminSettingsAbout } from 'Settings/Admin/About';
|
||||
import { AdminSettingsBranding } from 'Settings/Admin/Branding';
|
||||
import { AdminSettingsConfig } from 'Settings/Admin/Config';
|
||||
|
||||
import { MenuSettingsAdminView } from 'View/Admin/Settings/Menu';
|
||||
import { PaneSettingsAdminView } from 'View/Admin/Settings/Pane';
|
||||
|
|
@ -19,30 +19,18 @@ export class SettingsAdminScreen extends AbstractSettingsScreen {
|
|||
constructor() {
|
||||
super([MenuSettingsAdminView, PaneSettingsAdminView]);
|
||||
|
||||
settingsAddViewModel(
|
||||
GeneralAdminSettings,
|
||||
'AdminSettingsGeneral',
|
||||
'TABS_LABELS/LABEL_GENERAL_NAME',
|
||||
'general',
|
||||
true
|
||||
);
|
||||
|
||||
[
|
||||
[DomainsAdminSettings, 'Domains'],
|
||||
[LoginAdminSettings, 'Login'],
|
||||
[BrandingAdminSettings, 'Branding'],
|
||||
[ContactsAdminSettings, 'Contacts'],
|
||||
[SecurityAdminSettings, 'Security'],
|
||||
[PackagesAdminSettings, 'Packages'],
|
||||
[ConfigAdminSettings, 'Config'],
|
||||
[AboutAdminSettings, 'About'],
|
||||
].forEach(item =>
|
||||
settingsAddViewModel(
|
||||
item[0],
|
||||
'AdminSettings'+item[1],
|
||||
'TABS_LABELS/LABEL_'+item[1].toUpperCase()+'_NAME',
|
||||
item[1].toLowerCase()
|
||||
)
|
||||
AdminSettingsGeneral,
|
||||
AdminSettingsDomains,
|
||||
AdminSettingsLogin,
|
||||
AdminSettingsBranding,
|
||||
AdminSettingsContacts,
|
||||
AdminSettingsSecurity,
|
||||
AdminSettingsPackages,
|
||||
AdminSettingsConfig,
|
||||
AdminSettingsAbout
|
||||
].forEach((item, index) =>
|
||||
settingsAddViewModel(item, 0, 0, 0, 0 === index)
|
||||
);
|
||||
|
||||
runSettingsViewModelHooks(true);
|
||||
|
|
|
|||
|
|
@ -82,20 +82,18 @@ export class MailBoxUserScreen extends AbstractScreen {
|
|||
* @returns {void}
|
||||
*/
|
||||
onStart() {
|
||||
if (!this.__started) {
|
||||
super.onStart();
|
||||
super.onStart();
|
||||
|
||||
addEventListener('mailbox.inbox-unread-count', e => {
|
||||
FolderUserStore.foldersInboxUnreadCount(e.detail);
|
||||
/* // Disabled in SystemDropDown.html
|
||||
const email = AccountUserStore.email();
|
||||
AccountUserStore.accounts.forEach(item =>
|
||||
item && email === item.email && item.count(e.detail)
|
||||
);
|
||||
addEventListener('mailbox.inbox-unread-count', e => {
|
||||
FolderUserStore.foldersInboxUnreadCount(e.detail);
|
||||
/* // Disabled in SystemDropDown.html
|
||||
const email = AccountUserStore.email();
|
||||
AccountUserStore.accounts.forEach(item =>
|
||||
item && email === item.email && item.count(e.detail)
|
||||
);
|
||||
*/
|
||||
this.updateWindowTitle();
|
||||
});
|
||||
}
|
||||
this.updateWindowTitle();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -9,14 +9,13 @@ import { ThemeStore } from 'Stores/Theme';
|
|||
|
||||
import { AbstractSettingsScreen, settingsAddViewModel } from 'Screen/AbstractSettings';
|
||||
|
||||
import { GeneralUserSettings } from 'Settings/User/General';
|
||||
import { ContactsUserSettings } from 'Settings/User/Contacts';
|
||||
import { AccountsUserSettings } from 'Settings/User/Accounts';
|
||||
import { FiltersUserSettings } from 'Settings/User/Filters';
|
||||
import { SecurityUserSettings } from 'Settings/User/Security';
|
||||
import { FoldersUserSettings } from 'Settings/User/Folders';
|
||||
import { ThemesUserSettings } from 'Settings/User/Themes';
|
||||
import { OpenPgpUserSettings } from 'Settings/User/OpenPgp';
|
||||
import { UserSettingsGeneral } from 'Settings/User/General';
|
||||
import { UserSettingsContacts } from 'Settings/User/Contacts';
|
||||
import { UserSettingsAccounts } from 'Settings/User/Accounts';
|
||||
import { UserSettingsFilters } from 'Settings/User/Filters';
|
||||
import { UserSettingsSecurity } from 'Settings/User/Security';
|
||||
import { UserSettingsFolders } from 'Settings/User/Folders';
|
||||
import { UserSettingsThemes } from 'Settings/User/Themes';
|
||||
|
||||
import { SystemDropDownUserView } from 'View/User/SystemDropDown';
|
||||
import { MenuSettingsUserView } from 'View/User/Settings/Menu';
|
||||
|
|
@ -26,40 +25,35 @@ export class SettingsUserScreen extends AbstractSettingsScreen {
|
|||
constructor() {
|
||||
super([SystemDropDownUserView, MenuSettingsUserView, PaneSettingsUserView]);
|
||||
|
||||
settingsAddViewModel(GeneralUserSettings, 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true);
|
||||
const views = [
|
||||
UserSettingsGeneral
|
||||
];
|
||||
|
||||
if (AppUserStore.allowContacts()) {
|
||||
settingsAddViewModel(ContactsUserSettings, 'SettingsContacts', 'SETTINGS_LABELS/LABEL_CONTACTS_NAME', 'contacts');
|
||||
views.push(UserSettingsContacts);
|
||||
}
|
||||
|
||||
if (SettingsCapa('AdditionalAccounts') || SettingsCapa('Identities')) {
|
||||
settingsAddViewModel(
|
||||
AccountsUserSettings,
|
||||
'SettingsAccounts',
|
||||
SettingsCapa('AdditionalAccounts')
|
||||
? 'SETTINGS_LABELS/LABEL_ACCOUNTS_NAME'
|
||||
: 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME',
|
||||
'accounts'
|
||||
);
|
||||
views.push(UserSettingsAccounts);
|
||||
}
|
||||
|
||||
if (SettingsCapa('Sieve')) {
|
||||
settingsAddViewModel(FiltersUserSettings, 'SettingsFilters', 'SETTINGS_LABELS/LABEL_FILTERS_NAME', 'filters');
|
||||
views.push(UserSettingsFilters);
|
||||
}
|
||||
|
||||
if (SettingsCapa('AutoLogout')) {
|
||||
settingsAddViewModel(SecurityUserSettings, 'SettingsSecurity', 'SETTINGS_LABELS/LABEL_SECURITY_NAME', 'security');
|
||||
if (SettingsCapa('AutoLogout') || SettingsCapa('OpenPGP') || SettingsCapa('GnuPG')) {
|
||||
views.push(UserSettingsSecurity);
|
||||
}
|
||||
|
||||
settingsAddViewModel(FoldersUserSettings, 'SettingsFolders', 'SETTINGS_LABELS/LABEL_FOLDERS_NAME', 'folders');
|
||||
views.push(UserSettingsFolders);
|
||||
|
||||
if (SettingsCapa('Themes')) {
|
||||
settingsAddViewModel(ThemesUserSettings, 'SettingsThemes', 'SETTINGS_LABELS/LABEL_THEMES_NAME', 'themes');
|
||||
views.push(UserSettingsThemes);
|
||||
}
|
||||
|
||||
if (SettingsCapa('OpenPGP') || SettingsCapa('GnuPG')) {
|
||||
settingsAddViewModel(OpenPgpUserSettings, 'SettingsOpenPGP', 'OpenPGP', 'openpgp');
|
||||
}
|
||||
views.forEach((item, index) =>
|
||||
settingsAddViewModel(item, item.name.replace('User', ''), 0, 0, 0 === index)
|
||||
);
|
||||
|
||||
runSettingsViewModelHooks(false);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue