Merge pull request #1 from maxbethke/staging

merging staging changes
This commit is contained in:
Maximilian Bethke 2021-02-01 12:08:10 +01:00 committed by GitHub
commit d6046784de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 133 additions and 31 deletions

View File

@ -37,6 +37,8 @@
<script type="text/javascript" src="js/coin.js"></script>
<script type="text/javascript" src="js/coinbin.js"></script>
<script type="text/javascript" src="js/cookie.js"></script>
</head>
<body>
@ -54,28 +56,28 @@
<a href="#home" class="navbar-brand" id="homeBtn"><img src="images/coinbin.gif" style="height:25px;margin-top:-5px"></a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-plus"></span> New<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#newAddress" data-toggle="tab">Address</a></li>
<li><a href="#newSegWit" data-toggle="tab">SegWit Address</a></li>
<li><a href="#newMultiSig" data-toggle="tab">MultiSig Address</a></li>
<li><a href="#newTimeLocked" data-toggle="tab">Time Locked Address</a></li>
<li><a href="#newHDaddress" data-toggle="tab">HD Address</a></li>
<li class="divider"></li>
<li><a href="#newTransaction" data-toggle="tab">Transaction</a></li>
</ul>
</li>
<li><a href="#verify" data-toggle="tab"><span class="glyphicon glyphicon-ok"></span> Verify</a></li>
<li><a href="#sign" data-toggle="tab"><span class="glyphicon glyphicon-pencil"></span> Sign</a></li>
<li><a href="#broadcast" data-toggle="tab"><span class="glyphicon glyphicon-globe"></span> Broadcast</a></li>
<li><a href="#wallet" data-toggle="tab"><span class="glyphicon glyphicon-briefcase"></span> Wallet</a></li>
<li><a href="#about" data-toggle="tab"><span class="glyphicon glyphicon-info-sign"></span> About</a></li>
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-plus"></span> New<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#newAddress" data-toggle="tab">Address</a></li>
<li><a href="#newSegWit" data-toggle="tab">SegWit Address</a></li>
<li><a href="#newMultiSig" data-toggle="tab">MultiSig Address</a></li>
<li><a href="#newTimeLocked" data-toggle="tab">Time Locked Address</a></li>
<li><a href="#newHDaddress" data-toggle="tab">HD Address</a></li>
<li class="divider"></li>
<li><a href="#newTransaction" data-toggle="tab">Transaction</a></li>
</ul>
</li>
<li><a href="#verify" data-toggle="tab"><span class="glyphicon glyphicon-ok"></span> Verify</a></li>
<li><a href="#sign" data-toggle="tab"><span class="glyphicon glyphicon-pencil"></span> Sign</a></li>
<li><a href="#broadcast" data-toggle="tab"><span class="glyphicon glyphicon-globe"></span> Broadcast</a></li>
<li><a href="#wallet" data-toggle="tab"><span class="glyphicon glyphicon-briefcase"></span> Wallet</a></li>
<li><a href="#about" data-toggle="tab"><span class="glyphicon glyphicon-info-sign"></span> About</a></li>
<li class="hidden"><a href="#settings" data-toggle="tab"><span class="glyphicon glyphicon-cog"></span> Settings</a></li>
<li class="hidden"><a href="#fees" data-toggle="tab"><span class="glyphicon glyphicon-tag"></span> Fees</a></li>
</ul>
<li><a href="#settings" data-toggle="tab"><span class="glyphicon glyphicon-cog"></span> Settings</a></li>
<li><a href="#fees" data-toggle="tab"><span class="glyphicon glyphicon-tag"></span> Fees</a></li>
</ul>
</div>
</div>
</div>

View File

@ -1932,33 +1932,36 @@ $(document).ready(function() {
});
$("#coinjs_coin").change(function(){
// set cookie for use after page (re)load
let cookie = new Cookie("coinbin_coin_option");
cookie.setValue($(this).val());
var o = ($("option:selected",this).attr("rel")).split(";");
optionSeleted = ($("option:selected",this).attr("rel")).split(";");
// deal with broadcasting settings
if(o[5]=="false"){
if(optionSeleted[5]=="false"){
$("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',true);
$("#coinjs_broadcast").val("coinb.in");
} else {
$("#coinjs_broadcast").val(o[5]);
$("#coinjs_broadcast").val(optionSeleted[5]);
$("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',false);
}
// deal with unspent output settings
if(o[6]=="false"){
if(optionSeleted[6]=="false"){
$("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',true);
$("#coinjs_utxo").val("coinb.in");
} else {
$("#coinjs_utxo").val(o[6]);
$("#coinjs_utxo").val(optionSeleted[6]);
$("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',false);
}
// deal with the reset
$("#coinjs_pub").val(o[0]);
$("#coinjs_priv").val(o[1]);
$("#coinjs_multisig").val(o[2]);
$("#coinjs_hdpub").val(o[3]);
$("#coinjs_hdprv").val(o[4]);
$("#coinjs_pub").val(optionSeleted[0]);
$("#coinjs_priv").val(optionSeleted[1]);
$("#coinjs_multisig").val(optionSeleted[2]);
$("#coinjs_hdpub").val(optionSeleted[3]);
$("#coinjs_hdprv").val(optionSeleted[4]);
// hide/show custom screen
if($("option:selected",this).val()=="custom"){
@ -2285,4 +2288,16 @@ $(document).ready(function() {
return true;
};
/* set network from cookie on page load */
function setNetwork () {
let cookie = new Cookie("coinbin_coin_option");
if(val = cookie.getValue())
{
$("#coinjs_coin").val(val)
$("#coinjs_coin").trigger("change")
}
}
setNetwork()
});

85
js/cookie.js Normal file
View File

@ -0,0 +1,85 @@
class Cookie {
#name;
#value;
constructor(name) {
this.name = name;
this.value;
// read the cookies value (initializes value)
this.get();
}
get() {
var allCookies = document.cookie;
var cookie;
// find out how much cookies are set to be able to pick the right one
if(!allCookies)
{
// the tray is empty. leave fields as initialized
return;
}
if(allCookies.indexOf(";") > 0)
{
// many cookies found, pick one
cookie = this.pickCookie(allCookies);
} else {
// only one cookie found. Check if its the right one
if(this.validateCookie(allCookies))
{
cookie = allCookies;
}
}
// read contents of the picked cookie
if(cookie) {
this.value = this.readCookieContents(cookie);
} else {
console.log("Coudn't get cookie");
}
}
pickCookie(manyCookies) {
manyCookies.split(";").forEach((cookie, _) => {
if(this.validateCookie(cookie))
{
return cookie;
}
});
}
validateCookie(cookie) {
if(cookie.indexOf("=") >= 0)
{
var cookieCredentials = cookie.split("=");
var name = cookieCredentials[0]
return name == this.name;
} else {
return false;
}
}
readCookieContents(cookie) {
var cookieCredentials = cookie.split("=");
var value = cookieCredentials[1];
return JSON.parse(value);
}
setValue(valueToBeSet) {
// update internal record
this.value = valueToBeSet;
// prepare value for storing
var valueJSON = JSON.stringify(valueToBeSet);
// set cookie with expiry on browser close
document.cookie = this.name+"="+valueJSON;
}
getValue() {
this.get();
return this.value;
}
}