snappymail/dev/Stores/Language.js
djmaze ea48f5060b isArray to native Array.isArray
isUnd(*) to native undefined === *
isFunc to native typeof * === 'function'
isObject to native typeof * === 'object'
microtime() to native Date().getTime();
noop to native ()=>{}
noopFalse to native ()=>false
noopTrue to native ()=>true
boolToAjax to native *?'1':'0'
Underscore.js to native
2020-07-29 21:49:41 +02:00

38 lines
1.1 KiB
JavaScript

import ko from 'ko';
import * as Settings from 'Storage/Settings';
class LanguageStore {
constructor() {
this.languages = ko.observableArray([]);
this.languagesAdmin = ko.observableArray([]);
this.language = ko
.observable('')
.extend({ limitedList: this.languages })
.extend({ reversible: true });
this.languageAdmin = ko
.observable('')
.extend({ limitedList: this.languagesAdmin })
.extend({ reversible: true });
this.userLanguage = ko.observable('');
this.userLanguageAdmin = ko.observable('');
}
populate() {
const aLanguages = Settings.appSettingsGet('languages'),
aLanguagesAdmin = Settings.appSettingsGet('languagesAdmin');
this.languages(Array.isArray(aLanguages) ? aLanguages : []);
this.languagesAdmin(Array.isArray(aLanguagesAdmin) ? aLanguagesAdmin : []);
this.language(Settings.settingsGet('Language'));
this.languageAdmin(Settings.settingsGet('LanguageAdmin'));
this.userLanguage(Settings.settingsGet('UserLanguage'));
this.userLanguageAdmin(Settings.settingsGet('UserLanguageAdmin'));
}
}
export default new LanguageStore();