blob: 51fe8bb5c49954db9bed812984d5a79c308816c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
'use strict';
const page = require('page');
const events = require('../events.js');
const topNavController = require('../controllers/top_nav_controller.js');
const SettingsView = require('../views/settings_view.js');
class SettingsController {
constructor() {
this.settingsView = new SettingsView();
}
registerRoutes() {
page('/settings', (ctx, next) => { this.settingsRoute(); });
}
settingsRoute() {
topNavController.activate('settings');
this.settingsView.render({
getSettings: () => this.getSettings(),
saveSettings: newSettings => this.saveSettings(newSettings),
});
}
saveSettings(browsingSettings) {
localStorage.setItem('settings', JSON.stringify(browsingSettings));
events.notify(events.Success, 'Settings saved');
events.notify(events.SettingsChange);
}
getSettings(settings) {
const defaultSettings = {
endlessScroll: false,
};
let ret = {};
let userSettings = localStorage.getItem('settings');
if (userSettings) {
userSettings = JSON.parse(userSettings);
}
if (!userSettings) {
userSettings = {};
}
for (let key of Object.keys(defaultSettings)) {
if (key in userSettings) {
ret[key] = userSettings[key];
} else {
ret[key] = defaultSettings[key];
}
}
return ret;
}
};
module.exports = new SettingsController();
|