This repository has been archived on 2026-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
polyplus/js/account/trades-outbound.js
StarManTheGamer ff6c26cb0a Revert "chore: format code with Prettier"
This reverts commit cc39111694.
2024-05-27 17:16:58 -05:00

109 lines
No EOL
4.3 KiB
JavaScript
Executable file

var SelectedTrades = []
let Parent = document.getElementsByClassName('card mcard p-5 text-center text-muted')[0].parentElement
let Text = document.createElement('p')
Text.classList = 'mx-auto'
Text.style.textAlign = 'center'
Text.style.fontSize = '1.3rem'
Text.innerHTML = `
<span>0</span> trades selected!
<br>
<button id="viewSelectionBtn" class="btn btn-primary">View Selection</button>
<button id="clearSelectionBtn" class="btn btn-warning">Clear Selection</button>
<button id="cancelSelectionBtn" class="btn btn-danger">Cancel Selected Trades</button>
`
Parent.insertBefore(Text, Parent.children[0])
let Text_Span = Text.querySelector('span');
let Text_View = document.getElementById('viewSelectionBtn');
let Text_Clear = document.getElementById('clearSelectionBtn');
let Text_Cancel = document.getElementById('cancelSelectionBtn');
var ConfirmCancel = 0
Text_View.addEventListener('click', function(){});
Text_Clear.addEventListener('click', function(){
SelectedTrades = []
UpdateCheckboxes();
Text_Span.innerText = SelectedTrades.length
});
Text_Cancel.addEventListener('click', function(){
ConfirmCancel = ConfirmCancel + 1
switch(ConfirmCancel) {
case 0:
Text_Cancel.innerText = 'Cancel Selected Trades'
break
case 1:
Text_Cancel.innerText = 'Are you sure?'
break
case 2:
let Success = true
for (let i = 0; i < SelectedTrades.length; i++) {
setTimeout(function () {}, 110)
console.log(SelectedTrades[i])
fetch('https://polytoria.com/api/trade/decline', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value
},
body: JSON.stringify({ id: SelectedTrades[i] }),
})
.catch(error => {
// Handle any errors
console.error('Error:', error);
Success = false
});
}
SelectedTrades = []
UpdateCheckboxes();
Text_Cancel.innerText = 'Cancel Selected Trades'
ConfirmCancel = 0
break
}
});
LoadCheckBoxes();
function LoadCheckBoxes() {
Array.from(document.getElementsByClassName('card-inbox')).forEach(element => {
let ViewBtn = element.querySelector('a.btn.btn-primary')
let TradeID = parseInt(ViewBtn.getAttribute('href').split('/')[3])
var NewCheckBox = document.createElement('button')
NewCheckBox.classList = 'polyplus-multicanceltr-checkbox'
NewCheckBox.setAttribute('style', 'padding: 20px; background-color: #191919; border: 1px solid #393939; border-radius: 1rem; margin-left: 10px;')
var Index = SelectedTrades.indexOf(TradeID)
if (Index !== -1) {
NewCheckBox.style.borderColor = 'lime'
}
ViewBtn.parentElement.appendChild(NewCheckBox)
NewCheckBox.addEventListener('click', function(){
var Index = SelectedTrades.indexOf(TradeID)
if (Index === -1) {
SelectedTrades.push(TradeID)
NewCheckBox.style.borderColor = 'lime'
} else {
SelectedTrades.splice(Index, 1)
NewCheckBox.style.borderColor = '#393939'
}
Text_Span.innerText = SelectedTrades.length
UpdateCheckboxes();
});
});
}
function UpdateCheckboxes(){
document.querySelectorAll('.polyplus-multicanceltr-checkbox').forEach(element => {
let Parent = element.parentElement
let ViewBtn = Parent.querySelector('a.btn.btn-primary')
if (element.getAttribute('disabled')) {
element.removeAttribute('disabled')
}
if (SelectedTrades.IndexOf(ViewBtn.getAttribute('data-user-id')) === -1) {
element.style.borderColor = '#393939'
} else {
element.style.borderColor = 'lime'
if (SelectedTrades.length >= 10) {
element.setAttribute('disabled', true)
}
}
})
}