-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.js
119 lines (99 loc) · 3.71 KB
/
settings.js
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const electron = require('electron');
var ipc = electron.ipcRenderer;
const remote = electron.remote;
window.onerror = function(error, url, line){
log("Error at line " + line + ": " + error);
};
const AutoLaunch = require('auto-launch');
const $ = require('jquery');
var settings;
var package;
var setting_panels = ['message_previews-li', 'application-li', 'system-li', 'about-li'];
var selected_panel = setting_panels[0];
$(document).ready(() => {
settings = remote.getGlobal('settings');
package = remote.getGlobal('package');
setup();
});
function validate(number) {
return !isNaN(number);
}
function setPanelListItemStyle() {
setting_panels.forEach((panel_name) => {
$('#' + panel_name).removeClass('settings_list_item_selected');
});
$('#' + selected_panel).addClass('settings_list_item_selected');
}
function setDisplaySettingsPanel() {
var panelID = $('#' + selected_panel).attr('data-panel');
//hide all panels
setting_panels.forEach((panel_name) => {
var pan_id = $('#' + panel_name).attr('data-panel');
$('#' + pan_id).css({ display: 'none' });
});
//Show one panel
$('#' + panelID).css({ display: 'unset' });
}
function setup() {
setPanelListItemStyle();
setDisplaySettingsPanel();
setting_panels.forEach((panel_name) => {
$('#' + panel_name).click((event) => {
selected_panel = panel_name;
setPanelListItemStyle();
setDisplaySettingsPanel();
});
});
setupMessagePreviewPanel();
setupApplicationPanel();
setupSystemPanel();
setupAboutPanel();
}
function setupMessagePreviewPanel() {
$('#message_display_period-number').val(settings.message_display_period);
$('#message_display_period-number').on('mouseup keyup', (event) => {
var value = $('#message_display_period-number').val();
if (validate(value) && value > -1) {
$('#message_display_period-number').removeClass('error_outline');
settings.message_display_period = value;
} else {
$('#message_display_period-number').addClass('error_outline');
}
});
$('#message_allow_muted-checkbox').attr('checked', settings.quickMessagesAllowMuted);
$('#message_allow_muted-checkbox').change(()=>{
settings.quickMessagesAllowMuted = $('#message_allow_muted-checkbox').prop('checked');
});
}
function setupApplicationPanel(){
$('#tray_menu_threads-number').val(settings.trayContextMenuRecentThreadsAmount);
$('#tray_menu_threads-number').on('mouseup keyup', (event) => {
var value = $('#tray_menu_threads-number').val();
if (validate(value) && value > -1) {
$('#tray_menu_threads-number').removeClass('error_outline');
settings.trayContextMenuRecentThreadsAmount = value;
} else {
$('#tray_menu_threads-number').addClass('error_outline');
}
});
}
function setupSystemPanel() {
var selfAutoLaunch = new AutoLaunch({ name: 'DesktopMessenger' });
$('#launch_on_startup-checkbox').prop('checked', selfAutoLaunch.isEnabled());
$('#launch_on_startup-checkbox').change((event)=>{
if($('#launch_on_startup-checkbox').is(':checked')){
log('Enabling launch on system startup.');
selfAutoLaunch.enable((err)=>log('Error: Could\'t enable launch_on_startup.'));
}else{
log('Disabling launch on system startup.');
selfAutoLaunch.disable((err)=>log('Error: Could\'t disable launch_on_startup.'));
}
});
}
function setupAboutPanel(){
$('#about_application_name-h1').text(package.name);
$('#about_version-h2').text('Version ' + package.version);
}
function log(log) {
ipc.send('console.log', log);
}