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/coin.js"></script>
<script type="text/javascript" src="js/coinbin.js"></script> <script type="text/javascript" src="js/coinbin.js"></script>
<script type="text/javascript" src="js/cookie.js"></script>
</head> </head>
<body> <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> <a href="#home" class="navbar-brand" id="homeBtn"><img src="images/coinbin.gif" style="height:25px;margin-top:-5px"></a>
</div> </div>
<div class="collapse navbar-collapse"> <div class="collapse navbar-collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-plus"></span> New<b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-plus"></span> New<b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="#newAddress" data-toggle="tab">Address</a></li> <li><a href="#newAddress" data-toggle="tab">Address</a></li>
<li><a href="#newSegWit" data-toggle="tab">SegWit 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="#newMultiSig" data-toggle="tab">MultiSig Address</a></li>
<li><a href="#newTimeLocked" data-toggle="tab">Time Locked 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><a href="#newHDaddress" data-toggle="tab">HD Address</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="#newTransaction" data-toggle="tab">Transaction</a></li> <li><a href="#newTransaction" data-toggle="tab">Transaction</a></li>
</ul> </ul>
</li> </li>
<li><a href="#verify" data-toggle="tab"><span class="glyphicon glyphicon-ok"></span> Verify</a></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="#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="#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="#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><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><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> <li><a href="#fees" data-toggle="tab"><span class="glyphicon glyphicon-tag"></span> Fees</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1932,33 +1932,36 @@ $(document).ready(function() {
}); });
$("#coinjs_coin").change(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 // deal with broadcasting settings
if(o[5]=="false"){ if(optionSeleted[5]=="false"){
$("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',true); $("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',true);
$("#coinjs_broadcast").val("coinb.in"); $("#coinjs_broadcast").val("coinb.in");
} else { } else {
$("#coinjs_broadcast").val(o[5]); $("#coinjs_broadcast").val(optionSeleted[5]);
$("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',false); $("#coinjs_broadcast, #rawTransaction, #rawSubmitBtn, #openBtn").attr('disabled',false);
} }
// deal with unspent output settings // deal with unspent output settings
if(o[6]=="false"){ if(optionSeleted[6]=="false"){
$("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',true); $("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',true);
$("#coinjs_utxo").val("coinb.in"); $("#coinjs_utxo").val("coinb.in");
} else { } else {
$("#coinjs_utxo").val(o[6]); $("#coinjs_utxo").val(optionSeleted[6]);
$("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',false); $("#coinjs_utxo, #redeemFrom, #redeemFromBtn, #openBtn, .qrcodeScanner").attr('disabled',false);
} }
// deal with the reset // deal with the reset
$("#coinjs_pub").val(o[0]); $("#coinjs_pub").val(optionSeleted[0]);
$("#coinjs_priv").val(o[1]); $("#coinjs_priv").val(optionSeleted[1]);
$("#coinjs_multisig").val(o[2]); $("#coinjs_multisig").val(optionSeleted[2]);
$("#coinjs_hdpub").val(o[3]); $("#coinjs_hdpub").val(optionSeleted[3]);
$("#coinjs_hdprv").val(o[4]); $("#coinjs_hdprv").val(optionSeleted[4]);
// hide/show custom screen // hide/show custom screen
if($("option:selected",this).val()=="custom"){ if($("option:selected",this).val()=="custom"){
@ -2285,4 +2288,16 @@ $(document).ready(function() {
return true; 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;
}
}