UI update
Added custom fund confirmation UI
This commit is contained in:
parent
57504e810c
commit
4078e3b45c
@ -653,8 +653,10 @@ form select option {
|
|||||||
grid-area: close;
|
grid-area: close;
|
||||||
}
|
}
|
||||||
|
|
||||||
#term_details {
|
#term_details,
|
||||||
|
#fund_details {
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-grid {
|
.flex-grid {
|
||||||
|
|||||||
2
css/main.min.css
vendored
2
css/main.min.css
vendored
File diff suppressed because one or more lines are too long
@ -577,8 +577,10 @@ form{
|
|||||||
grid-area: close;
|
grid-area: close;
|
||||||
}
|
}
|
||||||
|
|
||||||
#term_details{
|
#term_details,
|
||||||
|
#fund_details{
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-grid{
|
.flex-grid{
|
||||||
|
|||||||
83
index.html
83
index.html
@ -112,15 +112,15 @@
|
|||||||
<section id="fund_details_form" class="grid gap-1-5 margin-bottom-0-5r">
|
<section id="fund_details_form" class="grid gap-1-5 margin-bottom-0-5r">
|
||||||
<label class="grid gap-0-5">
|
<label class="grid gap-0-5">
|
||||||
Fund start date
|
Fund start date
|
||||||
<input type="date" name="start_date">
|
<input type="date" id="start_date" required>
|
||||||
</label>
|
</label>
|
||||||
<label class="grid gap-0-5">
|
<label class="grid gap-0-5">
|
||||||
Base BTC value ($)
|
Base BTC value ($)
|
||||||
<input type="text" name="btc_base" pattern="[\d,]+.?\d">
|
<input type="text" id="btc_base" pattern="[\d,]+.?\d" required>
|
||||||
</label>
|
</label>
|
||||||
<label class="grid gap-0-5">
|
<label class="grid gap-0-5">
|
||||||
Base USD rate (₹)
|
Base USD rate (₹)
|
||||||
<input type="number" name="usd_rate" step="0.01">
|
<input type="number" id="usd_rate" step="0.01" required>
|
||||||
</label>
|
</label>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -203,14 +203,30 @@
|
|||||||
<h3>Confirm Details</h3>
|
<h3>Confirm Details</h3>
|
||||||
</header>
|
</header>
|
||||||
<form class="grid gap-1-5" onsubmit="return false">
|
<form class="grid gap-1-5" onsubmit="return false">
|
||||||
<section id="term_details"></section>
|
<section id="term_details" class="breakable"></section>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<h4 class="weight-400 margin-bottom-1r" id="admin_id"></h4>
|
<h4 class="weight-400 margin-bottom-1r" id="term_admin_id"></h4>
|
||||||
<sm-input id="get_private_key" type="password" placeholder="Private key"></sm-input>
|
<sm-input id="get_term_private_key" type="password" placeholder="Private key"></sm-input>
|
||||||
</div>
|
</div>
|
||||||
<button id="create_term_button" type="submit" class="button--primary justify-self-start">Create term</button>
|
<button id="create_term_button" type="submit" class="button--primary justify-self-start">Create term</button>
|
||||||
</form>
|
</form>
|
||||||
</article>
|
</article>
|
||||||
|
<article id="confirm_fund_page" class="page page-layout hide-completely">
|
||||||
|
<header class="flex margin-top-1-5 align-center margin-bottom-1-5r">
|
||||||
|
<button class="back-button" onclick="showPage('admin_page')">
|
||||||
|
<svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z"/></svg>
|
||||||
|
</button>
|
||||||
|
<h3>Confirm Details</h3>
|
||||||
|
</header>
|
||||||
|
<form class="grid gap-1-5" onsubmit="return false">
|
||||||
|
<section id="fund_details" class="breakable"></section>
|
||||||
|
<div class="grid">
|
||||||
|
<h4 class="weight-400 margin-bottom-1r" id="fund_admin_id"></h4>
|
||||||
|
<sm-input id="get_fund_private_key" type="password" placeholder="Private key"></sm-input>
|
||||||
|
</div>
|
||||||
|
<button id="confirm_fund_button" type="submit" class="button--primary justify-self-start">Create Fund</button>
|
||||||
|
</form>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
<script id="init_lib" version="1.0.1">
|
<script id="init_lib" version="1.0.1">
|
||||||
@ -10396,10 +10412,12 @@ Bitcoin.Util = {
|
|||||||
clearAddedInvestors()
|
clearAddedInvestors()
|
||||||
}
|
}
|
||||||
if(target !== 'confirm_term_page'){
|
if(target !== 'confirm_term_page'){
|
||||||
getRef('get_private_key').value = ''
|
getRef('get_term_private_key').value = ''
|
||||||
|
getRef('get_fund_private_key').value = ''
|
||||||
}
|
}
|
||||||
if(target === 'home_page'){
|
if(target === 'home_page'){
|
||||||
getRef("create_term_form").reset()
|
getRef("create_term_form").reset()
|
||||||
|
getRef("create_fund_form").reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10449,6 +10467,7 @@ Bitcoin.Util = {
|
|||||||
getRef('fund_creation_toggle').addEventListener('change', e => {
|
getRef('fund_creation_toggle').addEventListener('change', e => {
|
||||||
if(e.detail.checked){
|
if(e.detail.checked){
|
||||||
getRef('fund_details_form').classList.add('hide-completely')
|
getRef('fund_details_form').classList.add('hide-completely')
|
||||||
|
getRef('fund_details_form').querySelectorAll('input').forEach(input => input.disabled = true)
|
||||||
getRef('create_fund_button').classList.add('hide-completely')
|
getRef('create_fund_button').classList.add('hide-completely')
|
||||||
getRef('add_investors_button').classList.remove('hide-completely')
|
getRef('add_investors_button').classList.remove('hide-completely')
|
||||||
getRef('fund_selector_container').classList.remove('hide-completely')
|
getRef('fund_selector_container').classList.remove('hide-completely')
|
||||||
@ -10456,6 +10475,7 @@ Bitcoin.Util = {
|
|||||||
else{
|
else{
|
||||||
getRef('fund_details_form').classList.remove('hide-completely')
|
getRef('fund_details_form').classList.remove('hide-completely')
|
||||||
getRef('create_fund_button').classList.remove('hide-completely')
|
getRef('create_fund_button').classList.remove('hide-completely')
|
||||||
|
getRef('fund_details_form').querySelectorAll('input').forEach(input => input.disabled = false)
|
||||||
getRef('add_investors_button').classList.add('hide-completely')
|
getRef('add_investors_button').classList.add('hide-completely')
|
||||||
getRef('fund_selector_container').classList.add('hide-completely')
|
getRef('fund_selector_container').classList.add('hide-completely')
|
||||||
}
|
}
|
||||||
@ -10499,8 +10519,8 @@ Bitcoin.Util = {
|
|||||||
getRef("btc-usd-rate").textContent = `BTC: $${rates.BTC_USD.toFixed(2)}`;
|
getRef("btc-usd-rate").textContent = `BTC: $${rates.BTC_USD.toFixed(2)}`;
|
||||||
getRef('fund_list').innerHTML = '';
|
getRef('fund_list').innerHTML = '';
|
||||||
getRef('fund_selector').innerHTML = ''
|
getRef('fund_selector').innerHTML = ''
|
||||||
|
getRef('term_selector').innerHTML = ``
|
||||||
|
|
||||||
const termsFrag = document.createDocumentFragment()
|
|
||||||
|
|
||||||
compactIDB.readAllData("terms").then(terms => {
|
compactIDB.readAllData("terms").then(terms => {
|
||||||
for (let floID in terms) {
|
for (let floID in terms) {
|
||||||
@ -10518,20 +10538,18 @@ Bitcoin.Util = {
|
|||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
smOption.setAttribute('value', term.floID)
|
smOption.setAttribute('value', term.floID)
|
||||||
termsFrag.append(smOption)
|
getRef('term_selector').append(smOption)
|
||||||
|
|
||||||
compactIDB.searchData("funds", {
|
compactIDB.searchData("funds", {
|
||||||
lowerKey: floID + "|",
|
lowerKey: floID + "|",
|
||||||
upperKey: floID + "||"
|
upperKey: floID + "||"
|
||||||
})
|
})
|
||||||
.then(funds => renderFunds(term, funds))
|
.then(funds => renderFunds(term, funds))
|
||||||
.catch(error => console.error(error))
|
.catch(error => console.error(error))
|
||||||
getFundsFromBlockchain(floID)
|
getFundsFromBlockchain(floID)
|
||||||
.then(funds => renderFunds(term, funds))
|
.then(funds => renderFunds(term, funds))
|
||||||
.catch(error => console.error(error))
|
.catch(error => console.error(error))
|
||||||
}
|
}
|
||||||
getRef('term_selector').innerHTML = ``
|
|
||||||
getRef('term_selector').append(termsFrag)
|
|
||||||
}).catch(error => console.error(error));
|
}).catch(error => console.error(error));
|
||||||
getTermsFromBlockchain().then(terms => {
|
getTermsFromBlockchain().then(terms => {
|
||||||
for (let floID in terms) {
|
for (let floID in terms) {
|
||||||
@ -10739,9 +10757,8 @@ Bitcoin.Util = {
|
|||||||
const investorGroup = document.createElement('li')
|
const investorGroup = document.createElement('li')
|
||||||
investorGroup.classList.add('investor-group')
|
investorGroup.classList.add('investor-group')
|
||||||
investorGroup.innerHTML = `
|
investorGroup.innerHTML = `
|
||||||
<header class="flex space-between align-center">
|
<header class="flex align-center">
|
||||||
<h4 class="weight-500 color-0-8">Transaction group</h4>
|
<a class="fund-link justify-right" href="https://livenet.flocha.in/tx/${funds[k][i].txid}" target="_blank">See transaction</a>
|
||||||
<a class="fund-link" href="https://livenet.flocha.in/tx/${funds[k][i].txid}" target="_blank">See transaction</a>
|
|
||||||
</header>
|
</header>
|
||||||
<ul class="investor-group__list"></ul>
|
<ul class="investor-group__list"></ul>
|
||||||
`
|
`
|
||||||
@ -10921,10 +10938,10 @@ Bitcoin.Util = {
|
|||||||
console.log(termStr)
|
console.log(termStr)
|
||||||
|
|
||||||
getRef('term_details').innerHTML = termStr.replace(/\|/g, "<br>")
|
getRef('term_details').innerHTML = termStr.replace(/\|/g, "<br>")
|
||||||
getRef('admin_id').innerHTML = `Enter Private key of adminID <h5 class="weight-400">${floGlobals.adminID}</h5>`
|
getRef('term_admin_id').innerHTML = `Enter Private key of adminID <h5 class="weight-400">${floGlobals.adminID}</h5>`
|
||||||
showPage('confirm_term_page')
|
showPage('confirm_term_page')
|
||||||
getRef('create_term_button').onclick = () => {
|
getRef('create_term_button').onclick = () => {
|
||||||
const privKey = getRef('get_private_key').value
|
const privKey = getRef('get_term_private_key').value
|
||||||
if (!floCrypto.verifyPrivKey(privKey, floGlobals.adminID)) {
|
if (!floCrypto.verifyPrivKey(privKey, floGlobals.adminID)) {
|
||||||
notify("Access Denied! incorrect private key", 'error');
|
notify("Access Denied! incorrect private key", 'error');
|
||||||
return
|
return
|
||||||
@ -10947,16 +10964,32 @@ Bitcoin.Util = {
|
|||||||
let createMod = !getRef("fund_creation_toggle").checked;
|
let createMod = !getRef("fund_creation_toggle").checked;
|
||||||
console.info(investments, termId)
|
console.info(investments, termId)
|
||||||
if (createMod) //create new fund
|
if (createMod) //create new fund
|
||||||
fStr = createFundString(f["btc_base"].value, f["usd_rate"].value, f["start_date"].value, investments)
|
fStr = createFundString(getRef("btc_base").value, getRef("usd_rate").value, getRef("start_date").value, investments)
|
||||||
else //add investments to existing fund
|
else //add investments to existing fund
|
||||||
fStr = continueFund(getRef("fund_selector").value, investments)
|
fStr = continueFund(getRef("fund_selector").value, investments)
|
||||||
|
|
||||||
console.log(fStr);
|
console.log(fStr);
|
||||||
let privKey = prompt(fStr + `\n\nEnter privateKey of ${termId}`);
|
|
||||||
floBlockchainAPI.writeData(termId, fStr, privKey, termId).then(result => {
|
getRef('fund_details').innerHTML = fStr.replace(/\|/g, "<br>")
|
||||||
console.info(result);
|
getRef('fund_admin_id').innerHTML = `Enter Private key of fund ID <h5 class="weight-400">${termId}</h5>`
|
||||||
alert(createMod ? "New Fund created" : "Invesments added to fund")
|
showPage('confirm_fund_page')
|
||||||
}).catch(error => reject(error))
|
|
||||||
|
getRef('confirm_fund_button').onclick = () => {
|
||||||
|
const privKey = getRef('get_fund_private_key').value
|
||||||
|
console.log(privKey)
|
||||||
|
if (!floCrypto.verifyPrivKey(privKey, termId)) {
|
||||||
|
notify("Access Denied! incorrect private key", 'error');
|
||||||
|
return
|
||||||
|
}
|
||||||
|
floBlockchainAPI.writeData(termId, fStr, privKey, termId).then(result => {
|
||||||
|
console.log(result);
|
||||||
|
showPage('admin_page')
|
||||||
|
notify(createMod ? "New Fund created" : "Invesments added to fund", 'success');
|
||||||
|
getRef("create_fund_form").reset()
|
||||||
|
}).catch(error => console.error(error))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
showPage('admin_page')
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user