Skip to content

Commit

Permalink
Update the callback to always allow the code to be shown
Browse files Browse the repository at this point in the history
  • Loading branch information
blitzmann committed May 8, 2022
1 parent 2731e99 commit e109cce
Showing 1 changed file with 29 additions and 11 deletions.
40 changes: 29 additions & 11 deletions callback.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<style type="text/css">


body { width: 600px; margin: 150px auto; }
body { width: 700px; margin: 150px auto; }
h1 { font-size: 40px; }
h2 { font-size: 32px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
Expand All @@ -14,27 +14,39 @@
.success { color: #28a745; }
.error { color: #dc3545; }
textarea { width: 100%; height: 100px; }

hr { border-width: 1px 0 0 0; border-style: solid; border-color: #333; }
button { cursor: pointer; background-color: white; border: 1px solid #333; color: #333; padding: 8px 11px; text-align: center; text-decoration: none; display: inline-block; }
@media (prefers-color-scheme: dark) {
body { background-color: #333; color: white; }
textarea { width: 100%; height: 100px; background-color: #aaa;}
button { background-color: #333; border: 1px solid white; color: white; }
hr { border-color: white; }
}
</style>

</head>

<body>
<!-- Layout from Short Circuit's CREST login. Shout out! https://github.com/farshield/shortcircuit -->
<h1>pyfa </h1>
<h1>pyfa</h1>
<div id="mode0" class="hidden">
<p id="mode0-msg">Processing request...</p>
<button id="showBtn" onClick="showCode()">Show Code</button>
</div>
<div id="mode1" class="hidden">
<p>Please copy and paste the text below into pyfa.</p>
<p id="mode1-p">Please copy and paste the token below into pyfa.</p>
<textarea id="authCodeText" readonly></textarea>
</div>

</div>
<script>
debugger;
function showCode() {
var element = document.getElementById(`mode1`);
element.classList.remove("hidden");
element = document.getElementById(`showBtn`);
element.classList.add("hidden");
}

function httpPostAsync(url, callback)
{
var xmlHttp = new XMLHttpRequest();
Expand All @@ -49,37 +61,43 @@ <h1>pyfa </h1>
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
let stateInfo;
try{
try {
stateInfo = JSON.parse(atob(params.state))
} catch (err) {
// something has happened and we cannot continue.
// todo: show a simple message and exit.
throw err;
}

// determine which mode to show
// we always want to show the text box for manual.
var element = document.getElementById(`mode${stateInfo.mode}`);
element.classList.remove("hidden");

if (stateInfo.mode === 0) {
let p = document.getElementById(`mode1-p`);
p.prepend(document.createElement("hr"))
}
debugger;
document.getElementById(`authCodeText`).value = btoa(JSON.stringify(params))

if (stateInfo.mode == 0) { // auto / server mode
httpPostAsync(stateInfo.redirect+window.location.search, (req)=>{
httpPostAsync(stateInfo.redirect + window.location.search, (req)=>{
debugger;
const msgDiv = document.getElementById(`mode0-msg`);
if (req.status === 200) {
msgDiv.innerHTML ="<span class='success'>Success!</span> You may close this window and return to the application.";
return;
} else if (req.status === 0){
msgDiv.innerHTML = "<span class='error'>Error!</span> Server response not received.<p><small>The local pyfa server may have timed out, or may not have started correctly.</small></p>";
} else if (req.status === 400){
msgDiv.innerHTML = `<span class='error'>Error!</span> <p><small>${req.responseText}</small></p>`
} else {
msgDiv.innerHTML = `<span class='error'>Error!</span> <p><small>There was an unknown error. Please report this to the pyfa issues page.</p><p><textarea readdonly>${req.responseText}</textarea></small></p>`
}
showCode()
// todo: bad request error when it's not an error itself, but rather
})
// todo: post message to local EVE server
} else if (stateInfo.mode == 1) { // manual copy / paste mode
document.getElementById(`authCodeText`).value = btoa(JSON.stringify(params))
// todo: display auth code and have usee enter into pyfa
}
</script>
</body>
Expand Down

0 comments on commit e109cce

Please sign in to comment.