Skip to content

Commit bff5d16

Browse files
author
pseudocode88
committed
Make account settings persist
1 parent b901448 commit bff5d16

File tree

3 files changed

+563
-65
lines changed

3 files changed

+563
-65
lines changed

calc.js

Lines changed: 110 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,129 @@
1-
var el = {}, data = {};
1+
const $ = require('jquery');
2+
var DS = require('nedb');
3+
4+
var el = {
5+
accountSettings: {}
6+
};
7+
8+
var data = {
9+
accountSettings: {
10+
capital: 0,
11+
minRisk: 0,
12+
maxRisk: 0,
13+
makerFee: 0,
14+
takerFee: 0
15+
}
16+
};
17+
18+
var db = {};
219

320
function cacheSelectors() {
4-
el.sl = document.getElementById('sl');
5-
el.ps = document.getElementById('ps');
6-
el.lev = document.getElementById('lev');
7-
el.minRisk = document.getElementById('min-risk');
8-
el.maxRisk = document.getElementById('max-risk');
9-
el.capital = document.getElementById('capital');
10-
el.margin = document.getElementById('margin');
11-
el.risk = document.getElementById('risk');
21+
cacheAccountSettingsSelectors();
22+
}
23+
24+
function cacheAccountSettingsSelectors() {
25+
el.accountSettings.editButton = $('#button-edit-account-settings');
26+
el.accountSettings.form = $('#form-account-settings');
27+
el.accountSettings.section = $('#section-account-settings');
28+
el.accountSettings.cancel = $('#button-cancel-account-settings');
29+
el.accountSettings.save = $('#button-save-account-settings');
1230
}
1331

1432
function eventBindings() {
15-
el.sl.addEventListener('keyup', calc);
16-
el.ps.addEventListener('keyup', calc);
17-
el.lev.addEventListener('keyup', calc);
18-
el.minRisk.addEventListener('keyup', calc);
19-
el.maxRisk.addEventListener('keyup', calc);
20-
el.capital.addEventListener('keyup', calc);
33+
eventBindingsForAccountSettings();
2134
}
2235

23-
function updateData() {
24-
data.sl = el.sl.value;
25-
data.ps = el.ps.value;
26-
data.lev = el.lev.value || 1;
27-
data.minRisk = el.minRisk.value;
28-
data.maxRisk = el.maxRisk.value;
29-
data.capital = el.capital.value;
36+
function eventBindingsForAccountSettings() {
37+
el.accountSettings.editButton.click(() => { toggleAccountSettingsForm(true) });
38+
el.accountSettings.cancel.click(() => { toggleAccountSettingsForm(false) });
39+
el.accountSettings.save.click(() => {
40+
updateAccountSettingsData();
41+
toggleAccountSettingsForm(false);
42+
renderAccountSettingsData();
43+
});
3044
}
3145

32-
function calc() {
33-
updateData();
46+
function toggleAccountSettingsForm(showForm) {
47+
if (showForm) {
48+
renderAccountSettingsData(true);
49+
el.accountSettings.form.removeClass('hide');
50+
el.accountSettings.section.addClass('hide');
51+
} else {
52+
el.accountSettings.form.addClass('hide');
53+
el.accountSettings.section.removeClass('hide');
54+
}
55+
}
3456

35-
data.margin = data.ps / data.lev;
36-
data.risk = ((data.sl / 100) * data.lev) * data.margin
57+
function updateAccountSettingsData() {
58+
data.accountSettings.capital = $('#txt-capital').val();
59+
data.accountSettings.minRisk = $('#txt-min-risk').val();
60+
data.accountSettings.maxRisk = $('#txt-max-risk').val();
61+
data.accountSettings.makerFee = $('#txt-maker-fee').val();
62+
data.accountSettings.takerFee = $('#txt-taker-fee').val();
3763

38-
el.margin.innerHTML = data.margin;
39-
el.risk.innerHTML = data.risk;
64+
db.accountSettings.findOne({ exchange: 'default' }, (err, docs) => {
65+
if (!docs) {
66+
db.accountSettings.insert({
67+
exchange: 'default',
68+
capital: data.accountSettings.capital,
69+
minRisk: data.accountSettings.minRisk,
70+
maxRisk: data.accountSettings.maxRisk,
71+
makerFee: data.accountSettings.makerFee,
72+
takerFee: data.accountSettings.takerFee
73+
})
74+
} else {
75+
db.accountSettings.update({
76+
exchange: 'default'
77+
}, {
78+
exchange: 'default',
79+
capital: data.accountSettings.capital,
80+
minRisk: data.accountSettings.minRisk,
81+
maxRisk: data.accountSettings.maxRisk,
82+
makerFee: data.accountSettings.makerFee,
83+
takerFee: data.accountSettings.takerFee
84+
})
85+
}
86+
})
87+
}
4088

41-
if (data.risk < data.minRisk) {
42-
el.risk.style.color = "green";
43-
} else if (data.risk > data.minRisk && data.risk < data.maxRisk) {
44-
el.risk.style.color = "orange";
89+
function renderAccountSettingsData(isForm) {
90+
if (isForm) {
91+
$('#txt-capital').val(data.accountSettings.capital);
92+
$('#txt-min-risk').val(data.accountSettings.minRisk);
93+
$('#txt-max-risk').val(data.accountSettings.maxRisk);
94+
$('#txt-maker-fee').val(data.accountSettings.makerFee);
95+
$('#txt-taker-fee').val(data.accountSettings.takerFee);
4596
} else {
46-
el.risk.style.color = "red";
97+
$('#lbl-capital').html(data.accountSettings.capital);
98+
$('#lbl-min-risk').html(data.accountSettings.minRisk);
99+
$('#lbl-max-risk').html(data.accountSettings.maxRisk);
100+
$('#lbl-maker-fee').html(data.accountSettings.makerFee);
101+
$('#lbl-taker-fee').html(data.accountSettings.takerFee);
47102
}
48103
}
49104

50-
function init() {
51-
console.log('init')
105+
$(window).on('load', () => {
106+
107+
db.accountSettings = new DS({
108+
filename: './account-settings.db',
109+
autoload: true,
110+
timestampData: true
111+
});
112+
113+
db.accountSettings.findOne({ exchange: 'default' }, (err, docs) => {
114+
if (docs) {
115+
console.log(docs);
116+
data.accountSettings.capital = docs.capital;
117+
data.accountSettings.minRisk = docs.minRisk;
118+
data.accountSettings.maxRisk = docs.maxRisk;
119+
data.accountSettings.makerFee = docs.makerFee;
120+
data.accountSettings.takerFee = docs.takerFee;
121+
}
122+
123+
renderAccountSettingsData();
124+
})
125+
52126
cacheSelectors();
53127
eventBindings();
54-
calc();
55-
}
56128

57-
window.onload = init;
129+
})

0 commit comments

Comments
 (0)