forked from ReDEnergy/SessionSync
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsession-history.js
More file actions
87 lines (72 loc) · 1.99 KB
/
Copy pathsession-history.js
File metadata and controls
87 lines (72 loc) · 1.99 KB
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
define(function(require, exports) {
'use strict';
// *****************************************************************************
// Custom Modules
const { AppConfig } = require('../config');
const { WindowEvents, GlobalEvents } = require('../utils/global-events');
// *****************************************************************************
// API
var SessionHistory = (function SessionHistory()
{
var configKey = 'history.config';
var sessionsKey = 'history.sessions';
var getHistory = function getHistory(callback)
{
if (AppConfig.isAddonContext()) {
browser.storage.local.get(sessionsKey).then(function (obj) {
if(obj[sessionsKey]) {
callback(obj[sessionsKey]);
}
});
}
};
var getConfig = function getConfig(callback)
{
if (AppConfig.isAddonContext()) {
browser.storage.local.get(configKey).then(function (obj) {
callback(obj[configKey]);
});
}
};
var updateConfig = function updateConfig(info)
{
browser.storage.local.set({ [configKey] : info});
};
var updateSessions = function updateSessions(sessions)
{
browser.storage.local.set({ [sessionsKey] : sessions})
.then(function () {
WindowEvents.emit(document, 'ShowHistoryList');
});
};
GlobalEvents.on('HistorySessionDelete', function(index)
{
getHistory(function (sessions) {
if (index >= 0 && index < sessions.length) {
if (index == sessions.length - 1)
{
sessions[index] = undefined;
}
else
{
sessions.splice(index, 1);
}
updateSessions(sessions);
}
});
});
GlobalEvents.on('HistorySessionDeleteAll', function() {
updateSessions([]);
});
// ------------------------------------------------------------------------
// Public API
return {
getConfig: getConfig,
getHistory: getHistory,
updateConfig: updateConfig
};
})();
// *****************************************************************************
// Public API
exports.SessionHistory = SessionHistory;
});