aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-01-24 03:30:54 +0100
committerFlorian Dold <florian.dold@gmail.com>2016-01-24 03:30:54 +0100
commit53654b3622de38c6cca5d29f9969eb9a67caf8a0 (patch)
tree0f34658f03ef8489d10d5bcddc11c9b7a258895c /extension
parentb8627813be56e04c18baf38885f3a3dc0fb7496c (diff)
downloadwallet-core-53654b3622de38c6cca5d29f9969eb9a67caf8a0.tar.xz
Redirect to bank page on reserve creation success
Fixes #4084.
Diffstat (limited to 'extension')
-rw-r--r--extension/lib/wallet/types.ts4
-rw-r--r--extension/lib/wallet/wallet.ts15
-rw-r--r--extension/lib/wallet/wxmessaging.js4
-rw-r--r--extension/lib/wallet/wxmessaging.ts5
-rw-r--r--extension/pages/confirm-create-reserve.js8
-rw-r--r--extension/pages/confirm-create-reserve.tsx15
-rw-r--r--extension/pages/reserve-success.html29
7 files changed, 18 insertions, 62 deletions
diff --git a/extension/lib/wallet/types.ts b/extension/lib/wallet/types.ts
index 33de0ffb9..75233ff82 100644
--- a/extension/lib/wallet/types.ts
+++ b/extension/lib/wallet/types.ts
@@ -102,8 +102,6 @@ export interface ConfirmReserveRequest {
export interface ConfirmReserveResponse {
- backlink: string;
+ backlink?: string;
success: boolean;
- status: number;
- text: string;
} \ No newline at end of file
diff --git a/extension/lib/wallet/wallet.ts b/extension/lib/wallet/wallet.ts
index 2a931ae33..ab4c88da7 100644
--- a/extension/lib/wallet/wallet.ts
+++ b/extension/lib/wallet/wallet.ts
@@ -456,11 +456,16 @@ export class Wallet {
return this.http.postForm(req.post_url, form)
.then((hresp) => {
+ // TODO: look at response status code and handle errors appropriately
+ let json = JSON.parse(hresp.responseText);
+ if (!json) {
+ return {
+ success: false
+ };
+ }
let resp: ConfirmReserveResponse = {
- status: hresp.status,
- text: hresp.responseText,
success: undefined,
- backlink: undefined
+ backlink: json.redirect_url,
};
let reserveRecord = {
reserve_pub: reservePub.toCrock(),
@@ -488,9 +493,7 @@ export class Wallet {
};
resp.success = true;
- // We can't show the page directly, so
- // we show some generic page from the wallet.
- resp.backlink = null;
+
return Query(this.db)
.put("reserves", reserveRecord)
.put("history", historyEntry)
diff --git a/extension/lib/wallet/wxmessaging.js b/extension/lib/wallet/wxmessaging.js
index 93ffd8bb7..f54e0b35d 100644
--- a/extension/lib/wallet/wxmessaging.js
+++ b/extension/lib/wallet/wxmessaging.js
@@ -55,12 +55,10 @@ System.register(["./wallet", "./db", "./http"], function(exports_1) {
};
wallet.confirmReserve(req)
.then(function (resp) {
- if (resp.success) {
- resp.backlink = chrome.extension.getURL("pages/reserve-success.html");
- }
sendResponse(resp);
})
.catch(function (e) {
+ sendResponse({ success: false });
console.error("exception during 'confirm-reserve'");
console.error(e.stack);
});
diff --git a/extension/lib/wallet/wxmessaging.ts b/extension/lib/wallet/wxmessaging.ts
index de9d5907c..eb9f165db 100644
--- a/extension/lib/wallet/wxmessaging.ts
+++ b/extension/lib/wallet/wxmessaging.ts
@@ -72,13 +72,10 @@ function makeHandlers(wallet) {
};
wallet.confirmReserve(req)
.then((resp) => {
- if (resp.success) {
- resp.backlink = chrome.extension.getURL(
- "pages/reserve-success.html");
- }
sendResponse(resp);
})
.catch((e) => {
+ sendResponse({success: false});
console.error("exception during 'confirm-reserve'");
console.error(e.stack);
});
diff --git a/extension/pages/confirm-create-reserve.js b/extension/pages/confirm-create-reserve.js
index 8b0fdc536..193f496a6 100644
--- a/extension/pages/confirm-create-reserve.js
+++ b/extension/pages/confirm-create-reserve.js
@@ -28,14 +28,10 @@ var ConfirmCreateReserve;
}
showAmount.textContent = s;
}
- function clone(obj) {
- // This is faster than it looks ...
- return JSON.parse(JSON.stringify(obj));
- }
document.addEventListener("DOMContentLoaded", function (e) {
updateAmount();
document.getElementById("confirm").addEventListener("click", function (e) {
- var d = clone(query);
+ var d = Object.assign({}, query);
d.mint = document.getElementById('mint-url').value;
chrome.runtime.sendMessage({ type: 'confirm-reserve', detail: d }, function (resp) {
if (resp.success === true) {
@@ -43,7 +39,7 @@ var ConfirmCreateReserve;
}
else {
document.body.innerHTML =
- "\n Oops, something went wrong.\n The bank responded with HTTP status code " + resp.status + ".\n Here is some more info:\n <pre>" + resp.text + "</pre>\n </div>";
+ "Oops, something went wrong. It looks like the bank could not\n transfer funds to the mint. Please go back to your bank's website\n to check what happened.";
}
});
});
diff --git a/extension/pages/confirm-create-reserve.tsx b/extension/pages/confirm-create-reserve.tsx
index 325f3849c..38776ee6b 100644
--- a/extension/pages/confirm-create-reserve.tsx
+++ b/extension/pages/confirm-create-reserve.tsx
@@ -32,16 +32,12 @@ namespace ConfirmCreateReserve {
showAmount.textContent = s;
}
- function clone(obj) {
- // This is faster than it looks ...
- return JSON.parse(JSON.stringify(obj));
- }
document.addEventListener("DOMContentLoaded", (e) => {
updateAmount();
document.getElementById("confirm").addEventListener("click", (e) => {
- let d = clone(query);
+ let d = Object.assign({}, query);
d.mint = (document.getElementById('mint-url') as HTMLInputElement).value;
chrome.runtime.sendMessage({type:'confirm-reserve', detail: d},
(resp) => {
@@ -49,12 +45,9 @@ namespace ConfirmCreateReserve {
document.location.href = resp.backlink;
} else {
document.body.innerHTML =
- `
- Oops, something went wrong.
- The bank responded with HTTP status code ${resp.status}.
- Here is some more info:
- <pre>${resp.text}</pre>
- </div>`;
+ `Oops, something went wrong. It looks like the bank could not
+ transfer funds to the mint. Please go back to your bank's website
+ to check what happened.`;
}
});
diff --git a/extension/pages/reserve-success.html b/extension/pages/reserve-success.html
deleted file mode 100644
index 8d5c6aeb4..000000000
--- a/extension/pages/reserve-success.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!doctype html>
-
-<html>
- <head>
- <title>Taler Wallet: Withdraw operation initiated</title>
- <link rel="stylesheet" type="text/css" href="../style/wallet.css">
- </head>
- <body>
-
- <header>
- <div id="logo"></div>
- <h1>Withdraw operation initiated</h1>
- </header>
-
- <aside class="sidebar" id="left">
- </aside>
-
- <section id="main">
-
- <article>
- <h1>Success!</h1>
-
- <p>We have started the process of withdrawing electronic coins. This process may take a bit, but will happen in the background. So you can now continue to browse.</p>
- <p>You can click on the Taler logo in your navigation bar to check on the progress of the withdrawal operation and your current balance.</p>
- </article>
-
- </section>
- </body>
-</html>