-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultistocks.js
61 lines (47 loc) · 1.38 KB
/
multistocks.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 g_selectedStocksSymbols = null;
var g_db = DBFactory.getDB();
var g_stocksProvider = StocksProviderFactory.getStocksProvider();
var g_stockId2Name = {};
async function init() {
await g_db.init();
g_stocksProvider.getAllStocks(function(allStocks) {
setStocksList(allStocks);
g_db.loadSelectedStocks(setSelectedStocks);
});
$('#all-stocks-list').on('change', function(e) {
selectedStocks = $('#all-stocks-list').select2('data');
g_selectedStocksSymbols = selectedStocks.map(function(currStock) {
return currStock.id;
})
g_db.saveSelectedStocks(g_selectedStocksSymbols);
loadAndChartSelectedStocks();
});
}
function setStocksList(allStocks) {
var data = $.map(allStocks, function (stockData) {
obj = {
id: stockData["symbol"],
text: stockData["name"]
};
// Save id to name mapping
g_stockId2Name[obj.id] = obj.text;
return obj;
});
$('#all-stocks-list').select2({
"data": data,
minimumInputLength: 3
});
}
function timeRangeChanged(evt) {
loadAndChartSelectedStocks();
}
function setSelectedStocks(selectedStockSymbols) {
g_selectedStocksSymbols = selectedStockSymbols;
$('#all-stocks-list').val(selectedStockSymbols);
$('#all-stocks-list').trigger('change');
}
function loadAndChartSelectedStocks() {
g_stocksProvider.loadSelectedStocksData(g_selectedStocksSymbols, function(stocksData) {
chartStocks(stocksData);
});
}