-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathsettings.js
61 lines (55 loc) · 1.8 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
var tabs = require('sdk/tabs');
var Self = require("sdk/self");
var Prefs = require("sdk/simple-prefs").prefs;
var _ = require("sdk/l10n").get;
var { on, once, off, emit } = require('sdk/event/core');
var api = require("API").API;
var Settings = {
// Open new tab with user settings
open: function ()
{
if (Settings._tab) {
Settings._tab.activate();
} else {
tabs.open({url: Self.data.url("settings.html"),
onOpen: Settings.onOpen,
onReady: Settings.onReady,
onClose: Settings.onClose
});
}
},
onOpen: function (tab)
{
Settings._tab = tab;
},
onReady: function (tab)
{
api.request_task_update();
let worker = tab.attach({
contentScriptFile: Self.data.url("settings.js")
//TODO add onError handler
})
worker.port.emit("set-default-settings",
{ "userId" : Prefs.userId,
"apiKey" : Prefs.apiKey,
"taskId" : Prefs.taskId,
"viceHosts" : Prefs.viceHosts,
"benHosts" : Prefs.benHosts,
"penaltystart" : Prefs.penaltystart,
"penaltyend" : Prefs.penaltyend,
});
on(api, "user-tasks-updated", function (user_tasks) {
worker.port.emit("updateTaskList", user_tasks);
})
worker.port.on("user-settings-updated", function(settings) {
for (var k in settings) {
Prefs[k] = settings[k];
}
})
},
onClose: function ()
{
Settings._tab = null;
}
}
exports.Settings = Settings;