Feature update and code refactoring
-- added old intern IDs -- added correct sorting order for intern payments -- better search result ordering
This commit is contained in:
parent
61dc621035
commit
1d14b625ec
@ -565,6 +565,7 @@ ul {
|
|||||||
--background: rgba(var(--foreground-color), 1);
|
--background: rgba(var(--foreground-color), 1);
|
||||||
box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
|
box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.1);
|
||||||
border: solid thin rgba(var(--text-color), 0.2);
|
border: solid thin rgba(var(--text-color), 0.2);
|
||||||
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#intern_payment_list {
|
#intern_payment_list {
|
||||||
|
|||||||
2
css/main.min.css
vendored
2
css/main.min.css
vendored
File diff suppressed because one or more lines are too long
@ -529,6 +529,7 @@ ul {
|
|||||||
--background: rgba(var(--foreground-color), 1);
|
--background: rgba(var(--foreground-color), 1);
|
||||||
box-shadow: 0 0.5rem 1.5rem rgba(0 0 0 /0.1);
|
box-shadow: 0 0.5rem 1.5rem rgba(0 0 0 /0.1);
|
||||||
border: solid thin rgba(var(--text-color), 0.2);
|
border: solid thin rgba(var(--text-color), 0.2);
|
||||||
|
z-index: 2;
|
||||||
}
|
}
|
||||||
#intern_payment_list {
|
#intern_payment_list {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -121,20 +121,20 @@ window.addEventListener("load", () => {
|
|||||||
getRef('search_payments').addEventListener('input', e => {
|
getRef('search_payments').addEventListener('input', e => {
|
||||||
const searchQuery = e.target.value.toLowerCase();
|
const searchQuery = e.target.value.toLowerCase();
|
||||||
const filteredInterns = []
|
const filteredInterns = []
|
||||||
for (const floId in floGlobals.internTxs) {
|
floGlobals.internTxs.forEach((intern, floId) => {
|
||||||
if (floId.toLowerCase().includes(searchQuery) || floGlobals.appObjects.RIBC.internList[floId].toLowerCase().includes(searchQuery))
|
if (floId.toLowerCase().includes(searchQuery) || floGlobals.appObjects.RIBC.internList[floId].toLowerCase().includes(searchQuery))
|
||||||
filteredInterns.push({ floId, name: floGlobals.appObjects.RIBC.internList[floId] })
|
filteredInterns.push({ floId, name: floGlobals.appObjects.RIBC.internList[floId] })
|
||||||
}
|
})
|
||||||
// sort filtered by relevance
|
// sort filtered by relevance to search query (name first, then floId)
|
||||||
filteredInterns.sort((a, b) => {
|
filteredInterns.sort((a, b) => {
|
||||||
if (a.floId.toLowerCase().includes(searchQuery) && b.floId.toLowerCase().includes(searchQuery)) {
|
if (a.name.toLowerCase().includes(searchQuery) && b.name.toLowerCase().includes(searchQuery)) {
|
||||||
return a.name.toLowerCase().includes(searchQuery) ? -1 : 1
|
return a.name.toLowerCase().indexOf(searchQuery) - b.name.toLowerCase().indexOf(searchQuery)
|
||||||
} else if (a.floId.toLowerCase().includes(searchQuery)) {
|
} else if (a.name.toLowerCase().includes(searchQuery)) {
|
||||||
return -1
|
return -1
|
||||||
} else if (b.floId.toLowerCase().includes(searchQuery)) {
|
} else if (b.name.toLowerCase().includes(searchQuery)) {
|
||||||
return 1
|
return 1
|
||||||
} else {
|
} else {
|
||||||
return a.name.toLowerCase().includes(searchQuery) ? -1 : 1
|
return a.floId.toLowerCase().indexOf(searchQuery) - b.floId.toLowerCase().indexOf(searchQuery)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
renderElem(getRef("intern_payment_list"), html`${filteredInterns.map(intern => render.internCard(intern.floId))}`);
|
renderElem(getRef("intern_payment_list"), html`${filteredInterns.map(intern => render.internCard(intern.floId))}`);
|
||||||
@ -317,7 +317,7 @@ const slideOutUp = [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
floGlobals.internTxs = {}
|
floGlobals.internTxs = new Map()
|
||||||
function formatAmount(amount = 0) {
|
function formatAmount(amount = 0) {
|
||||||
if (!amount)
|
if (!amount)
|
||||||
return '₹0';
|
return '₹0';
|
||||||
@ -334,7 +334,7 @@ function fetchTransactions() {
|
|||||||
}
|
}
|
||||||
const render = {
|
const render = {
|
||||||
internCard(floId) {
|
internCard(floId) {
|
||||||
const { total, txs } = floGlobals.internTxs[floId];
|
const { total, txs } = floGlobals.internTxs.get(floId);
|
||||||
return html`
|
return html`
|
||||||
<li class="intern-card">
|
<li class="intern-card">
|
||||||
<div class="flex flex-direction-column gap-0-5">
|
<div class="flex flex-direction-column gap-0-5">
|
||||||
@ -354,9 +354,9 @@ const render = {
|
|||||||
},
|
},
|
||||||
internPaymentList() {
|
internPaymentList() {
|
||||||
const renderedList = []
|
const renderedList = []
|
||||||
for (const intern in floGlobals.internTxs) {
|
floGlobals.internTxs.forEach((data, internId) => {
|
||||||
renderedList.push(render.internCard(intern));
|
renderedList.push(render.internCard(internId));
|
||||||
}
|
})
|
||||||
renderElem(getRef("intern_payment_list"), html`${renderedList}`);
|
renderElem(getRef("intern_payment_list"), html`${renderedList}`);
|
||||||
},
|
},
|
||||||
paymentCard(tx) {
|
paymentCard(tx) {
|
||||||
@ -390,37 +390,71 @@ const render = {
|
|||||||
<p style="font-size: 0.9rem;">FLO Address</p>
|
<p style="font-size: 0.9rem;">FLO Address</p>
|
||||||
<sm-copy value=${floId}></sm-copy>
|
<sm-copy value=${floId}></sm-copy>
|
||||||
</div>
|
</div>
|
||||||
<p>Total paid: <b>${formatAmount(floGlobals.internTxs[floId].total)}</b></p>
|
<p>Total paid: <b>${formatAmount(floGlobals.internTxs.get(floId).total)}</b></p>
|
||||||
</section>
|
</section>
|
||||||
<section class="flex flex-direction-column gap-1">
|
<section class="flex flex-direction-column gap-1">
|
||||||
<h4>Payment history</h4>
|
<h4>Payment history</h4>
|
||||||
<ul id="payment_history">
|
<ul id="payment_history">
|
||||||
${floGlobals.internTxs[floId].txs.map(tx => render.paymentCard(tx))}
|
${floGlobals.internTxs.get(floId).txs.map(tx => render.paymentCard(tx))}
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const oldInterns = {
|
||||||
|
"FEvLovuDjWo4pXX3Y4SKDh8sq1AxJzqz9Z": "Megha Rani",
|
||||||
|
"F765ofUHBhfXhvzrSgnPjvCvJXXCpoW6be": "Madhu Verma",
|
||||||
|
"FHZtDh1NPepaPbbPwW65GjnDdVV1uo8NSA":"Vridhi Raj",
|
||||||
|
"FKa43RxHUAdJbgV6KipQ4PvXi6Kgw4HmFn":"Aakriti Sinha",
|
||||||
|
"FFaB6N1ETZsykXVS2PdM5xhj5BBoqsfsXC": "Ritika Agrawal",
|
||||||
|
"FSdjJCJdU43a1dyWY6dRES1ekoupEjFPqQ": "Muskan Kumari",
|
||||||
|
"FK96PZh4NskoJfWoyqcvLpSo7YnTLWMmdD": "Shambhavi Singh",
|
||||||
|
"FJK9EDGhKj4Wr2zeCo3zRPXCNU6CXFFQAN": "Shivam Kumar Pandey",
|
||||||
|
"FPtrQK6aSCgFeSNpzC68YTznHPfiz7CCvW": "Shruti Kashyap",
|
||||||
|
"FHWXdnjRRJErqazye4Y9MRmE42D4Bp6Bj7": "Rashi Sanghvi",
|
||||||
|
"FCTGD4M3DvMKupX3j2y5f3cQNDD9i6LUp7": "Gunjan Kumar Ranjan",
|
||||||
|
"F8zYh6rCuorGmnMtqGFpaKGeBqQaj9WVtG": "Kriti Shreya",
|
||||||
|
"FFoVnVMJv8BTfbk7ij9T5jPHs7VKSz886A": "Jaidev",
|
||||||
|
"F87Ai2ErAMFe3UmAR7S63UYX2jE9ofaXSH": "Keerthana A V",
|
||||||
|
"FEzy6pzEkm1TMXf1BGQz8dXvVZM3L1HFu2": "Saloni Jaitley",
|
||||||
|
"FB4tu13HCxHAadvUDmgDBhvE9MtCkgRacn": "Divyansh Bhardwaj",
|
||||||
|
"FLzcrXhzK1XzLnku5sT6yzURBcqQ5ZDNJyv": "Tanishk Goyal",
|
||||||
|
"F7HVKrF68Y6YKE9XXpHhAcxt6MwRLcUD67": "Salomi Sarkar",
|
||||||
|
"FBYnAqhBt99XbTtCH6LAzjJ5yNZVPkYXhk": "Divyansh Bhardwaj (New FLO ID)",
|
||||||
|
"FF7jVqwGS8fGG9fxmbVkEvD1Qo11hDyg8b": "Ahana Chakraborty",
|
||||||
|
"FKknmmQd3PVaGbBbPFAJcQsARvw48NfeDF": "Prattay Mazumdar",
|
||||||
|
"FSoa46pVWsNuZDp26X9H9Fi6ijMk7cy7mc": "Jayant Kumar",
|
||||||
|
"FCqLr9nymnbh7ahta1gGC78z634y4GHJGQ": "Rakhijeet Singh",
|
||||||
|
"FEHKFxQxycsxw2qQQSn2Y1BCT6Mfb8EMko": "Abhijeet Anand",
|
||||||
|
}
|
||||||
async function main() {
|
async function main() {
|
||||||
try {
|
try {
|
||||||
const [txData] = await Promise.all([fetchTransactions(),fetchRibcData()]);
|
const [txData] = await Promise.all([fetchTransactions(), fetchRibcData()]);
|
||||||
|
floGlobals.appObjects.RIBC.internList = {
|
||||||
|
...floGlobals.appObjects.RIBC.internList,
|
||||||
|
...oldInterns
|
||||||
|
}
|
||||||
for (const txid in txData.transactions) {
|
for (const txid in txData.transactions) {
|
||||||
const {parsedFloData:{tokenAmount},transactionDetails} = txData.transactions[txid]
|
const {parsedFloData:{tokenAmount},transactionDetails} = txData.transactions[txid]
|
||||||
const floId = transactionDetails.vout[0].scriptPubKey.addresses[0];
|
const floId = transactionDetails.vout[0].scriptPubKey.addresses[0];
|
||||||
if (!floGlobals.appObjects.RIBC.internList[floId]) continue; // not an intern
|
if (!floGlobals.appObjects.RIBC.internList[floId]) continue; // not an intern
|
||||||
if (!floGlobals.internTxs[floId])
|
if (!floGlobals.internTxs.has(floId))
|
||||||
floGlobals.internTxs[floId] = {
|
floGlobals.internTxs.set(floId, {
|
||||||
total: 0,
|
total: 0,
|
||||||
txs: []
|
txs: []
|
||||||
};
|
});
|
||||||
floGlobals.internTxs[floId].total += tokenAmount;
|
floGlobals.internTxs.get(floId).total += tokenAmount;
|
||||||
floGlobals.internTxs[floId].txs.push({
|
floGlobals.internTxs.get(floId).txs.push({
|
||||||
txid,
|
txid,
|
||||||
amount: tokenAmount,
|
amount: tokenAmount,
|
||||||
time: transactionDetails.time
|
time: transactionDetails.time
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
floGlobals.internTxs.forEach((intern) => {
|
||||||
|
intern.txs.sort((a,b) => b.time - a.time)
|
||||||
|
})
|
||||||
|
// sort floGlobals.internTxs by date of last payment
|
||||||
|
floGlobals.internTxs = new Map([...floGlobals.internTxs.entries()].sort((a,b) => b[1].txs[0].time - a[1].txs[0].time));
|
||||||
render.internPaymentList();
|
render.internPaymentList();
|
||||||
routeTo(window.location.hash)
|
routeTo(window.location.hash)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user