1
0
Fork 0
forked from s3lph/matemat
matemat/static/js/depositlist.js

138 lines
4.1 KiB
JavaScript
Raw Normal View History

2021-04-07 02:41:53 +02:00
Number.prototype.pad = function(size) {
var s = String(this);
while (s.length < (size || 2)) {s = "0" + s;}
return s;
2021-04-07 02:41:53 +02:00
}
const Mode = {
Deposit: 0,
Buy: 1,
Transfer: 2,
}
var append_query_string = '';
let mode = Mode.Deposit;
2021-04-07 09:36:18 +02:00
let product_id = null;
let target_user = null;
let target_user_li = null;
2021-04-07 02:41:53 +02:00
let deposit = '0';
let button = document.createElement('a');
let button_transfer = document.createElement('a');
2021-04-07 02:41:53 +02:00
let input = document.getElementById('deposit-wrapper');
let amount = document.getElementById('deposit-amount');
2021-04-07 09:36:18 +02:00
let title = document.getElementById('deposit-title');
let userlist = document.getElementById('transfer-userlist');
let userlist_list = document.getElementById('transfer-userlist-list');
let ok_button = document.getElementById('numpad-ok');
button.classList.add('btn');
button.classList.add('btn-primary');
button.classList.add('me-2');
2021-04-07 02:41:53 +02:00
button.innerText = 'Deposit';
button.onclick = (ev) => {
mode = Mode.Deposit;
2021-04-07 09:36:18 +02:00
product_id = null;
target_user = null;
2021-04-07 02:41:53 +02:00
deposit = '0';
2021-04-07 09:36:18 +02:00
title.innerText = 'Deposit';
2021-04-07 02:41:53 +02:00
amount.innerText = (Math.floor(parseInt(deposit) / 100)) + '.' + (parseInt(deposit) % 100).pad();
input.classList.add('show');
userlist.classList.remove('show');
ok_button.classList.remove('disabled');
};
button_transfer.classList.add('btn');
button_transfer.classList.add('btn-primary');
button_transfer.classList.add('me-2');
button_transfer.innerText = 'Transfer';
button_transfer.onclick = (ev) => {
mode = Mode.Transfer;
product_id = null;
target_user = null;
deposit = '0';
title.innerText = 'Transfer';
amount.innerText = (Math.floor(parseInt(deposit) / 100)) + '.' + (parseInt(deposit) % 100).pad();
input.classList.add('show');
userlist.classList.add('show');
ok_button.classList.add('disabled');
2021-04-07 02:41:53 +02:00
};
2021-04-07 09:36:18 +02:00
setup_custom_price = (pid, pname) => {
mode = Mode.Buy;
2021-04-07 09:36:18 +02:00
product_id = pid;
target_user = null;
2021-04-07 09:36:18 +02:00
title.innerText = pname;
deposit = '0';
amount.innerText = (Math.floor(parseInt(deposit) / 100)) + '.' + (parseInt(deposit) % 100).pad();
input.classList.add('show');
userlist.classList.remove('show');
ok_button.classList.remove('disabled');
2021-04-07 09:36:18 +02:00
};
set_transfer_user = (li, uid) => {
if (target_user_li != null) {
target_user_li.classList.remove('active');
}
target_user = uid;
target_user_li = li;
ok_button.classList.remove('disabled');
target_user_li.classList.add('active');
}
scrollUserlist = (delta) => {
userlist_list.scrollBy(0, delta);
}
deposit_key = (k) => {
if (k == 'ok') {
switch (mode) {
case Mode.Deposit:
window.location.href = '/deposit?n=' + parseInt(deposit) + append_query_string;
break;
case Mode.Buy:
window.location.href = '/buy?pid=' + product_id + '&price=' + parseInt(deposit) + append_query_string;
break;
case Mode.Transfer:
if (target_user == null) {
return;
}
window.location.href = '/transfer?target=' + target_user + '&n=' + parseInt(deposit) + append_query_string;
break;
}
mode = Mode.Deposit;
deposit = '0';
product_id = null;
target_user = null;
if (target_user_li != null) {
target_user_li.classList.remove('active');
}
input.classList.remove('show');
userlist.classList.remove('show');
2021-04-07 02:41:53 +02:00
} else if (k == 'del') {
if (deposit == '0') {
product_id = null;
target_user = null;
if (target_user_li != null) {
target_user_li.classList.remove('active');
}
userlist.classList.remove('show');
input.classList.remove('show');
}
deposit = deposit.substr(0, deposit.length - 1);
if (deposit.length == 0) {
deposit = '0';
}
amount.innerText = (Math.floor(parseInt(deposit) / 100)) + '.' + (parseInt(deposit) % 100).pad();
} else {
if (deposit == '0') {
deposit = k;
2021-04-07 02:41:53 +02:00
} else {
deposit += k;
}
amount.innerText = (Math.floor(parseInt(deposit) / 100)) + '.' + (parseInt(deposit) % 100).pad();
2021-04-07 02:41:53 +02:00
}
};
let list = document.getElementById("depositlist");
for (let i = 0; i < list.children.length; ++i) {
list.removeChild(list.children[0]);
}
list.insertBefore(button_transfer, list.children[0]);
list.insertBefore(button, list.children[0]);